public List <WorldObject> GetObjects(Point position)
        {
            if (FastItems.ContainsKey(position))
            {
                var list = FastItems[position];

                if (list.Count > 0)
                {
                    return(list);
                }
            }

            return(new List <WorldObject>());
        }
        public void Add(WorldObject obj)
        {
            if (FastItems.ContainsKey(obj.Position))
            {
                FastItems[obj.Position].Add(obj);
            }
            else
            {
                FastItems.Add(obj.Position, new List <WorldObject>());
                FastItems[obj.Position].Add(obj);
            }

            if (FastTypes.ContainsKey(obj.GetType()))
            {
                FastTypes[obj.GetType()].Add(obj);
            }
            else
            {
                FastTypes.Add(obj.GetType(), new List <WorldObject>());
                FastTypes[obj.GetType()].Add(obj);
            }
        }
 public void Dispose()
 {
     FastItems.Clear();
     FastTypes.Clear();
 }