public static GameObject Create(CraftData data, Vector3 pos, PlayerCharacter owner) { if (data is ItemData) { ItemData item = (ItemData)data; Item obj = Item.Create(item, pos, 1); return(obj.gameObject); } if (data is PlantData) { PlantData item = (PlantData)data; Plant obj = Plant.Create(item, pos, -1); return(obj.gameObject); } if (data is ConstructionData) { ConstructionData item = (ConstructionData)data; Construction obj = Construction.Create(item, pos); return(obj.gameObject); } if (data is CharacterData) { CharacterData item = (CharacterData)data; Character obj = Character.Create(item, pos); return(obj.gameObject); } return(null); }
public void SpawnLoot(CraftData item, int quantity = 1) { Vector3 pos = GetLootRandomPos(); if (item is ItemData) { ItemData aitem = (ItemData)item; Item.Create(aitem, pos, quantity); } if (item is ConstructionData) { ConstructionData construct_data = (ConstructionData)item; Construction.Create(construct_data, pos); } if (item is PlantData) { PlantData plant_data = (PlantData)item; Plant.Create(plant_data, pos, 0); } }
public Construction CraftConstruction(ConstructionData construct, bool pay_craft_cost = true) { if (!pay_craft_cost || CanCraft(construct)) { if (pay_craft_cost) { PayCraftingCost(construct); } Vector3 pos = transform.position + transform.forward * 1f; Construction aconstruct = Construction.Create(construct, pos); character.Data.AddCraftCount(construct.id); if (onCraft != null) { onCraft.Invoke(construct); } return(aconstruct); } return(null); }