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(); } }