private CollidableBucket CreateBucket(Point coordinate)
        {
            if (_bucketIndex.ContainsKey(coordinate))
            {
                return(_buckets[_bucketIndex[GetBucketCoordinate(coordinate)]]);
            }

            var b = new CollidableBucket(_lastIndex, coordinate);

            _buckets.Add(_lastIndex, b);
            _bucketIndex.Add(coordinate, _lastIndex);
            _lastIndex++;
            return(b);
        }
        /// <summary>
        /// Removes an AABB point from a bucket
        /// </summary>
        /// <param name="point"></param>
        private void RemovePoint(CollidablePoint point)
        {
            CollidableBucket b = GetBucket(point.Coordinates);

            b.RemovePoint(point);
        }
        private CollidableBucket CreateBucket(Vector2i coordinate)
        {
            if (_bucketIndex.ContainsKey(coordinate))
                return _buckets[_bucketIndex[coordinate]];

            var b = new CollidableBucket(_lastIndex, coordinate);
            _buckets.Add(_lastIndex, b);
            _bucketIndex.Add(coordinate, _lastIndex);
            _lastIndex++;
            return b;
        }