public void NewGameState(string gameStateString) { // Convert the string to our DTO format. GameStateDTO gameState = ConvertJSONtoDTO(gameStateString); // Check if this is the first game-state event received. If so, set // up the terrain and don't do it ever again. if (gameStateEventCount == 1) { TerrainGenerator terrainGenerator = new TerrainGenerator(); int width = terrainGenerator.CalculateWidthFromGameState(gameState); int height = terrainGenerator.CalculateHeightFromGameState(gameState); TerrainDTO terrainDTO = new TerrainDTO(width, height); terrainGenerator.GenerateTerrainMMO(terrainDTO); OverlayGenerator overlayGenerator = new OverlayGenerator(terrainFolder: terrainGenerator.terrainFolder); overlayGenerator.GenerateGridForTerrain(terrainDTO); // Generate the obstacles only on initial game creation. Don't duplicate. ObstacleDTO[] obstacles = gameState.obstacles; obstacleManager.UpdateFeatures(obstacles); } RenderGameState(gameState); gameStateEventCount++; }
private void DisplayTerrainSizeInputs() { EditorGUILayout.BeginHorizontal(); EditorGUI.BeginChangeCheck(); terrainSize = EditorGUILayout.Vector2IntField("Size", terrainSize); if (EditorGUI.EndChangeCheck()) { TerrainDTO terrainDTO = new TerrainDTO(terrainSize.x, terrainSize.y); terrainGenerator.GenerateTerrain(terrainDTO); overlayGenerator.GenerateGridForTerrain(terrainDTO); } EditorGUILayout.EndHorizontal(); }
public void TestGridGeneratedByDTO() { SetUpMainScene(); TerrainDTO terrainDTO = new TerrainDTO(81, 2); GameObject terrainFolder = new GameObject(); OverlayGenerator overlayGenerator = new OverlayGenerator(terrainFolder: terrainFolder); GameObject generatedGrid = overlayGenerator.GenerateGridForTerrain(terrainDTO); Assert.AreEqual(generatedGrid.transform.parent, terrainFolder.transform); Assert.AreEqual(generatedGrid.transform.name, "overlay_grid(Clone)"); Assert.AreEqual(generatedGrid.transform.transform.localPosition.x, 0); Assert.AreEqual(generatedGrid.transform.transform.localPosition.y, 0.01f); Assert.AreEqual(generatedGrid.transform.transform.localPosition.z, 0); Assert.AreEqual( generatedGrid.GetComponent <Renderer>().sharedMaterial.mainTextureScale, new Vector2(81, 2) ); }
private void CreateGrid() { OverlayGenerator overlayGenerator = new OverlayGenerator(terrainFolder: terrainFolder); overlayGenerator.GenerateGridForTerrain(DEFAULT_TERRAIN); }