Esempio n. 1
0
        public override void ModifyInterfaceLayers(List <GameInterfaceLayer> layers)
        {
            int idx = layers.FindIndex(layer => layer.Name.Equals("Vanilla: Mouse Text"));

            if (idx == -1)
            {
                return;
            }

            //

            GameInterfaceDrawMethod debugDrawCallback = () => {
                try {
                    ModContent.GetInstance <PlayerMessages>().Draw(Main.spriteBatch);
                } catch (Exception e) {
                    LogLibraries.Warn(e.ToString());
                }
                return(true);
            };

            //

            if (LoadLibraries.IsCurrentPlayerInGame())
            {
                var debugLayer = new LegacyGameInterfaceLayer("ModLibsGeneral: Debug Display",
                                                              debugDrawCallback,
                                                              InterfaceScaleType.UI);
                layers.Insert(idx, debugLayer);
            }
        }
        ////////////////

        internal void Update()
        {
            var wtHooks = ModContent.GetInstance <WorldTimeHooks>();

            if (!LoadLibraries.IsWorldSafelyBeingPlayed())
            {
                this.IsDay = Main.dayTime;
            }
            else
            {
                if (this.IsDay != Main.dayTime)
                {
                    if (!this.IsDay)
                    {
                        foreach (Action hook in wtHooks.DayHooks.Values)
                        {
                            hook();
                        }
                    }
                    else
                    {
                        foreach (Action hook in wtHooks.NightHooks.Values)
                        {
                            hook();
                        }
                    }
                }

                this.IsDay = Main.dayTime;
            }
        }
        public override void ModifyInterfaceLayers(List <GameInterfaceLayer> layers)
        {
            int idx = layers.FindIndex(layer => layer.Name.Equals("Vanilla: Mouse Text"));

            if (idx == -1)
            {
                return;
            }

            //

            GameInterfaceDrawMethod cpDrawCallback = () => {
                this.DrawCP(Main.spriteBatch);
                return(true);
            };

            //

            if (LoadLibraries.IsCurrentPlayerInGame())
            {
                var cpLayer = new LegacyGameInterfaceLayer("ModControlPanel: Control Panel",
                                                           cpDrawCallback,
                                                           InterfaceScaleType.UI);
                layers.Insert(idx, cpLayer);
            }
        }
        void App_Startup(object sender, StartupEventArgs e)
        {
            ViewCatalog.Initialize(System.Reflection.Assembly.GetExecutingAssembly());

            LoadLibraries loadLibraries = new LoadLibraries();
            ViewCatalog.RegisterView(loadLibraries);
            loadLibraries.SendMessage(ViewMessage.Show);
        }
Esempio n. 5
0
        ////////////////

        public override void PostUpdateEverything()
        {
            this.MouseInterface = Main.LocalPlayer.mouseInterface;

            if (LoadLibraries.IsWorldBeingPlayed())
            {
                ModContent.GetInstance <WorldStateLibraries>().UpdateUponWorldBeingPlayed();
            }
        }
        public static IList <string> GetNpcWhitelistGroupsForNpc(NPC npc)
        {
            if (!LoadLibraries.IsWorldLoaded())
            {
                throw new ModLibsException("World not loaded");
            }

            var myworld = ModContent.GetInstance <NihilismWorld>();

            return(myworld.Logic?.DataAccess?.GetNpcWhitelistGroupEntriesForNpc(npc));
        }
        public static IList <string> GetRecipeBlacklist2GroupsForItem(Item item)
        {
            if (!LoadLibraries.IsWorldLoaded())
            {
                throw new ModLibsException("World not loaded");
            }

            var myworld = ModContent.GetInstance <NihilismWorld>();

            return(myworld.Logic?.DataAccess?.GetRecipeBlacklist2GroupEntriesForItemRecipe(item));
        }
Esempio n. 8
0
        public static void ClearRecipeBlacklist2(bool localOnly)
        {
            if (!LoadLibraries.IsWorldLoaded())
            {
                throw new ModLibsException("World not loaded");
            }

            var myworld = ModContent.GetInstance <NihilismWorld>();

            myworld.Logic.DataAccess.ClearRecipeBlacklist2();

            if (!localOnly)
            {
                myworld.Logic.SyncDataChanges();
            }
        }
Esempio n. 9
0
        ////////////////

        public static void SetCurrentFiltersAsDefaults(bool localOnly)
        {
            if (!LoadLibraries.IsWorldLoaded())
            {
                throw new ModLibsException("World not loaded");
            }

            var myworld = ModContent.GetInstance <NihilismWorld>();

            myworld.Logic.DataAccess.SetCurrentFiltersAsDefaults();

            if (!localOnly)
            {
                myworld.Logic.SyncDataChanges();
            }
        }
Esempio n. 10
0
        public static void SetRecipeWhitelistEntry(ItemDefinition itemDef, bool localOnly)
        {
            if (!LoadLibraries.IsWorldLoaded())
            {
                throw new ModLibsException("World not loaded");
            }

            var myworld = ModContent.GetInstance <NihilismWorld>();

            myworld.Logic.DataAccess.SetRecipeWhitelistEntry(itemDef);

            if (!localOnly)
            {
                myworld.Logic.SyncDataChanges();
            }
        }
Esempio n. 11
0
        public static void UnsetNpcLootBlacklistEntry(NPCDefinition npcDef, bool localOnly)
        {
            if (!LoadLibraries.IsWorldLoaded())
            {
                throw new ModLibsException("World not loaded");
            }

            var myworld = ModContent.GetInstance <NihilismWorld>();

            myworld.Logic.DataAccess.UnsetNpcLootBlacklistEntry(npcDef);

            if (!localOnly)
            {
                myworld.Logic.SyncDataChanges();
            }
        }
Esempio n. 12
0
        public static void SetItemBlacklistGroupEntry(string groupName, bool localOnly)
        {
            if (!LoadLibraries.IsWorldLoaded())
            {
                throw new ModLibsException("World not loaded");
            }

            var myworld = ModContent.GetInstance <NihilismWorld>();

            myworld.Logic.DataAccess.SetItemBlacklistGroupEntry(groupName);

            if (!localOnly)
            {
                myworld.Logic.SyncDataChanges();
            }
        }
Esempio n. 13
0
        ////////////////

        public override void ModifyInterfaceLayers(List <GameInterfaceLayer> layers)
        {
            var loadLibs = ModContent.GetInstance <LoadLibraries>();

            if (loadLibs == null)
            {
                return;
            }

            //

            var layerDisable = LayerDisable.Instance;

            foreach (GameInterfaceLayer layer in layers)
            {
                if (layerDisable.DisabledLayers.Contains(layer.Name))
                {
                    layer.Active = false;
                }
            }

            //

            int idx = layers.FindIndex(layer => layer.Name.Equals("Vanilla: Mouse Text"));

            if (idx == -1)
            {
                return;
            }

            //

            GameInterfaceDrawMethod hudDrawCallback = () => {
                FreeHUD.Instance?.UIContext.Draw(Main.spriteBatch, Main._drawInterfaceGameTime);
                return(true);
            };

            //

            if (LoadLibraries.IsCurrentPlayerInGame())
            {
                var hudLayer = new LegacyGameInterfaceLayer("ModLibsUI: HUD UI",
                                                            hudDrawCallback,
                                                            InterfaceScaleType.UI);
                layers.Insert(idx, hudLayer);
            }
        }
Esempio n. 14
0
        ////////////////

        internal void UpdateUponWorldBeingPlayed()
        {
            if (!LoadLibraries.IsWorldSafelyBeingPlayed())
            {
                this.IsDay = Main.dayTime;
            }
            else
            {
                if (this.IsDay != Main.dayTime)
                {
                    this.HalfDaysElapsed++;
                }

                this.IsDay = Main.dayTime;
            }

            this.TicksElapsed++;
        }
Esempio n. 15
0
        ////

        public static void ClearFiltersForCurrentWorld(bool localOnly)
        {
            if (!LoadLibraries.IsWorldLoaded())
            {
                throw new ModLibsException("World not loaded");
            }

            var myworld = ModContent.GetInstance <NihilismWorld>();

            myworld.Logic.DataAccess.ClearItemBlacklist();
            myworld.Logic.DataAccess.ClearNpcBlacklist();
            myworld.Logic.DataAccess.ClearNpcLootBlacklist();
            myworld.Logic.DataAccess.ClearRecipeBlacklist();

            myworld.Logic.DataAccess.ClearItemWhitelist();
            myworld.Logic.DataAccess.ClearNpcLootWhitelist();
            myworld.Logic.DataAccess.ClearNpcWhitelist();
            myworld.Logic.DataAccess.ClearRecipeWhitelist();

            myworld.Logic.DataAccess.ClearItemBlacklist2();
            myworld.Logic.DataAccess.ClearNpcBlacklist2();
            myworld.Logic.DataAccess.ClearNpcLootBlacklist2();
            myworld.Logic.DataAccess.ClearRecipeBlacklist2();

            myworld.Logic.DataAccess.ClearItemGroupBlacklist();
            myworld.Logic.DataAccess.ClearNpcGroupBlacklist();
            myworld.Logic.DataAccess.ClearNpcLootGroupBlacklist();
            myworld.Logic.DataAccess.ClearRecipeGroupBlacklist();

            myworld.Logic.DataAccess.ClearItemGroupWhitelist();
            myworld.Logic.DataAccess.ClearNpcLootGroupWhitelist();
            myworld.Logic.DataAccess.ClearNpcGroupWhitelist();
            myworld.Logic.DataAccess.ClearRecipeGroupWhitelist();

            myworld.Logic.DataAccess.ClearItemGroupBlacklist2();
            myworld.Logic.DataAccess.ClearNpcGroupBlacklist2();
            myworld.Logic.DataAccess.ClearNpcLootGroupBlacklist2();
            myworld.Logic.DataAccess.ClearRecipeGroupBlacklist2();

            if (!localOnly)
            {
                myworld.Logic.SyncDataChanges();
            }
        }
Esempio n. 16
0
        public override bool CanPlace(int i, int j, int type)
        {
            if (Main.netMode != NetmodeID.Server && !Main.dedServ)
            {
                // World gen?
                if (Main.gameMenu || !LoadLibraries.IsCurrentPlayerInGame())
                {
                    return(true);
                }
            }

            if (!TileLogic.CanPlace(type))
            {
                return(false);
            }

            switch (type)
            {
            case TileID.Platforms:
                return(TileLogic.CanPlacePlatform(i, j));

            case TileID.Rope:
            case TileID.SilkRope:
            case TileID.VineRope:
            case TileID.WebRope:
                return(TileLogic.CanPlaceRope(i, j));

            case TileID.MinecartTrack:
                return(TileLogic.CanPlaceTrack(i, j));

            default:
                if (type == ModContent.TileType <FramingPlankTile>())
                {
                    return(TileLogic.CanPlaceFramingPlank(i, j));
                }
                return(true);
            }
        }