void Start()
    {
        orbit = GetComponent<Orbital>();
        orbit.enabled = false;
        g = player.GetComponent<Gravity>();
        g.enabled = true;
        timer = tm;

        audio = gameObject.GetComponentInParent<AudioPlayer>();
    }
        public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
        {
            if (values[0] == null || values[1] == null)
            {
                return(0);
            }

            Orbital origin      = values[0] as Orbital;
            Orbital destination = values[1] as Orbital;

            double distance = Math.Abs(origin.Distance - destination.Distance);

            return(distance);
        }
Ejemplo n.º 3
0
    public void Generate()
    {
        Orbital myStar = new Orbital();

        myStar.GraphicID = 0;
        this.AddChild(myStar);


        Orbital planet = new Orbital();

        planet.MakeEarth();
        planet.GraphicID = 1;
        myStar.AddChild(planet);
    }
Ejemplo n.º 4
0
    void SetupOrbitalGraphics(Transform transformParent, Orbital o)
    {
        GameObject go = null;

        switch (o.OrbitalObjectType)
        {
        case Orbital.ObjectTypes.Sun:
            go      = (GameObject)Instantiate(SunGameObjects[o.GraphicID]);
            go.name = "Sun";
            break;

        case Orbital.ObjectTypes.Planet:
            go      = (GameObject)Instantiate(PlanetGameObjects[o.GraphicID]);
            go.name = "Planet";
            break;

        case Orbital.ObjectTypes.Moon:
            go      = (GameObject)Instantiate(MoonGameObjects[o.GraphicID]);
            go.name = "Moon";
            break;

        case Orbital.ObjectTypes.Asteroid:
            go      = (GameObject)Instantiate(AsteroidGameObjects[o.GraphicID]);
            go.name = "Asteroid";
            float   rand    = Random.Range(0.5f, 2f);
            Vector3 randVec = new Vector3(Random.Range(-180, 180), Random.Range(-180, 180), Random.Range(-180, 180));
            go.transform.localScale    = new Vector3(rand, rand, rand);
            go.transform.localRotation = Quaternion.Euler(randVec);
            break;

        case Orbital.ObjectTypes.AsteroidBelt:
            go = new GameObject();
            SetUpAsteroidGraphics((AsteroidBelt)o, go);
            break;

        default:
            Debug.LogError("Orbital type is invalid! " + o.OrbitalObjectType);
            go.name = "ERROR";
            break;
        }

        orbitalGameObjectMap[o] = go;
        go.transform.SetParent(transformParent);
        go.transform.position = o.Position / ZoomLevel;

        for (int i = 0; i < o.Children.Count; i++)
        {
            SetupOrbitalGraphics(go.transform, o.Children[i]);
        }
    }
Ejemplo n.º 5
0
        public IEnumerator TestSolverSwap()
        {
            // Reset view to origin
            MixedRealityPlayspace.PerformTransformation(p =>
            {
                p.position = Vector3.zero;
                p.LookAt(Vector3.forward);
            });

            // Instantiate and setup RadialView to place object in the view center.
            var        testObjects      = InstantiateTestSolver <RadialView>();
            RadialView radialViewSolver = (RadialView)testObjects.solver;

            radialViewSolver.MinDistance    = 2.0f;
            radialViewSolver.MaxDistance    = 2.0f;
            radialViewSolver.MinViewDegrees = 0.0f;
            radialViewSolver.MaxViewDegrees = 0.0f;

            // Let RadialView update the target object
            yield return(WaitForFrames(2));

            // Make sure Radial View is placing object in center of View, so we can later check that a solver swap actually moved the target object.
            TestUtilities.AssertAboutEqual(testObjects.target.transform.position, Vector3.forward * 2.0f, "RadialView does not place object in center of view");

            // Disable the old solver
            radialViewSolver.enabled = false;

            // Add a another solver during runtime, give him a specific location to check whether the new solver updates the target object.
            Orbital orbitalSolver = AddSolverComponent <Orbital>(testObjects.target);

            orbitalSolver.WorldOffset = Vector3.zero;
            orbitalSolver.LocalOffset = Vector3.down * 2.0f;

            // Let Orbital update the target object
            yield return(WaitForFrames(2));

            // Make sure Orbital is now updating the target object
            TestUtilities.AssertAboutEqual(testObjects.target.transform.position, Vector3.down * 2.0f, "Orbital solver did not place object below origin");

            // Swap solvers once again during runtime
            radialViewSolver.enabled = true;
            orbitalSolver.enabled    = false;

            // Let RadialView update the target object
            yield return(WaitForFrames(2));

            // Make sure Radial View is now updating the target object once again.
            TestUtilities.AssertAboutEqual(testObjects.target.transform.position, Vector3.forward * 2.0f, "RadialView solver did not place object in center of view");
        }
Ejemplo n.º 6
0
    public void Generate()
    {
        //  Single start single planet
        Orbital myStar = new Orbital();

        myStar.GraphicID = 0;
        this.AddChild(myStar);

        for (int i = 0; i < 8; i++)
        {
            Planet planet = new Planet();
            planet.Generate(3);
            myStar.AddChild(planet);
        }
    }
Ejemplo n.º 7
0
 public void Setup()
 {
     // Using Earth - Moon Orbit for sanity reasons.
     sut = new Orbital
     {
         ParentMass          = 5.97237e24,
         BodyMass            = 7.342e22,
         SemiMajorAxis       = 384399000,
         Eccentricity        = 0.0549,
         Inclination         = Orbital.DegreeToRadian(5.145),
         AscendingNode       = 0,
         ArgumentOfPeriapsis = 0,
         TrueAnomaly         = 0
     };
 }
Ejemplo n.º 8
0
    // Start is called before the first frame update
    void Start()
    {
        parent    = GetComponentInParent <Orbital>();
        rigidbody = GetComponent <Rigidbody>();

        Nucleus nucleus = Nucleus.GetComponent <Nucleus>();

        attractors = nucleus.Protons;

        initialForce = parent.type == OrbitalType.HIGH ? HIGH_FORCE : LOW_FORCE;

        Vector3 dir   = (nucleus.transform.position - transform.position).normalized;
        Vector3 force = Vector3.Cross(dir, Vector3.up).normalized;

        rigidbody.AddForce(force * initialForce);
    }
Ejemplo n.º 9
0
        private void MakeSpritesForOrbital(Transform transformParent, Orbital orbital)
        {
            var go = new GameObject();

            orbitalGameObjectMap[orbital] = go;
            go.transform.SetParent(transformParent);

            // Set our position.
            go.transform.position = orbital.Position / zoomLevels;
            //go.transform.position = orbital.Position(gameController.DaysPastSinceStart, zoomLevels);

            var sr = go.AddComponent <SpriteRenderer>();

            sr.drawMode = SpriteDrawMode.Sliced;

            switch (orbital.Type)
            {
            case Orbital.OrbitalType.Star:
                sr.name   = "Star";
                sr.sprite = Stars[orbital.GraphicID];
                //sr.size = new Vector2(15, 15);
                break;

            case Orbital.OrbitalType.Planet:
                sr.name   = "Planet";
                sr.sprite = Planets[orbital.GraphicID];
                //sr.size = new Vector2(5, 5);
                break;

            case Orbital.OrbitalType.Moon:
                sr.name   = "Moon";
                sr.sprite = Moons[orbital.GraphicID];
                //sr.size = new Vector2(2, 2);
                break;

            case Orbital.OrbitalType.Moonmoon:
                throw new ArgumentOutOfRangeException("Orbital doesn't have a sprite yet");

            default:
                throw new ArgumentOutOfRangeException("Orbital doesn't have a OrbitalType");
            }

            for (var i = 0; i <= orbital.Orbitals.Count - 1; i++)
            {
                MakeSpritesForOrbital(go.transform, orbital.Orbitals[i]);
            }
        }
Ejemplo n.º 10
0
    public void Generate(int maxMoons)
    {
        OrbitalDistance = (ulong)Random.Range(50, 800) * 1000000 * 1000;
        TimeToOrbit     = this.OrbitTimeForDistance(OrbitalDistance);     // TODO Fix with real physics!
        GraphicID       = Random.Range(1, 14);

        int m = Random.Range(0, maxMoons + 1);

        for (int i = 0; i < m; i++)
        {
            Orbital moon = new Orbital();
            this.AddChild(moon);
            moon.OrbitalDistance = (ulong)Random.Range(2, 5) * 10000000000;              // TODO Fix makes no sense
            moon.TimeToOrbit     = moon.OrbitTimeForDistance(moon.OrbitalDistance);      // TODO Fix with real physics.
            moon.GraphicID       = 15;
        }
    }
Ejemplo n.º 11
0
    void MakeSpriteForOrbital(Transform transformParent, Orbital orbital)
    {
        GameObject go = new GameObject();

        go.transform.SetParent(transformParent);

        go.transform.position = orbital.Position / zoomLevel;

        SpriteRenderer sr = go.AddComponent <SpriteRenderer>();

        sr.sprite = sprites[orbital.graphicID];

        for (int i = 0; i < orbital.childrens.Count; i++)
        {
            MakeSpriteForOrbital(go.transform, orbital.childrens[i]);
        }
    }
Ejemplo n.º 12
0
        private static void Start()
        {
            try
            {
                Util.Debug("Hello, world.");

                Arcing.Initialise();
                Curving.Initialise();
                Homing.Initialise();
                Momentum.Initialise();
                Orbital.Initialise();
                Straight.Initialise();
            }
            catch (Exception ex)
            {
                DisplayTextToPlayer(GetLocalPlayer(), 0, 0, ex.Message);
            }
        }
Ejemplo n.º 13
0
        private void UpdateSprites(Orbital orbital)
        {
            if (solarSystem.Orbitals.Count > 0)
            {
                var go = orbitalGameObjectMap[orbital];
                go.transform.position = orbital.Position / zoomLevels;
                //go.transform.position = orbital.Position(gameController.DaysPastSinceStart, zoomLevels);
                //go.name = orbital.OrbitalOffsetAngle.ToString(CultureInfo.InvariantCulture);

                for (var i = 0; i <= orbital.Orbitals.Count - 1; i++)
                {
                    UpdateSprites(orbital.Orbitals[i]);
                }
            }
            else
            {
                Debug.Log("orbital has no children");
            }
        }
Ejemplo n.º 14
0
    void MakeSpritesForOrbital(Transform transformParent, Orbital o)
    {
        GameObject go = new GameObject();

        go.transform.SetParent(transformParent);

        //set position
        go.transform.position = o.Position / zoomLevels;


        SpriteRenderer sr = go.AddComponent <SpriteRenderer> ();

        sr.sprite = Sprites [o.GraphicID];

        for (int i = 0; i < o.Children.Count; i++)
        {
            MakeSpritesForOrbital(go.transform, o.Children [i]);
        }
    }
Ejemplo n.º 15
0
 public Program()
 {
     // The constructor, called only once every session and
     // always before any other method is called. Use it to
     // initialize your script.
     //
     // The constructor is optional and can be removed if not
     // needed.
     orbitalComputer = new Orbital(this);
     ArgumentParser(Me.CustomData);
     if (Storage.Length > 0)
     {
         ArgumentParser(Storage);
     }
     shipStatusLCD    = new WriteLCD(this, shipStatusLCDName);
     orbitalStatusLCD = new WriteLCD(this, orbitalStatusLCDName);
     GridTerminalSystem.GetBlocksOfType(outRadios, b => b.CubeGrid == Me.CubeGrid);
     ZoneConstruction();
     StartTimer(timers);
 }
Ejemplo n.º 16
0
    public void Generate(int maxMoons)
    {
        //Randomize our values
        OrbitalDistance = (ulong)Random.Range(100, 1000) * 1000000 * 1000; // 5-1000, million, KM
        TimeToOrbit     = OrbitTimeForDist(5.972f * Mathf.Pow(10, 24));

        OrbitalObjectType = ObjectTypes.Planet;
        DecideGraphic();

        int m = Random.Range(0, maxMoons + 1);

        for (int i = 0; i < m; i++)
        {
            Orbital mun = new Orbital();
            mun.OrbitalObjectType = ObjectTypes.Moon;
            this.AddChild(mun);
            ulong dist = (ulong)Random.Range(500, 1000) * 1000000 * 10; //7500000000
            mun.OrbitalDistance = dist;
            mun.TimeToOrbit     = mun.OrbitTimeForDist(7.348f * Mathf.Pow(10, 22));
        }
    }
Ejemplo n.º 17
0
        public static double[] U; // rV, potential muliplied by radius



        private void button1_Click(object sender, EventArgs e)
        {
            //radDirac
            //Orbital O = new Orbital();

            R = new double[R_NUM];
            for (int i = 0; i <= R_FAR; i++)
            {
                R[i] = (1.0 / Z) * Math.Exp(DX * (i - R_O));
            }

            U = new double[R_NUM];
            for (int i = 0; i <= R_FAR; i++)
            {
                U[i] = -Z;                      // Coulomb potential of nuclear
            }

            Orbital O = new Orbital(); //R, Uの設定の前に置くとR, UがNullでエラー

            for (int n = 1; n <= 3; n++)
            {
                for (int l = 0; l <= n - 1; l++)
                {
                    for (double j = l - 0.5; j <= l + 0.5; j += 1.0)
                    {
                        if (j < 0.0)
                        {
                            continue;
                        }

                        O.Assign(n, l, j);
                        O.Adjust();
                        //O.Output();
                    }
                }
            }

            Console.WriteLine("End");
        }
Ejemplo n.º 18
0
 public InfoInteraction(Orbital obj, int seed) : base(obj)
 {
     rand = new System.Random(seed);
 }
Ejemplo n.º 19
0
 public void DegreesToRadianConversion()
 {
     Assert.That(Orbital.DegreeToRadian(180), Is.EqualTo(Math.PI));
 }
Ejemplo n.º 20
0
 public void AddChild(Orbital c)
 {
     c.Parent = this;
     Children.Add(c);
 }
Ejemplo n.º 21
0
 public void AddChild(Orbital a)
 {
     a.Parent = this;
     Children.Add(a);
 }
Ejemplo n.º 22
0
 public void RemoveChild(Orbital a)
 {
     a.Parent = null;
     Children.Remove(a);
 }
Ejemplo n.º 23
0
 private void Start()
 {
     // Get Orbital Solver component
     orbital = GetComponent <Orbital>();
 }
Ejemplo n.º 24
0
 public static UnitValue CalculateOrbitalEnergy(AtomWithOrbitals atom, Orbital orbital)
 {
     return(-(1.0 / (OrbitalComparer.CalculateOrbitalOrder(orbital) + 1)).To(Unit.ElectronVolts));
 }
Ejemplo n.º 25
0
 public static UnitValue Calculate(AtomWithOrbitals atom1, Orbital orbital1, AtomWithOrbitals atom2, Orbital orbital2)
 {
     return(-5.To(Unit.ElectronVolts));
 }
Ejemplo n.º 26
0
 public OrbitalData(Orbital orbital)
 {
     Orbital  = orbital;
     Velocity = orbital.Velocity;
     Position = orbital.transform.position;
 }
Ejemplo n.º 27
0
 public void RemoveChild(Orbital c)
 {
     c.Parent = null;
     Children.Remove(c);
 }
Ejemplo n.º 28
0
 public void AddChild(Orbital orbital)
 {
     orbital.parent = this;
     childrens.Add(orbital);
 }
Ejemplo n.º 29
0
 public void RemoveChild(Orbital orbital)
 {
     orbital.parent = null;
     childrens.Remove(orbital);
 }
Ejemplo n.º 30
0
 private static ElectronSubshell CreateElectronSubshell(Orbital orbital)
 {
     return(new ElectronSubshell(orbital.Name, orbital.MaxElectrons));
 }
Ejemplo n.º 31
0
 // Start is called before the first frame update
 void Start()
 {
     _orbital = gameObject.GetComponent <Orbital>();
 }