public void LoadInventory(Character character) { ItemContianerSaveData savedSlots = ItemSaveIO.LoadItems(InventoryFileName); if (savedSlots == null) { return; } character.Inventory.Clear(); character.Inventory.SetMaxSlots(savedSlots.SavedSlots.Length); for (int i = 0; i < savedSlots.SavedSlots.Length; i++) { ItemSlot itemSlot = character.Inventory.ItemSlots[i]; ItemSlotSaveData savedSlot = savedSlots.SavedSlots[i]; character.Inventory.AddListenerToSlot(i); if (savedSlot == null) { itemSlot.Item = null; itemSlot.Amount = 0; } else { itemSlot.Item = itemDatabase.GetItemCopy(savedSlot.ItemID); itemSlot.Amount = savedSlot.Amount; } } }
private void SaveItems(IList <ItemSlot> itemSlots, string fileName) { var saveData = new ItemContianerSaveData(itemSlots.Count); for (int i = 0; i < saveData.SavedSlots.Length; i++) { ItemSlot itemSlot = itemSlots[i]; if (itemSlot.Item == null) { saveData.SavedSlots[i] = null; } else { saveData.SavedSlots[i] = new ItemSlotSaveData(itemSlot.Item.ID, itemSlot.Amount); } } ItemSaveIO.SaveItems(saveData, fileName); }
public void LoadEquipment(Character character) { ItemContianerSaveData savedSlots = ItemSaveIO.LoadItems(EquipmentFileName); if (savedSlots == null) { return; } foreach (ItemSlotSaveData savedSlot in savedSlots.SavedSlots) { if (savedSlot == null) { continue; } Item item = itemDatabase.GetItemCopy(savedSlot.ItemID); character.Inventory.AddItem(item); character.Equip((EquippableItem)item); } }
public static void SaveItems(ItemContianerSaveData items, string fileName) { FileReadWrite.WriteToBinaryFile(baseSavePath + "/" + fileName + ".dat", items); }