public bool ChangeTerrainTall(Vector2Int position, TerrainTall tall) { TerrainCell cell = getCell(position); cell.Tall = tall; return(true); }
private void terrainViewFeatureOfPosition(Vector2Int position, out TerrainViewFeature terrainViewFeature, out TerrainTallFeature terrainTallFeature) { int x = position.x; int y = position.y; terrainViewFeature = new TerrainViewFeature(false, false, false, false, false, false, false, false, false); terrainTallFeature = new TerrainTallFeature(0, false, false, false, false); bool waterCenter = island.TerrainTypeOfCell(position) == TerrainType.Water; if (waterCenter) { bool waterFront = island.TerrainTypeOfCell(new Vector2Int(x, y - 1)) == TerrainType.Water; bool waterLeft = island.TerrainTypeOfCell(new Vector2Int(x - 1, y)) == TerrainType.Water; bool waterBack = island.TerrainTypeOfCell(new Vector2Int(x, y + 1)) == TerrainType.Water; bool waterRight = island.TerrainTypeOfCell(new Vector2Int(x + 1, y)) == TerrainType.Water; bool waterFrontLeft = island.TerrainTypeOfCell(new Vector2Int(x - 1, y - 1)) == TerrainType.Water; bool waterBackLeft = island.TerrainTypeOfCell(new Vector2Int(x - 1, y + 1)) == TerrainType.Water; bool waterBackRight = island.TerrainTypeOfCell(new Vector2Int(x + 1, y + 1)) == TerrainType.Water; bool waterFrontRight = island.TerrainTypeOfCell(new Vector2Int(x + 1, y - 1)) == TerrainType.Water; terrainViewFeature.WaterCenter = waterCenter; terrainViewFeature.WaterF = waterFront; terrainViewFeature.WaterL = waterLeft; terrainViewFeature.WaterB = waterBack; terrainViewFeature.WaterR = waterRight; terrainViewFeature.WaterFL = waterFront && waterLeft && waterFrontLeft; terrainViewFeature.WaterBL = waterBack && waterLeft && waterBackLeft; terrainViewFeature.WaterBR = waterBack && waterRight && waterBackRight; terrainViewFeature.WaterFR = waterFront && waterRight && waterFrontRight; } TerrainTall tall = island.TerrainTallOfCell(position); bool tallFront = island.TerrainTallOfCell(new Vector2Int(x, y - 1)) < tall; bool tallLeft = island.TerrainTallOfCell(new Vector2Int(x - 1, y)) < tall; bool tallBack = island.TerrainTallOfCell(new Vector2Int(x, y + 1)) < tall; bool tallRight = island.TerrainTallOfCell(new Vector2Int(x + 1, y)) < tall; terrainTallFeature.Front = tallFront; terrainTallFeature.Left = tallLeft; terrainTallFeature.Back = tallBack; terrainTallFeature.Right = tallRight; terrainTallFeature.Tall = (int)tall; return; }
private void createTerrainTall(Vector2Int position) { TerrainTall terrainTall = island.TerrainTallOfCell(position); if (terrainTall == TerrainTall.Floor) { terrainTall = TerrainTall.Second; } else if (terrainTall == TerrainTall.Second) { terrainTall = TerrainTall.Floor; } bool result = island.ChangeTerrainTall(position, terrainTall); if (result) { TerrainViewFeature terrainViewFeature; TerrainTallFeature terrainTallFeature; terrainViewFeatureOfPosition(position, out terrainViewFeature, out terrainTallFeature); islandView.SetTerrainFeature(position, terrainViewFeature, terrainTallFeature); } }
public TerrainCell(int x, int y) { cellPosition = new Vector2Int(x, y); tall = TerrainTall.Floor; type = TerrainType.Earth; }