//Returns a random terrain obstacles based on biome; GameObject GetTerrainObstacles(TileData.Triangle.Biome biome) { if (biome == TileData.Triangle.Biome.Desert) { return(desertObject[UnityEngine.Random.Range(0, desertObject.Count)]); } else if (biome == TileData.Triangle.Biome.Forest) { return(forestObject[UnityEngine.Random.Range(0, forestObject.Count)]); } else if (biome == TileData.Triangle.Biome.Plains) { return(plainsObject[UnityEngine.Random.Range(0, plainsObject.Count)]); } else { return(waterObject[UnityEngine.Random.Range(0, waterObject.Count)]); } }
//Gets material based on biome Material GetMaterial(TileData.Triangle.Biome biome) { if (biome == TileData.Triangle.Biome.Desert) { return(desertMaterial); } else if (biome == TileData.Triangle.Biome.Forest) { return(forestMaterial); } else if (biome == TileData.Triangle.Biome.Plains) { return(plainsMaterial); } else { return(waterMaterial); } }
private List <Node> FindNeighbouringNodes(Node node) { List <Node> neighbouringNodes = new List <Node>(); if (node.Orientation == Node.NodeOrientation.Vertical) { for (int x = 0; x < 2; x++) { for (int z = 0; z < 2; z++) { if (node.z - z < 0 || node.z - z > horizontalNodes.GetLength(1) - 1) { continue; } var horizontalNode = horizontalNodes[node.x + x, node.z - z]; TileData.Triangle.Biome biome = TileData.Triangle.Biome.Null; if (z == 0) { biome = horizontalNode.NeighbouringTiles[0].GetBiome(180); } else if (z == 1) { biome = horizontalNode.NeighbouringTiles[1].GetBiome(0); } if (biome != node.biome) { continue; } if (horizontalNode.biome != TileData.Triangle.Biome.Null) { //success! neighbouringNodes.Add(horizontalNode); } else { //abort openNodes.Remove(horizontalNode); openNodes.Remove(node); closedNodes.Add(horizontalNode); closedNodes.Add(node); return(null); } } } } else { for (int x = 0; x < 2; x++) { for (int z = 0; z < 2; z++) { if (node.x - x < 0 || node.x - x > verticalNodes.GetLength(0) - 1) { continue; } var verticalNode = verticalNodes[node.x - x, node.z + z]; TileData.Triangle.Biome biome = TileData.Triangle.Biome.Null; if (x == 0) { biome = verticalNode.NeighbouringTiles[0].GetBiome(90); } else if (x == 1) { biome = verticalNode.NeighbouringTiles[1].GetBiome(270); } if (biome != node.biome) { continue; } if (verticalNode.biome != TileData.Triangle.Biome.Null) { //success! neighbouringNodes.Add(verticalNode); } else { //abort openNodes.Remove(verticalNode); openNodes.Remove(node); closedNodes.Add(verticalNode); closedNodes.Add(node); return(null); } } } } return(neighbouringNodes); }