public string MouseOver(int x, int y) { int row, col; PointToHex(x, y, parameters.HexHeight, out row, out col); var hex = collection.Get(row, col); if (hex != null) { var coordinate = String.Format("[{0},{1}]:", col, row).PadRight(10); var terrainEnum = hex.Terrain.TerrainEnum.ToString().PadRight(15); var polar_temp_tropical = String.Format("{0},{1},{2}", TerrainAdjacentcy.Polarness(row, parameters.MaxRows), TerrainAdjacentcy.Temperateness(row, parameters.MaxRows), TerrainAdjacentcy.Tropicalness(row, parameters.MaxRows)); return(string.Format("{0} {1} - {2} *** {3}", coordinate, terrainEnum, hex.Elevation, polar_temp_tropical)); } else { return("---"); } }
private static void FillAllRecursive(RecursiveFillCommand command, int maxRow) { var blankAdjacent = command.collection.GetBlankAdjacent(command.hex).OrderBy(x => Guid.NewGuid()); foreach (var blank in blankAdjacent) { Console.WriteLine("FOUND"); var nonBlankAdjacent = command.collection.GetNonBlankAdjacent(blank); if (nonBlankAdjacent.Count == 0) { throw new InvalidOperationException("No Non-Blank Adjacent."); } int averageAltitude = (int)nonBlankAdjacent.Select(h => h.Elevation).Average(); var newaltitude = ElevationTable.Get() + averageAltitude; blank.Elevation = newaltitude; if (newaltitude < command.collection.MinElevation) { command.collection.MinElevation = newaltitude; } else if (newaltitude > command.collection.MaxElevation) { command.collection.MaxElevation = newaltitude; } var elevationAdjusted = TerrainAdjacentcy.ApplyAltitudeAdjustment(TerrainController.DefaultTerrains, blank.Elevation); var latitudeAdjusted = TerrainAdjacentcy.ApplyLatitudeAdjustment(elevationAdjusted, blank.Row, maxRow); var finalTable = new RandomTable <TerrainEnum>(latitudeAdjusted); blank.Terrain = Terrain.EnumMap[finalTable.Get()]; stack.Push(new RecursiveFillCommand() { collection = command.collection, hex = blank }); } }