public Cluster(ConcreteMap concreteMap, Id <Cluster> id, int clusterX, int clusterY, Position origin, Size size)
{
SubConcreteMap = concreteMap.Slice(origin.X, origin.Y, size.Width, size.Height, concreteMap.Passability);
Id = id;
ClusterY = clusterY;
ClusterX = clusterX;
Origin = origin;
Size = size;
_distances = new Dictionary <Tuple <Id <AbstractNode>, Id <AbstractNode> >, int>();
_cachedPaths = new Dictionary <Tuple <Id <AbstractNode>, Id <AbstractNode> >, List <Id <ConcreteNode> > >();
_distanceCalculated = new Dictionary <Tuple <Id <AbstractNode>, Id <AbstractNode> >, bool>();
EntrancePoints = new List <EntrancePoint>();
}