From 8d65318de024961f2151e96f13c7433997736968 Mon Sep 17 00:00:00 2001 From: mikx Date: Mon, 26 Jan 2026 16:09:43 -0500 Subject: [PATCH] added workbench range multiplier --- MxValheim.slnx | 2 +- MxValheim/MxValheim.cs | 6 +++--- MxValheim/MxValheim.csproj | 5 +++++ MxValheim/Patch/CraftingStation.cs | 25 +++++++++++++++++++++++++ 4 files changed, 34 insertions(+), 4 deletions(-) create mode 100644 MxValheim/Patch/CraftingStation.cs diff --git a/MxValheim.slnx b/MxValheim.slnx index 0f16135..9e7822a 100644 --- a/MxValheim.slnx +++ b/MxValheim.slnx @@ -1,3 +1,3 @@ - + diff --git a/MxValheim/MxValheim.cs b/MxValheim/MxValheim.cs index 758960d..da66742 100644 --- a/MxValheim/MxValheim.cs +++ b/MxValheim/MxValheim.cs @@ -9,9 +9,10 @@ public class MxValheimMod : BaseUnityPlugin { private const string ModGUID = "ovh.mxdev.mxvalheim"; private const string ModName = "MxValheim"; - private const string ModVersion = "1.0.0"; + private const string ModVersion = "1.1.0"; public static ConfigEntry OreMultiplier; + public static ConfigEntry rangeMultiplier; // Set your multiplier here public static int Multiplier = 3; @@ -19,10 +20,9 @@ public class MxValheimMod : BaseUnityPlugin void Awake() { OreMultiplier = Config.Bind("General","OreMultiplier",3,"How many items should drop for every 1 ore/scrap found."); + rangeMultiplier = Config.Bind("General", "CraftingRangeMultiplier",2.0f,"Multiplier for the workbench build/crafting range. Default is 2x."); Harmony harmony = new Harmony(ModGUID); harmony.PatchAll(); - - Logger.LogInfo($"{ModName} loaded with multiplier: {OreMultiplier.Value}x"); } } \ No newline at end of file diff --git a/MxValheim/MxValheim.csproj b/MxValheim/MxValheim.csproj index aa7d3b3..c2948fe 100644 --- a/MxValheim/MxValheim.csproj +++ b/MxValheim/MxValheim.csproj @@ -54,9 +54,14 @@ E:\SteamLibrary\steamapps\common\Valheim\Valheim_Data\Managed\UnityEngine.CoreModule.dll + + False + E:\SteamLibrary\steamapps\common\Valheim\Valheim_Data\Managed\UnityEngine.PhysicsModule.dll + + diff --git a/MxValheim/Patch/CraftingStation.cs b/MxValheim/Patch/CraftingStation.cs new file mode 100644 index 0000000..79f4442 --- /dev/null +++ b/MxValheim/Patch/CraftingStation.cs @@ -0,0 +1,25 @@ +using BepInEx; +using HarmonyLib; +using System.Collections.Generic; +using UnityEngine; + +namespace MxValheim.Patch +{ + public class CraftingStation_Patch + { + [HarmonyPatch(typeof(CraftingStation), "Start")] + static class CraftingStation_Start_Patch + { + static void Postfix(CraftingStation __instance) + { + var rangeField = Traverse.Create(__instance).Field("m_rangeBuild"); + + if (rangeField.FieldExists()) + { + float currentRange = rangeField.GetValue(); + rangeField.SetValue(currentRange * MxValheimMod.rangeMultiplier.Value); + } + } + } + } +}