Exemplo n.º 1
0
    private void OnGUI()
    {
        eccentricity  = EditorGUILayout.FloatField("Eccentricity", eccentricity);
        semiMajorAxis = EditorGUILayout.DoubleField("Semi_Major Axis", semiMajorAxis);


        GUILayout.Label(periapsis.ToString());

        objectName = EditorGUILayout.TextField("Object Name", objectName);
        if (GUILayout.Button("Set"))
        {
            periapsis = (1 - eccentricity) * semiMajorAxis * 1000;
            MoonData data = Resources.Load <MoonData>("Objects/" + objectName);
            if (data != null)
            {
                data.avrgDistanceFromPlanet = periapsis;
                data.e = eccentricity;
                EditorUtility.SetDirty(data);
                Debug.Log("Set the periapsis of " + objectName + " to " + periapsis.ToString());
            }
            else
            {
                Debug.LogError("Object with name " + objectName + " could not be found");
            }
            objectName = "";
        }
    }
Exemplo n.º 2
0
 public ClimateTiming(Byte SunriseBegin, Byte SunriseEnd, Byte SunsetBegin, Byte SunsetEnd, Byte Volatility, MoonData MoonData)
 {
     this.SunriseBegin = SunriseBegin;
     this.SunriseEnd   = SunriseEnd;
     this.SunsetBegin  = SunsetBegin;
     this.SunsetEnd    = SunsetEnd;
     this.Volatility   = Volatility;
     this.MoonData     = MoonData;
 }
Exemplo n.º 3
0
 public ClimateTiming(string Tag = null)
     : base(Tag)
 {
     SunriseBegin = new Byte();
     SunriseEnd   = new Byte();
     SunsetBegin  = new Byte();
     SunsetEnd    = new Byte();
     Volatility   = new Byte();
     MoonData     = new MoonData();
 }
Exemplo n.º 4
0
 public ClimateTiming(ClimateTiming copyObject)
 {
     SunriseBegin = copyObject.SunriseBegin;
     SunriseEnd   = copyObject.SunriseEnd;
     SunsetBegin  = copyObject.SunsetBegin;
     SunsetEnd    = copyObject.SunsetEnd;
     Volatility   = copyObject.Volatility;
     if (copyObject.MoonData != null)
     {
         MoonData = (MoonData)copyObject.MoonData.Clone();
     }
 }
Exemplo n.º 5
0
    public SolarSystem(SolarSystemData Data)
    {
        Suns            = new Sun[Data.Suns.Length];
        OrbitingPlanets = new Planet[Data.Planets.Length];

        systemObj      = new GameObject();
        systemObj.name = Data.Name;
        systemObj.transform.position = Vector3.zero;
        systemObj.transform.SetParent(GameObject.FindGameObjectWithTag("Canvas").transform, true);

        // Create Suns, Planets and their Moons
        for (int i = 0; i < Suns.Length; i++)
        {
            SunData sd  = Data.Suns[i];
            Sun     sun = new Sun(sd.Name, sd.Type, sd.Color, sd.Radius, sd.Mass, sd.Age, systemObj);
            sun.SetPosition(sd.Position);
            Suns[i] = sun;
        }
        for (int i = 0; i < OrbitingPlanets.Length; i++)
        {
            PlanetData pd    = Data.Planets[i];
            Orbit      orbit = Orbit.Create(pd.Apoapsis, pd.Periapsis, Suns[pd.OrbitingIndex]);
            systemLogScaleBase = systemLogScaleBase > Mathf.Log(orbit.SemiMajor) ? Mathf.Log(orbit.SemiMajor) : systemLogScaleBase;
            Debug.Log(pd.Name + " Orbit info, T: " + orbit.Period + " Apoapsis: " + orbit.ApoApsis + " Periapsis: " + orbit.PeriApsis);
            Planet planet = new Planet(pd.Name, pd.Type, pd.Color, pd.Radius, pd.Mass, orbit, Suns[pd.OrbitingIndex].GameObject);
            if (pd.Moons != null)
            {
                int nr = pd.Moons.Length;
                planet.Moons = new Moon[nr];
                for (int j = 0; j < nr; j++)
                {
                    MoonData md        = pd.Moons[j];
                    Orbit    moonOrbit = Orbit.Create(md.Apoapsis, md.Periapsis, planet);
                    planet.Moons[j] = new Moon(md.Name, md.Type, md.Color, md.Radius, md.Mass, moonOrbit, md.Approachable, planet.GameObject);
                }
            }
            OrbitingPlanets[i] = planet;
        }
        Scaling.LogBase  = Mathf.Floor(systemLogScaleBase);
        TimeAcceleration = Scaling.SpeedUpFactor;
        SetOrbitingPositions(0);
    }
    public void Generate()
    {
        if (database == null)
        {
            database = (ObjectDatabase)Resources.Load(databasePath);
        }
        Debug.Log(database.moons.Length);
        string json  = File.ReadAllText(path);
        int    index = 0;

        if (objectsType == ObjectType.Moon)
        {
            MoonDataJsonArray data = JsonUtility.FromJson <MoonDataJsonArray>(json);
            foreach (MoonDataJson moonData in data.moons)
            {
                if (numberToMake != 0 && index == numberToMake)
                {
                    return;
                }

                if (!database.ArrayContainsName <MoonData>(database.moons, moonData.name))
                {
                    MoonData moonAsset = ScriptableObject.CreateInstance <MoonData>();
                    moonAsset.SetId(moonData.id);
                    moonAsset.objectName = moonData.name;
                    moonAsset.planetId   = moonData.planetId;
                    moonAsset.diameter   = moonData.radius * 2;
                    moonAsset.mass       = moonData.gm / G;
                    moonAsset.density    = moonData.density;
                    EditorUtility.SetDirty(moonAsset);
                    string assetName = moonData.name;
                    assetName = assetName.Replace("/", "_");
                    string assetPath = objectPath + "/" + assetName + ".asset";
                    AssetDatabase.CreateAsset(moonAsset, assetPath);
                    index++;
                }
            }
        }
    }