Пример #1
0
 public PlayerData(SlotPanelData inventoryPanel, SlotPanelData equipmentPanel, PlayerStatData playerStats, TransformData transformData)
 {
     this.inventoryPanel = inventoryPanel;
     this.equipmentPanel = equipmentPanel;
     this.playerStats    = playerStats;
     this.transformData  = transformData;
 }
    public void LoadInventoryPanel(Inventory inventory, SlotPanel panel, SlotPanelData panelData)
    {
        if (panelData == null)
        {
            return;
        }

        panel.EmptyAllSlots();
        inventory.ClearItems();

        for (int i = 0; i < panelData.SavedSlots.Length; i++)
        {
            BaseItemSlot     itemSlot  = panel.ItemSlots[i];
            BaseItemSlotData savedSlot = panelData.SavedSlots[i];

            if (savedSlot.itemID == 0)
            {
                itemSlot.ItemInSlot = null;
            }
            else
            {
                itemSlot.ItemInSlot = GameManager.Instance.ItemDatabase.GetItem(savedSlot.itemID);
                itemSlot.UpdateSlot(itemSlot.ItemInSlot);
                inventory.Items.Add(itemSlot.ItemInSlot);
            }
        }
    }
    public SlotPanelData SavePanel(SlotPanel panel)
    {
        var saveData = new SlotPanelData(panel.ItemSlots.Count);

        for (int i = 0; i < saveData.SavedSlots.Length; i++)
        {
            BaseItemSlot itemSlot = panel.ItemSlots[i];

            if (itemSlot.ItemInSlot == null)
            {
                saveData.SavedSlots[i] = null;
            }
            else
            {
                saveData.SavedSlots[i] = new BaseItemSlotData(itemSlot.ItemInSlot.id);
            }
        }

        return(saveData);
    }
    public void LoadEquipmentPanel(SlotPanel panel, SlotPanelData panelData)
    {
        if (panelData == null)
        {
            return;
        }

        panel.EmptyAllSlots();
        GameManager.Instance.PlayerRef.EquipmentManager.UnequipAll();

        foreach (BaseItemSlotData savedSlot in panelData.SavedSlots)
        {
            if (savedSlot == null)
            {
                continue;
            }

            Item item = GameManager.Instance.ItemDatabase.GetItem(savedSlot.itemID);
            GameManager.Instance.PlayerRef.EquipmentManager.Equip(item as EquipmentItem);
        }

        //Debug.Log($"Equipment Loaded");
    }