private async Task GenerateTurnsAsync() { await Task.Run(() => { var planetGenerator = new PlanetGenerator(this.PlanetTypes); var planetCounter = 0; var planetsPerTurn = this.PlanetsPerTurn; for (int turnCounter = 0; turnCounter < this.AmountToGenerate; turnCounter++) { var turn = new Turn() { Number = turnCounter + 1 }; foreach (var planet in planetGenerator.Generate(planetsPerTurn)) { turn.Planets.Add(planet); planetCounter++; this.StatisticsContext.AddPlanet(planet); } System.Windows.Application.Current.Dispatcher.Invoke(() => { this.GeneratedTurns.Add(turn); }); } }); }
void Start() { Planet = PlanetGenerator.Generate(Radius, TerrainHeight); Mass = Planet.Mass; LoadedChunks = new Dictionary <Chunk, GameObject>(); ChunkQueue = new PriorityQueue <Chunk>(); RegionLoader = LoadRegions(); StartCoroutine(RegionLoader); }
private void Initialize() { var planetMesh = PlanetGenerator.Generate(resolution); _meshFilter.mesh.Clear(); _meshFilter.mesh = planetMesh; _meshCollider.sharedMesh = planetMesh; Tiles = PlanetGenerator.GetTiles(_meshFilter.sharedMesh); Radius = (_meshFilter.sharedMesh.vertices[0] - transform.position).magnitude; }
public void Generate() { for (int i = 0; i < transform.childCount; i++) { Transform child = transform.GetChild(i); child.position = transform.position; child.rotation = transform.rotation; child.localScale = Vector3.one; if (child.GetComponent <PlanetGenerator> () != null) { PlanetGenerator gen = child.GetComponent <PlanetGenerator> (); gen.Generate(); } } }
public override void OnEnterState() { inputHandler.ResetButtons(); gameController.ResetScore(); planetGenerator.Generate(); player.EnterPlanet(); rocket.SetVelocity(0); float angle = Mathf.PI / 2f; //float angle = Random.Range (0f, 2f * Mathf.PI); player.SetAngle(angle); rocket.SetAngle(angle); int firstPlanetID = Random.Range(0, planetGenerator.GetPlanets().Count - 1); GameObject firstPlanet = planetGenerator.GetPlanets()[firstPlanetID].gameObject; player.SetPlanet(firstPlanet); rocket.SetPlanet(firstPlanet); firstPlanet.GetComponent <Planet> ().AddEntity(rocket); timeController.StartTimer(); fsm.EnterState(planetState); }
private Planet GenerateCenter(SingleObjectSystem parent, int position) { return(_planetGenerator.Generate(parent, position)); }