Beispiel #1
0
    public static void Deserialize(List <Lump> lumps)
    {
        StashItems.Clear();

        CraftingMaterials = new CraftingCost(0, 0, 0, 0);

        if (lumps.Count > 0)
        {
            if (lumps[0].lumpName == "CRAFTMATS")
            {
                MemoryStream stream = new MemoryStream(lumps[0].data);
                BinaryReader br     = new BinaryReader(stream);

                CraftingMaterials.u = br.ReadInt32();
                CraftingMaterials.a = br.ReadInt32();
                CraftingMaterials.w = br.ReadInt32();
                CraftingMaterials.g = br.ReadInt32();

                br.Close();
                stream.Close();
            }
        }

        for (int i = 1; i < lumps.Count; i++)
        {
            Lump l = lumps[i];

            if (l.lumpName == "null")
            {
                StashItems.Add(null);
            }
            else
            {
                if (!ThingDesignator.Designations.ContainsKey(l.lumpName))
                {
                    Debug.LogError("Stash: Deserialize: designation \"" + l.lumpName + "\" not found in designator");
                    return;
                }

                GameObject         prefab = ThingDesignator.Designations[l.lumpName];
                InventoryGUIObject g      = prefab.GetComponent <InventoryGUIObject>();

                if (g == null)
                {
                    Debug.LogError("Stash: Deserialize: designation \"" + l.lumpName + "\" does not contain <InventoryGUIObject> component");
                    return;
                }

                //g.Deserialize(l.data);
                StashItems.Add(g);
            }
        }

        for (int i = 0; i < ExtraEmptySlots; i++)
        {
            StashItems.Add(null);
        }
    }
Beispiel #2
0
    public void SetCost(CraftingCost cost)
    {
        utilityCost.SetActive(cost.u != 0);
        utilityCostNumber.text = cost.u + " X";

        armorCost.SetActive(cost.a != 0);
        armorCostNumber.text = cost.a + " X";

        weaponCost.SetActive(cost.w != 0);
        weaponCostNumber.text = cost.w + " X";

        goldCost.SetActive(cost.g != 0);
        goldCostNumber.text = cost.g + " X";
    }