Refactor settings to modulewingmanager

This commit is contained in:
2025-02-24 09:13:05 +01:00
parent fe5b4084ff
commit 255d563b86
3 changed files with 46 additions and 18 deletions

View File

@@ -5,6 +5,7 @@
<s:Boolean x:Key="/Default/AddReferences/RecentPaths/=C_003A_005CUsers_005CAdministrator_005CRiderProjects_005CBepinex_005CProjects_005CTerraTech_005Clibs_005CConfigurationManager_002Edll/@EntryIndexedValue">True</s:Boolean> <s:Boolean x:Key="/Default/AddReferences/RecentPaths/=C_003A_005CUsers_005CAdministrator_005CRiderProjects_005CBepinex_005CProjects_005CTerraTech_005Clibs_005CConfigurationManager_002Edll/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/AddReferences/RecentPaths/=C_003A_005CUsers_005CAdministrator_005CRiderProjects_005CBepinex_005CProjects_005CTerraTech_005Clibs_005CUnityEngine_002ECoreModule_002Edll/@EntryIndexedValue">True</s:Boolean> <s:Boolean x:Key="/Default/AddReferences/RecentPaths/=C_003A_005CUsers_005CAdministrator_005CRiderProjects_005CBepinex_005CProjects_005CTerraTech_005Clibs_005CUnityEngine_002ECoreModule_002Edll/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/AddReferences/RecentPaths/=C_003A_005CUsers_005CAdministrator_005CRiderProjects_005CBepinex_005CProjects_005CTerraTech_005Clibs_005CUnityEngine_002Edll/@EntryIndexedValue">True</s:Boolean> <s:Boolean x:Key="/Default/AddReferences/RecentPaths/=C_003A_005CUsers_005CAdministrator_005CRiderProjects_005CBepinex_005CProjects_005CTerraTech_005Clibs_005CUnityEngine_002Edll/@EntryIndexedValue">True</s:Boolean>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ABaseUnityPlugin_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F9185a461e2a54cd99ed3b83eace57b3d1f200_003F59_003Fb886ba39_003FBaseUnityPlugin_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/Environment/AssemblyExplorer/XmlDocument/@EntryValue">&lt;AssemblyExplorer /&gt;</s:String> <s:String x:Key="/Default/Environment/AssemblyExplorer/XmlDocument/@EntryValue">&lt;AssemblyExplorer /&gt;</s:String>
<s:String x:Key="/Default/Environment/Hierarchy/Build/BuildTool/CustomBuildToolPath/@EntryValue">C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe</s:String> <s:String x:Key="/Default/Environment/Hierarchy/Build/BuildTool/CustomBuildToolPath/@EntryValue">C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe</s:String>
<s:Int64 x:Key="/Default/Environment/Hierarchy/Build/BuildTool/MsbuildVersion/@EntryValue">262144</s:Int64> <s:Int64 x:Key="/Default/Environment/Hierarchy/Build/BuildTool/MsbuildVersion/@EntryValue">262144</s:Int64>

View File

@@ -57,11 +57,23 @@ namespace TerraTech {
public static ConfigEntry<float> fireDataKickbackStrengthMultiplier; public static ConfigEntry<float> fireDataKickbackStrengthMultiplier;
public static ConfigEntry<float> fireDataMuzzleVelocityMultiplier; public static ConfigEntry<float> fireDataMuzzleVelocityMultiplier;
public static ConfigEntry<float> boosterFanThrustMultiplier;
public static ConfigEntry<float> boosterJetThrustMultiplier;
public static ConfigEntry<float> energyOutputMultiplier;
public static ConfigEntry<float> powerUpDelayMultiplier;
public static ConfigEntry<float> batteryCapacityMultiplier;
public static ConfigEntry<float> shopBlocksGeneratedTotalMultiplier;
public void Awake() { public void Awake() {
debug = Config.Bind("General", "Debug", false); debug = Config.Bind("General", "Debug", false);
float min = 0.01f; float min = 0.01f;
float max = 32f; float max = 32f;
ModuleWingManager.Setup(Config);
xpMultiplier = xpMultiplier =
Config.Bind("General", "XP Multiplier", 1f, Config.Bind("General", "XP Multiplier", 1f,
new ConfigDescription("XP Multiplier", new AcceptableValueRange<float>(min, max))); new ConfigDescription("XP Multiplier", new AcceptableValueRange<float>(min, max)));
@@ -94,20 +106,6 @@ namespace TerraTech {
new ConfigDescription("Shield Radius Multiplier Healing", new AcceptableValueRange<float>(min, max))); new ConfigDescription("Shield Radius Multiplier Healing", new AcceptableValueRange<float>(min, max)));
shieldRadiusMultiplierHealing.SettingChanged += (sender, args) => ModuleShieldGeneratorManager.DoPatch(); shieldRadiusMultiplierHealing.SettingChanged += (sender, args) => ModuleShieldGeneratorManager.DoPatch();
aerofoilAngleRangeMultiplier = Config.Bind(
"Aerofoil", "Aerofoil Angle Range Multiplier", 1f,
new ConfigDescription("Aerofoil Angle Range Multiplier", new AcceptableValueRange<float>(min, max)));
aerofoilAngleRangeMultiplier.SettingChanged += (sender, args) => ModuleWingManager.DoPatch();
aerofoilAngleTurnSpeedMultiplier =
Config.Bind("Aerofoil", "Aerofoil Angle Turn Speed Multiplier", 1f,
new ConfigDescription("Aerofoil Angle Turn Speed Multiplier",
new AcceptableValueRange<float>(min, max)));
aerofoilAngleTurnSpeedMultiplier.SettingChanged += (sender, args) => ModuleWingManager.DoPatch();
aerofoilLiftStrengthMultiplier = Config.Bind(
"Aerofoil", "Aerofoil Lift Strength Multiplier", 1f,
new ConfigDescription("Aerofoil Lift Strength Multiplier", new AcceptableValueRange<float>(min, max)));
aerofoilLiftStrengthMultiplier.SettingChanged += (sender, args) => ModuleWingManager.DoPatch();
fireDataKickbackStrengthMultiplier = fireDataKickbackStrengthMultiplier =
Config.Bind("FireData", "Fire Data Kickback Strength Multiplier", 1f, Config.Bind("FireData", "Fire Data Kickback Strength Multiplier", 1f,
new ConfigDescription("Fire Data Kickback Strength Multiplier", new ConfigDescription("Fire Data Kickback Strength Multiplier",

View File

@@ -1,4 +1,5 @@
using System; using System;
using BepInEx.Configuration;
using HarmonyLib; using HarmonyLib;
namespace TerraTech { namespace TerraTech {
@@ -6,13 +7,41 @@ namespace TerraTech {
public class ModuleWingManager { public class ModuleWingManager {
private static readonly MultipliedObjectManager<ModuleWing.Aerofoil> manager = private static readonly MultipliedObjectManager<ModuleWing.Aerofoil> manager =
new MultipliedObjectManager<ModuleWing.Aerofoil>(ConfigureAerofoil); new MultipliedObjectManager<ModuleWing.Aerofoil>(ConfigureAerofoil);
public static ConfigEntry<float> aerofoilAngleRangeMultiplier;
public static ConfigEntry<float> aerofoilAngleTurnSpeedMultiplier;
public static ConfigEntry<float> aerofoilLiftStrengthMultiplier;
public static void Setup(ConfigFile config) {
float min = 0.01f;
float max = 32f;
aerofoilAngleRangeMultiplier = config.Bind(
"Aerofoil", "Aerofoil Angle Range Multiplier", 1f,
new ConfigDescription("Aerofoil Angle Range Multiplier", new AcceptableValueRange<float>(min, max)));
aerofoilAngleRangeMultiplier.SettingChanged += (sender, args) => ModuleWingManager.DoPatch();
aerofoilAngleTurnSpeedMultiplier =
config.Bind("Aerofoil", "Aerofoil Angle Turn Speed Multiplier", 1f,
new ConfigDescription("Aerofoil Angle Turn Speed Multiplier",
new AcceptableValueRange<float>(min, max)));
aerofoilAngleTurnSpeedMultiplier.SettingChanged += (sender, args) => ModuleWingManager.DoPatch();
aerofoilLiftStrengthMultiplier = config.Bind(
"Aerofoil", "Aerofoil Lift Strength Multiplier", 1f,
new ConfigDescription("Aerofoil Lift Strength Multiplier", new AcceptableValueRange<float>(min, max)));
aerofoilLiftStrengthMultiplier.SettingChanged += (sender, args) => ModuleWingManager.DoPatch();
}
private static void ConfigureAerofoil(MultipliedObject<ModuleWing.Aerofoil> obj) { private static void ConfigureAerofoil(MultipliedObject<ModuleWing.Aerofoil> obj) {
obj.AddField(new FieldConfiguration<float>("flipAngleRangeActual", Main.aerofoilAngleRangeMultiplier)); obj.AddField(
obj.AddField(new FieldConfiguration<float>("flipAngleRangeVisual", Main.aerofoilAngleRangeMultiplier)); new FieldConfiguration<float>("flipAngleRangeActual", ModuleWingManager.aerofoilAngleRangeMultiplier));
obj.AddField(
new FieldConfiguration<float>("flipAngleRangeVisual", ModuleWingManager.aerofoilAngleRangeMultiplier));
obj.AddField(new FieldConfiguration<float>("flipAngleTurnSpeed", Main.aerofoilAngleTurnSpeedMultiplier)); obj.AddField(new FieldConfiguration<float>("flipAngleTurnSpeed",
obj.AddField(new FieldConfiguration<float>("liftStrength", Main.aerofoilLiftStrengthMultiplier)); ModuleWingManager.aerofoilAngleTurnSpeedMultiplier));
obj.AddField(
new FieldConfiguration<float>("liftStrength", ModuleWingManager.aerofoilLiftStrengthMultiplier));
} }
[HarmonyPrefix] [HarmonyPrefix]