Пример #1
0
        /// <summary>The mod entry point, called after the mod is first loaded.</summary>
        /// <param name="helper">Provides simplified APIs for writing mods.</param>
        public override void Entry(IModHelper helper)
        {
            Dice             = new Xoshiro.PRNG64.XoShiRo256starstar();
            Translation      = Helper.Translation;
            ModConfig        = Helper.ReadConfig <MoonConfig>();
            OurMoon          = new SDVMoon(ModConfig, Dice, Helper.Translation, Monitor);
            ContentManager   = Helper.Content;
            MPHandler        = Helper.Multiplayer;
            OurIcons         = new Sprites.Icons(Helper.Content);
            queuedMsg        = null;
            BloodMoonTracker = new List <string>();

            helper.Events.GameLoop.GameLaunched          += OnGameLaunched;
            helper.Events.GameLoop.OneSecondUpdateTicked += OnOneSecondUpdateTicked;
            helper.Events.GameLoop.TimeChanged           += OnTimeChanged;
            helper.Events.GameLoop.DayStarted            += OnDayStarted;
            helper.Events.GameLoop.DayEnding             += GameLoop_DayEnding;
            helper.Events.GameLoop.SaveLoaded            += GameLoop_SaveLoaded;
            helper.Events.GameLoop.Saving            += OnSaving;
            helper.Events.GameLoop.UpdateTicked      += OnUpdateTicked;
            helper.Events.Display.RenderedActiveMenu += OnRenderedActiveMenu;
            helper.Events.Display.MenuChanged        += OnMenuChanged;
            helper.Events.Player.Warped                  += OnWarped;
            helper.Events.GameLoop.ReturnedToTitle       += OnReturnedToTitle;
            helper.Events.Multiplayer.ModMessageReceived += OnModMessageRecieved;

            SpaceEvents.ChooseNightlyFarmEvent += SpaceEvents_ChooseNightlyFarmEvent;

            helper.ConsoleCommands.Add("force_bloodmoon", "Forces a bloodmoon", ForceBloodMoon)
            .Add("force_bloodmoonoff", "Turns bloodmoon off.", TurnBloodMoonOff)
            .Add("show_mooninfo", "Show moon info", ShowMoonInfo)
            .Add("force_eclipseOn", "Turns eclipse on.", OurMoon.TurnEclipseOn);
        }
Пример #2
0
        /// <summary>The mod entry point, called after the mod is first loaded.</summary>
        /// <param name="helper">Provides simplified APIs for writing mods.</param>
        public override void Entry(IModHelper helper)
        {
            Dice             = new MersenneTwister();
            Translation      = Helper.Translation;
            ModConfig        = Helper.ReadConfig <MoonConfig>();
            OurMoon          = new SDVMoon(ModConfig, Dice, Helper.Translation);
            ContentManager   = Helper.Content;
            OurIcons         = new Sprites.Icons(Helper.Content);
            queuedMsg        = null;
            BloodMoonTracker = new List <string>();

            helper.Events.GameLoop.GameLaunched          += OnGameLaunched;
            helper.Events.GameLoop.OneSecondUpdateTicked += OnOneSecondUpdateTicked;
            helper.Events.GameLoop.TimeChanged           += OnTimeChanged;
            helper.Events.GameLoop.DayStarted            += OnDayStarted;
            helper.Events.GameLoop.DayEnding             += GameLoop_DayEnding;
            helper.Events.GameLoop.Saving            += OnSaving;
            helper.Events.GameLoop.UpdateTicked      += OnUpdateTicked;
            helper.Events.Display.RenderedActiveMenu += OnRenderedActiveMenu;
            helper.Events.Display.MenuChanged        += OnMenuChanged;
            helper.Events.Player.Warped            += OnWarped;
            helper.Events.GameLoop.ReturnedToTitle += OnReturnedToTitle;

            helper.ConsoleCommands.Add("force_bloodmoon", "Forces a bloodmoon", ForceBloodMoon)
            .Add("force_bloodmoonoff", "Turns bloodmoon off.", TurnBloodMoonOff)
            .Add("force_eclipseOn", "Turns eclipse on.", TurnEclipseOn);
        }
Пример #3
0
        public MoonPhase GetLunarPhase()
        {
            //divide it by the cycle.
            int currentDay = GetDayOfCycle(SDate.Now());

            MoonPhase ret = SDVMoon.GetLunarPhase(currentDay);

            if (IsBloodMoon) //restructuring.
            {
                return(MoonPhase.BloodMoon);
            }

            return(ret);
        }
Пример #4
0
        public MoonPhase GetLunarPhase()
        {
            //divide it by the cycle.
            int currentDay = GetDayOfCycle(SDate.Now());

            MoonPhase ret = SDVMoon.GetLunarPhase(currentDay);

            if (ret == MoonPhase.FullMoon)
            {
                if (Dice.NextDoublePositive() <= ModConfig.BadMoonRising)
                {
                    return(MoonPhase.BloodMoon);
                }
            }

            return(ret);
        }
Пример #5
0
        /// <summary>The mod entry point, called after the mod is first loaded.</summary>
        /// <param name="helper">Provides simplified APIs for writing mods.</param>
        public override void Entry(IModHelper helper)
        {
            Dice        = new MersenneTwister();
            Translation = Helper.Translation;
            ModConfig   = Helper.ReadConfig <MoonConfig>();
            OurMoon     = new SDVMoon(ModConfig, Dice, Helper.Translation);
            OurIcons    = new Sprites.Icons(Helper.Content);

            helper.Events.GameLoop.GameLaunched          += OnGameLaunched;
            helper.Events.GameLoop.OneSecondUpdateTicked += OnOneSecondUpdateTicked;
            helper.Events.GameLoop.TimeChanged           += OnTimeChanged;
            helper.Events.GameLoop.DayStarted            += OnDayStarted;
            helper.Events.GameLoop.Saving            += OnSaving;
            helper.Events.GameLoop.UpdateTicked      += OnUpdateTicked;
            helper.Events.Display.RenderedActiveMenu += OnRenderedActiveMenu;
            helper.Events.Display.MenuChanged        += OnMenuChanged;
            helper.Events.Player.Warped            += OnWarped;
            helper.Events.GameLoop.ReturnedToTitle += OnReturnedToTitle;
        }
Пример #6
0
 public string SimpleMoonPhase()
 {
     return(SDVMoon.DescribeMoonPhase(this.CurrentPhase()));
 }
Пример #7
0
 public string GetMenuString()
 {
     return(Translations.Get("moon-desc.desc_moonphase", new { moonPhase = SDVMoon.DescribeMoonPhase(CurrentPhase(), Translations) }));
 }
Пример #8
0
        /// <summary>When a menu is open (<see cref="Game1.activeClickableMenu"/> isn't null), raised after that menu is drawn to the sprite batch but before it's rendered to the screen.</summary>
        /// <param name="sender">The event sender.</param>
        /// <param name="e">The event arguments.</param>
        private void OnRenderedActiveMenu(object sender, RenderedActiveMenuEventArgs e)
        {
            bool outro = false;

            //revised this so it properly draws over the canon moon. :v
            if (Game1.activeClickableMenu is ShippingMenu ourMenu)
            {
                outro = Helper.Reflection.GetField <bool>(ourMenu, "outro").GetValue();
            }

            if (Game1.showingEndOfNightStuff && !Game1.wasRainingYesterday && !outro && Game1.activeClickableMenu is ShippingMenu currMenu &&
                ModConfig.ShowMoonInEndOfNight && currMenu.currentPage == -1)
            {
                float scale = Game1.pixelZoom * 1.25f;

                if (Game1.viewport.Width < 1024)
                {
                    scale = Game1.pixelZoom * .8f;
                }
                if (Game1.viewport.Width < 810)
                {
                    scale = Game1.pixelZoom * .6f;
                }
                if (Game1.viewport.Width < 700)
                {
                    scale = Game1.pixelZoom * .35f;
                }

                Game1.spriteBatch.Draw(OurIcons.MoonSource, new Vector2(Game1.viewport.Width - 65 * Game1.pixelZoom, Game1.pixelZoom), OurIcons.GetNightMoonSprite(SDVMoon.GetLunarPhaseForDay(SDate.Now().AddDays(-1))), Color.LightBlue, 0.0f, Vector2.Zero, scale, SpriteEffects.None, 1f);
            }
        }
Пример #9
0
 private int GetDayOfCycle()
 {
     return(SDVMoon.GetDayOfCycle(SDate.Now()));
 }