public static WorldEditWorldObjectBlockData From(WorldObject worldObject) { WorldEditWorldObjectBlockData worldObjectData = new WorldEditWorldObjectBlockData(); worldObjectData.WorldObjectType = worldObject.GetType(); worldObjectData.Rotation = worldObject.Rotation; worldObjectData.Components = new Dictionary <Type, Object>(); if (worldObject.HasComponent <StorageComponent>()) { StorageComponent storageComponent = worldObject.GetComponent <StorageComponent>(); List <InventoryStack> inventoryStacks = new List <InventoryStack>(); foreach (ItemStack stack in storageComponent.Inventory.Stacks) { if (stack.Empty()) { continue; } inventoryStacks.Add(InventoryStack.Create(stack)); } worldObjectData.Components.Add(typeof(StorageComponent), inventoryStacks); } if (worldObject.HasComponent <CustomTextComponent>()) { CustomTextComponent textComponent = worldObject.GetComponent <CustomTextComponent>(); worldObjectData.Components.Add(typeof(CustomTextComponent), textComponent.TextData.Text); } return(worldObjectData); }
public static InventoryStack Create(ItemStack itemStack) { InventoryStack inventoryStack = new InventoryStack(); if (!itemStack.Empty()) { inventoryStack.ItemType = itemStack.Item.Type; inventoryStack.Quantity = itemStack.Quantity; } return(inventoryStack); }