////

        internal void OnPostModsLoad()
        {
            // This is deferred to here because of LoadHooks load order (ironically)
            LoadHooks.AddModUnloadHook(() => {
                try {
                    Main.OnPostDraw -= SupportInfoDisplay._Draw;
                } catch { }
            });
        }
示例#2
0
        ////

        public void OnPostModsLoad()
        {
            if (!Main.dedServ)
            {
                LoadHooks.AddModUnloadHook(() => {
                    Main.OnTick -= AnimatedColorsManager._Update;
                });
            }
        }
        ////////////////

        public MenuContextServiceManager()
        {
            if (Main.dedServ)
            {
                return;
            }

            Main.OnPostDraw += MenuContextServiceManager._Update;

            LoadHooks.AddModUnloadHook(this.ModsUnloading);
        }
        private void ApplyModBrowserModInfoBindings(UIState modBrowserUi, UIList uiModList)
        {
            if (modBrowserUi?.GetType().Name != "UIModBrowser")
            {
                throw new ModHelpersException("Invalid UIModBrowser");
            }

            object modList;

            if (!ReflectionHelpers.Get(uiModList, "_items", out modList) || modList == null)
            {
                throw new ModHelpersException("Invalid modList._items");
            }

            var itemsArr = (Array)modList.GetType()
                           .GetMethod("ToArray")
                           .Invoke(modList, new object[] { });

            for (int i = 0; i < itemsArr.Length; i++)
            {
                var item = (UIElement)itemsArr.GetValue(i);
                if (item == null)
                {
                    LogHelpers.Warn("Invalid modList._item[" + i + "] (out of " + itemsArr.Length + ")");
                    continue;
                }

                //string modName;
                //if( !ReflectionHelpers.GetField( item, "mod", out modName ) || modName == null ) {
                //	throw new Exception( "Invalid modList._item["+i+"].mod" );
                //}

                UIElement modInfoButton;
                if (!ReflectionHelpers.Get(item, "_moreInfoButton", out modInfoButton) || modInfoButton == null)
                {
                    LogHelpers.Alert("Invalid modList._item[" + i + "]._moreInfoButton");
                    continue;
                }

                MouseEvent modInfoButtonClick = (_, __) => {
                    if (!ReflectionHelpers.Set(modBrowserUi, "SelectedItem", item))
                    {
                        LogHelpers.Alert("Could not set selected item from the mod browser");
                    }
                };

                modInfoButton.OnClick += modInfoButtonClick;
                LoadHooks.AddModUnloadHook(() => {
                    try {
                        modInfoButton.OnClick -= modInfoButtonClick;
                    } catch { }
                });
            }
        }
        ////////////////

        internal MusicHelpers()
        {
            this.OnTickGet = Timers.MainOnTickGet();
            Main.OnTick   += MusicHelpers._Update;

            LoadHooks.AddModUnloadHook(() => {
                try {
                    Main.OnTick -= MusicHelpers._Update;
                } catch { }
            });
        }
        ////

        public void OnPostModsLoad()
        {
            if (!Main.dedServ)
            {
                LoadHooks.AddWorldUnloadEachHook(() => {
                    this.Animations.Clear();
                });
                LoadHooks.AddModUnloadHook(() => {
                    Main.OnTick -= AnimatedTextureManager._Update;
                });
            }
        }
        public static void InitializeStatic(BetterPaintMod mymod)
        {
            if (!Main.dedServ && PaintBlasterHUD.AmmoCan == null)
            {
                PaintBlasterHUD.AmmoCan = mymod.GetTexture("UI/PaintBlasterHUD/PaintAmmoContainer");
                PaintBlasterHUD.AmmoTop = mymod.GetTexture("UI/PaintBlasterHUD/PaintAmmoTop");
                PaintBlasterHUD.AmmoBot = mymod.GetTexture("UI/PaintBlasterHUD/PaintAmmoBottom");

                LoadHooks.AddModUnloadHook(() => {
                    PaintBlasterHUD.AmmoCan = null;
                    PaintBlasterHUD.AmmoTop = null;
                    PaintBlasterHUD.AmmoBot = null;
                });
            }
        }
        ////////////////

        public MenuItemManager()
        {
            if (!Main.dedServ)
            {
                Main.OnPostDraw += MenuItemManager._Draw;
            }

            LoadHooks.AddModUnloadHook(() => {
                try {
                    if (!Main.dedServ)
                    {
                        Main.OnPostDraw -= MenuItemManager._Draw;
                    }
                } catch { }
            });
        }
示例#9
0
        ////////////////

        public override void SetStaticDefaults()
        {
            this.DisplayName.SetDefault("Color Cartridge");
            this.Tooltip.SetDefault("Needs a Paint Plaster to use" + '\n' +
                                    "Make cartridges with paint at a paint mixer" + '\n' +
                                    "Blend cartidges together at a paint mixer");

            if (!Main.dedServ && ColorCartridgeItem.ColorCartridgeTex == null)
            {
                ColorCartridgeItem.ColorCartridgeTex = this.mod.GetTexture("Items/ColorCartridgeItem");
                ColorCartridgeItem.ColorOverlayTex   = this.mod.GetTexture("Items/ColorCartridgeItem_Color");

                LoadHooks.AddModUnloadHook(() => {
                    ColorCartridgeItem.ColorOverlayTex   = null;
                    ColorCartridgeItem.ColorCartridgeTex = null;
                });
            }
        }
        ////////////////

        public TileDataManager()
        {
            this.OnTickGet = Timers.MainOnTickGet();
            Main.OnTick   += TileDataManager._Update;

            if (!Main.dedServ)
            {
                Overlays.Scene["TileDamageEffects"] = new TileEffectsOverlay();
                Overlays.Scene.Activate("TileDamageEffects");
            }

            LoadHooks.AddModUnloadHook(() => {
                Main.OnTick -= TileDataManager._Update;

                if (!Main.dedServ)
                {
                    Overlays.Scene["TileDamageEffects"].Deactivate();
                }
            });
        }
        ////////////////

        public override void SetStaticDefaults()
        {
            this.DisplayName.SetDefault("Glow Cartridge");
            this.Tooltip.SetDefault("Needs a Paint Blaster to use" + '\n' +
                                    "Produces glow-in-the-dark paint" + '\n' +
                                    "Craft with cartidges and glowing spores at a paint mixer");

            if (!Main.dedServ && GlowCartridgeItem.GlowCartridgeTex == null)
            {
                GlowCartridgeItem.GlowCartridgeTex = this.mod.GetTexture("Items/GlowCartridgeItem");
                GlowCartridgeItem.ColorOverlayTex  = this.mod.GetTexture("Items/GlowCartridgeItem_Color");
                GlowCartridgeItem.GlowMaskTex      = this.mod.GetTexture("Items/GlowCartridgeItem_Glow1");

                LoadHooks.AddModUnloadHook(() => {
                    GlowCartridgeItem.GlowCartridgeTex = null;
                    GlowCartridgeItem.ColorOverlayTex  = null;
                    GlowCartridgeItem.GlowMaskTex      = null;
                });
            }
        }
        private static void InitializeDebugModeMenuInfo()
        {
            if (!ModHelpersMod.Config.DebugModeMenuInfo)
            {
                return;
            }

            Main.OnPostDraw += Menus.DebugModeMenuInfo;
            Menus.DebugModeMenuInfoLoaded = true;

            LoadHooks.AddModUnloadHook(() => {
                try {
                    if (Menus.DebugModeMenuInfoLoaded)
                    {
                        Main.OnPostDraw -= Menus.DebugModeMenuInfo;
                    }
                } catch { }

                Menus.DebugModeMenuInfoLoaded = false;
            });
        }
示例#13
0
        ////////////////

        public override void SetDefaults()
        {
            int mytype = this.Type;

            this.DisplayName.SetDefault("Encumbered");
            this.Description.SetDefault("You're weighted down" + '\n' + "More items = more burden");

            Main.debuff[mytype] = true;

            if (!Main.dedServ && EncumberedDebuff.IconTex1 == null)
            {
                EncumberedDebuff.IconTex1 = EncumbranceMod.Instance.GetTexture("Buffs/EncumberedDebuff_1");
                EncumberedDebuff.IconTex2 = EncumbranceMod.Instance.GetTexture("Buffs/EncumberedDebuff_2");
                EncumberedDebuff.IconTex3 = EncumbranceMod.Instance.GetTexture("Buffs/EncumberedDebuff_3");
                EncumberedDebuff.IconTex4 = EncumbranceMod.Instance.GetTexture("Buffs/EncumberedDebuff_4");

                if (!EncumberedDebuff.HasSetPromise)
                {
                    EncumberedDebuff.HasSetPromise = true;

                    CustomLoadHooks.AddHook(EncumbrancePlayer.PlayerMovementPromiseValidator, (whoAmI) => {
                        Player plr = Main.player[whoAmI];

                        if (plr != null && plr.active && plr.HasBuff(mytype))
                        {
                            EncumberedDebuff.ApplyMovementHinderance(plr);
                        }
                        return(true);
                    });
                }

                LoadHooks.AddModUnloadHook(() => {
                    EncumberedDebuff.IconTex1 = null;
                    EncumberedDebuff.IconTex2 = null;
                    EncumberedDebuff.IconTex3 = null;
                    EncumberedDebuff.IconTex4 = null;
                });
            }
        }
示例#14
0
        public static void InitializeStatic(BetterPaintMod mymod)
        {
            if (!Main.dedServ && PaintBlasterUI.BrushStream == null)
            {
                PaintBlasterUI.BrushStream  = mymod.GetTexture("UI/PaintBlasterUI/BrushStream");
                PaintBlasterUI.BrushSpray   = mymod.GetTexture("UI/PaintBlasterUI/BrushSpray");
                PaintBlasterUI.BrushSpatter = mymod.GetTexture("UI/PaintBlasterUI/BrushSpatter");
                PaintBlasterUI.BrushEraser  = mymod.GetTexture("UI/PaintBlasterUI/BrushEraser");

                PaintBlasterUI.LayerFgTex   = mymod.GetTexture("UI/PaintBlasterUI/LayerFg");
                PaintBlasterUI.LayerBgTex   = mymod.GetTexture("UI/PaintBlasterUI/LayerBg");
                PaintBlasterUI.LayerBothTex = mymod.GetTexture("UI/PaintBlasterUI/LayerBoth");

                PaintBlasterUI.SizeSmallTex = mymod.GetTexture("UI/PaintBlasterUI/SizeSmall");
                PaintBlasterUI.SizeLargeTex = mymod.GetTexture("UI/PaintBlasterUI/SizeLarge");

                PaintBlasterUI.PressureLowTex = mymod.GetTexture("UI/PaintBlasterUI/PressureLow");
                PaintBlasterUI.PressureMidTex = mymod.GetTexture("UI/PaintBlasterUI/PressureMid");
                PaintBlasterUI.PressureHiTex  = mymod.GetTexture("UI/PaintBlasterUI/PressureHi");

                LoadHooks.AddModUnloadHook(() => {
                    PaintBlasterUI.BrushStream    = null;
                    PaintBlasterUI.BrushSpray     = null;
                    PaintBlasterUI.BrushSpatter   = null;
                    PaintBlasterUI.BrushEraser    = null;
                    PaintBlasterUI.LayerFgTex     = null;
                    PaintBlasterUI.LayerBgTex     = null;
                    PaintBlasterUI.LayerBothTex   = null;
                    PaintBlasterUI.SizeSmallTex   = null;
                    PaintBlasterUI.SizeLargeTex   = null;
                    PaintBlasterUI.PressureLowTex = null;
                    PaintBlasterUI.PressureMidTex = null;
                    PaintBlasterUI.PressureHiTex  = null;
                });
            }
        }