private static SpatialPartition TakeFromPool(Point position)
        {
            // Create new partition if there's none in the pool.
            if (partitionPool.Count < 1)
            {
                return(CreateNewPartition(position, true));
            }

            // Otherwise, return a partition that's in the pool.
            SpatialPartition partition = partitionPool.Array[partitionPool.Count - 1];

            partitions.Add(partition);
            partitionPool.Remove(partition);
            partition.UpdatePosition(position);
            partition.IsActive = true;
            return(partition);
        }