Exemplo n.º 1
0
        public virtual void EjectAllOfType(Type type)
        {
            ItemMap.Remove(type);

            _workTracker.EjectAllOfType(type);

            ChangeTrackers.RemoveAll(x => x.Document.GetType().CanBeCastTo(type));
        }
Exemplo n.º 2
0
        public bool RemoveFromAppropriateMap(IDelible mote)
        {
            // remove from whichever map
            if (mote is IAreaRot rot)
            {
                RotMap.Remove(rot);
                return(true);
            }

            if (mote is IBeing being)
            {
                return(BeingMap.Remove(being));
            }

            //1.+:  Make IItems IDestroyable
            if (mote is IItem item)
            {
                return(ItemMap.Remove(item));
            }

            throw new Exception($"Unsure how to destroy a {mote.GetType().Name}.");
        }
Exemplo n.º 3
0
    // Suppress the deprecation warning for _SetId, since the DB is intended to use it
#pragma warning disable 612, 618
    public void UpdateDatabase()
    {
        if (!defaultItem)
        {
            Debug.LogError("Cannot update the database. A default item MUST be assigned.");
            return;
        }

        // Add the default item
        registeredItems.Remove(0);
        defaultItem._SetId(this, 0);
        registeredItems.Add(0, defaultItem);

        // Add new items
        var existingValues = registeredItems.Values;

        foreach (ItemBase newItem in addItems)
        {
            // No double registering
            if (existingValues.Contains(newItem))
            {
                continue;
            }

            newItem._SetId(this, idCounter);
            registeredItems.Add(idCounter, newItem);
            idCounter++;
        }
        addItems.Clear();

        //Remap missing items that have been filled out
        //

        // Remove missing items/ids
        List <uint> missingValues = new List <uint>(10);

        foreach (var pair in registeredItems)
        {
            if (!pair.Value)
            {
                missingValues.Add(pair.Key);
            }
        }
        foreach (uint key in missingValues)
        {
            registeredItems.Remove(key);
        }

        // Add the missing items' ids for remapping
        foreach (uint id in missingValues)
        {
            string name = "Unknown";
            nameMap.TryGetValue(id, out name);

            missingIds.Add(id);
            missingNameMap.Add(id, name);
        }

        // Regenerate name map
        nameMap.Clear();
        foreach (var pair in registeredItems)
        {
            nameMap.Add(pair.Key, pair.Value.GetName());
        }
    }
Exemplo n.º 4
0
        private void ClearContainer(ViewItem container)
        {
            ItemMap.Remove(container.Content);

            container.Content = null;
        }
Exemplo n.º 5
0
 public void UnEquip(InventoryItem inventoryItem)
 {
     items.Remove(inventoryItem);
     OnUnEquip?.Invoke(inventoryItem);
 }