Esempio n. 1
0
        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);
        }
Esempio n. 2
0
    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;
        }
    }
Esempio n. 3
0
    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>();
        }
    }
Esempio n. 4
0
    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;
 }
Esempio n. 6
0
 private void InitSaveData()
 {
     if (!ES3.KeyExists(GetSaveName))
     {
         SaveData = new InventorySaveData();
         ES3.Save <InventorySaveData>(GetSaveName, SaveData);
         OnItemSave?.Invoke(SaveData);
     }
     SaveData = ES3.Load <InventorySaveData>(GetSaveName);
 }
Esempio n. 7
0
    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);
        }
    }
Esempio n. 8
0
    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();
    }
Esempio n. 12
0
    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);
            }
        }
    }
Esempio n. 13
0
        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]
                    );
            }
        }
Esempio n. 14
0
    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));
    }
Esempio n. 15
0
    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;
    }