示例#1
0
        void ISaveable.RestoreState(object state)
        {
            var stateDict = (Dictionary <int, DockedItemRecord>)state;

            foreach (var pair in stateDict)
            {
                AddAction(InventoryItem.GetFromID(pair.Value.itemID), pair.Key, pair.Value.number);
            }
        }
示例#2
0
        public bool?Evaluate(string predicate, string[] parameters)
        {
            switch (predicate)
            {
            case "HasInventoryItem":
                return(HasItem(InventoryItem.GetFromID(parameters[0])));
            }

            return(null);
        }
示例#3
0
        void ISaveable.RestoreState(object state)
        {
            var slotStrings = (InventorySlotRecord[])state;

            for (int i = 0; i < inventorySize; i++)
            {
                slots[i].item   = InventoryItem.GetFromID(slotStrings[i].itemID);
                slots[i].number = slotStrings[i].number;
            }
            inventoryUpdated();
        }
示例#4
0
        void ISaveable.RestoreState(object state)
        {
            Debug.Log("ActionStore.RestoreState()");
            var stateDict = (Dictionary <int, DockedItemRecord>)state;

            foreach (var pair in stateDict)
            {
                Debug.Log($"Slot {pair.Key}, {pair.Value.itemID}, Qty={pair.Value.number}");
                AddAction(InventoryItem.GetFromID(pair.Value.itemID), pair.Key, pair.Value.number);
            }
        }
示例#5
0
        void ISaveable.RestoreState(object state)
        {
            var droppedItemsList = (DropRecord[])state;

            foreach (var item in droppedItemsList)
            {
                var     pickupItem = InventoryItem.GetFromID(item.itemID);
                Vector3 position   = item.position.ToVector();
                int     number     = item.number;
                SpawnPickup(pickupItem, position, number);
            }
        }
示例#6
0
        public bool?Evaluate(string predicate, string[] paremeters)
        {
            switch (predicate)
            {
            case "HasInventoryItem":
                return(HasItem(InventoryItem.GetFromID(paremeters[0])));

            case "HasEnoughInventoryItems":
                return(HasEnoughItems(InventoryItem.GetFromID(paremeters[0]), int.Parse(paremeters[1])));
            }

            return(null);
        }
示例#7
0
        void ISaveable.RestoreState(object state)
        {
            var slotStrings = (string[])state;

            for (int i = 0; i < inventorySize; i++)
            {
                slots[i] = InventoryItem.GetFromID(slotStrings[i]);
            }
            if (inventoryUpdated != null)
            {
                inventoryUpdated();
            }
        }
示例#8
0
        void ISaveable.RestoreState(object state)
        {
            equippedItems = new Dictionary <EquipLocation, EquipableItem>();

            var equippedItemsForSerialization = (Dictionary <EquipLocation, string>)state;

            foreach (var pair in equippedItemsForSerialization)
            {
                var item = (EquipableItem)InventoryItem.GetFromID(pair.Value);
                if (item != null)
                {
                    equippedItems[pair.Key] = item;
                }
            }
        }
示例#9
0
        void ISaveable.RestoreState(object state)
        {
            var droppedItemsList = (List <DropRecord>)state;
            int buildIndex       = SceneManager.GetActiveScene().buildIndex;

            otherSceneDroppedItems.Clear();

            foreach (var item in droppedItemsList)
            {
                if (item.sceneBuildIndex != buildIndex)
                {
                    otherSceneDroppedItems.Add(item);
                    continue;
                }
                var     pickupItem = InventoryItem.GetFromID(item.itemID);
                Vector3 position   = item.position.ToVector();
                int     number     = item.number;
                SpawnPickup(pickupItem, position, number);
            }
        }
示例#10
0
        // PRIVATE

        private void Awake()
        {
            slots    = new InventoryItem[inventorySize];
            slots[0] = InventoryItem.GetFromID("71e73607-4bac-4e42-b7d6-5e6f91e92dc4");
            slots[1] = InventoryItem.GetFromID("0aa7c8b8-4796-42aa-89d0-9d100ea67d7b");
        }