public void CalculatePlanetMovement(PlanetCollection allPlanets, GameTime currentGameTime)
        {
            m_pairDistribution.DataChanged = allPlanets.Changed || DistributionChanged;
            DistributionChanged            = false;
            allPlanets.ClearChangedFlag();

            Planet[] planets = allPlanets.ToArray();

            if (IsStandaloneDistribution())
            {
                m_pairDistribution.Calculate(planets, currentGameTime);
            }
            else
            {
                // gravity
                m_pairDistribution.SetCalculationFunction(GravityHandler.CalculateGravity);
                m_pairDistribution.Calculate(planets, currentGameTime);

                // collisions
                m_pairDistribution.SetCalculationFunction(CollisionHandler.CalculateCollision);
                m_pairDistribution.Calculate(planets, currentGameTime);

                ApplyAccelaration(planets);
            }
        }
예제 #2
0
        private static PlanetCollection createPlanets(IEnumerable <StarSystemBuilder> starSystems)
        {
            var planets = new PlanetCollection();

            foreach (var system in starSystems)
            {
                planets.Add(system.Planets);
            }

            return(planets);
        }
예제 #3
0
    // Use this for initialization
    void Start()
    {
        // create instance
        if (instance == null)
        {
            instance = this;
        }
        else if (instance != this)
        {
            Destroy(gameObject);
        }
        DontDestroyOnLoad(gameObject);

        collection = new HashSet <string>();
    }
예제 #4
0
        private void JSONClick(object sender, RoutedEventArgs e)
        {
            //File Dialog
            fileDialog                  = new OpenFileDialog();
            fileDialog.Filter           = "JSON files (*.json)|*.json";
            fileDialog.InitialDirectory = Directory.GetCurrentDirectory();
            fileDialog.Title            = "Select XML File";
            var results = fileDialog.ShowDialog();

            if (results == System.Windows.Forms.DialogResult.OK)
            {
                FileStream read = new FileStream(fileDialog.FileName, FileMode.Open, FileAccess.Read);
                DataContractJsonSerializer PersonSerJSON = new DataContractJsonSerializer(typeof(PlanetCollection));
                PlanetCollection = (PlanetCollection)PersonSerJSON.ReadObject(read);

                PopulateListBoxMENU();
            }
        }
예제 #5
0
 public StatesDB(StarCollection stars, WormholeCollection wormholes, PlanetCollection planets,
                 ColonyCollection Colonies, StellarisCollection stellarises,
                 DevelopmentProgressCollection developmentAdvances, ResearchProgressCollection researchAdvances,
                 TreatyCollection treaties, ReportCollection reports, DesignCollection designs,
                 FleetCollection fleets, ColonizationCollection colonizations)
 {
     this.Colonies             = Colonies;
     this.Planets              = planets;
     this.Stars                = stars;
     this.Stellarises          = stellarises;
     this.Wormholes            = wormholes;
     this.DevelopmentAdvances  = developmentAdvances;
     this.ResearchAdvances     = researchAdvances;
     this.Reports              = reports;
     this.Designs              = designs;
     this.Fleets               = fleets;
     this.ColonizationProjects = colonizations;
     this.Treaties             = treaties;
 }
예제 #6
0
    void Awake()
    {
        // create instance
        if (instance == null)
        {
            instance = this;
        }
        else if (instance != this)
        {
            Destroy(gameObject);
        }


        //planets = new GameObject[10];
        ingredients = new HashSet <string> {
            "nitrogen", "hydrogen", "oxygen", "sulfur", "carbon"
        };
        userMixture = new HashSet <string>();

        HashSet <string> mercuryIngredients = new HashSet <string> {
            "oxygen", "hydrogen", "nitrogen"
        };
        HashSet <string> venusIngredients = new HashSet <string> {
            "carbon", "hydrogen", "sulfur"
        };
        HashSet <string> earthIngredients = new HashSet <string> {
            "nitrogen", "carbon", "hydrogen"
        };
        HashSet <string> marsIngredients = new HashSet <string> {
            "nitrogen", "carbon", "oxygen"
        };
        HashSet <string> jupiterIngredients = new HashSet <string> {
            "nitrogen", "hydrogen", "sulfur"
        };
        HashSet <string> saturnIngredients = new HashSet <string> {
            "oxygen", "hydrogen", "sulfur"
        };
        HashSet <string> uranusIngredients = new HashSet <string> {
            "carbon", "oxygen", "hydrogen"
        };
        HashSet <string> neptuneIngredients = new HashSet <string> {
            "carbon", "oxygen", "sulfur"
        };
        HashSet <string> plutoIngredients = new HashSet <string> {
            "nitrogen", "carbon", "sulfur"
        };
        HashSet <string> failIngredients = new HashSet <string> {
            "nitrogen", "oxygen", "sulfur"
        };

        Formation mercury = new Formation("mercury", mercuryIngredients, Resources.Load("mercury") as GameObject, Resources.Load("PlanetsVoiceOver/MercuryVoice") as AudioClip);
        Formation venus   = new Formation("venus", venusIngredients, Resources.Load("venus") as GameObject, Resources.Load("PlanetsVoiceOver/VenusVoice") as AudioClip);
        Formation earth   = new Formation("earth", earthIngredients, Resources.Load("earth") as GameObject, Resources.Load("PlanetsVoiceOver/EarthVoice") as AudioClip);
        Formation mars    = new Formation("mars", marsIngredients, Resources.Load("mars") as GameObject, Resources.Load("PlanetsVoiceOver/MarsVoice") as AudioClip);
        Formation jupiter = new Formation("jupiter", jupiterIngredients, Resources.Load("jupiter") as GameObject, Resources.Load("PlanetsVoiceOver/JupiterVoice") as AudioClip);
        Formation saturn  = new Formation("saturn", saturnIngredients, Resources.Load("saturn") as GameObject, Resources.Load("PlanetsVoiceOver/SaturnVoice") as AudioClip);
        Formation uranus  = new Formation("uranus", uranusIngredients, Resources.Load("uranus") as GameObject, Resources.Load("PlanetsVoiceOver/UranusVoice") as AudioClip);
        Formation neptune = new Formation("neptune", neptuneIngredients, Resources.Load("neptune") as GameObject, Resources.Load("PlanetsVoiceOver/NeptuneVoice") as AudioClip);
        Formation pluto   = new Formation("pluto", plutoIngredients, Resources.Load("pluto") as GameObject, Resources.Load("PlanetsVoiceOver/PlutoVoice") as AudioClip);
        Formation fail    = new Formation("fail", failIngredients, Resources.Load("fail") as GameObject, Resources.Load("PlanetsVoiceOver/FailVoice") as AudioClip);

        results[0] = mercury;
        results[1] = venus;
        results[2] = earth;
        results[3] = mars;
        results[4] = jupiter;
        results[5] = saturn;
        results[6] = uranus;
        results[7] = neptune;
        results[8] = pluto;
        results[9] = fail;

        foreach (GameObject image in asteroidTracking)
        {
            image.GetComponent <Image> ().enabled = false;
        }

        protoPlanet.GetComponent <Animator> ().enabled = false;
        GameObject bigAsteroids = UnityEngine.GameObject.FindGameObjectWithTag("bigAsteroids");

        bigAsteroids.gameObject.GetComponent <Animator> ().enabled = false;

        SoundManager.instance.playBackgroundSound("backgroundSound", backgroundSound);

        // reloads collection book for each planet creator instance
        collectionBook = UnityEngine.GameObject.FindGameObjectWithTag("Collection").GetComponent <PlanetCollection>();
        collectionBook.ReloadCollectionBook();
        if (!collectionBook.isTutorialShown)
        {
            SoundManager.instance.playSingle("voiceOverSource", beginningOfExperienceVoiceOver);
        }
    }
예제 #7
0
 // Use this for initialization
 void Start()
 {
     planetCollection = UnityEngine.GameObject.FindGameObjectWithTag("Collection").GetComponent <PlanetCollection>();
 }
예제 #8
0
        private static Tuple <StatesDB, Player[], Player> loadSaveData(IkonComposite saveData, ObjectDeindexer deindexer, StaticsDB statics)
        {
            var stateData  = saveData[MainGame.StatesKey].To <IkonComposite>();
            var ordersData = saveData[MainGame.OrdersKey].To <IkonArray>();

            var stars = new StarCollection();

            foreach (var rawData in stateData[StatesDB.StarsKey].To <IEnumerable <IkonComposite> >())
            {
                stars.Add(StarData.Load(rawData, deindexer));
            }

            var planets = new PlanetCollection();

            foreach (var rawData in stateData[StatesDB.PlanetsKey].To <IEnumerable <IkonComposite> >())
            {
                planets.Add(Planet.Load(rawData, deindexer));
            }

            var wormholes = new WormholeCollection();

            foreach (var rawData in stateData[StatesDB.WormholesKey].To <IEnumerable <IkonComposite> >())
            {
                wormholes.Add(Wormhole.Load(rawData, deindexer));
            }

            var players = new List <Player>();

            foreach (var rawData in saveData[MainGame.PlayersKey].To <IEnumerable <IkonComposite> >())
            {
                players.Add(Player.Load(rawData, deindexer));
            }

            var organellePlayer = Player.Load(saveData[MainGame.OrganellePlayerKey].To <IkonComposite>(), deindexer);

            var developments = new DevelopmentProgressCollection();

            foreach (var rawData in stateData[StatesDB.DevelopmentAdvancesKey].To <IEnumerable <IkonComposite> >())
            {
                developments.Add(DevelopmentProgress.Load(rawData, deindexer));
            }

            var research = new ResearchProgressCollection();

            foreach (var rawData in stateData[StatesDB.ResearchAdvancesKey].To <IEnumerable <IkonComposite> >())
            {
                research.Add(ResearchProgress.Load(rawData, deindexer));
            }

            var treaties = new TreatyCollection();

            foreach (var rawData in stateData[StatesDB.TreatiesKey].To <IEnumerable <IkonComposite> >())
            {
                treaties.Add(Treaty.Load(rawData, deindexer));
            }

            var reports = new ReportCollection();

            foreach (var rawData in stateData[StatesDB.ReportsKey].To <IEnumerable <IkonComposite> >())
            {
                reports.Add(ReportFactory.Load(rawData, deindexer));
            }

            var designs = new DesignCollection();

            foreach (var rawData in stateData[StatesDB.DesignsKey].To <IEnumerable <IkonComposite> >())
            {
                var design = Design.Load(rawData, deindexer);
                design.CalcHash(statics);
                designs.Add(design);
                deindexer.Add(design.ConstructionProject, design.ConstructionProject.IdCode);
            }

            var colonizations = new ColonizationCollection();

            foreach (var rawData in stateData[StatesDB.ColonizationKey].To <IEnumerable <IkonComposite> >())
            {
                colonizations.Add(ColonizationProject.Load(rawData, deindexer));
            }

            var fleets = new FleetCollection();

            foreach (var rawData in stateData[StatesDB.IdleFleetsKey].To <IEnumerable <IkonComposite> >())
            {
                fleets.Add(Fleet.Load(rawData, deindexer));
            }

            var colonies = new ColonyCollection();

            foreach (var rawData in stateData[StatesDB.ColoniesKey].To <IEnumerable <IkonComposite> >())
            {
                colonies.Add(Colony.Load(rawData, deindexer));
            }

            var stellarises = new StellarisCollection();

            foreach (var rawData in stateData[StatesDB.StellarisesKey].To <IEnumerable <IkonComposite> >())
            {
                stellarises.Add(StellarisAdmin.Load(rawData, deindexer));
            }

            for (int i = 0; i < players.Count; i++)
            {
                players[i].Orders = PlayerOrders.Load(ordersData[i].To <IkonComposite>(), deindexer);
            }
            organellePlayer.Orders = PlayerOrders.Load(saveData[MainGame.OrganelleOrdersKey].To <IkonComposite>(), deindexer);

            return(new Tuple <StatesDB, Player[], Player>(
                       new StatesDB(stars, wormholes, planets, colonies, stellarises, developments, research, treaties, reports, designs, fleets, colonizations),
                       players.ToArray(),
                       organellePlayer
                       ));
        }