diff --git a/Projects/TerraTech/TerraTech/Class1.cs b/Projects/TerraTech/TerraTech/Class1.cs index 388a5cb..d0d2c5c 100644 --- a/Projects/TerraTech/TerraTech/Class1.cs +++ b/Projects/TerraTech/TerraTech/Class1.cs @@ -35,6 +35,9 @@ namespace TerraTech { public static ConfigEntry seekingProjectileVisionConeAngleMultiplier; public static ConfigEntry seekingProjectileVisionRangeMultiplier; public static ConfigEntry seekingProjectileTurningSpeedMultiplier; + public static ConfigEntry wirelessChargingRadiusMultiplier; + public static ConfigEntry wirelessChargingPowerPerArcMultiplier; + public static ConfigEntry wirelessChargingArcFiringIntervalMultiplier; public void Awake() { xpMultiplier = Config.Bind("General", "XP Multiplier", 1f, new ConfigDescription("XP Multiplier", new AcceptableValueRange(1f, 32f))); @@ -64,6 +67,13 @@ namespace TerraTech { new ConfigDescription("Beam Strength Multiplier", new AcceptableValueRange(1f, 16f))); beamRadiusMultiplier = Config.Bind("Attractors", "Beam Radius Multiplier", 1f, new ConfigDescription("Beam Radius Multiplier", new AcceptableValueRange(1f, 16f))); + + wirelessChargingRadiusMultiplier = Config.Bind("Power", "Wireless Charger Radius Multiplier", 1f, + new ConfigDescription("Wireless Charger Radius Multiplier", new AcceptableValueRange(0.2f, 16f))); + wirelessChargingArcFiringIntervalMultiplier = Config.Bind("Power", "Wireless Charger Arc Firing Interval", 1f, + new ConfigDescription("Wireless Charger Arc Firing Interval", new AcceptableValueRange(0.02f, 16f))); + wirelessChargingPowerPerArcMultiplier = Config.Bind("Power", "Wireless Charger Power Per Arc", 1f, + new ConfigDescription("Wireless Charger Power Per Arc", new AcceptableValueRange(0.2f, 16f))); fuelTankRefillMultiplier = Config.Bind("Propulsion", "Fuel Tank Refill Rate Multiplier", 1f, new ConfigDescription("Fuel Tank Refill Rate Multiplier", new AcceptableValueRange(1f, 32f))); @@ -96,6 +106,9 @@ namespace TerraTech { jetThrustMultiplier.SettingChanged += (sender, args) => ThrusterPropertiesManager.DoPatch(); minerGroundArea.SettingChanged += (sender, args) => MinerPropertiesManager.DoPatch(); minerMiningSpeed.SettingChanged += (sender, args) => MinerPropertiesManager.DoPatch(); + wirelessChargingPowerPerArcMultiplier.SettingChanged += (sender, args) => WirelessChargerPropertiesManager.DoPatch(); + wirelessChargingArcFiringIntervalMultiplier.SettingChanged += (sender, args) => WirelessChargerPropertiesManager.DoPatch(); + wirelessChargingRadiusMultiplier.SettingChanged += (sender, args) => WirelessChargerPropertiesManager.DoPatch(); Logger.LogInfo("Cyka mod loaded"); HarmonyFileLog.Enabled = true; diff --git a/Projects/TerraTech/TerraTech/Patches.cs b/Projects/TerraTech/TerraTech/Patches.cs index 5582502..8bc5ea8 100644 --- a/Projects/TerraTech/TerraTech/Patches.cs +++ b/Projects/TerraTech/TerraTech/Patches.cs @@ -1,24 +1,24 @@ using HarmonyLib; namespace TerraTech { - [HarmonyPatch] - public class Patches { - [HarmonyPrefix] - [HarmonyPatch(typeof(ManLicenses), "AddXP")] - static void XPMulti(FactionSubTypes corporation, ref int xp, bool showUI = true) { - xp = (int)(xp * Main.xpMultiplier.Value); - } + [HarmonyPatch] + public class Patches { + [HarmonyPrefix] + [HarmonyPatch(typeof(ManLicenses), "AddXP")] + static void XPMulti(FactionSubTypes corporation, ref int xp, bool showUI = true) { + xp = (int)(xp * Main.xpMultiplier.Value); + } - [HarmonyPrefix] - [HarmonyPatch(typeof(ManPlayer), "AddMoney")] - static void MoneyMulti(ref int amount) { - amount = (int)(amount * Main.moneyMultiplier.Value); - } + [HarmonyPrefix] + [HarmonyPatch(typeof(ManPlayer), "AddMoney")] + static void MoneyMulti(ref int amount) { + amount = (int)(amount * Main.moneyMultiplier.Value); + } - [HarmonyPrefix] - [HarmonyPatch(typeof(TechHolders), "SetHeartbeatInterval")] - static void HeartbeatMulti(ref float interval) { - interval *= Main.heartbeatIntervalMultiplier.Value; - } - } + [HarmonyPrefix] + [HarmonyPatch(typeof(TechHolders), "SetHeartbeatInterval")] + static void HeartbeatMulti(ref float interval) { + interval *= Main.heartbeatIntervalMultiplier.Value; + } + } } \ No newline at end of file diff --git a/Projects/TerraTech/TerraTech/TerraTech.csproj b/Projects/TerraTech/TerraTech/TerraTech.csproj index 313c26e..257846a 100644 --- a/Projects/TerraTech/TerraTech/TerraTech.csproj +++ b/Projects/TerraTech/TerraTech/TerraTech.csproj @@ -45,6 +45,7 @@ + diff --git a/Projects/TerraTech/TerraTech/WirelessChargerPropertiesManager.cs b/Projects/TerraTech/TerraTech/WirelessChargerPropertiesManager.cs new file mode 100644 index 0000000..92aedcb --- /dev/null +++ b/Projects/TerraTech/TerraTech/WirelessChargerPropertiesManager.cs @@ -0,0 +1,60 @@ +using System.Collections.Generic; +using HarmonyLib; + +// TODO: Fix this, no workey +namespace TerraTech { + [HarmonyPatch] + public class WirelessChargerPropertiesManager { + private static Dictionary radius = new Dictionary(); + private static Dictionary transferPerArc = new Dictionary(); + private static Dictionary arcFiringInterval = new Dictionary(); + + [HarmonyPrefix] + [HarmonyPatch(typeof(ModuleRemoteCharger), "OnAttached")] + static void PostfixCreate(ModuleRemoteCharger __instance) { + // Console.WriteLine("ModuleRemoteCharger.OnAttached"); + if (!radius.ContainsKey(__instance)) { + radius.Add(__instance, __instance.m_ChargingRadius); + transferPerArc.Add(__instance, __instance.m_PowerTransferPerArc); + arcFiringInterval.Add(__instance, __instance.m_ArcFiringInterval); + // Console.WriteLine("Patching {0}; m_RefillRate: {1}; m_Capacity: {2}", __instance.name, __instance.m_RefillRate, __instance.m_Capacity); + DoPatchSingle(__instance); + // Console.WriteLine("Patched {0}; m_RefillRate: {1}; m_Capacity: {2}", __instance.name, __instance.m_RefillRate, __instance.m_Capacity); + } + } + + [HarmonyPrefix] + [HarmonyPatch(typeof(ModuleRemoteCharger), "OnDetaching")] + static void PostfixDestroy(ModuleRemoteCharger __instance) { + // Console.WriteLine("ModuleRemoteCharger.OnAttached"); + // Console.WriteLine("Restoring {0}; m_RefillRate: {1}; m_Capacity: {2}", __instance.name, __instance.m_RefillRate, __instance.m_Capacity); + DoRestoreSingle(__instance); + // Console.WriteLine("Restored {0}; m_RefillRate: {1}; m_Capacity: {2}", __instance.name, __instance.m_RefillRate, __instance.m_Capacity); + radius.Remove(__instance); + transferPerArc.Remove(__instance); + arcFiringInterval.Remove(__instance); + } + + public static void DoPatch() { + // Console.WriteLine("Modifying {0} ModuleRemoteCharger", radius.Count); + foreach (KeyValuePair keyValuePair in radius) { + DoRestoreSingle(keyValuePair.Key); + DoPatchSingle(keyValuePair.Key); + } + } + + static void DoPatchSingle(ModuleRemoteCharger moduleRemoteCharger) { + moduleRemoteCharger.m_ChargingRadius = radius[moduleRemoteCharger] * Main.wirelessChargingRadiusMultiplier.Value; + moduleRemoteCharger.m_PowerTransferPerArc = radius[moduleRemoteCharger] * Main.wirelessChargingPowerPerArcMultiplier.Value; + moduleRemoteCharger.m_ArcFiringInterval = radius[moduleRemoteCharger] * Main.wirelessChargingArcFiringIntervalMultiplier.Value; + } + + static void DoRestoreSingle(ModuleRemoteCharger moduleRemoteCharger) { + if (radius.ContainsKey(moduleRemoteCharger)) { + moduleRemoteCharger.m_ChargingRadius = radius[moduleRemoteCharger]; + moduleRemoteCharger.m_PowerTransferPerArc = radius[moduleRemoteCharger]; + moduleRemoteCharger.m_ArcFiringInterval = radius[moduleRemoteCharger]; + } + } + } +} \ No newline at end of file diff --git a/Projects/TerraTech/TerraTech/bin/Debug/0Harmony.dll b/Projects/TerraTech/TerraTech/bin/Debug/0Harmony.dll deleted file mode 100644 index 99daef7..0000000 Binary files a/Projects/TerraTech/TerraTech/bin/Debug/0Harmony.dll and /dev/null differ diff --git a/Projects/TerraTech/TerraTech/bin/Debug/Assembly-CSharp.dll b/Projects/TerraTech/TerraTech/bin/Debug/Assembly-CSharp.dll deleted file mode 100644 index 7ee05db..0000000 Binary files a/Projects/TerraTech/TerraTech/bin/Debug/Assembly-CSharp.dll and /dev/null differ diff --git a/Projects/TerraTech/TerraTech/bin/Debug/BepInEx.dll b/Projects/TerraTech/TerraTech/bin/Debug/BepInEx.dll deleted file mode 100644 index 2fb6c0d..0000000 Binary files a/Projects/TerraTech/TerraTech/bin/Debug/BepInEx.dll and /dev/null differ diff --git a/Projects/TerraTech/TerraTech/bin/Debug/ConfigurationManager.dll b/Projects/TerraTech/TerraTech/bin/Debug/ConfigurationManager.dll deleted file mode 100644 index 3998c2b..0000000 Binary files a/Projects/TerraTech/TerraTech/bin/Debug/ConfigurationManager.dll and /dev/null differ diff --git a/Projects/TerraTech/TerraTech/bin/Debug/TerraTech.dll b/Projects/TerraTech/TerraTech/bin/Debug/TerraTech.dll deleted file mode 100644 index 2364d5c..0000000 Binary files a/Projects/TerraTech/TerraTech/bin/Debug/TerraTech.dll and /dev/null differ diff --git a/Projects/TerraTech/TerraTech/bin/Debug/TerraTech.pdb b/Projects/TerraTech/TerraTech/bin/Debug/TerraTech.pdb deleted file mode 100644 index 7230ea2..0000000 Binary files a/Projects/TerraTech/TerraTech/bin/Debug/TerraTech.pdb and /dev/null differ diff --git a/Projects/TerraTech/TerraTech/bin/Debug/UnityEngine.CoreModule.dll b/Projects/TerraTech/TerraTech/bin/Debug/UnityEngine.CoreModule.dll deleted file mode 100644 index ac13d57..0000000 Binary files a/Projects/TerraTech/TerraTech/bin/Debug/UnityEngine.CoreModule.dll and /dev/null differ diff --git a/Projects/TerraTech/TerraTech/bin/Debug/UnityEngine.dll b/Projects/TerraTech/TerraTech/bin/Debug/UnityEngine.dll deleted file mode 100644 index 19ea58a..0000000 Binary files a/Projects/TerraTech/TerraTech/bin/Debug/UnityEngine.dll and /dev/null differ diff --git a/Projects/TerraTech/TerraTech/bin/Release/0Harmony.dll b/Projects/TerraTech/TerraTech/bin/Release/0Harmony.dll deleted file mode 100644 index 99daef7..0000000 Binary files a/Projects/TerraTech/TerraTech/bin/Release/0Harmony.dll and /dev/null differ diff --git a/Projects/TerraTech/TerraTech/bin/Release/Assembly-CSharp.dll b/Projects/TerraTech/TerraTech/bin/Release/Assembly-CSharp.dll deleted file mode 100644 index 7ee05db..0000000 Binary files a/Projects/TerraTech/TerraTech/bin/Release/Assembly-CSharp.dll and /dev/null differ diff --git a/Projects/TerraTech/TerraTech/bin/Release/BepInEx.dll b/Projects/TerraTech/TerraTech/bin/Release/BepInEx.dll deleted file mode 100644 index 2fb6c0d..0000000 Binary files a/Projects/TerraTech/TerraTech/bin/Release/BepInEx.dll and /dev/null differ diff --git a/Projects/TerraTech/TerraTech/bin/Release/TerraTech.dll b/Projects/TerraTech/TerraTech/bin/Release/TerraTech.dll deleted file mode 100644 index c1e0eff..0000000 Binary files a/Projects/TerraTech/TerraTech/bin/Release/TerraTech.dll and /dev/null differ diff --git a/Projects/TerraTech/TerraTech/bin/Release/TerraTech.pdb b/Projects/TerraTech/TerraTech/bin/Release/TerraTech.pdb deleted file mode 100644 index 09ba880..0000000 Binary files a/Projects/TerraTech/TerraTech/bin/Release/TerraTech.pdb and /dev/null differ diff --git a/Projects/TerraTech/TerraTech/bin/Release/UnityEngine.CoreModule.dll b/Projects/TerraTech/TerraTech/bin/Release/UnityEngine.CoreModule.dll deleted file mode 100644 index ac13d57..0000000 Binary files a/Projects/TerraTech/TerraTech/bin/Release/UnityEngine.CoreModule.dll and /dev/null differ diff --git a/Projects/TerraTech/TerraTech/bin/Release/UnityEngine.dll b/Projects/TerraTech/TerraTech/bin/Release/UnityEngine.dll deleted file mode 100644 index 19ea58a..0000000 Binary files a/Projects/TerraTech/TerraTech/bin/Release/UnityEngine.dll and /dev/null differ diff --git a/Projects/TerraTech/TerraTech/obj/Debug/TerraTech.csproj.FileListAbsolute.txt b/Projects/TerraTech/TerraTech/obj/Debug/TerraTech.csproj.FileListAbsolute.txt index 8de8814..ff00c4c 100644 --- a/Projects/TerraTech/TerraTech/obj/Debug/TerraTech.csproj.FileListAbsolute.txt +++ b/Projects/TerraTech/TerraTech/obj/Debug/TerraTech.csproj.FileListAbsolute.txt @@ -9,3 +9,4 @@ C:\Users\Administrator\RiderProjects\Bepinex\Projects\TerraTech\TerraTech\obj\De C:\Users\Administrator\RiderProjects\Bepinex\Projects\TerraTech\TerraTech\obj\Debug\TerraTech.dll C:\Users\Administrator\RiderProjects\Bepinex\Projects\TerraTech\TerraTech\obj\Debug\TerraTech.pdb C:\Users\Administrator\RiderProjects\Bepinex\Projects\TerraTech\TerraTech\bin\Debug\ConfigurationManager.dll +C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\TerraTech\TerraTech\obj\Debug\TerraTech.csprojResolveAssemblyReference.cache diff --git a/Projects/TerraTech/TerraTech/obj/Debug/TerraTech.dll b/Projects/TerraTech/TerraTech/obj/Debug/TerraTech.dll deleted file mode 100644 index 2364d5c..0000000 Binary files a/Projects/TerraTech/TerraTech/obj/Debug/TerraTech.dll and /dev/null differ diff --git a/Projects/TerraTech/TerraTech/obj/Debug/TerraTech.pdb b/Projects/TerraTech/TerraTech/obj/Debug/TerraTech.pdb deleted file mode 100644 index 7230ea2..0000000 Binary files a/Projects/TerraTech/TerraTech/obj/Debug/TerraTech.pdb and /dev/null differ diff --git a/Projects/TerraTech/libs/0Harmony.dll b/Projects/TerraTech/libs/0Harmony.dll deleted file mode 100644 index 99daef7..0000000 Binary files a/Projects/TerraTech/libs/0Harmony.dll and /dev/null differ diff --git a/Projects/TerraTech/libs/Assembly-CSharp.dll b/Projects/TerraTech/libs/Assembly-CSharp.dll deleted file mode 100644 index 7ee05db..0000000 Binary files a/Projects/TerraTech/libs/Assembly-CSharp.dll and /dev/null differ diff --git a/Projects/TerraTech/libs/BepInEx.dll b/Projects/TerraTech/libs/BepInEx.dll deleted file mode 100644 index 2fb6c0d..0000000 Binary files a/Projects/TerraTech/libs/BepInEx.dll and /dev/null differ diff --git a/Projects/TerraTech/libs/ConfigurationManager.dll b/Projects/TerraTech/libs/ConfigurationManager.dll deleted file mode 100644 index 3998c2b..0000000 Binary files a/Projects/TerraTech/libs/ConfigurationManager.dll and /dev/null differ diff --git a/Projects/TerraTech/libs/UnityEngine.CoreModule.dll b/Projects/TerraTech/libs/UnityEngine.CoreModule.dll deleted file mode 100644 index ac13d57..0000000 Binary files a/Projects/TerraTech/libs/UnityEngine.CoreModule.dll and /dev/null differ diff --git a/Projects/TerraTech/libs/UnityEngine.dll b/Projects/TerraTech/libs/UnityEngine.dll deleted file mode 100644 index 19ea58a..0000000 Binary files a/Projects/TerraTech/libs/UnityEngine.dll and /dev/null differ