Exemple #1
0
    public void RemoveDroppedItem(string Guid)     //NOTE: Make sure to remove from World.ItemList after client callsite
    {
        if (EntitiesRoot.HasNode(Guid))
        {
            DroppedItem      Item       = EntitiesRoot.GetNode(Guid) as DroppedItem;
            Tuple <int, int> ChunkTuple = GetChunkTuple(Item.Translation);
            Chunks[ChunkTuple].Items.Remove(Item);
            if (Chunks[ChunkTuple].Tiles.Count <= 0 && Chunks[ChunkTuple].Items.Count <= 0)
            {
                //If the chunk is empty then remove it
                Chunks.Remove(ChunkTuple);
            }

            Grid.QueueRemoveItem(Item);
            ItemList.Remove(Item);
            Item.QueueFree();
        }
    }