Decompiled source of CloserStations v1.0.0

CloserStations.dll

Decompiled a day ago
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Reflection.Emit;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Configuration;
using DysonSphereMods.Shared;
using HarmonyLib;
using Microsoft.CodeAnalysis;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("Valoneu")]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyCopyright("Copyright © 2026")]
[assembly: AssemblyDescription("Allows placing logistics stations closer together.")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0+2d45d9837822a5d0885a9cf6f2b0ba179facf5da")]
[assembly: AssemblyProduct("DysonSphereMods")]
[assembly: AssemblyTitle("CloserStations")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace CloserStations
{
	[BepInPlugin("com.Valoneu.CloserStations", "CloserStations", "1.0.0")]
	[BepInProcess("DSPGAME.exe")]
	public class CloserStationsPlugin : BaseUnityPlugin
	{
		public static class CloserStationsPatch
		{
			[HarmonyPatch(typeof(BuildTool_Click), "CheckBuildConditions")]
			[HarmonyTranspiler]
			public static IEnumerable<CodeInstruction> Click_Transpiler(IEnumerable<CodeInstruction> instructions)
			{
				List<CodeInstruction> list = new List<CodeInstruction>(instructions);
				float value = DistanceMultiplier.Value;
				float num = value * value;
				for (int i = 0; i < list.Count; i++)
				{
					if (list[i].opcode == OpCodes.Ldc_R4)
					{
						float num2 = (float)list[i].operand;
						if (num2 == 225f || num2 == 625f || num2 == 841f || num2 == 14297f)
						{
							list[i].operand = num2 * num;
						}
					}
				}
				return list;
			}

			[HarmonyPatch(typeof(BuildTool_BlueprintPaste), "CheckBuildConditions")]
			[HarmonyTranspiler]
			public static IEnumerable<CodeInstruction> Blueprint_Transpiler(IEnumerable<CodeInstruction> instructions)
			{
				List<CodeInstruction> list = new List<CodeInstruction>(instructions);
				float value = DistanceMultiplier.Value;
				float num = value * value;
				for (int i = 0; i < list.Count; i++)
				{
					if (list[i].opcode == OpCodes.Ldc_R4)
					{
						float num2 = (float)list[i].operand;
						if (num2 == 225f || num2 == 625f || num2 == 841f || num2 == 14297f)
						{
							list[i].operand = num2 * num;
						}
					}
				}
				return list;
			}
		}

		public const string GUID = "com.Valoneu.CloserStations";

		public const string NAME = "CloserStations";

		public const string VERSION = "1.0.0";

		public static ConfigEntry<float> DistanceMultiplier;

		private void Awake()
		{
			//IL_0034: Unknown result type (might be due to invalid IL or missing references)
			DistanceMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("General", "DistanceMultiplier", 0.75f, "Multiplier for the minimum distance between logistics stations. Default is 0.75.");
			Log.Init(((BaseUnityPlugin)this).Logger);
			new Harmony("com.Valoneu.CloserStations").PatchAll(typeof(CloserStationsPatch));
			((BaseUnityPlugin)this).Logger.LogInfo((object)"CloserStations v1.0.0 loaded!");
		}
	}
	public static class MyPluginInfo
	{
		public const string PLUGIN_GUID = "com.Valoneu.CloserStations";

		public const string PLUGIN_NAME = "CloserStations";

		public const string PLUGIN_VERSION = "1.0.0";
	}
}

Shared.dll

Decompiled a day ago
using System;
using System.Diagnostics;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx.Logging;
using Microsoft.CodeAnalysis;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("Valoneu")]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyCopyright("Copyright © 2026")]
[assembly: AssemblyDescription("Shared utilities for Dyson Sphere Program mods")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0+2d45d9837822a5d0885a9cf6f2b0ba179facf5da")]
[assembly: AssemblyProduct("DysonSphereMods")]
[assembly: AssemblyTitle("Shared")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace DysonSphereMods.Shared
{
	public static class Log
	{
		private static ManualLogSource _logger;

		public static void Init(ManualLogSource logger)
		{
			_logger = logger;
		}

		public static void Debug(object data)
		{
			ManualLogSource logger = _logger;
			if (logger != null)
			{
				logger.LogDebug(data);
			}
		}

		public static void Info(object data)
		{
			ManualLogSource logger = _logger;
			if (logger != null)
			{
				logger.LogInfo(data);
			}
		}

		public static void Warning(object data)
		{
			ManualLogSource logger = _logger;
			if (logger != null)
			{
				logger.LogWarning(data);
			}
		}

		public static void Error(object data)
		{
			ManualLogSource logger = _logger;
			if (logger != null)
			{
				logger.LogError(data);
			}
		}

		public static void Fatal(object data)
		{
			ManualLogSource logger = _logger;
			if (logger != null)
			{
				logger.LogFatal(data);
			}
		}

		public static void Message(object data)
		{
			ManualLogSource logger = _logger;
			if (logger != null)
			{
				logger.LogMessage(data);
			}
		}

		public static void LogOnce(string msg, ref bool flag, params object[] args)
		{
			if (flag)
			{
				return;
			}
			flag = true;
			try
			{
				string[] array = ((args == null) ? Array.Empty<string>() : args.Select((object arg) => (arg != null) ? ((!(arg is int) && !(arg is string) && !arg.GetType().IsPrimitive) ? JsonUtility.ToJson(arg) : arg.ToString()) : "null").ToArray());
				object[] args2 = array;
				Info(string.Format(msg, args2));
			}
			catch (Exception arg2)
			{
				Warning($"LogOnce failed to format message: {msg}. Exception: {arg2}");
			}
		}
	}
	public static class MyPluginInfo
	{
		public const string PLUGIN_GUID = "Shared";

		public const string PLUGIN_NAME = "DysonSphereMods";

		public const string PLUGIN_VERSION = "1.0.0";
	}
}

StationDistance.dll

Decompiled a day ago
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Reflection.Emit;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Configuration;
using DysonSphereMods.Shared;
using HarmonyLib;
using Microsoft.CodeAnalysis;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("Valoneu")]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyCopyright("Copyright © 2026")]
[assembly: AssemblyDescription("Allows placing logistics stations closer together.")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0+2d45d9837822a5d0885a9cf6f2b0ba179facf5da")]
[assembly: AssemblyProduct("DysonSphereMods")]
[assembly: AssemblyTitle("StationDistance")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace StationDistance
{
	[BepInPlugin("com.Valoneu.StationDistance", "StationDistance", "1.0.0")]
	[BepInProcess("DSPGAME.exe")]
	public class StationDistancePlugin : BaseUnityPlugin
	{
		public static class StationDistancePatch
		{
			[HarmonyPatch(typeof(BuildTool_Click), "CheckBuildConditions")]
			[HarmonyTranspiler]
			public static IEnumerable<CodeInstruction> Click_Transpiler(IEnumerable<CodeInstruction> instructions)
			{
				List<CodeInstruction> list = new List<CodeInstruction>(instructions);
				float value = DistanceMultiplier.Value;
				float num = value * value;
				for (int i = 0; i < list.Count; i++)
				{
					if (list[i].opcode == OpCodes.Ldc_R4)
					{
						float num2 = (float)list[i].operand;
						if (num2 == 225f || num2 == 625f || num2 == 841f || num2 == 14297f)
						{
							list[i].operand = num2 * num;
						}
					}
				}
				return list;
			}

			[HarmonyPatch(typeof(BuildTool_BlueprintPaste), "CheckBuildConditions")]
			[HarmonyTranspiler]
			public static IEnumerable<CodeInstruction> Blueprint_Transpiler(IEnumerable<CodeInstruction> instructions)
			{
				List<CodeInstruction> list = new List<CodeInstruction>(instructions);
				float value = DistanceMultiplier.Value;
				float num = value * value;
				for (int i = 0; i < list.Count; i++)
				{
					if (list[i].opcode == OpCodes.Ldc_R4)
					{
						float num2 = (float)list[i].operand;
						if (num2 == 225f || num2 == 625f || num2 == 841f || num2 == 14297f)
						{
							list[i].operand = num2 * num;
						}
					}
				}
				return list;
			}
		}

		public const string GUID = "com.Valoneu.StationDistance";

		public const string NAME = "StationDistance";

		public const string VERSION = "1.0.0";

		public static ConfigEntry<float> DistanceMultiplier;

		private void Awake()
		{
			//IL_0034: Unknown result type (might be due to invalid IL or missing references)
			DistanceMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("General", "DistanceMultiplier", 0.75f, "Multiplier for the minimum distance between logistics stations. Default is 0.75.");
			Log.Init(((BaseUnityPlugin)this).Logger);
			new Harmony("com.Valoneu.StationDistance").PatchAll(typeof(StationDistancePatch));
			((BaseUnityPlugin)this).Logger.LogInfo((object)"StationDistance v1.0.0 loaded!");
		}
	}
	public static class MyPluginInfo
	{
		public const string PLUGIN_GUID = "com.Valoneu.StationDistance";

		public const string PLUGIN_NAME = "StationDistance";

		public const string PLUGIN_VERSION = "1.0.0";
	}
}