public override void OnLevelLoaded(LoadMode mode)
        {
            base.OnLevelLoaded(mode);
            Debugger.Log("ON_LEVEL_LOADED");
            Debugger.OnLevelLoaded();

            try
            {
                // Don't load if it's not a game
                if (mode != LoadMode.LoadGame && mode != LoadMode.NewGame)
                {
                    return;
                }

                BuildingThemesManager.instance.ImportThemes();

                PolicyPanelEnabler.UnlockPolicyToolbarButton();
                UIThemeManager.Initialize();
                UIStyleButtonReplacer.ReplaceStyleButton();
            }
            catch (Exception e)
            {
                Debugger.LogException(e);
            }
        }
예제 #2
0
        public override void OnCreated(ILoading loading)
        {
            base.OnCreated(loading);

            Debugger.Initialize();

            Debugger.Log("ON_CREATED");
            Debugger.Log("Building Themes: Initializing Mod...");

            PolicyPanelEnabler.Register();

            BuildingThemesManager.instance.Reset();

            BuildingVariationManager.instance.Reset();

            if (BuildingVariationManager.Enabled)
            {
                try { Detour.BuildingInfoDetour.Deploy(); }
                catch (Exception e) { Debugger.LogException(e); }
            }

            try { Detour.BuildingManagerDetour.Deploy(); }
            catch (Exception e) { Debugger.LogException(e); }

            try { Detour.ZoneBlockDetour.Deploy(); }
            catch (Exception e) { Debugger.LogException(e); }

            try { Detour.ImmaterialResourceManagerDetour.Deploy(); }
            catch (Exception e) { Debugger.LogException(e); }

            try { Detour.PrivateBuildingAIDetour <ResidentialBuildingAI> .Deploy(); }
            catch (Exception e) { Debugger.LogException(e); }

            try { Detour.PrivateBuildingAIDetour <CommercialBuildingAI> .Deploy(); }
            catch (Exception e) { Debugger.LogException(e); }

            try { Detour.PrivateBuildingAIDetour <IndustrialBuildingAI> .Deploy(); }
            catch (Exception e) { Debugger.LogException(e); }

            try { Detour.PrivateBuildingAIDetour <OfficeBuildingAI> .Deploy(); }
            catch (Exception e) { Debugger.LogException(e); }

            try { Detour.PoliciesPanelDetour.Deploy(); }
            catch (Exception e) { Debugger.LogException(e); }

            Debugger.Log("Building Themes: Mod successfully intialized.");
        }
        public override void OnReleased()
        {
            base.OnReleased();
            Debugger.Log("ON_RELEASED");

            BuildingThemesManager.instance.Reset();
            BuildingVariationManager.instance.Reset();
            PolicyPanelEnabler.Unregister();

            Debugger.Log("Building Themes: Reverting detoured methods...");
            try
            {
                Detour.BuildingInfoDetour.Revert();
                Redirector <BuildingManagerDetour> .Revert();

                Debugger.Log("Building Themes: BuildingManager Methods restored!");
                Redirector <DistrictManagerDetour> .Revert();

                Debugger.Log("Building Themes: DistrictManager Methods restored!");
                Redirector <ZoneBlockDetour> .Revert();

                Debugger.Log("Building Themes: ZoneBlock Methods restored!");
                Detour.ImmaterialResourceManagerDetour.Revert();
                Detour.PrivateBuildingAIDetour <ResidentialBuildingAI> .Revert();

                Detour.PrivateBuildingAIDetour <CommercialBuildingAI> .Revert();

                Detour.PrivateBuildingAIDetour <IndustrialBuildingAI> .Revert();

                Detour.PrivateBuildingAIDetour <OfficeBuildingAI> .Revert();

                Detour.PoliciesPanelDetour.Revert();
                Redirector <DistrictWorldInfoPanelDetour> .Revert();

                Debugger.Log("Building Themes: DistrictWorldInfoPanel Methods restored!");
            }
            catch (Exception e)
            {
                Debugger.LogException(e);
            }

            Debugger.Log("Building Themes: Done!");

            Debugger.Deinitialize();
        }
예제 #4
0
        public override void OnLevelLoaded(LoadMode mode)
        {
            base.OnLevelLoaded(mode);

            // Don't load if it's not a game
            if (mode != LoadMode.LoadGame && mode != LoadMode.NewGame)
            {
                return;
            }

            Debugger.Log("ON_LEVEL_LOADED");

            Debugger.AppendModList();
            Debugger.AppendThemeList();

            PolicyPanelEnabler.UnlockPolicyToolbarButton();
            UIThemeManager.Initialize();
        }
예제 #5
0
        public override void OnReleased()
        {
            base.OnReleased();

            Debugger.Log("ON_RELEASED");

            Debugger.Log("Building Themes: Reverting detoured methods...");

            Singleton <BuildingThemesManager> .instance.Reset();

            try
            {
                Detour.BuildingInfoDetour.Revert();
                Detour.BuildingManagerDetour.Revert();
                Detour.ZoneBlockDetour.Revert();
                Detour.ImmaterialResourceManagerDetour.Revert();
                Detour.PrivateBuildingAIDetour <ResidentialBuildingAI> .Revert();

                Detour.PrivateBuildingAIDetour <CommercialBuildingAI> .Revert();

                Detour.PrivateBuildingAIDetour <IndustrialBuildingAI> .Revert();

                Detour.PrivateBuildingAIDetour <OfficeBuildingAI> .Revert();

                Detour.PoliciesPanelDetour.Revert();
            }
            catch (Exception e)
            {
                Debugger.LogException(e);
            }

            PolicyPanelEnabler.Unregister();

            Debugger.Log("Building Themes: Done!");

            Debugger.Deinitialize();
        }
        public override void OnCreated(ILoading loading)
        {
            base.OnCreated(loading);

            Debugger.Initialize();

            Debugger.Log("ON_CREATED");
            Debugger.Log("Building Themes: Initializing Mod...");

            try
            {
                PolicyPanelEnabler.Register();
                BuildingThemesManager.instance.Reset();
                BuildingVariationManager.instance.Reset();

                UpdateConfig();

                try
                {
                    Redirector <BuildingManagerDetour> .Deploy();

                    Debugger.Log("Building Themes: BuildingManager Methods detoured!");
                }
                catch (Exception e)
                {
                    Debugger.LogException(e);
                }
                try
                {
                    Redirector <DistrictManagerDetour> .Deploy();

                    Debugger.Log("Building Themes: DistrictManager Methods detoured!");
                }
                catch (Exception e)
                {
                    Debugger.LogException(e);
                }
                try
                {
                    Redirector <ZoneBlockDetour> .Deploy();

                    Debugger.Log("Building Themes: ZoneBlock Methods detoured!");
                    ZoneBlockDetour.SetUp();
                }
                catch (Exception e)
                {
                    Debugger.LogException(e);
                }
                try
                {
                    Detour.ImmaterialResourceManagerDetour.Deploy();
                }
                catch (Exception e)
                {
                    Debugger.LogException(e);
                }
                try
                {
                    Detour.PrivateBuildingAIDetour <ResidentialBuildingAI> .Deploy();
                }
                catch (Exception e)
                {
                    Debugger.LogException(e);
                }
                try
                {
                    Detour.PrivateBuildingAIDetour <CommercialBuildingAI> .Deploy();
                }
                catch (Exception e)
                {
                    Debugger.LogException(e);
                }
                try
                {
                    Detour.PrivateBuildingAIDetour <IndustrialBuildingAI> .Deploy();
                }
                catch (Exception e)
                {
                    Debugger.LogException(e);
                }
                try
                {
                    Detour.PrivateBuildingAIDetour <OfficeBuildingAI> .Deploy();
                }
                catch (Exception e)
                {
                    Debugger.LogException(e);
                }
                try
                {
                    Detour.PoliciesPanelDetour.Deploy();
                }
                catch (Exception e)
                {
                    Debugger.LogException(e);
                }
                try
                {
                    Redirector <DistrictWorldInfoPanelDetour> .Deploy();

                    Debugger.Log("Building Themes: DistrictWorldInfoPanel Methods detoured!");
                }
                catch (Exception e)
                {
                    Debugger.LogException(e);
                }

                Debugger.Log("Building Themes: Mod successfully intialized.");
            }
            catch (Exception e)
            {
                Debugger.LogException(e);
            }
        }