public bool GenerateWorldGrid(WorldGridGenerator generator) { Debug.Assert(m_GridModel == null, "World Grid already generated", this); if (AreReferencesAssigned == true && generator != null) { m_GridModel = generator.GenerateWorldGridModel(transform); } return(m_GridModel != null); }
public override WorldGridModel GenerateWorldGridModel(Transform gridRoot) { int nodeCount = m_GridSize * m_GridSize * m_GridSize; Node[] gridNodes = new Node[nodeCount]; for (int i = 0; i < nodeCount; ++i) { Vector3Int nodeCoordinates = WorldGridUtil.ConvertNodeIndexToCoordinates(i, m_GridSize); gridNodes[i] = CreateGridNode(nodeCoordinates, m_GridSize, gridRoot); } NodeWalkable playerStartNode = GetPlayerStartNode(gridNodes, m_GridSize); if (m_ObstacleDensity > 0) { AddObstacles(gridNodes, playerStartNode, m_ObstacleDensity, m_ObstaclePattern, m_MinimumPlayerStartClearance); } WorldGridModel gridModel = new WorldGridModel(gridNodes, m_GridSize, playerStartNode); return(gridModel); }