public Holdable GetHoldable() { Holdable holdable = new Holdable(); holdable.Initialize(this); return(holdable); }
public static void JsonObject(Packet packet) { int id = packet.ReadInt(); if (!GameManager.players.ContainsKey(id)) { return; } string json = packet.ReadString(); JsonSerializerSettings settings = new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All }; NetEntity jsonObj = JsonConvert.DeserializeObject <NetEntity>(json, settings); if (jsonObj is NetAnimator) { GameManager.players[id].Animator.Set(jsonObj as NetAnimator); return; } if (jsonObj is BuildingData) { GameManager.instance.SpawnStructure(jsonObj as BuildingData); return; } if (jsonObj is NetItem) { NetItem netItem = jsonObj as NetItem; if (netItem is Netwearable) { Netwearable netWear = netItem as Netwearable; Wearable wear = new Wearable(); wear.Initialize(netWear); GameManager.instance.ChangeInventory(id, wear); } if (netItem is NetHoldable) { NetHoldable netHold = netItem as NetHoldable; Holdable hold = new Holdable(); hold.Initialize(netHold); GameManager.instance.ChangeInventory(id, hold); } return; } if (jsonObj is NetLoot) { NetLoot netLoot = jsonObj as NetLoot; GameManager.instance.CheckLoot(netLoot); } if (jsonObj is NetInventory) { Debug.Log("update inventory"); } }
public void SaveInventory(Dictionary <string, ItemSlot> slots) // save inherited data for wearable/holdable data as well { NetInventory playerSaveData = new NetInventory(); List <Wearable> wearables = new List <Wearable>(); List <Holdable> holdables = new List <Holdable>(); List <Consumable> consumables = new List <Consumable>(); List <Misc> miscs = new List <Misc>(); foreach (var itemSlot in slots) { if (itemSlot.Value.RuntimeItem.Item is Wearable) { Wearable wearable = ScriptableObject.CreateInstance(typeof(Wearable)) as Wearable; wearable.Initialize(itemSlot.Value.RuntimeItem.Item, itemSlot.Key); wearables.Add(wearable); } if (itemSlot.Value.RuntimeItem.Item is Holdable) { Holdable holdable = ScriptableObject.CreateInstance(typeof(Holdable)) as Holdable; holdable.Initialize(itemSlot.Value.RuntimeItem.Item, itemSlot.Key); holdables.Add(holdable); } if (itemSlot.Value.RuntimeItem.Item is Consumable) { Consumable consumable = ScriptableObject.CreateInstance(typeof(Consumable)) as Consumable; consumable.Initialize(itemSlot.Value.RuntimeItem.Item, itemSlot.Key); consumables.Add(consumable); } if (itemSlot.Value.RuntimeItem.Item is Misc) { Misc misc = ScriptableObject.CreateInstance(typeof(Misc)) as Misc; misc.Initialize(itemSlot.Value.RuntimeItem.Item, itemSlot.Key); miscs.Add(misc); } } playerSaveData.Wearables = wearables.ToArray(); playerSaveData.Holdables = holdables.ToArray(); playerSaveData.Consumable = consumables.ToArray(); playerSaveData.Misc = miscs.ToArray(); JsonSerializerSettings settings = new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All, ReferenceLoopHandling = ReferenceLoopHandling.Ignore }; string json = JsonConvert.SerializeObject(playerSaveData, settings); File.WriteAllText(Application.persistentDataPath + "/GAPData.json", json); Debug.Log($"Saved inventory to: {Application.persistentDataPath}/GAPData.json"); }
public List <Item> GetItems() { List <Item> items = new List <Item>(); foreach (var item in Items) { if (item is Netwearable) { Netwearable netWear = item as Netwearable; Wearable wearable = new Wearable(); wearable.Initialize(netWear); items.Add(wearable); } if (item is NetHoldable) { NetHoldable netHold = item as NetHoldable; Holdable holdable = new Holdable(); holdable.Initialize(netHold); items.Add(holdable); } if (item is NetConsumable) { NetConsumable netCons = item as NetConsumable; Consumable consumable = new Consumable(); consumable.Initialize(netCons); items.Add(consumable); } if (item is NetMisc) { NetMisc netMisc = item as NetMisc; Misc misc = new Misc(); misc.Initialize(netMisc); items.Add(misc); } } return(items); }