Example #1
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;
        }
    }
Example #2
0
        public void Generate(
            List <Item> pList,
            List <SaveCell> cells, List <SavePlayerPosition> players,
            TimeSave timeSave, Dictionary <EItemType, int> inventory,
            WorldSave worldSave,
            Dictionary <string, Dictionary <EItemType, int> > givedItems,
            BudgetsSave[] budgetsSave
            )
        {
            SavedPlayers = players.ToArray();
            SavedCells   = cells.ToArray();
            SavedTime    = timeSave;
            WorldSave    = worldSave;
            Budgets      = budgetsSave;
            if (pList.Count > 0)
            {
                knowsItem = new EItemType[pList.Count];
                for (int i = 0; i < pList.Count; i++)
                {
                    knowsItem[0] = pList[i].itemType;
                }
            }
            else
            {
                knowsItem = new EItemType[0];
            }
            items = new InventoryItemSave[inventory.Count];
            if (inventory.Count > 0)
            {
                InventoryItemSave newItem;
                int index = 0;
                foreach (KeyValuePair <EItemType, int> item in inventory)
                {
                    newItem      = new InventoryItemSave();
                    newItem.nb   = item.Value;
                    newItem.type = item.Key;
                    items[index] = newItem;
                    index++;
                }
            }
            GivedItems = new GivedItemSave[givedItems.Count];
            int k = 0;

            foreach (KeyValuePair <string, Dictionary <EItemType, int> > item in givedItems)
            {
                GivedItems[k].npcName = item.Key;
                List <EItemType> lGived   = new List <EItemType>();
                List <int>       lGivedNb = new List <int>();
                foreach (KeyValuePair <EItemType, int> ite in item.Value)
                {
                    lGived.Add(ite.Key);
                    lGivedNb.Add(ite.Value);
                }
                GivedItems[k].givedItems = lGived.ToArray();
                GivedItems[k].nbGived    = lGivedNb.ToArray();
                k++;
            }
        }
Example #3
0
    // Start is called before the first frame update
    void Start()
    {
        savedItem = GameObject.FindWithTag("SavedItem").GetComponent <InventoryItemSave>();

        if (equippedItem != null)
        {
            image.enabled = enabled;
            PickUpItem(equippedItem);
        }
        else
        {
            image.enabled = !enabled;
        }
    }