added workbench range multiplier

This commit is contained in:
mikx
2026-01-26 16:09:43 -05:00
parent ddda4cd90b
commit 8d65318de0
4 changed files with 34 additions and 4 deletions

View File

@@ -1,3 +1,3 @@
<Solution>
<Project Path="MxValheim/MxValheim.csproj" />
<Project Path="MxValheim/MxValheim.csproj" Id="49a57ac4-1a2b-4603-8559-af3cb950b40e" />
</Solution>

View File

@@ -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<int> OreMultiplier;
public static ConfigEntry<float> 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");
}
}

View File

@@ -54,9 +54,14 @@
<Reference Include="UnityEngine.CoreModule">
<HintPath>E:\SteamLibrary\steamapps\common\Valheim\Valheim_Data\Managed\UnityEngine.CoreModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.PhysicsModule, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>E:\SteamLibrary\steamapps\common\Valheim\Valheim_Data\Managed\UnityEngine.PhysicsModule.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="MxValheim.cs" />
<Compile Include="Patch\CraftingStation.cs" />
<Compile Include="Patch\Ores.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>

View File

@@ -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<float>();
rangeField.SetValue(currentRange * MxValheimMod.rangeMultiplier.Value);
}
}
}
}
}