public void GenerateMap() { float[,] noiseMap = Noise.GenerateNoiseMap(mapWidth, mapHeight, seed, noiseScale, octaves, persistance, lacunarity, offset); Color[] colorMap = new Color[mapHeight * mapWidth]; for (int y = 0; y < mapHeight; y++) { for (int x = 0; x < mapWidth; x++) { float currentH = noiseMap[x, y]; for (int i = 0; i < regions.Length; i++) { if (currentH <= regions[i].height) { colorMap[y * mapWidth + x] = regions[i].color; // Convert the noiseMap 2D array to a 1D color array; break; } } } } MapDisplay display = FindObjectOfType <MapDisplay> (); if (drawMode == DrawMode.NoiseMap) { display.DrawnTexture(TexGenerator.TexFromHeightMap(noiseMap)); } else if (drawMode == DrawMode.ColorMap) { display.DrawnTexture(TexGenerator.TexFromColorMap(colorMap, mapWidth, mapHeight)); } }
private void ExerciseButton_Click(object sender, RoutedEventArgs e) { var selectedItems = ExerciseListBox.SelectedItems; var numberItems = selectedItems.Count; if (numberItems != 1 && numberItems != 4 && numberItems != 6 && numberItems != 9) { MessageBox.Show("You must export 1, 4, 6 or 9 images"); return; } var annotiationWindow = new AnnotationWindow(numberItems); var dialogResult = annotiationWindow.ShowDialog(); if (!dialogResult.HasValue || !dialogResult.Value) { MessageBox.Show("Could not parse the annotations"); return; } var header = annotiationWindow.Header; var task = annotiationWindow.Task; var captions = annotiationWindow.Captions; var exportedImages = new List <Bitmap>(); foreach (string selectedItem in selectedItems) { var selectedFend = File.ReadAllText(selectedItem); var gameController = new GameController(selectedFend); var boardController = gameController.BoardController; exportedImages.Add(boardController.GetImage()); } var filenames = new List <string>(); foreach (var exportedImage in exportedImages) { var filename = StorageManager.GetNewPngPath(); exportedImage.Save(filename); filenames.Add(filename); } int texfileNumber; var texPath = StorageManager.GetNewTexPath(out texfileNumber); TexGenerator.GenerateTexFile(texPath, header, task, filenames.ToArray(), captions); var args = @"-output-directory " + StorageManager.Outputdir + " "; var p = Process.Start("pdflatex.exe", args + texPath); p.WaitForExit(); var p2 = Process.Start(StorageManager.Outputdir + texfileNumber + ".pdf"); p2.WaitForExit(); }
public void GenerateMap() { float[,] noiseMap = Noise.GenerateNoiseMap(mapWidth, mapHeight, seed, noiseScale, octaves, persistance, lacunarity, offSet); MapDisplay display = FindObjectOfType <MapDisplay>(); Color[] colorMap = new Color[mapWidth * mapHeight]; for (int y = 0; y < mapHeight; y++) { for (int x = 0; x < mapWidth; x++) { float currentHeight = noiseMap[x, y]; for (int i = 0; i < regions.Length; i++) { if (currentHeight <= regions[i].height) { colorMap[y * mapWidth + x] = regions[i].color; break; } } } } if (drawMode == DrawMode.NoiseMap) { display.DrawTexture(TexGenerator.TextureFromHeightMap(noiseMap)); } else if (drawMode == DrawMode.ColorMap) { display.DrawTexture(TexGenerator.TextureFromColorMap(colorMap, mapWidth, mapHeight)); } else if (drawMode == DrawMode.Mesh) { display.DrawMesh(MeshGenerator.GenerateTerrainMesh(noiseMap, meshHeightMultiplier, meshHeightCurve), TexGenerator.TextureFromColorMap(colorMap, mapWidth, mapHeight)); } }
public void Generate() { FileParser.ParseFiles(directory); DataAnalyzer.AnalyzeData(directory); TexGenerator.Generate(directory); }