1
0
mirror of https://github.com/soarqin/DSP_Mods.git synced 2026-02-04 17:02:17 +08:00

donet format

This commit is contained in:
2025-09-21 15:38:03 +08:00
parent 5f37b8b6d6
commit a25f74443d
32 changed files with 170 additions and 155 deletions

View File

@@ -25,7 +25,7 @@ public static class DysonSphereFunctions
private static readonly double factor2 = RawToDouble(rawNum2); private static readonly double factor2 = RawToDouble(rawNum2);
private static readonly double factor3 = RawToDouble(rawNum3); private static readonly double factor3 = RawToDouble(rawNum3);
private static readonly PrecalculatedTriangle[] PrecalculatedTriangles = [ private static readonly PrecalculatedTriangle[] PrecalculatedTriangles = [
new PrecalculatedTriangle() { MaxOrbitRadius = 6869, PosA = new Vector3() { x = RawToFloat(0x00000000U), y = RawToFloat(0x00000000U), z = RawToFloat(0x45D66000U)}, PosB = new Vector3() { x = RawToFloat(0x2C88BEC4U), y = RawToFloat(0x00000000U), z = RawToFloat(0xC5D66000U)}, PosC = new Vector3() { x = RawToFloat(0xC5D66000U), y = RawToFloat(0x00000000U), z = RawToFloat(0xABB1589BU)} }, new PrecalculatedTriangle() { MaxOrbitRadius = 6869, PosA = new Vector3() { x = RawToFloat(0x00000000U), y = RawToFloat(0x00000000U), z = RawToFloat(0x45D66000U)}, PosB = new Vector3() { x = RawToFloat(0x2C88BEC4U), y = RawToFloat(0x00000000U), z = RawToFloat(0xC5D66000U)}, PosC = new Vector3() { x = RawToFloat(0xC5D66000U), y = RawToFloat(0x00000000U), z = RawToFloat(0xABB1589BU)} },
new PrecalculatedTriangle() { MaxOrbitRadius = 13573, PosA = new Vector3() { x = RawToFloat(0x46540800U), y = RawToFloat(0x00000000U), z = RawToFloat(0x2C87400AU)}, PosB = new Vector3() { x = RawToFloat(0x4652DEA6U), y = RawToFloat(0x00000000U), z = RawToFloat(0xC4B14E71U)}, PosC = new Vector3() { x = RawToFloat(0xC6540800U), y = RawToFloat(0x00000000U), z = RawToFloat(0xAC2F683EU)} }, new PrecalculatedTriangle() { MaxOrbitRadius = 13573, PosA = new Vector3() { x = RawToFloat(0x46540800U), y = RawToFloat(0x00000000U), z = RawToFloat(0x2C87400AU)}, PosB = new Vector3() { x = RawToFloat(0x4652DEA6U), y = RawToFloat(0x00000000U), z = RawToFloat(0xC4B14E71U)}, PosC = new Vector3() { x = RawToFloat(0xC6540800U), y = RawToFloat(0x00000000U), z = RawToFloat(0xAC2F683EU)} },
new PrecalculatedTriangle() { MaxOrbitRadius = 21257, PosA = new Vector3() { x = RawToFloat(0x46A60400U), y = RawToFloat(0x00000000U), z = RawToFloat(0x2CD3CBAAU)}, PosB = new Vector3() { x = RawToFloat(0xC6070C9DU), y = RawToFloat(0x00000000U), z = RawToFloat(0xC697A9AEU)}, PosC = new Vector3() { x = RawToFloat(0xC6A60400U), y = RawToFloat(0x00000000U), z = RawToFloat(0xAC8956FFU)} }, new PrecalculatedTriangle() { MaxOrbitRadius = 21257, PosA = new Vector3() { x = RawToFloat(0x46A60400U), y = RawToFloat(0x00000000U), z = RawToFloat(0x2CD3CBAAU)}, PosB = new Vector3() { x = RawToFloat(0xC6070C9DU), y = RawToFloat(0x00000000U), z = RawToFloat(0xC697A9AEU)}, PosC = new Vector3() { x = RawToFloat(0xC6A60400U), y = RawToFloat(0x00000000U), z = RawToFloat(0xAC8956FFU)} },
new PrecalculatedTriangle() { MaxOrbitRadius = 29718, PosA = new Vector3() { x = RawToFloat(0x469B4FBEU), y = RawToFloat(0x00000000U), z = RawToFloat(0x46AC7DAAU)}, PosB = new Vector3() { x = RawToFloat(0x46E81C00U), y = RawToFloat(0x00000000U), z = RawToFloat(0x2D140EBCU)}, PosC = new Vector3() { x = RawToFloat(0xC6E81C00U), y = RawToFloat(0x00000000U), z = RawToFloat(0xACC0046AU)} }, new PrecalculatedTriangle() { MaxOrbitRadius = 29718, PosA = new Vector3() { x = RawToFloat(0x469B4FBEU), y = RawToFloat(0x00000000U), z = RawToFloat(0x46AC7DAAU)}, PosB = new Vector3() { x = RawToFloat(0x46E81C00U), y = RawToFloat(0x00000000U), z = RawToFloat(0x2D140EBCU)}, PosC = new Vector3() { x = RawToFloat(0xC6E81C00U), y = RawToFloat(0x00000000U), z = RawToFloat(0xACC0046AU)} },
@@ -323,10 +323,10 @@ public static class DysonSphereFunctions
num += num2; num += num2;
} }
var radius = Math.Round(polygon[0].magnitude * 10.0) / 10.0; var radius = Math.Round(polygon[0].magnitude * 10.0) / 10.0;
for (int j = 0; j < polygon.Length; j++) for (int j = 0; j < polygon.Length; j++)
{ {
polygon[j] = polygon[j].normalized * radius; polygon[j] = polygon[j].normalized * radius;
} }
var center = (sum / num).normalized * radius; var center = (sum / num).normalized * radius;
float num3 = 0f; float num3 = 0f;
for (int k = 0; k < 3; k++) for (int k = 0; k < 3; k++)
@@ -459,10 +459,10 @@ public static class DysonSphereFunctions
num += num2; num += num2;
} }
shell.radius = Math.Round(shell.polygon[0].magnitude * 10.0) / 10.0; shell.radius = Math.Round(shell.polygon[0].magnitude * 10.0) / 10.0;
for (int j = 0; j < shell.polygon.Count; j++) for (int j = 0; j < shell.polygon.Count; j++)
{ {
shell.polygon[j] = shell.polygon[j].normalized * shell.radius; shell.polygon[j] = shell.polygon[j].normalized * shell.radius;
} }
var normalized = (sum / num).normalized; var normalized = (sum / num).normalized;
shell.center = normalized * shell.radius; shell.center = normalized * shell.radius;
float num3 = 0f; float num3 = 0f;
@@ -1191,19 +1191,25 @@ public static class DysonSphereFunctions
for (int i = 1; i <= 10; i++) for (int i = 1; i <= 10; i++)
{ {
var layer = dysonSphere.layersIdBased[i]; var layer = dysonSphere.layersIdBased[i];
if (layer != null) { if (layer != null)
{
continue; continue;
} }
var radius = dysonSphere.maxOrbitRadius; var radius = dysonSphere.maxOrbitRadius;
for (; radius > 4000; radius -= 10) { for (; radius > 4000; radius -= 10)
if (dysonSphere.CheckLayerRadius(radius) == 0) { {
if (dysonSphere.CheckLayerRadius(radius) == 0)
{
break; break;
} }
} }
PrecalculatedTriangle triangle; PrecalculatedTriangle triangle;
try { try
{
triangle = PrecalculatedTriangles.First(t => t.MaxOrbitRadius > radius); triangle = PrecalculatedTriangles.First(t => t.MaxOrbitRadius > radius);
} catch (InvalidOperationException) { }
catch (InvalidOperationException)
{
UIMessageBox.Show("CheatEnabler".Translate(), string.Format("No precalculated triangle found for radius {0}.".Translate(), radius), "确定".Translate(), UIMessageBox.ERROR, null); UIMessageBox.Show("CheatEnabler".Translate(), string.Format("No precalculated triangle found for radius {0}.".Translate(), radius), "确定".Translate(), UIMessageBox.ERROR, null);
return; return;
} }
@@ -1389,7 +1395,8 @@ public static class DysonSphereFunctions
{ {
var lastGridScale = 0; var lastGridScale = 0;
var radiusList = new List<int>(); var radiusList = new List<int>();
for (var r = 4000; r <= 250000; r++) { for (var r = 4000; r <= 250000; r++)
{
var gridScale = (int)(Math.Pow(r / 4000.0, 0.75) + 0.5); var gridScale = (int)(Math.Pow(r / 4000.0, 0.75) + 0.5);
gridScale = (gridScale < 1) ? 1 : gridScale; gridScale = (gridScale < 1) ? 1 : gridScale;
if (gridScale == lastGridScale) continue; if (gridScale == lastGridScale) continue;

View File

@@ -30,7 +30,7 @@ public static class CombatPatch
MechaInvincible.Enable(false); MechaInvincible.Enable(false);
} }
private class MechaInvincible: PatchImpl<MechaInvincible> private class MechaInvincible : PatchImpl<MechaInvincible>
{ {
[HarmonyTranspiler] [HarmonyTranspiler]
[HarmonyPatch(typeof(Player), nameof(Player.invincible), MethodType.Getter)] [HarmonyPatch(typeof(Player), nameof(Player.invincible), MethodType.Getter)]
@@ -65,7 +65,7 @@ public static class CombatPatch
} }
} }
private class BuildingsInvincible: PatchImpl<BuildingsInvincible> private class BuildingsInvincible : PatchImpl<BuildingsInvincible>
{ {
[HarmonyTranspiler] [HarmonyTranspiler]
[HarmonyPatch(typeof(SkillSystem), nameof(SkillSystem.DamageGroundObjectByLocalCaster))] [HarmonyPatch(typeof(SkillSystem), nameof(SkillSystem.DamageGroundObjectByLocalCaster))]

View File

@@ -187,7 +187,7 @@ public static class GamePatch
} }
} }
public class UnlockTech: PatchImpl<UnlockTech> public class UnlockTech : PatchImpl<UnlockTech>
{ {
private static void UnlockTechRecursive(GameHistoryData history, [NotNull] TechProto techProto, int maxLevel = 10000) private static void UnlockTechRecursive(GameHistoryData history, [NotNull] TechProto techProto, int maxLevel = 10000)
{ {

View File

@@ -29,7 +29,7 @@ public static class PlanetPatch
TerraformAnyway.Enable(false); TerraformAnyway.Enable(false);
} }
private class WaterPumperPatch: PatchImpl<WaterPumperPatch> private class WaterPumperPatch : PatchImpl<WaterPumperPatch>
{ {
[HarmonyTranspiler] [HarmonyTranspiler]
[HarmonyPatch(typeof(BuildTool_BlueprintPaste), nameof(BuildTool_BlueprintPaste.CheckBuildConditions))] [HarmonyPatch(typeof(BuildTool_BlueprintPaste), nameof(BuildTool_BlueprintPaste.CheckBuildConditions))]
@@ -51,7 +51,7 @@ public static class PlanetPatch
} }
} }
private class TerraformAnyway: PatchImpl<TerraformAnyway> private class TerraformAnyway : PatchImpl<TerraformAnyway>
{ {
[HarmonyTranspiler] [HarmonyTranspiler]
[HarmonyPatch(typeof(BuildTool_Reform), nameof(BuildTool_Reform.ReformAction))] [HarmonyPatch(typeof(BuildTool_Reform), nameof(BuildTool_Reform.ReformAction))]

View File

@@ -33,7 +33,7 @@ public static class PlayerPatch
WarpWithoutSpaceWarpers.Enable(false); WarpWithoutSpaceWarpers.Enable(false);
} }
private class InstantHandCraft: PatchImpl<InstantHandCraft> private class InstantHandCraft : PatchImpl<InstantHandCraft>
{ {
[HarmonyPostfix] [HarmonyPostfix]
[HarmonyPatch(typeof(ForgeTask), MethodType.Constructor, typeof(int), typeof(int))] [HarmonyPatch(typeof(ForgeTask), MethodType.Constructor, typeof(int), typeof(int))]
@@ -43,7 +43,7 @@ public static class PlayerPatch
} }
} }
private class InstantTeleport: PatchImpl<InstantTeleport> private class InstantTeleport : PatchImpl<InstantTeleport>
{ {
[HarmonyTranspiler] [HarmonyTranspiler]
[HarmonyPatch(typeof(UIGlobemap), nameof(UIGlobemap._OnUpdate))] [HarmonyPatch(typeof(UIGlobemap), nameof(UIGlobemap._OnUpdate))]
@@ -66,7 +66,7 @@ public static class PlayerPatch
} }
} }
private class WarpWithoutSpaceWarpers: PatchImpl<WarpWithoutSpaceWarpers> private class WarpWithoutSpaceWarpers : PatchImpl<WarpWithoutSpaceWarpers>
{ {
[HarmonyPrefix] [HarmonyPrefix]
[HarmonyPatch(typeof(Mecha), nameof(Mecha.HasWarper))] [HarmonyPatch(typeof(Mecha), nameof(Mecha.HasWarper))]
@@ -75,7 +75,7 @@ public static class PlayerPatch
__result = true; __result = true;
return false; return false;
} }
[HarmonyPostfix] [HarmonyPostfix]
[HarmonyPatch(typeof(Mecha), nameof(Mecha.UseWarper))] [HarmonyPatch(typeof(Mecha), nameof(Mecha.UseWarper))]
private static void Mecha_UseWarper_Postfix(ref bool __result) private static void Mecha_UseWarper_Postfix(ref bool __result)

View File

@@ -29,7 +29,7 @@ public static class ResourcePatch
FastMining.Enable(false); FastMining.Enable(false);
} }
private class InfiniteResource: PatchImpl<InfiniteResource> private class InfiniteResource : PatchImpl<InfiniteResource>
{ {
[HarmonyTranspiler] [HarmonyTranspiler]
[HarmonyPatch(typeof(FactorySystem), nameof(FactorySystem.GameTick), typeof(long), typeof(bool))] [HarmonyPatch(typeof(FactorySystem), nameof(FactorySystem.GameTick), typeof(long), typeof(bool))]
@@ -59,7 +59,7 @@ public static class ResourcePatch
} }
} }
private class FastMining: PatchImpl<FastMining> private class FastMining : PatchImpl<FastMining>
{ {
[HarmonyTranspiler] [HarmonyTranspiler]
[HarmonyPatch(typeof(FactorySystem), "GameTick", typeof(long), typeof(bool))] [HarmonyPatch(typeof(FactorySystem), "GameTick", typeof(long), typeof(bool))]

View File

@@ -304,17 +304,20 @@ public static class UIConfigWindow
{ {
y += 72f; y += 72f;
var originalY = y; var originalY = y;
var btn1 = wnd.AddButton(x, y, 300f, tab4, "Generate illegal dyson shell", 16, "button-generate-illegal-dyson-shells", () => { var btn1 = wnd.AddButton(x, y, 300f, tab4, "Generate illegal dyson shell", 16, "button-generate-illegal-dyson-shells", () =>
{
UIMessageBox.Show("Generate illegal dyson shell".Translate(), "WARNING: This operation can be very slow, continue?".Translate(), "取消".Translate(), "确定".Translate(), UIMessageBox.WARNING, null, UIMessageBox.Show("Generate illegal dyson shell".Translate(), "WARNING: This operation can be very slow, continue?".Translate(), "取消".Translate(), "确定".Translate(), UIMessageBox.WARNING, null,
() => { DysonSphereFunctions.CreateIllegalDysonShellWithMaxOutput(); }); () => { DysonSphereFunctions.CreateIllegalDysonShellWithMaxOutput(); });
}); });
y += 36f; y += 36f;
var btn2 = wnd.AddButton(x, y, 300f, tab4, "Keep max production shells and remove others", 16, "button-keep-max-production-shells", () => { var btn2 = wnd.AddButton(x, y, 300f, tab4, "Keep max production shells and remove others", 16, "button-keep-max-production-shells", () =>
{
UIMessageBox.Show("Keep max production shells and remove others".Translate(), "WARNING: This operation is DANGEROUS, continue?".Translate(), "取消".Translate(), "确定".Translate(), UIMessageBox.WARNING, null, UIMessageBox.Show("Keep max production shells and remove others".Translate(), "WARNING: This operation is DANGEROUS, continue?".Translate(), "取消".Translate(), "确定".Translate(), UIMessageBox.WARNING, null,
() => { DysonSphereFunctions.KeepMaxProductionShells(); }); () => { DysonSphereFunctions.KeepMaxProductionShells(); });
}); });
y += 36f; y += 36f;
var btn3 = wnd.AddButton(x, y, 300f, tab4, "Duplicate shells from that with highest production", 16, "button-duplicate-shells-from-the-highest-production", () => { var btn3 = wnd.AddButton(x, y, 300f, tab4, "Duplicate shells from that with highest production", 16, "button-duplicate-shells-from-the-highest-production", () =>
{
UIMessageBox.Show("Duplicate shells from that with highest production".Translate(), "WARNING: This operation can be very slow, continue?".Translate(), "取消".Translate(), "确定".Translate(), UIMessageBox.WARNING, null, UIMessageBox.Show("Duplicate shells from that with highest production".Translate(), "WARNING: This operation can be very slow, continue?".Translate(), "取消".Translate(), "确定".Translate(), UIMessageBox.WARNING, null,
() => { DysonSphereFunctions.DuplicateShellsWithHighestProduction(); }); () => { DysonSphereFunctions.DuplicateShellsWithHighestProduction(); });
}); });
@@ -322,7 +325,8 @@ public static class UIConfigWindow
var slider1 = wnd.AddSlider(x + 20f, y, tab4, DysonSphereFunctions.ShellsCountForFunctions, new ShellsCountMapper()); var slider1 = wnd.AddSlider(x + 20f, y, tab4, DysonSphereFunctions.ShellsCountForFunctions, new ShellsCountMapper());
y = originalY; y = originalY;
var btn4 = wnd.AddButton(x, y, 300f, tab4, "Generate illegal dyson shell quickly", 16, "button-generate-illegal-dyson-shells-quickly", () => { var btn4 = wnd.AddButton(x, y, 300f, tab4, "Generate illegal dyson shell quickly", 16, "button-generate-illegal-dyson-shells-quickly", () =>
{
UIMessageBox.Show("Generate illegal dyson shell".Translate(), "WARNING: This operation can be very slow, continue?".Translate(), "取消".Translate(), "确定".Translate(), UIMessageBox.WARNING, null, UIMessageBox.Show("Generate illegal dyson shell".Translate(), "WARNING: This operation can be very slow, continue?".Translate(), "取消".Translate(), "确定".Translate(), UIMessageBox.WARNING, null,
() => { DysonSphereFunctions.CreateIllegalDysonShellQuickly(DysonSphereFunctions.ShellsCountForFunctions.Value); }); () => { DysonSphereFunctions.CreateIllegalDysonShellQuickly(DysonSphereFunctions.ShellsCountForFunctions.Value); });
}); });

View File

@@ -52,7 +52,7 @@ public static class BeltSignal
tex.LoadImage(fileData); tex.LoadImage(fileData);
return tex; return tex;
} }
private static Sprite LoadEmbeddedSprite(string path, Assembly assembly = null) private static Sprite LoadEmbeddedSprite(string path, Assembly assembly = null)
{ {
var tex = LoadEmbeddedTexture(path, assembly); var tex = LoadEmbeddedTexture(path, assembly);

View File

@@ -61,19 +61,19 @@ namespace Dustbin.NebulaSupport
NebulaModAPI.MultiplayerSession.Network.SendPacket(new SyncPlanetData(Dustbin.ExportData(factory))); NebulaModAPI.MultiplayerSession.Network.SendPacket(new SyncPlanetData(Dustbin.ExportData(factory)));
return; return;
case < 0: case < 0:
{ {
var tankPool = factory.factoryStorage.tankPool; var tankPool = factory.factoryStorage.tankPool;
tankPool[-storageId].IsDustbin = packet.Enable; tankPool[-storageId].IsDustbin = packet.Enable;
TankPatch.Reset(); TankPatch.Reset();
return; return;
} }
case > 0: case > 0:
{ {
var storagePool = factory.factoryStorage.storagePool; var storagePool = factory.factoryStorage.storagePool;
storagePool[storageId].IsDustbin = packet.Enable; storagePool[storageId].IsDustbin = packet.Enable;
StoragePatch.Reset(); StoragePatch.Reset();
return; return;
} }
} }
} }
} }

View File

@@ -13,7 +13,7 @@ public static class StoragePatch
private static UI.MyCheckBox _storageDustbinCheckBox; private static UI.MyCheckBox _storageDustbinCheckBox;
private static int _lastStorageId; private static int _lastStorageId;
private static Harmony _patch; private static Harmony _patch;
public static void Enable(bool on) public static void Enable(bool on)
{ {
if (on) if (on)
@@ -138,7 +138,7 @@ public static class StoragePatch
_storageDustbinCheckBox.rectTrans.anchoredPosition3D = new Vector3(190, 57 - rectTrans.sizeDelta.y, 0); _storageDustbinCheckBox.rectTrans.anchoredPosition3D = new Vector3(190, 57 - rectTrans.sizeDelta.y, 0);
} }
} }
/* Adopt fix from starfi5h's NebulaCompatiblilityAssist */ /* Adopt fix from starfi5h's NebulaCompatiblilityAssist */
[HarmonyPostfix] [HarmonyPostfix]
[HarmonyPatch(typeof(UIStorageGrid), nameof(UIStorageGrid.OnStorageSizeChanged))] [HarmonyPatch(typeof(UIStorageGrid), nameof(UIStorageGrid.OnStorageSizeChanged))]

View File

@@ -11,7 +11,7 @@ public static class TankPatch
private static UI.MyCheckBox _tankDustbinCheckBox; private static UI.MyCheckBox _tankDustbinCheckBox;
private static int _lastTankId; private static int _lastTankId;
private static Harmony _patch; private static Harmony _patch;
public static void Enable(bool on) public static void Enable(bool on)
{ {
if (on) if (on)

View File

@@ -7,7 +7,7 @@ namespace DustbinPreloader;
public static class Preloader public static class Preloader
{ {
private static readonly ManualLogSource Logger = BepInEx.Logging.Logger.CreateLogSource("Dustbin Preloader"); private static readonly ManualLogSource Logger = BepInEx.Logging.Logger.CreateLogSource("Dustbin Preloader");
public static IEnumerable<string> TargetDLLs { get; } = new[] { "Assembly-CSharp.dll" }; public static IEnumerable<string> TargetDLLs { get; } = new[] { "Assembly-CSharp.dll" };
public static void Patch(AssemblyDefinition assembly) public static void Patch(AssemblyDefinition assembly)

View File

@@ -410,30 +410,30 @@ public static class LabOptPatchFunctions
public static void SetFunctionInternal(ref LabComponent lab, bool researchMode, int recpId, int techId, SignData[] signPool, LabComponent[] labPool) public static void SetFunctionInternal(ref LabComponent lab, bool researchMode, int recpId, int techId, SignData[] signPool, LabComponent[] labPool)
{ {
// LabOptPatch.Logger.LogDebug($"SetFunctionInternal: id={lab.id} root={(int)RootLabIdField.GetValue(lab)} research={researchMode} recp={recpId} tech={techId}"); // LabOptPatch.Logger.LogDebug($"SetFunctionInternal: id={lab.id} root={(int)RootLabIdField.GetValue(lab)} research={researchMode} recp={recpId} tech={techId}");
lab.replicating = false; lab.replicating = false;
lab.time = 0; lab.time = 0;
lab.hashBytes = 0; lab.hashBytes = 0;
lab.extraHashBytes = 0; lab.extraHashBytes = 0;
lab.extraTime = 0; lab.extraTime = 0;
lab.extraSpeed = 0; lab.extraSpeed = 0;
lab.extraPowerRatio = 0; lab.extraPowerRatio = 0;
lab.productive = false; lab.productive = false;
if (researchMode) if (researchMode)
{ {
lab.forceAccMode = false; lab.forceAccMode = false;
lab.researchMode = true; lab.researchMode = true;
lab.recipeId = 0; lab.recipeId = 0;
lab.techId = 0; lab.techId = 0;
lab.timeSpend = 0; lab.timeSpend = 0;
lab.extraTimeSpend = 0; lab.extraTimeSpend = 0;
lab.requires = null; lab.requires = null;
lab.requireCounts = null; lab.requireCounts = null;
lab.served = null; lab.served = null;
lab.incServed = null; lab.incServed = null;
lab.products = null; lab.products = null;
lab.productCounts = null; lab.productCounts = null;
lab.produced = null; lab.produced = null;
lab.productive = true; lab.productive = true;
var rootLabId = lab.pcId; var rootLabId = lab.pcId;
if (rootLabId > 0) if (rootLabId > 0)
{ {
@@ -480,29 +480,29 @@ public static class LabOptPatchFunctions
} }
} }
signPool[lab.entityId].iconId0 = (uint)lab.techId; signPool[lab.entityId].iconId0 = (uint)lab.techId;
signPool[lab.entityId].iconType = lab.techId == 0 ? 0U : 3U; signPool[lab.entityId].iconType = lab.techId == 0 ? 0U : 3U;
return; return;
} }
lab.researchMode = false; lab.researchMode = false;
lab.recipeId = 0; lab.recipeId = 0;
lab.techId = 0; lab.techId = 0;
lab.matrixPoints = null; lab.matrixPoints = null;
lab.matrixServed = null; lab.matrixServed = null;
lab.matrixIncServed = null; lab.matrixIncServed = null;
RecipeProto recipeProto = null; RecipeProto recipeProto = null;
if (recpId > 0) if (recpId > 0)
{ {
recipeProto = LDB.recipes.Select(recpId); recipeProto = LDB.recipes.Select(recpId);
} }
if (recipeProto != null && recipeProto.Type == ERecipeType.Research) if (recipeProto != null && recipeProto.Type == ERecipeType.Research)
{ {
lab.recipeId = recipeProto.ID; lab.recipeId = recipeProto.ID;
lab.speed = 10000; lab.speed = 10000;
lab.speedOverride = lab.speed; lab.speedOverride = lab.speed;
lab.timeSpend = recipeProto.TimeSpend * 10000; lab.timeSpend = recipeProto.TimeSpend * 10000;
lab.extraTimeSpend = recipeProto.TimeSpend * 100000; lab.extraTimeSpend = recipeProto.TimeSpend * 100000;
lab.productive = recipeProto.productive; lab.productive = recipeProto.productive;
lab.forceAccMode &= lab.productive; lab.forceAccMode &= lab.productive;
var rootLabId = lab.pcId; var rootLabId = lab.pcId;
if (rootLabId > 0) if (rootLabId > 0)
{ {
@@ -544,26 +544,26 @@ public static class LabOptPatchFunctions
Array.Clear(lab.produced, 0, lab.produced.Length); Array.Clear(lab.produced, 0, lab.produced.Length);
} }
} }
else else
{ {
lab.forceAccMode = false; lab.forceAccMode = false;
lab.recipeId = 0; lab.recipeId = 0;
lab.speed = 0; lab.speed = 0;
lab.speedOverride = 0; lab.speedOverride = 0;
lab.timeSpend = 0; lab.timeSpend = 0;
lab.extraTimeSpend = 0; lab.extraTimeSpend = 0;
lab.requires = null; lab.requires = null;
lab.requireCounts = null; lab.requireCounts = null;
lab.served = null; lab.served = null;
lab.incServed = null; lab.incServed = null;
lab.needs = null; lab.needs = null;
lab.products = null; lab.products = null;
lab.productCounts = null; lab.productCounts = null;
lab.produced = null; lab.produced = null;
} }
signPool[lab.entityId].iconId0 = (uint)lab.recipeId; signPool[lab.entityId].iconId0 = (uint)lab.recipeId;
signPool[lab.entityId].iconType = lab.recipeId == 0 ? 0U : 2U; signPool[lab.entityId].iconType = lab.recipeId == 0 ? 0U : 2U;
} }
public static int InsertIntoLab(PlanetFactory factory, int labId, int itemId, byte itemCount, byte itemInc, ref byte remainInc, int[] needs) public static int InsertIntoLab(PlanetFactory factory, int labId, int itemId, byte itemCount, byte itemInc, ref byte remainInc, int[] needs)
{ {

View File

@@ -18,7 +18,7 @@ public class LabOptPatch : BaseUnityPlugin
{ {
Harmony.CreateAndPatchAll(typeof(LabOptPatch)); Harmony.CreateAndPatchAll(typeof(LabOptPatch));
} }
// Patch LabComponent.Export() to save zero value if rootLabId > 0. // Patch LabComponent.Export() to save zero value if rootLabId > 0.
[HarmonyTranspiler] [HarmonyTranspiler]
[HarmonyPatch(typeof(LabComponent), nameof(LabComponent.Export))] [HarmonyPatch(typeof(LabComponent), nameof(LabComponent.Export))]
@@ -274,7 +274,7 @@ public class LabOptPatch : BaseUnityPlugin
); );
return matcher.InstructionEnumeration(); return matcher.InstructionEnumeration();
} }
// Change locks on PlanetFactory.InsertInto(), by calling LabOptPatchFunctions.InsertIntoLab() // Change locks on PlanetFactory.InsertInto(), by calling LabOptPatchFunctions.InsertIntoLab()
[HarmonyTranspiler] [HarmonyTranspiler]
[HarmonyPatch(typeof(PlanetFactory), nameof(PlanetFactory.InsertInto))] [HarmonyPatch(typeof(PlanetFactory), nameof(PlanetFactory.InsertInto))]
@@ -332,7 +332,7 @@ public class LabOptPatch : BaseUnityPlugin
{ {
LabOptPatchFunctions.SetRootId(ref __instance, 0); LabOptPatchFunctions.SetRootId(ref __instance, 0);
} }
[HarmonyTranspiler] [HarmonyTranspiler]
[HarmonyPatch(typeof(LabOptPatchFunctions), nameof(LabOptPatchFunctions.SetRootId))] [HarmonyPatch(typeof(LabOptPatchFunctions), nameof(LabOptPatchFunctions.SetRootId))]
[HarmonyPatch(typeof(LabOptPatchFunctions), nameof(LabOptPatchFunctions.SetRootLabIdForStacking))] [HarmonyPatch(typeof(LabOptPatchFunctions), nameof(LabOptPatchFunctions.SetRootLabIdForStacking))]

View File

@@ -7,7 +7,7 @@ namespace LabOptPreloader;
public static class Preloader public static class Preloader
{ {
private static readonly ManualLogSource Logger = BepInEx.Logging.Logger.CreateLogSource("LabOpt Preloader"); private static readonly ManualLogSource Logger = BepInEx.Logging.Logger.CreateLogSource("LabOpt Preloader");
public static IEnumerable<string> TargetDLLs { get; } = new[] { "Assembly-CSharp.dll" }; public static IEnumerable<string> TargetDLLs { get; } = new[] { "Assembly-CSharp.dll" };
public static void Patch(AssemblyDefinition assembly) public static void Patch(AssemblyDefinition assembly)

View File

@@ -3,7 +3,7 @@ using HarmonyLib;
namespace UXAssist.Common; namespace UXAssist.Common;
public class GameLogic: PatchImpl<GameLogic> public class GameLogic : PatchImpl<GameLogic>
{ {
public static Action OnDataLoaded; public static Action OnDataLoaded;
public static Action OnGameBegin; public static Action OnGameBegin;

View File

@@ -122,14 +122,14 @@ public static class I18N
_initialized = true; _initialized = true;
Apply(); Apply();
} }
[HarmonyPostfix, HarmonyPriority(Priority.Last), HarmonyPatch(typeof(Localization), nameof(Localization.LoadLanguage))] [HarmonyPostfix, HarmonyPriority(Priority.Last), HarmonyPatch(typeof(Localization), nameof(Localization.LoadLanguage))]
private static void Localization_LoadLanguage_Postfix(int index) private static void Localization_LoadLanguage_Postfix(int index)
{ {
if (!_initialized) return; if (!_initialized) return;
ApplyLanguage(index); ApplyLanguage(index);
} }
[HarmonyPostfix, HarmonyPriority(Priority.Last), HarmonyPatch(typeof(Localization), nameof(Localization.NotifyLanguageChange))] [HarmonyPostfix, HarmonyPriority(Priority.Last), HarmonyPatch(typeof(Localization), nameof(Localization.NotifyLanguageChange))]
private static void Localization_NotifyLanguageChange_Postfix() private static void Localization_NotifyLanguageChange_Postfix()
{ {

View File

@@ -36,13 +36,13 @@ public static class Util
tex.LoadImage(fileData); tex.LoadImage(fileData);
return tex; return tex;
} }
public static Sprite LoadSprite(string path) public static Sprite LoadSprite(string path)
{ {
var tex = LoadTexture(path); var tex = LoadTexture(path);
return Sprite.Create(tex, new Rect(0, 0, tex.width, tex.height), new Vector2(0.5f, 0.5f)); return Sprite.Create(tex, new Rect(0, 0, tex.width, tex.height), new Vector2(0.5f, 0.5f));
} }
public static Texture2D LoadEmbeddedTexture(string path, Assembly assembly = null) public static Texture2D LoadEmbeddedTexture(string path, Assembly assembly = null)
{ {
var fileData = LoadEmbeddedResource(path, assembly); var fileData = LoadEmbeddedResource(path, assembly);
@@ -50,12 +50,12 @@ public static class Util
tex.LoadImage(fileData); tex.LoadImage(fileData);
return tex; return tex;
} }
public static Sprite LoadEmbeddedSprite(string path, Assembly assembly = null) public static Sprite LoadEmbeddedSprite(string path, Assembly assembly = null)
{ {
var tex = LoadEmbeddedTexture(path, assembly); var tex = LoadEmbeddedTexture(path, assembly);
return Sprite.Create(tex, new Rect(0, 0, tex.width, tex.height), new Vector2(0.5f, 0.5f)); return Sprite.Create(tex, new Rect(0, 0, tex.width, tex.height), new Vector2(0.5f, 0.5f));
} }
public static string PluginFolder(Assembly assembly = null) => Path.GetDirectoryName((assembly == null ? Assembly.GetCallingAssembly() : assembly).Location); public static string PluginFolder(Assembly assembly = null) => Path.GetDirectoryName((assembly == null ? Assembly.GetCallingAssembly() : assembly).Location);
} }

View File

@@ -127,7 +127,7 @@ public static class WinApi
[DllImport("user32", ExactSpelling = true)] [DllImport("user32", ExactSpelling = true)]
public static extern bool MoveWindow(IntPtr hWnd, int x, int y, int nWidth, int nHeight, bool bRepaint); public static extern bool MoveWindow(IntPtr hWnd, int x, int y, int nWidth, int nHeight, bool bRepaint);
[DllImport("user32", ExactSpelling = true)] [DllImport("user32", ExactSpelling = true)]
public static extern IntPtr MonitorFromRect([In] ref Rect lpRect, uint dwFlags); public static extern IntPtr MonitorFromRect([In] ref Rect lpRect, uint dwFlags);
@@ -183,7 +183,7 @@ public static class WinApi
public ushort Reserved1; public ushort Reserved1;
public ushort Reserved3; public ushort Reserved3;
} }
[StructLayout(LayoutKind.Sequential, Pack = 4)] [StructLayout(LayoutKind.Sequential, Pack = 4)]
private struct PROCESSOR_RELATIONSHIP private struct PROCESSOR_RELATIONSHIP
{ {
@@ -207,7 +207,7 @@ public static class WinApi
public uint Size; public uint Size;
public PROCESSOR_RELATIONSHIP Processor; public PROCESSOR_RELATIONSHIP Processor;
} }
[DllImport("kernel32", SetLastError = true)] [DllImport("kernel32", SetLastError = true)]
private static extern bool GetLogicalProcessorInformationEx( private static extern bool GetLogicalProcessorInformationEx(
LOGICAL_PROCESSOR_RELATIONSHIP relationshipType, LOGICAL_PROCESSOR_RELATIONSHIP relationshipType,

View File

@@ -13,7 +13,8 @@ public static class FactoryFunctions
// Clear entity connection // Clear entity connection
var factory = cargoTraffic.factory; var factory = cargoTraffic.factory;
factory.ReadObjectConn(belt.entityId, 0, out var isOutput, out var otherObjId, out var otherSlot); factory.ReadObjectConn(belt.entityId, 0, out var isOutput, out var otherObjId, out var otherSlot);
if (isOutput && factory.entityPool[otherObjId].beltId == belt.outputId) { if (isOutput && factory.entityPool[otherObjId].beltId == belt.outputId)
{
factory.ClearObjectConnDirect(belt.entityId, 0); factory.ClearObjectConnDirect(belt.entityId, 0);
factory.ClearObjectConnDirect(otherObjId, otherSlot); factory.ClearObjectConnDirect(otherObjId, otherSlot);
} }
@@ -194,7 +195,7 @@ public static class FactoryFunctions
bpBuildings.Add(new BPBuildingData { building = building, itemType = itemType, offset = offset }); bpBuildings.Add(new BPBuildingData { building = building, itemType = itemType, offset = offset });
} }
} }
HashSet<BlueprintBuilding> beltsWithInput = [..bpBelts.Select(pair => pair.Value.building.outputObj)]; HashSet<BlueprintBuilding> beltsWithInput = [.. bpBelts.Select(pair => pair.Value.building.outputObj)];
var beltHeads = bpBelts.Where(pair => !beltsWithInput.Contains(pair.Value.building)).ToDictionary(pair => pair.Key, pair => pair.Value); var beltHeads = bpBelts.Where(pair => !beltsWithInput.Contains(pair.Value.building)).ToDictionary(pair => pair.Key, pair => pair.Value);
// Sort belt buildings // Sort belt buildings
List<BlueprintBuilding> sortedBpBelts = []; List<BlueprintBuilding> sortedBpBelts = [];

View File

@@ -173,7 +173,8 @@ public static class PlanetFunctions
{ {
ref var warning = ref warningPool[i]; ref var warning = ref warningPool[i];
if (warning.id != i) continue; if (warning.id != i) continue;
switch (warning.factoryId) { switch (warning.factoryId)
{
case -4: case -4:
if (warning.astroId == planetId) if (warning.astroId == planetId)
warningSystem.RemoveWarningData(i); warningSystem.RemoveWarningData(i);

View File

@@ -9,7 +9,7 @@ using GameLogic = UXAssist.Common.GameLogic;
namespace UXAssist.Patches; namespace UXAssist.Patches;
public class DysonSpherePatch: PatchImpl<DysonSpherePatch> public class DysonSpherePatch : PatchImpl<DysonSpherePatch>
{ {
public static ConfigEntry<bool> StopEjectOnNodeCompleteEnabled; public static ConfigEntry<bool> StopEjectOnNodeCompleteEnabled;
public static ConfigEntry<bool> OnlyConstructNodesEnabled; public static ConfigEntry<bool> OnlyConstructNodesEnabled;
@@ -261,7 +261,7 @@ public class DysonSpherePatch: PatchImpl<DysonSpherePatch>
return matcher.InstructionEnumeration(); return matcher.InstructionEnumeration();
} }
private class StopEjectOnNodeComplete: PatchImpl<StopEjectOnNodeComplete> private class StopEjectOnNodeComplete : PatchImpl<StopEjectOnNodeComplete>
{ {
private static HashSet<int>[] _nodeForAbsorb; private static HashSet<int>[] _nodeForAbsorb;
private static bool _initialized; private static bool _initialized;
@@ -492,7 +492,7 @@ public class DysonSpherePatch: PatchImpl<DysonSpherePatch>
} }
[PatchSetCallbackFlag(PatchCallbackFlag.CallOnDisableAfterUnpatch)] [PatchSetCallbackFlag(PatchCallbackFlag.CallOnDisableAfterUnpatch)]
private class OnlyConstructNodes: PatchImpl<OnlyConstructNodes> private class OnlyConstructNodes : PatchImpl<OnlyConstructNodes>
{ {
protected override void OnEnable() protected override void OnEnable()
{ {

View File

@@ -80,7 +80,8 @@ public class GamePatch : PatchImpl<GamePatch>
I18N.Add("Logical frame rate: {0}x", "[UXA] Logical frame rate: {0}x", "[UXA] 逻辑帧速率: {0}x"); I18N.Add("Logical frame rate: {0}x", "[UXA] Logical frame rate: {0}x", "[UXA] 逻辑帧速率: {0}x");
EnableWindowResizeEnabled.SettingChanged += (_, _) => EnableWindowResize.Enable(EnableWindowResizeEnabled.Value); EnableWindowResizeEnabled.SettingChanged += (_, _) => EnableWindowResize.Enable(EnableWindowResizeEnabled.Value);
LoadLastWindowRectEnabled.SettingChanged += (_, _) => { LoadLastWindowRectEnabled.SettingChanged += (_, _) =>
{
if (LoadLastWindowRectEnabled.Value) if (LoadLastWindowRectEnabled.Value)
{ {
FixLastWindowRect(); FixLastWindowRect();

View File

@@ -298,7 +298,8 @@ public static class LogisticsPatch
new CodeMatch(OpCodes.Ldc_I4_1), new CodeMatch(OpCodes.Ldc_I4_1),
new CodeMatch(OpCodes.Call, AccessTools.PropertyGetter(typeof(GameMain), nameof(GameMain.mainPlayer))) new CodeMatch(OpCodes.Call, AccessTools.PropertyGetter(typeof(GameMain), nameof(GameMain.mainPlayer)))
); );
if (matcher.IsValid) { if (matcher.IsValid)
{
matcher.RemoveInstructions(7).InsertAndAdvance( matcher.RemoveInstructions(7).InsertAndAdvance(
new CodeInstruction(OpCodes.Ldc_I4_0) new CodeInstruction(OpCodes.Ldc_I4_0)
); );

View File

@@ -24,7 +24,7 @@ public static class PlanetPatch
PlayerActionsInGlobeView.Enable(false); PlayerActionsInGlobeView.Enable(false);
} }
public class PlayerActionsInGlobeView: PatchImpl<PlayerActionsInGlobeView> public class PlayerActionsInGlobeView : PatchImpl<PlayerActionsInGlobeView>
{ {
[HarmonyTranspiler] [HarmonyTranspiler]
[HarmonyPatch(typeof(VFInput), nameof(VFInput.UpdateGameStates))] [HarmonyPatch(typeof(VFInput), nameof(VFInput.UpdateGameStates))]
@@ -48,7 +48,7 @@ public static class PlanetPatch
}); });
return matcher.InstructionEnumeration(); return matcher.InstructionEnumeration();
} }
[HarmonyTranspiler] [HarmonyTranspiler]
[HarmonyPatch(typeof(PlayerController), nameof(PlayerController.GetInput))] [HarmonyPatch(typeof(PlayerController), nameof(PlayerController.GetInput))]
private static IEnumerable<CodeInstruction> PlayerController_GetInput_Transpiler(IEnumerable<CodeInstruction> instructions, ILGenerator generator) private static IEnumerable<CodeInstruction> PlayerController_GetInput_Transpiler(IEnumerable<CodeInstruction> instructions, ILGenerator generator)

View File

@@ -287,7 +287,7 @@ public static class TechPatch
} }
} }
private class BatchBuyoutTech: PatchImpl<BatchBuyoutTech> private class BatchBuyoutTech : PatchImpl<BatchBuyoutTech>
{ {
[HarmonyTranspiler] [HarmonyTranspiler]
[HarmonyPatch(typeof(UITechNode), nameof(UITechNode.UpdateInfoDynamic))] [HarmonyPatch(typeof(UITechNode), nameof(UITechNode.UpdateInfoDynamic))]

View File

@@ -4,7 +4,7 @@ using Common;
using HarmonyLib; using HarmonyLib;
[PatchGuid(PluginInfo.PLUGIN_GUID)] [PatchGuid(PluginInfo.PLUGIN_GUID)]
public class UIPatch: PatchImpl<UIPatch> public class UIPatch : PatchImpl<UIPatch>
{ {
public static void Start() public static void Start()
{ {

View File

@@ -17,12 +17,12 @@ public class MyCheckButton : MonoBehaviour
private static GameObject _baseObject; private static GameObject _baseObject;
private static Color openMouseOverColor; private static Color openMouseOverColor;
private static Color openPressColor; private static Color openPressColor;
private static Color openNormalColor; private static Color openNormalColor;
private static Color closeMouseOverColor; private static Color closeMouseOverColor;
private static Color closePressColor; private static Color closePressColor;
private static Color closeNormalColor; private static Color closeNormalColor;
public static void InitBaseObject() public static void InitBaseObject()
{ {

View File

@@ -228,7 +228,7 @@ public class MyWindow : ManualBehaviour
return comboBox; return comboBox;
} }
#region Slider #region Slider
public class ValueMapper<T> public class ValueMapper<T>
{ {
public virtual int Min => 1; public virtual int Min => 1;
@@ -402,7 +402,7 @@ public class MyWindow : ManualBehaviour
{ {
return AddSideSlider(x, y, parent, config, new ArrayMapper<T>(valueList), format, width); return AddSideSlider(x, y, parent, config, new ArrayMapper<T>(valueList), format, width);
} }
#endregion #endregion
public InputField AddInputField(float x, float y, RectTransform parent, string text = "", int fontSize = 16, string objName = "input", UnityAction<string> onChanged = null, public InputField AddInputField(float x, float y, RectTransform parent, string text = "", int fontSize = 16, string objName = "input", UnityAction<string> onChanged = null,
UnityAction<string> onEditEnd = null) UnityAction<string> onEditEnd = null)
@@ -593,7 +593,7 @@ public abstract class MyWindowManager
} }
*/ */
public class Patch: PatchImpl<Patch> public class Patch : PatchImpl<Patch>
{ {
protected override void OnEnable() protected override void OnEnable()
{ {

View File

@@ -75,7 +75,7 @@ public static class EpicDifficulty
} }
return 0; return 0;
} }
public static int OilMultipliersCount() public static int OilMultipliersCount()
{ {
return OilMultipliers.Length; return OilMultipliers.Length;
@@ -111,7 +111,7 @@ public static class EpicDifficulty
__instance.UpdateParametersUIDisplay(); __instance.UpdateParametersUIDisplay();
return false; return false;
} }
[HarmonyPrefix] [HarmonyPrefix]
[HarmonyPatch(typeof(UIGalaxySelect), nameof(UIGalaxySelect.UpdateParametersUIDisplay))] [HarmonyPatch(typeof(UIGalaxySelect), nameof(UIGalaxySelect.UpdateParametersUIDisplay))]
private static bool UIGalaxySelect_UpdateParametersUIDisplay_Prefix(UIGalaxySelect __instance) private static bool UIGalaxySelect_UpdateParametersUIDisplay_Prefix(UIGalaxySelect __instance)

View File

@@ -19,15 +19,15 @@ public class UniverseGenTweaks : BaseUnityPlugin, IModCanSave
MoreSettings.Enabled = Config.Bind("MoreSettings", "Enabled", true, "Enable more settings on Universe Generation"); MoreSettings.Enabled = Config.Bind("MoreSettings", "Enabled", true, "Enable more settings on Universe Generation");
MoreSettings.MaxStarCount = Config.Bind("MoreSettings", "MaxStarCount", 128, MoreSettings.MaxStarCount = Config.Bind("MoreSettings", "MaxStarCount", 128,
new ConfigDescription("(32 ~ 1024)\nMaximum star count for Universe Generation, enable MoreSettings.Enabled to take effect", new ConfigDescription("(32 ~ 1024)\nMaximum star count for Universe Generation, enable MoreSettings.Enabled to take effect",
new AcceptableValueRange<int>(32, 1024), new {})); new AcceptableValueRange<int>(32, 1024), new { }));
EpicDifficulty.Enabled = Config.Bind("EpicDifficulty", "Enabled", true, "Enable Epic difficulty"); EpicDifficulty.Enabled = Config.Bind("EpicDifficulty", "Enabled", true, "Enable Epic difficulty");
EpicDifficulty.ResourceMultiplier = Config.Bind("EpicDifficulty", "ResourceMultiplier", 0.01f, EpicDifficulty.ResourceMultiplier = Config.Bind("EpicDifficulty", "ResourceMultiplier", 0.01f,
new ConfigDescription("Resource multiplier for Epic difficulty", new ConfigDescription("Resource multiplier for Epic difficulty",
new AcceptableValueRange<float>(0.0001f, 0.05f), new {})); new AcceptableValueRange<float>(0.0001f, 0.05f), new { }));
EpicDifficulty.OilMultiplier = Config.Bind("EpicDifficulty", "OilMultiplier", 0.5f, EpicDifficulty.OilMultiplier = Config.Bind("EpicDifficulty", "OilMultiplier", 0.5f,
new ConfigDescription("Oil multiplier for Epic difficulty relative to the Very-Hard difficulty", new ConfigDescription("Oil multiplier for Epic difficulty relative to the Very-Hard difficulty",
new AcceptableValueRange<float>(0.1f, 1f), new {})); new AcceptableValueRange<float>(0.1f, 1f), new { }));
BirthPlanetPatch.SitiVeinsOnBirthPlanet = Config.Bind("Birth", "SiTiVeinsOnBirthPlanet", false, BirthPlanetPatch.SitiVeinsOnBirthPlanet = Config.Bind("Birth", "SiTiVeinsOnBirthPlanet", false,
"Silicon/Titanium on birth planet"); "Silicon/Titanium on birth planet");

View File

@@ -8,7 +8,7 @@ using Random = UnityEngine.Random;
namespace UserCloak; namespace UserCloak;
[BepInPlugin(PluginInfo.PLUGIN_GUID, PluginInfo.PLUGIN_NAME, PluginInfo.PLUGIN_VERSION)] [BepInPlugin(PluginInfo.PLUGIN_GUID, PluginInfo.PLUGIN_NAME, PluginInfo.PLUGIN_VERSION)]
public class UserCloak: BaseUnityPlugin public class UserCloak : BaseUnityPlugin
{ {
private static Harmony _patch; private static Harmony _patch;
private static ConfigEntry<int> _mode; private static ConfigEntry<int> _mode;