public void TestIslandGenerator() { initializeTW(); var generator = new IslandGenerator(); int seed = 1; var startShapes = generator.GetIslandBase(seed); var islandMesh = generator.GetIslandMesh(startShapes, seed); deferredRenderer.CreateMeshElement(islandMesh); engine.AddSimulator(new WorldRenderingSimulator()); }
public void TestIslandBuildArea() { const int seed = 1; var generator = new IslandGenerator(); var startShapes = generator.GetIslandBase(seed); IMesh islandMesh; List <IBuildingElement> navMesh; List <IBuildingElement> buildMesh; List <IBuildingElement> borderMesh; generator.GetIslandParts(startShapes, seed, false, out islandMesh, out navMesh, out buildMesh, out borderMesh); //buildMesh = buildMesh.Where(e => ((Face)e).GetBoundingBox().Maximum.Y < 1f).ToList(); var spaceManager = new IslandSpaceAllocator { BuildAreaMeshes = buildMesh }; var nbBoxes = 10; var rnd = new Random(0); var placedBoxes = generateBuildPlots(rnd, spaceManager, nbBoxes, 1f, 10f); DX11Game game = TW.Graphics; var infoDisplay = new Textarea(); infoDisplay.Size = new Vector2(500, 50); game.GameLoopEvent += delegate { if (game.Keyboard.IsKeyPressed(Key.F)) { spaceManager.ClearBuildingSpotReservations(); placedBoxes = generateBuildPlots(rnd, spaceManager, nbBoxes, 1f, 10f); } foreach (var el in buildMesh) { TW.Graphics.LineManager3D.AddBox(el.GetBoundingBox(), new Color4(1, 1, 1)); } foreach (var box in placedBoxes) { TW.Graphics.LineManager3D.AddBox(box, new Color4(1, 0, 0)); } infoDisplay.Text = "Press F to regenerate"; }; }
public void TestIslandParts() { var seed = 1; #region init hideAxes = true; initializeTW(); throw new NotImplementedException(); TWRenderWrapper renderer = null;// = new TWRenderWrapper(deferredRenderer, game); renderer.DrawFaceUnitAxes = false; rnd.Reset(seed); #endregion init var generator = new IslandGenerator(); var startShapes = generator.GetIslandBase(seed); IMesh islandMesh; List <IBuildingElement> navMesh; List <IBuildingElement> buildMesh; List <IBuildingElement> borderMesh; generator.GetIslandParts(startShapes, seed, true, out islandMesh, out navMesh, out buildMesh, out borderMesh); var allFaces = navMesh.Select(element => ((Face)element).ExtraTransform(Matrix.Translation(0, 0, 0.25f), "nav")).ToList(); allFaces.AddRange(buildMesh.Select(element => ((Face)element).ExtraTransform(Matrix.Translation(0, 0, 4), "build"))); allFaces.AddRange(borderMesh.Select(element => ((Face)element).ExtraTransform(Matrix.Translation(0, 0, 8), "border"))); var builder = new Builder(renderer); builder.Build(allFaces, new RuleBase(), seed); deferredRenderer.CreateMeshElement(islandMesh); game.GameLoopEvent += delegate { if (game.Keyboard.IsKeyPressed(Key.L)) { extraLight.LightPosition = camera.GetCameraPosition(); } renderer.Update(); update(); cameraLight.LightPosition = new Vector3(10, 15, 5); }; game.Run(); }