public virtual object GetSaveData() { InventorySaveData inventorySaveData = new InventorySaveData(); if (DatabaseInventory.Load().inventorySettings.saveInventory&& this.playerInventory != null) { if (this.playerInventory.items != null && this.playerInventory.items.Count > 0) { int playerInventoryItemsCount = this.playerInventory.items.Count; inventorySaveData.playerItemsUUIDS = new int[playerInventoryItemsCount]; inventorySaveData.playerItemsStack = new int[playerInventoryItemsCount]; int itemIndex = 0; foreach (KeyValuePair <int, int> entry in this.playerInventory.items) { inventorySaveData.playerItemsUUIDS[itemIndex] = entry.Key; inventorySaveData.playerItemsStack[itemIndex] = entry.Value; ++itemIndex; } } inventorySaveData.playerCurrencyAmount = this.playerInventory.currencyAmount; } return(inventorySaveData); }
public void OnLoad(string data) { inventorySaveData = JsonUtility.FromJson <InventorySaveData>(data); if (inventorySaveData.savedItems.Length != 0) { items.Clear(); for (int i = 0; i < inventorySaveData.savedItems.Length; i++) { InventoryItemSave getSave = inventorySaveData.savedItems[i]; ItemData getItemData = ScriptableAssetDatabase.GetAsset(getSave.guidString) as ItemData; if (getItemData != null) { AddItem(getItemData, getSave.amount, getSave.index); // TODO: Create cleaner way to modify additional data in items. if (getItemData.HasEnergy) { GetItem(getSave.index).Energy = getSave.energy; ReloadItemSlot(getSave.index); } } else { Debug.Log($"Attempted to obtain guid: {getSave.guidString}"); } } obtainedStartingItems = inventorySaveData.obtainedStartingItems; } }
public virtual void LoadData(InventorySaveData saveData) { // if(InventorySaveData.instance != null) if (saveData != null) { // for (int i = 0; i < InventorySaveData.instance.slots.Count; i++) for (int i = 0; i < saveData.slots.Count; i++) { for (int j = 0; j < slots.Count; j++) { if (slots[j].itemStored == null) { System.Type type = System.Type.GetType(saveData.slots[i].itemStored); GameObject temp = ItemManager.instance.itemDictionary[type].gameObject; //TODO: Write a proper load logic //for (int k = 0; k< saveData.slots[i].numberOfItemsStored;k++) //{ // GameObject tempItem = Instantiate(temp); // slots[j].AddItem(tempItem.GetComponent<ItemBase>()); // tempItem.GetComponent<ItemBase>().transform.parent = player.Hand.transform; // slots[j].itemStored = slots[j].itemlist[0]; // slots[j].isActive = saveData.slots[i].isActive; // slots[j].imageSlotPrefab.transform.parent = this.transform.Find(saveData.slots[i].parent); //} } } } //GameObject tempActiveItem = Instantiate(ItemManager.instance.itemDictionary[saveData.activeItem]); //activeItem = tempActiveItem.GetComponent<ItemBase>(); } }
public void Save(System.Type type) { inventorySaveData = new InventorySaveData(); for (int i = 0; i < slots.Count; i++) { if (slots[i].itemCount > 0 && slots[i].isActive) { SlotSaveData slotdata = new SlotSaveData(); //slotdata.itemStored = slots[i].itemlist[0].gameObject.GetComponent<ItemsDescription>().GetType().ToString(); slotdata.itemStored = slots[i].itemStored.itemProperties.itemDescription.GetItemType().ToString(); slotdata.parent = slots[i].imageSlotPrefab.transform.parent.name; //slotdata.position.x = slots[i].imageSlotPrefab.transform.position.x; //slotdata.position.y = slots[i].imageSlotPrefab.transform.position.y; slotdata.isActive = slots[i].isActive; slotdata.siblingIndex = slots[i].imageSlotPrefab.transform.GetSiblingIndex(); //InventorySaveData.instance.slots.Add(slotdata); //inventorySaveData.slots.Add(slotdata); } } for (int i = 0; i < inventorySaveData.slots.Count; i++) { Debug.Log(inventorySaveData.slots[i].itemStored + "Inventory slot data item stored"); Debug.Log(inventorySaveData.slots[i].isActive + "Inventory slot data active status"); Debug.Log(inventorySaveData.slots[i].numberOfItemsStored + "Inventory slot data number of items stored"); Debug.Log(inventorySaveData.slots[i].siblingIndex + "Inventory sibling index"); } if (activeItem != null) { inventorySaveData.activeItem = activeItem.itemProperties.itemDescription.GetType().ToString(); // inventorySaveData.activeItem = activeItem.itemProperties.name; } else { // Debug.LogError("Active item is null"); inventorySaveData.activeItem = null; } Debug.Log("Created inventory save obj>>>>>>" + inventorySaveData.activeItem); if (type.Equals(typeof(SaveManager))) { SaveManager.saveObject.AddObject(inventorySaveData); } else if (type.Equals(typeof(CheckPointManager))) { CheckPointManager.checkPointData.AddObject(inventorySaveData); } Debug.Log("Added to the save object list successfully"); }
public PlayerSaveData(Player player) { level = player.GetLevel(); money = player.GetMoney(); inventory = new InventorySaveData(player.GetInventory()); position = new float[3]; position[0] = player.transform.position.x; position[1] = player.transform.position.y; position[2] = player.transform.position.z; }
private void InitSaveData() { if (!ES3.KeyExists(GetSaveName)) { SaveData = new InventorySaveData(); ES3.Save <InventorySaveData>(GetSaveName, SaveData); OnItemSave?.Invoke(SaveData); } SaveData = ES3.Load <InventorySaveData>(GetSaveName); }
public static void SaveGame(InventorySaveData saveData) { BinaryFormatter formatter = new BinaryFormatter(); string savePath = Application.persistentDataPath + "/SaveGame.Uncr"; using (FileStream stream = new FileStream(savePath, FileMode.Create)) { formatter.Serialize(stream, saveData); } }
public static bool GetInventoryData(out InventorySaveData data) { data = null; if (LoadedSaveFile == null) { Debug.Log("No loaded save file."); return(false); } data = LoadedSaveFile.m_inventory; return(true); }
public static void LoadInventory(Inventory _inventory, ItemsDataBase _itemsDataBase) { if (File.Exists(SAVE_PATH + INVENTORY_FILE)) { BinaryFormatter bf = new BinaryFormatter(); FileStream file = new FileStream(SAVE_PATH + INVENTORY_FILE, FileMode.Open); InventorySaveData invData = bf.Deserialize(file) as InventorySaveData; invData.LoadToInventory(_inventory, _itemsDataBase); file.Close(); } }
public void OnLoad(System.Object generic) { InventorySaveData inventorySaveData = (InventorySaveData)generic; this.playerInventory = new PlayerInventory(); this.playerInventory.currencyAmount = inventorySaveData.playerCurrencyAmount; int playerInventoryItemsCount = inventorySaveData.playerItemsUUIDS.Length; for (int i = 0; i < playerInventoryItemsCount; ++i) { this.playerInventory.items.Add( inventorySaveData.playerItemsUUIDS[i], inventorySaveData.playerItemsStack[i] ); } }
public static void SaveInventory(Inventory _inventory) { int moneyAmount = _inventory.MoneyAmount; if (!Directory.Exists(SAVE_PATH)) { Directory.CreateDirectory(SAVE_PATH); } BinaryFormatter bf = new BinaryFormatter(); FileStream file = new FileStream(SAVE_PATH + INVENTORY_FILE, FileMode.Create); InventorySaveData invData = new InventorySaveData(_inventory); bf.Serialize(file, invData); file.Close(); }
void Load(System.Type type) { //Debug.Log(CheckPointManager.checkPointData.types.Count + "check point data count"); //Get the appropriate value from the save data //TODO: This part might need a little tweaking InventorySaveData saveData = new InventorySaveData(); if (type.Equals(typeof(SaveManager))) { Debug.Log("Loading"); for (int i = 0; i < SaveManager.saveObject.types.Count; i++) { if (SaveManager.saveObject.types[i].type == typeof(InventorySaveData).ToString()) { saveData = (InventorySaveData)SaveManager.saveObject.types[i].values[0]; break; } } } else { if (type.Equals(typeof(CheckPointManager))) { Debug.Log("Loading the checkpoint"); Debug.Log(CheckPointManager.checkPointData.types.Count + "check point data count"); for (int i = 0; i < CheckPointManager.checkPointData.types.Count; i++) { if (CheckPointManager.checkPointData.types[i].type == typeof(InventorySaveData).ToString()) { Debug.Log((InventorySaveData)CheckPointManager.checkPointData.types[i].values[0] + "value of check point"); saveData = (InventorySaveData)CheckPointManager.checkPointData.types[i].values[0]; break; } } LoadData(saveData); } } }
public virtual void OnLoad(object generic) { InventorySaveData inventorySaveData = generic as InventorySaveData; this.playerInventory = new PlayerInventory(); if (!DatabaseInventory.Load().inventorySettings.saveInventory || inventorySaveData == null) { return; } this.SetCurrency(inventorySaveData.playerCurrencyAmount); int playerInventoryItemsCount = inventorySaveData.playerItemsUUIDS.Length; for (int i = 0; i < playerInventoryItemsCount; ++i) { this.playerInventory.items.Add( inventorySaveData.playerItemsUUIDS[i], inventorySaveData.playerItemsStack[i] ); } }
public string OnSave() { inventorySaveData = new InventorySaveData() { obtainedStartingItems = obtainedStartingItems, savedItems = new InventoryItemSave[items.Count + invisibleItems.Count] }; int counter = 0; foreach (KeyValuePair <int, InventoryItem> item in items) { inventorySaveData.savedItems[counter] = new InventoryItemSave() { index = item.Key, guidString = item.Value.Data.GetGuid(), amount = item.Value.Amount, energy = item.Value.Energy }; counter++; } foreach (InventoryItem item in invisibleItems) { inventorySaveData.savedItems[counter] = new InventoryItemSave() { index = 0, guidString = item.Data.GetGuid(), amount = item.Amount, energy = item.Energy }; counter++; } return(JsonUtility.ToJson(inventorySaveData)); }
public SaveFile() { m_inventory = new InventorySaveData(); m_savedCharacterData = new CharacterSaveData[4]; m_savedCharacterData[(int)CharacterId.PICARD] = new CharacterSaveData(CharacterId.PICARD); m_savedCharacterData[(int)CharacterId.LAFORGE] = new CharacterSaveData(CharacterId.LAFORGE); m_savedCharacterData[(int)CharacterId.RIKER] = new CharacterSaveData(CharacterId.RIKER); m_savedCharacterData[(int)CharacterId.WORF] = new CharacterSaveData(CharacterId.WORF); m_currency = 0; m_dateLastSaved = DateTime.Today; m_curCharacters = new CharacterId[] { CharacterId.PICARD, CharacterId.LAFORGE, CharacterId.RIKER, CharacterId.WORF }; m_curItems = new ItemId[2]; m_curShip = AirshipId.BASIC; }