private void Unload()
 {
     SaberTailorPatches.RemoveHarmonyPatches();
     ScoreUtility.Cleanup();
     Configuration.Save();
     RemoveEvents();
 }
        private void Unload()
        {
            SaberTailorPatches.RemoveHarmonyPatches();
            Configuration.Save();
            RemoveEvents();

            if (IsBSMLAvailable)
            {
                RemoveMenu();
            }
        }
        private void Load()
        {
            Configuration.Load();
            AddEvents();

            if (Configuration.Grip.IsGripModEnabled)
            {
                SaberTailorPatches.ApplyHarmonyPatches();
            }

            Logger.log.Info($"{PluginName} v.{PluginVersion} has started.");
        }
 private void Unload()
 {
     SaberTailorPatches.RemoveHarmonyPatches();
     Configuration.Save();
     RemoveEvents();
 }
Beispiel #5
0
        private static void LoadConfig(ConfigSection cfgSection = ConfigSection.All)
        {
            #region Internal settings
            ConfigVersion = PluginConfig.Instance.ConfigVersion;
            #endregion

            #region Saber scale
            if (cfgSection == ConfigSection.All || cfgSection == ConfigSection.Scale)
            {
                Scale.TweakEnabled = PluginConfig.Instance.IsSaberScaleModEnabled;
                Scale.ScaleHitBox  = PluginConfig.Instance.SaberScaleHitbox;

                if (PluginConfig.Instance.SaberLength < 5 || PluginConfig.Instance.SaberLength > 500)
                {
                    ScaleCfg.Length = 100;
                }
                else
                {
                    ScaleCfg.Length = PluginConfig.Instance.SaberLength;
                }

                if (PluginConfig.Instance.SaberGirth < 5 || PluginConfig.Instance.SaberGirth > 500)
                {
                    ScaleCfg.Girth = 100;
                }
                else
                {
                    ScaleCfg.Girth = PluginConfig.Instance.SaberGirth;
                }
            }
            #endregion

            #region Saber trail
            if (cfgSection == ConfigSection.All || cfgSection == ConfigSection.Scale)
            {
                Trail.TweakEnabled         = PluginConfig.Instance.IsTrailModEnabled;
                Trail.TrailEnabled         = PluginConfig.Instance.IsTrailEnabled;
                Trail.Duration             = Mathf.Clamp(PluginConfig.Instance.TrailDuration, 100, 5000);
                Trail.Granularity          = Mathf.Clamp(PluginConfig.Instance.TrailGranularity, 10, 200);
                Trail.WhiteSectionDuration = Mathf.Clamp(PluginConfig.Instance.TrailWhiteSectionDuration, 0, 2000);
            }
            #endregion

            #region Saber grip
            // Even though the field says GripLeftRotation/GripRightRotation, it is actually the Cfg values that are loaded!
            if (cfgSection == ConfigSection.All || cfgSection == ConfigSection.Grip || cfgSection == ConfigSection.GripLeft)
            {
                Int3 gripLeftPosition = PluginConfig.Instance.GripLeftPosition ?? Int3.zero;
                GripCfg.PosLeft = new Int3()
                {
                    x = Mathf.Clamp(gripLeftPosition.x, -500, 500),
                    y = Mathf.Clamp(gripLeftPosition.y, -500, 500),
                    z = Mathf.Clamp(gripLeftPosition.z, -500, 500)
                };

                Int3 gripLeftRotation = PluginConfig.Instance.GripLeftRotation ?? Int3.zero;
                GripCfg.RotLeft = new Int3(gripLeftRotation);

                Int3 gripLeftOffset = PluginConfig.Instance.GripLeftOffset ?? Int3.zero;
                GripCfg.OffsetLeft = new Int3()
                {
                    x = Mathf.Clamp(gripLeftOffset.x, -500, 500),
                    y = Mathf.Clamp(gripLeftOffset.y, -500, 500),
                    z = Mathf.Clamp(gripLeftOffset.z, -500, 500)
                };
            }

            if (cfgSection == ConfigSection.All || cfgSection == ConfigSection.Grip || cfgSection == ConfigSection.GripRight)
            {
                Int3 gripRightPosition = PluginConfig.Instance.GripRightPosition ?? Int3.zero;
                GripCfg.PosRight = new Int3()
                {
                    x = Mathf.Clamp(gripRightPosition.x, -500, 500),
                    y = Mathf.Clamp(gripRightPosition.y, -500, 500),
                    z = Mathf.Clamp(gripRightPosition.z, -500, 500)
                };

                Int3 gripRightRotation = PluginConfig.Instance.GripRightRotation ?? Int3.zero;
                GripCfg.RotRight = new Int3(gripRightRotation);

                Int3 gripRightOffset = PluginConfig.Instance.GripRightOffset ?? Int3.zero;
                GripCfg.OffsetRight = new Int3()
                {
                    x = Mathf.Clamp(gripRightOffset.x, -500, 500),
                    y = Mathf.Clamp(gripRightOffset.y, -500, 500),
                    z = Mathf.Clamp(gripRightOffset.z, -500, 500)
                };
            }

            if (cfgSection == ConfigSection.All || cfgSection == ConfigSection.Grip)
            {
                Grip.IsGripModEnabled          = PluginConfig.Instance.IsGripModEnabled;
                Grip.ModifyMenuHiltGrip        = PluginConfig.Instance.ModifyMenuHiltGrip;
                Grip.UseBaseGameAdjustmentMode = PluginConfig.Instance.UseBaseGameAdjustmentMode;
            }
            #endregion

            #region Menu settings
            if (cfgSection == ConfigSection.All || cfgSection == ConfigSection.Menu)
            {
                Menu.SaberPosIncrement = Mathf.Clamp(PluginConfig.Instance.SaberPosIncrement, 1, 200);
                Menu.SaberPosIncValue  = Mathf.Clamp(PluginConfig.Instance.SaberPosIncValue, 1, 20);
                Menu.SaberRotIncrement = Mathf.Clamp(PluginConfig.Instance.SaberRotIncrement, 1, 20);

                Menu.SaberPosDisplayUnit = Enum.TryParse(PluginConfig.Instance.SaberPosDisplayUnit, out PositionDisplayUnit displayUnit)
                    ? displayUnit
                    : PositionDisplayUnit.cm;

                Menu.SaberPosIncUnit = Enum.TryParse(PluginConfig.Instance.SaberPosIncUnit, out PositionUnit positionUnit)
                    ? positionUnit
                    : PositionUnit.cm;
            }
            #endregion

            SaberTailorPatches.CheckHarmonyPatchStatus();
        }