public void Create() { GameObject star = Instantiate(StarPrefab, this.transform.position, Quaternion.identity); star.transform.SetParent(this.transform); star.GetComponent <Star>().Create(); ecoZone = Star.EcosphereZone(star); PlanetPosition planetPosition = new PlanetPosition(star); planetPosition.GenerateSeed(); List <float> positions = planetPosition.Positions(); float creationChance = (1f / positions.Count) * 3f; foreach (var position in positions) { //if (Random.Range(0f, 1f) < creationChance) //if (Random.Range(0f, 1f) < 0.4f) { float radius = ((SpaceMath.AU * position) / SpaceMath.Unit); Vector3 pos = new Vector3(1, 0, 0).normalized *radius *DistanceMult; GameObject planet = Instantiate(PlanetPrefab, this.transform.position + pos, Quaternion.identity); planet.transform.SetParent(star.transform); Zone planetZone = PlanetPositionZone(position); planet.GetComponent <Planet>().Create(planetZone); } } }
void Start() { if (planetPosition == null) { planetPosition = new PlanetPosition(gameObject); planetPosition.GenerateSeed(); } else { planetPosition.SetParent(gameObject); } if (Data == null) { return; } if (Data.IsEmpty()) { Create(); } else { Visualize(); } EcoZone = Star.EcosphereZone(this); }
public void PlanetOrb() { DateTime dt = location.MainDateTime; foreach (string orbitName in orbitNames) { for (short i = 0; i < 30; ++i) { PlanetPositions(); location.MainDateTime = location.MainDateTime.AddDays(this.SolarSystemObjects.GetObjectByName(orbitName).TrueAnomaly / 27.4); PlanetPosition pp = new PlanetPosition(); pp.X = this.SolarSystemObjects.GetObjectByName(orbitName).Position.X; pp.Y = this.SolarSystemObjects.GetObjectByName(orbitName).Position.Y; pp.Z = this.SolarSystemObjects.GetObjectByName(orbitName).Position.Z; pp.Name = orbitName; Orbits[orbitName, i] = pp; } if (orbitName == "Saturn") { location.MainDateTime = new DateTime(1950, 1, 1, 0, 0, 0); } if (orbitName == "Uranus") { location.MainDateTime = new DateTime(1920, 1, 1, 0, 0, 0); } if (orbitName == "Neptune") { location.MainDateTime = new DateTime(1900, 1, 1, 0, 0, 0); } if (orbitName == "Pluto") { location.MainDateTime = dt; } } }
public void ResetPlanet() { this.SkyPosition = new SkyPosition(); this.Position = new PlanetPosition(); this.SkyPosition.Rectascence = 0; this.SkyPosition.Declination = 0; this.Position.X = 0; this.Position.Y = 0; this.Position.Z = 0; }
public Orbits(params string[] orbitNames) { foreach (string orbitName in orbitNames) { for (int i = 0; i < 30; ++i) { orbits[counter, i] = new PlanetPosition(); orbits[counter, i].Name = orbitName; } ++counter; } }
public PlanetPairAspect(DateTime utc, PlanetId inStar, PlanetId exStar) { utcMoment = utc; Double jul_ut = SweWrapper.ToJulianDay(utc); interiorPos = SweWrapper.PositionOf(jul_ut, inStar, SeFlg.SEFLG_SPEED); exterirorPos = SweWrapper.PositionOf(jul_ut, exStar, SeFlg.SEFLG_SPEED); if (Relation.HasRelation(interiorPos, exterirorPos)) { theRelation = new Relation(interiorPos, exterirorPos); } }
protected override void Start() { base.Start(); StartCoroutine(ChangeDirection()); planetPosition = GetComponent <PlanetPosition>(); angle = planetPosition.angle; movementSpeed = movementSpeed * (1 + Random.Range(-speedRandomness, speedRandomness)); originalDistance = planetPosition.distance; originalSpeed = movementSpeed; }
public void RotateOrbit(int angle_x, int angle_z) { foreach (string orbitName in orbitNames) { for (short i = 0; i < 30; ++i) { PlanetPosition pp = new PlanetPosition(); pp = Orbits[orbitName, i]; pp.Rotate(angle_x, angle_z); copyOrb[orbitName, i] = pp; } } }
public SolarSystemObject() { this.Position = new PlanetPosition(); this.SkyPosition = new SkyPosition(); }