public void Update() { if (Input.GetKeyDown(KeyCode.Space)) { int?seedToUse = useSeed ? (int?)seed : null; GalaxyGeneration galGen = new GalaxyGeneration(galaxyRenderer.material, seed: seedToUse, galaxySize: galaxyResolution, starCount: numberOfStars, numberOfArms: numberOfArms, rotationFactor: swirlAmount, colorGradient: starColorGradient); galGen.Generate(); } }
public void GenerateGalaxy(GameData gameData) { //string _seedS = .ToString (); //inputField.text = _seedS; // ssg.GenereateSystemFromStringSeed (_seedS); //Random.InitState (Random.Range (0, 1000)); seed = gameData.seed; galaxyType = gameData.galaxyType; Random.InitState(seed); //Random.InitState (17); //Random.InitState (677); //int numberOfSystems = 250; //starSystem = new StarSystem[numberOfSystems]; //systemSeed = new int[numberOfSystems]; systemPoint = new SystemPointNode[gameData.numberOfSystems]; for (int i = 0; i < gameData.numberOfSystems; i++) { //starSystem [i] = new StarSystem ( Random.Range (0, 99999)); //starSystem [i].seed = Random.Range (0, 99999); systemPoint[i] = new SystemPointNode(); systemPoint [i].numberOfJumpsAway = 0; } GalaxyGeneration.CreateGalaxy(out starSystem, gameData.numberOfSystems).transform.parent = transform; if (gameData.savedGame) { for (int i = 0; i < gameData.numberOfSystems; i++) { for (int j = 0; j < starSystem [i].anomaliEventCompleted.Length; j++) { starSystem [i].anomaliEventCompleted [j] = gameData.anomaliCompleted [i, j]; } } } float diskRadius = 250; float holeRadius = 150; if (gameData.numberOfSystems == 50) { diskRadius = 100; holeRadius = 25; } else if (gameData.numberOfSystems == 125) { diskRadius = 200; holeRadius = 75; } else if (gameData.numberOfSystems == 250) { diskRadius = 250; holeRadius = 150; } else if (gameData.numberOfSystems == 500) { diskRadius = 400; holeRadius = 200; } foreach (Transform child in transform.GetChild(0).transform) { switch (galaxyType) { case GalaxyType.Elliptical: child.position = SetSystemPointPosition(diskRadius); break; case GalaxyType.ring: child.position = SetDonutSystemPointPosition(Vector3.zero, diskRadius, holeRadius); break; case GalaxyType.spiral: break; // // default: // child.position = SetDonutSystemPointPosition (Vector3.zero, 250, 150); // break; } } for (int s = 0; s < systemPoint.Length; s++) { systemPoint [s].SetPosition(transform.GetChild(0).GetChild(s).position); } systemPoint [0].SetConectedToZero(true); // for (int s = 0; s < systemPoint.Length; s++) { // // FindConnections (s); // // } for (int s = 0; s < systemPoint.Length; s++) { //if (systemPoint [s].conectedToZero) { FindSecondaryConnections(); //} } // for (int s = 0; s < systemPoint.Length; s++) { // //if (systemPoint [s].conectedToZero) { // FindThirdConnections (s); // //} // } for (int s = 0; s < systemPoint.Length; s++) { ConnectSystems(s).transform.parent = transform.GetChild(0).GetChild(s); } GenerateSystem(starSystem [gameData.startingSystem], true); currentSystem = gameData.startingSystem; transform.GetChild(0).gameObject.SetActive(false); //currentSystemObject.transform.parent = transform.GetChild (0); //currentSystemObject.transform.position = systemPoint [gameData.startingSystem].position; }