mirror of
https://github.com/soarqin/DSP_Mods.git
synced 2025-12-08 23:33:33 +08:00
work in progress
This commit is contained in:
@@ -1,175 +0,0 @@
|
||||
using System.Collections.Generic;
|
||||
using BepInEx.Configuration;
|
||||
using HarmonyLib;
|
||||
|
||||
namespace CheatEnabler;
|
||||
public static class BirthPlanetPatch
|
||||
{
|
||||
public static ConfigEntry<bool> SitiVeinsOnBirthPlanet;
|
||||
public static ConfigEntry<bool> FireIceOnBirthPlanet;
|
||||
public static ConfigEntry<bool> KimberliteOnBirthPlanet;
|
||||
public static ConfigEntry<bool> FractalOnBirthPlanet;
|
||||
public static ConfigEntry<bool> OrganicOnBirthPlanet;
|
||||
public static ConfigEntry<bool> OpticalOnBirthPlanet;
|
||||
public static ConfigEntry<bool> SpiniformOnBirthPlanet;
|
||||
public static ConfigEntry<bool> UnipolarOnBirthPlanet;
|
||||
public static ConfigEntry<bool> FlatBirthPlanet;
|
||||
public static ConfigEntry<bool> HighLuminosityBirthStar;
|
||||
|
||||
private static BackupData _backupData;
|
||||
private static bool _initialized;
|
||||
private static Harmony _patch;
|
||||
|
||||
private struct BackupData
|
||||
{
|
||||
public void FromTheme(ThemeProto theme)
|
||||
{
|
||||
_algos = theme.Algos.Clone() as int[];
|
||||
_veinSpot = theme.VeinSpot.Clone() as int[];
|
||||
_veinCount = theme.VeinCount.Clone() as float[];
|
||||
_veinOpacity = theme.VeinOpacity.Clone() as float[];
|
||||
_rareVeins = theme.RareVeins.Clone() as int[];
|
||||
_rareSettings = theme.RareSettings.Clone() as float[];
|
||||
_specifyBirthStarMass = StarGen.specifyBirthStarMass;
|
||||
_specifyBirthStarAge = StarGen.specifyBirthStarAge;
|
||||
_inited = true;
|
||||
}
|
||||
|
||||
public void ToTheme(ThemeProto theme)
|
||||
{
|
||||
if (!_inited) return;
|
||||
theme.Algos = _algos.Clone() as int[];
|
||||
theme.VeinSpot = _veinSpot.Clone() as int[];
|
||||
theme.VeinCount = _veinCount.Clone() as float[];
|
||||
theme.VeinOpacity = _veinOpacity.Clone() as float[];
|
||||
theme.RareVeins = _rareVeins.Clone() as int[];
|
||||
theme.RareSettings = _rareSettings.Clone() as float[];
|
||||
StarGen.specifyBirthStarMass = _specifyBirthStarMass;
|
||||
StarGen.specifyBirthStarAge = _specifyBirthStarAge;
|
||||
}
|
||||
|
||||
private bool _inited;
|
||||
private int[] _algos;
|
||||
private int[] _veinSpot;
|
||||
private float[] _veinCount;
|
||||
private float[] _veinOpacity;
|
||||
private int[] _rareVeins;
|
||||
private float[] _rareSettings;
|
||||
private float _specifyBirthStarMass;
|
||||
private float _specifyBirthStarAge;
|
||||
}
|
||||
|
||||
public static void Init()
|
||||
{
|
||||
SitiVeinsOnBirthPlanet.SettingChanged += (_, _) => PatchBirthThemeData();
|
||||
FireIceOnBirthPlanet.SettingChanged += (_, _) => PatchBirthThemeData();
|
||||
KimberliteOnBirthPlanet.SettingChanged += (_, _) => PatchBirthThemeData();
|
||||
FractalOnBirthPlanet.SettingChanged += (_, _) => PatchBirthThemeData();
|
||||
OrganicOnBirthPlanet.SettingChanged += (_, _) => PatchBirthThemeData();
|
||||
OpticalOnBirthPlanet.SettingChanged += (_, _) => PatchBirthThemeData();
|
||||
SpiniformOnBirthPlanet.SettingChanged += (_, _) => PatchBirthThemeData();
|
||||
UnipolarOnBirthPlanet.SettingChanged += (_, _) => PatchBirthThemeData();
|
||||
FlatBirthPlanet.SettingChanged += (_, _) => PatchBirthThemeData();
|
||||
HighLuminosityBirthStar.SettingChanged += (_, _) => PatchBirthThemeData();
|
||||
PatchBirthThemeData();
|
||||
_patch ??= Harmony.CreateAndPatchAll(typeof(BirthPlanetPatch));
|
||||
}
|
||||
|
||||
public static void Uninit()
|
||||
{
|
||||
_patch?.UnpatchSelf();
|
||||
_patch = null;
|
||||
}
|
||||
|
||||
[HarmonyPostfix, HarmonyPatch(typeof(VFPreload), "InvokeOnLoadWorkEnded")]
|
||||
private static void VFPreload_InvokeOnLoadWorkEnded_Postfix()
|
||||
{
|
||||
PatchBirthThemeData();
|
||||
}
|
||||
|
||||
private static void PatchBirthThemeData()
|
||||
{
|
||||
var theme = LDB.themes.Select(1);
|
||||
if (!_initialized)
|
||||
{
|
||||
_backupData.FromTheme(theme);
|
||||
}
|
||||
else
|
||||
{
|
||||
_backupData.ToTheme(theme);
|
||||
}
|
||||
|
||||
if (FlatBirthPlanet.Value)
|
||||
{
|
||||
theme.Algos[0] = 2;
|
||||
}
|
||||
|
||||
if (SitiVeinsOnBirthPlanet.Value)
|
||||
{
|
||||
theme.VeinSpot[2] = 2;
|
||||
theme.VeinSpot[3] = 2;
|
||||
theme.VeinCount[2] = 0.7f;
|
||||
theme.VeinCount[3] = 0.7f;
|
||||
theme.VeinOpacity[2] = 1f;
|
||||
theme.VeinOpacity[3] = 1f;
|
||||
}
|
||||
|
||||
List<int> veins = new();
|
||||
List<float> settings = new();
|
||||
if (FireIceOnBirthPlanet.Value)
|
||||
{
|
||||
veins.Add(8);
|
||||
settings.AddRange(new[] { 1f, 1f, 0.5f, 1f });
|
||||
}
|
||||
|
||||
if (KimberliteOnBirthPlanet.Value)
|
||||
{
|
||||
veins.Add(9);
|
||||
settings.AddRange(new[] { 1f, 1f, 0.5f, 1f });
|
||||
}
|
||||
|
||||
if (FractalOnBirthPlanet.Value)
|
||||
{
|
||||
veins.Add(10);
|
||||
settings.AddRange(new[] { 1f, 1f, 0.5f, 1f });
|
||||
}
|
||||
|
||||
if (OrganicOnBirthPlanet.Value)
|
||||
{
|
||||
veins.Add(11);
|
||||
settings.AddRange(new[] { 1f, 1f, 0.5f, 1f });
|
||||
}
|
||||
|
||||
if (OpticalOnBirthPlanet.Value)
|
||||
{
|
||||
veins.Add(12);
|
||||
settings.AddRange(new[] { 1f, 1f, 0.5f, 1f });
|
||||
}
|
||||
|
||||
if (SpiniformOnBirthPlanet.Value)
|
||||
{
|
||||
veins.Add(13);
|
||||
settings.AddRange(new[] { 1f, 1f, 0.5f, 1f });
|
||||
}
|
||||
|
||||
if (UnipolarOnBirthPlanet.Value)
|
||||
{
|
||||
veins.Add(14);
|
||||
settings.AddRange(new[] { 1f, 1f, 0.5f, 1f });
|
||||
}
|
||||
|
||||
if (veins.Count > 0)
|
||||
{
|
||||
theme.RareVeins = veins.ToArray();
|
||||
theme.RareSettings = settings.ToArray();
|
||||
}
|
||||
|
||||
if (HighLuminosityBirthStar.Value)
|
||||
{
|
||||
StarGen.specifyBirthStarMass = 53.81f;
|
||||
StarGen.specifyBirthStarAge = 0.01f;
|
||||
}
|
||||
|
||||
_initialized = true;
|
||||
}
|
||||
}
|
||||
@@ -60,26 +60,6 @@ public class CheatEnabler : BaseUnityPlugin
|
||||
"Overclock ejector");
|
||||
DysonSpherePatch.OverclockSiloEnabled = Config.Bind("DysonSphere", "OverclockSilo", false,
|
||||
"Overclock silo");
|
||||
BirthPlanetPatch.SitiVeinsOnBirthPlanet = Config.Bind("Birth", "SiTiVeinsOnBirthPlanet", false,
|
||||
"Silicon/Titanium on birth planet");
|
||||
BirthPlanetPatch.FireIceOnBirthPlanet = Config.Bind("Birth", "FireIceOnBirthPlanet", false,
|
||||
"Fire ice on birth planet");
|
||||
BirthPlanetPatch.KimberliteOnBirthPlanet = Config.Bind("Birth", "KimberliteOnBirthPlanet", false,
|
||||
"Kimberlite on birth planet");
|
||||
BirthPlanetPatch.FractalOnBirthPlanet = Config.Bind("Birth", "FractalOnBirthPlanet", false,
|
||||
"Fractal silicon on birth planet");
|
||||
BirthPlanetPatch.OrganicOnBirthPlanet = Config.Bind("Birth", "OrganicOnBirthPlanet", false,
|
||||
"Organic crystal on birth planet");
|
||||
BirthPlanetPatch.OpticalOnBirthPlanet = Config.Bind("Birth", "OpticalOnBirthPlanet", false,
|
||||
"Optical grating crystal on birth planet");
|
||||
BirthPlanetPatch.SpiniformOnBirthPlanet = Config.Bind("Birth", "SpiniformOnBirthPlanet", false,
|
||||
"Spiniform stalagmite crystal on birth planet");
|
||||
BirthPlanetPatch.UnipolarOnBirthPlanet = Config.Bind("Birth", "UnipolarOnBirthPlanet", false,
|
||||
"Unipolar magnet on birth planet");
|
||||
BirthPlanetPatch.FlatBirthPlanet = Config.Bind("Birth", "FlatBirthPlanet", false,
|
||||
"Birth planet is solid flat (no water at all)");
|
||||
BirthPlanetPatch.HighLuminosityBirthStar = Config.Bind("Birth", "HighLuminosityBirthStar", false,
|
||||
"Birth star has high luminosity");
|
||||
|
||||
UIConfigWindow.Init();
|
||||
|
||||
@@ -90,12 +70,10 @@ public class CheatEnabler : BaseUnityPlugin
|
||||
ResourcePatch.Init();
|
||||
PlanetPatch.Init();
|
||||
DysonSpherePatch.Init();
|
||||
BirthPlanetPatch.Init();
|
||||
}
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
BirthPlanetPatch.Uninit();
|
||||
DysonSpherePatch.Uninit();
|
||||
PlanetPatch.Uninit();
|
||||
ResourcePatch.Uninit();
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
## Changlog
|
||||
* 2.3.2
|
||||
+ Birth star options moved to [UniverseGenTweaks](https://dsp.thunderstore.io/package/soarqin/UniverseGenTweaks/)
|
||||
+ `Fast Mining` ensures full output of oil extractors now.
|
||||
+ Crash fix for some options
|
||||
* 2.3.1
|
||||
+ Add UXAssist to dependencies in manifest.
|
||||
@@ -84,10 +85,6 @@
|
||||
+ Skip absorption period
|
||||
+ Quick absorb
|
||||
+ Eject anyway
|
||||
+ Birth star:
|
||||
+ Rare resources on birth planet
|
||||
+ Solid flat on birth planet
|
||||
+ High luminosity for birth star
|
||||
|
||||
## Notes
|
||||
* Please upgrade `BepInEx` 5.4.21 or later if using with [BlueprintTweaks](https://dsp.thunderstore.io/package/kremnev8/BlueprintTweaks/) to avoid possible conflicts.
|
||||
@@ -102,6 +99,7 @@
|
||||
## 更新日志
|
||||
* 2.3.2
|
||||
+ 母星系的选项移动到了[UniverseGenTweaks](https://dsp.thunderstore.io/package/soarqin/UniverseGenTweaks/)
|
||||
+ `高速采集`现在可以保证油井的最大产出
|
||||
+ 修复了一些选项可能导致崩溃的问题
|
||||
* 2.3.1
|
||||
+ 在manifest中添加UXAssist到依赖
|
||||
@@ -180,10 +178,6 @@
|
||||
+ 跳过吸收阶段
|
||||
+ 快速吸收
|
||||
+ 全球弹射
|
||||
+ 母星系:
|
||||
+ 母星有稀有资源
|
||||
+ 母星是纯平的
|
||||
+ 母星系恒星高亮
|
||||
|
||||
## 注意事项
|
||||
* 如果和[BlueprintTweaks](https://dsp.thunderstore.io/package/kremnev8/BlueprintTweaks/)一起使用,请升级`BepInEx`到5.4.21或更高版本,以避免可能的冲突。
|
||||
|
||||
@@ -107,7 +107,7 @@ public static class ResourcePatch
|
||||
).Repeat(codeMatcher =>
|
||||
codeMatcher.RemoveInstruction().InsertAndAdvance(
|
||||
new CodeInstruction(OpCodes.Pop),
|
||||
new CodeInstruction(OpCodes.Ldc_R4, 720f)
|
||||
new CodeInstruction(OpCodes.Ldc_R4, 2400f)
|
||||
)
|
||||
);
|
||||
return matcher.InstructionEnumeration();
|
||||
|
||||
@@ -183,30 +183,6 @@ public static class UIConfigWindow
|
||||
MyCheckBox.CreateCheckBox(x, y, tab4, DysonSpherePatch.OverclockEjectorEnabled, "Overclock Ejectors");
|
||||
y += 36f;
|
||||
MyCheckBox.CreateCheckBox(x, y, tab4, DysonSpherePatch.OverclockSiloEnabled, "Overclock Silos");
|
||||
|
||||
var tab5 = wnd.AddTab(_windowTrans, "Birth");
|
||||
x = 0f;
|
||||
y = 10f;
|
||||
MyCheckBox.CreateCheckBox(x, y, tab5, BirthPlanetPatch.SitiVeinsOnBirthPlanet, "Silicon/Titanium on birth planet");
|
||||
y += 36f;
|
||||
MyCheckBox.CreateCheckBox(x, y, tab5, BirthPlanetPatch.FireIceOnBirthPlanet, "Fire ice on birth planet");
|
||||
y += 36f;
|
||||
MyCheckBox.CreateCheckBox(x, y, tab5, BirthPlanetPatch.KimberliteOnBirthPlanet, "Kimberlite on birth planet");
|
||||
y += 36f;
|
||||
MyCheckBox.CreateCheckBox(x, y, tab5, BirthPlanetPatch.FractalOnBirthPlanet, "Fractal silicon on birth planet");
|
||||
y += 36f;
|
||||
MyCheckBox.CreateCheckBox(x, y, tab5, BirthPlanetPatch.OrganicOnBirthPlanet, "Organic crystal on birth planet");
|
||||
y += 36f;
|
||||
MyCheckBox.CreateCheckBox(x, y, tab5, BirthPlanetPatch.OpticalOnBirthPlanet, "Optical grating crystal on birth planet");
|
||||
y += 36f;
|
||||
MyCheckBox.CreateCheckBox(x, y, tab5, BirthPlanetPatch.SpiniformOnBirthPlanet, "Spiniform stalagmite crystal on birth planet");
|
||||
y += 36f;
|
||||
MyCheckBox.CreateCheckBox(x, y, tab5, BirthPlanetPatch.UnipolarOnBirthPlanet, "Unipolar magnet on birth planet");
|
||||
x = 300f;
|
||||
y = 10f;
|
||||
MyCheckBox.CreateCheckBox(x, y, tab5, BirthPlanetPatch.FlatBirthPlanet, "Birth planet is solid flat (no water at all)");
|
||||
y += 36f;
|
||||
MyCheckBox.CreateCheckBox(x, y, tab5, BirthPlanetPatch.HighLuminosityBirthStar, "Birth star has high luminosity");
|
||||
return;
|
||||
|
||||
void OnBeltSignalChanged()
|
||||
|
||||
Reference in New Issue
Block a user