예제 #1
0
    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);
    }
예제 #2
0
    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;
    }
예제 #3
0
    private CellularAutomata(ECAVariant Variant)
    {
        m_Variant = Variant;

        m_InitialBlockChance      = 40;
        m_MutationBlockThreshhold = 4;

        m_MutationCount = 0;

        m_NodeList = new Dictionary <GridPosition, MazeNode>();
    }