コード例 #1
0
        private bool AdvanceTime()
        {
            IChronology chronoSystem = Template <IGaiaTemplate>().ChronologicalSystem;

            if (CurrentTimeOfDay.BaseChronology == null)
            {
                CurrentTimeOfDay.BaseChronology = chronoSystem;
            }

            CurrentTimeOfDay.AdvanceByHour();

            if (CelestialPositions.Any(cp => cp.CelestialObject.OrientationType == CelestialOrientation.SolarBody))
            {
                int rotationalChange = 360 / chronoSystem.HoursPerDay;
                PlanetaryRotation += rotationalChange;

                int maxOrbit = chronoSystem.Months.Count() * chronoSystem.DaysPerMonth * chronoSystem.HoursPerDay;

                int orbitalChange = 1 / maxOrbit;
                OrbitalPosition += orbitalChange;

                if (OrbitalPosition >= maxOrbit)
                {
                    OrbitalPosition -= maxOrbit;
                }
            }

            Save();

            return(true);
        }
コード例 #2
0
        protected override void mapBindings()
        {
            base.mapBindings();

            var time = new CurrentTimeOfDay(GetTimeOfDay());

            injectionBinder.Bind <CurrentTimeOfDay>().ToValue(time);

            mediationBinder.Bind <MainMenuView>().To <MainMenuMediator>();
            mediationBinder.Bind <MainMenuBackgroundView>().To <MainMenuBackgroundMediator>();

            commandBinder.Bind <OptionsSignal>().To <LoadOptionsCommand>();
            commandBinder.Bind <NewGameSignal>().To <NewGameCommand>();
            commandBinder.Bind <LoadGameSignal>().To <LoadGameCommand>();
        }