public static Dictionary <GridPosition, MazeNode> Create(ECAVariant Variant, GridPosition Origin, int Width, int Height) { CellularAutomata Generator = new CellularAutomata(Variant, Origin, Width, Height); Generator.BuildMaze(); return(Generator.m_NodeList); }
private CellularAutomata(ECAVariant Variant, GridPosition Origin, int Width, int Height) : this(Variant) { int WidthOffset = Mathf.FloorToInt(Width / 2); m_LeftEdge = Origin.x - WidthOffset; m_RightEdge = Origin.x + WidthOffset; int HeightOffset = Mathf.FloorToInt(Height / 2); m_TopEdge = Origin.y + HeightOffset; m_BottomEdge = Origin.y - HeightOffset; }
private CellularAutomata(ECAVariant Variant) { m_Variant = Variant; m_InitialBlockChance = 40; m_MutationBlockThreshhold = 4; m_MutationCount = 0; m_NodeList = new Dictionary <GridPosition, MazeNode>(); }