Beispiel #1
0
        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);
                    });
                }
            });
        }
Beispiel #2
0
    void Start()
    {
        Planet = PlanetGenerator.Generate(Radius, TerrainHeight);
        Mass   = Planet.Mass;

        LoadedChunks = new Dictionary <Chunk, GameObject>();
        ChunkQueue   = new PriorityQueue <Chunk>();

        RegionLoader = LoadRegions();
        StartCoroutine(RegionLoader);
    }
Beispiel #3
0
    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;
    }
Beispiel #4
0
 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();
         }
     }
 }
Beispiel #5
0
    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));
 }