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 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++; } }
// 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; } }