Example #1
0
    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);
            }
        }
    }
Example #2
0
 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;
                }
            }
        }
Example #4
0
        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;
        }
Example #5
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;
     }
 }
Example #6
0
        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);
            }
        }
Example #7
0
    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;
         }
     }
 }
Example #9
0
 public SolarSystemObject()
 {
     this.Position    = new PlanetPosition();
     this.SkyPosition = new SkyPosition();
 }