mirror of
https://github.com/soarqin/DSP_Mods.git
synced 2026-02-05 00:22:21 +08:00
WIP for UXAssist 1.2.16
This commit is contained in:
@@ -1,5 +1,9 @@
|
|||||||
## Changlog
|
## Changlog
|
||||||
|
|
||||||
|
* 1.2.16
|
||||||
|
+ New feature: `Cut conveyor belt`
|
||||||
|
- Press shortcut key to cut conveyor belt under cursor.
|
||||||
|
- The default shortcut key is Alt+X, you can set it in system options panel.
|
||||||
* 1.2.15
|
* 1.2.15
|
||||||
+ `Off-grid building and stepped rotation`: Fix compatibility with DSP 0.10.32.25682. (#57)
|
+ `Off-grid building and stepped rotation`: Fix compatibility with DSP 0.10.32.25682. (#57)
|
||||||
+ `Enhanced control for logistic storage limits`: Try to fix possible crash. (#54)
|
+ `Enhanced control for logistic storage limits`: Try to fix possible crash. (#54)
|
||||||
@@ -239,6 +243,10 @@
|
|||||||
|
|
||||||
## 更新日志
|
## 更新日志
|
||||||
|
|
||||||
|
* 1.2.16
|
||||||
|
+ 新功能:`切割传送带`
|
||||||
|
- 按快捷键切割光标位置的传送带
|
||||||
|
- 默认快捷键是Alt+X,可以在系统选项面板中设置
|
||||||
* 1.2.15
|
* 1.2.15
|
||||||
+ `脱离网格建造和小角度旋转`:修复了与0.10.32.25682的兼容性 (#57)
|
+ `脱离网格建造和小角度旋转`:修复了与0.10.32.25682的兼容性 (#57)
|
||||||
+ `物流塔存储数量限制控制改进`:修复了可能导致崩溃的问题 (#54)
|
+ `物流塔存储数量限制控制改进`:修复了可能导致崩溃的问题 (#54)
|
||||||
|
|||||||
13
UXAssist/Functions/FactoryFunctions.cs
Normal file
13
UXAssist/Functions/FactoryFunctions.cs
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
namespace UXAssist.Functions;
|
||||||
|
|
||||||
|
public static class FactoryFunctions
|
||||||
|
{
|
||||||
|
public static void CutConveyorBelt(CargoTraffic cargoTraffic, int beltId)
|
||||||
|
{
|
||||||
|
ref var belt = ref cargoTraffic.beltPool[beltId];
|
||||||
|
if (belt.id != beltId || belt.outputId <= 0) return;
|
||||||
|
var (i0, i1, i2) = (belt.rightInputId, belt.backInputId, belt.leftInputId);
|
||||||
|
cargoTraffic._arrInputs(ref i0, ref i1, ref i2);
|
||||||
|
cargoTraffic.AlterBeltConnections(beltId, 0, i0, i1, i2);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -33,8 +33,10 @@ public class FactoryPatch : PatchImpl<FactoryPatch>
|
|||||||
public static ConfigEntry<bool> BeltSignalsForBuyOutEnabled;
|
public static ConfigEntry<bool> BeltSignalsForBuyOutEnabled;
|
||||||
public static ConfigEntry<bool> TankFastFillInAndTakeOutEnabled;
|
public static ConfigEntry<bool> TankFastFillInAndTakeOutEnabled;
|
||||||
public static ConfigEntry<int> TankFastFillInAndTakeOutMultiplier;
|
public static ConfigEntry<int> TankFastFillInAndTakeOutMultiplier;
|
||||||
|
public static ConfigEntry<bool> CutConveyorBeltEnabled;
|
||||||
private static PressKeyBind _doNotRenderEntitiesKey;
|
private static PressKeyBind _doNotRenderEntitiesKey;
|
||||||
private static PressKeyBind _offgridfForPathsKey;
|
private static PressKeyBind _offgridfForPathsKey;
|
||||||
|
private static PressKeyBind _cutConveyorBeltKey;
|
||||||
|
|
||||||
private static int _tankFastFillInAndTakeOutMultiplierRealValue = 2;
|
private static int _tankFastFillInAndTakeOutMultiplierRealValue = 2;
|
||||||
|
|
||||||
@@ -51,13 +53,21 @@ public class FactoryPatch : PatchImpl<FactoryPatch>
|
|||||||
I18N.Add("KEYToggleDoNotRenderEntities", "Toggle Do Not Render Factory Entities", "切换不渲染工厂建筑实体");
|
I18N.Add("KEYToggleDoNotRenderEntities", "Toggle Do Not Render Factory Entities", "切换不渲染工厂建筑实体");
|
||||||
_offgridfForPathsKey = KeyBindings.RegisterKeyBinding(new BuiltinKey
|
_offgridfForPathsKey = KeyBindings.RegisterKeyBinding(new BuiltinKey
|
||||||
{
|
{
|
||||||
key = new CombineKey(0, CombineKey.CTRL_COMB, ECombineKeyAction.OnceClick, false),
|
key = new CombineKey(0, 0, ECombineKeyAction.OnceClick, false),
|
||||||
conflictGroup = KeyBindConflict.MOVEMENT | KeyBindConflict.UI | KeyBindConflict.FLYING | KeyBindConflict.SAILING | KeyBindConflict.BUILD_MODE_1 | KeyBindConflict.KEYBOARD_KEYBIND,
|
conflictGroup = KeyBindConflict.MOVEMENT | KeyBindConflict.UI | KeyBindConflict.FLYING | KeyBindConflict.SAILING | KeyBindConflict.BUILD_MODE_1 | KeyBindConflict.KEYBOARD_KEYBIND,
|
||||||
name = "OffgridForPaths",
|
name = "OffgridForPaths",
|
||||||
canOverride = true
|
canOverride = true
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
I18N.Add("KEYOffgridForPaths", "Build belts offgrid", "脱离网格建造传送带");
|
I18N.Add("KEYOffgridForPaths", "Build belts offgrid", "脱离网格建造传送带");
|
||||||
|
_cutConveyorBeltKey = KeyBindings.RegisterKeyBinding(new BuiltinKey
|
||||||
|
{
|
||||||
|
key = new CombineKey((int)KeyCode.X, CombineKey.ALT_COMB, ECombineKeyAction.OnceClick, false),
|
||||||
|
name = "CutConveyorBelt",
|
||||||
|
canOverride = true
|
||||||
|
}
|
||||||
|
);
|
||||||
|
I18N.Add("KEYCutConveyorBelt", "Cut conveyor belt", "切割传送带");
|
||||||
|
|
||||||
BeltSignalsForBuyOut.InitPersist();
|
BeltSignalsForBuyOut.InitPersist();
|
||||||
ProtectVeinsFromExhaustion.InitConfig();
|
ProtectVeinsFromExhaustion.InitConfig();
|
||||||
@@ -79,6 +89,7 @@ public class FactoryPatch : PatchImpl<FactoryPatch>
|
|||||||
BeltSignalsForBuyOutEnabled.SettingChanged += (_, _) => BeltSignalsForBuyOut.Enable(BeltSignalsForBuyOutEnabled.Value);
|
BeltSignalsForBuyOutEnabled.SettingChanged += (_, _) => BeltSignalsForBuyOut.Enable(BeltSignalsForBuyOutEnabled.Value);
|
||||||
TankFastFillInAndTakeOutEnabled.SettingChanged += (_, _) => TankFastFillInAndTakeOut.Enable(TankFastFillInAndTakeOutEnabled.Value);
|
TankFastFillInAndTakeOutEnabled.SettingChanged += (_, _) => TankFastFillInAndTakeOut.Enable(TankFastFillInAndTakeOutEnabled.Value);
|
||||||
TankFastFillInAndTakeOutMultiplier.SettingChanged += (_, _) => { UpdateTankFastFillInAndTakeOutMultiplierRealValue(); };
|
TankFastFillInAndTakeOutMultiplier.SettingChanged += (_, _) => { UpdateTankFastFillInAndTakeOutMultiplierRealValue(); };
|
||||||
|
CutConveyorBeltEnabled.SettingChanged += (_, _) => CutConveyorBelt.Enable(CutConveyorBeltEnabled.Value);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Start()
|
public static void Start()
|
||||||
@@ -97,6 +108,7 @@ public class FactoryPatch : PatchImpl<FactoryPatch>
|
|||||||
DragBuildPowerPoles.Enable(DragBuildPowerPolesEnabled.Value);
|
DragBuildPowerPoles.Enable(DragBuildPowerPolesEnabled.Value);
|
||||||
BeltSignalsForBuyOut.Enable(BeltSignalsForBuyOutEnabled.Value);
|
BeltSignalsForBuyOut.Enable(BeltSignalsForBuyOutEnabled.Value);
|
||||||
TankFastFillInAndTakeOut.Enable(TankFastFillInAndTakeOutEnabled.Value);
|
TankFastFillInAndTakeOut.Enable(TankFastFillInAndTakeOutEnabled.Value);
|
||||||
|
CutConveyorBelt.Enable(CutConveyorBeltEnabled.Value);
|
||||||
|
|
||||||
Enable(true);
|
Enable(true);
|
||||||
UpdateTankFastFillInAndTakeOutMultiplierRealValue();
|
UpdateTankFastFillInAndTakeOutMultiplierRealValue();
|
||||||
@@ -106,6 +118,7 @@ public class FactoryPatch : PatchImpl<FactoryPatch>
|
|||||||
{
|
{
|
||||||
Enable(false);
|
Enable(false);
|
||||||
|
|
||||||
|
CutConveyorBelt.Enable(false);
|
||||||
TankFastFillInAndTakeOut.Enable(false);
|
TankFastFillInAndTakeOut.Enable(false);
|
||||||
BeltSignalsForBuyOut.Enable(false);
|
BeltSignalsForBuyOut.Enable(false);
|
||||||
DragBuildPowerPoles.Enable(false);
|
DragBuildPowerPoles.Enable(false);
|
||||||
@@ -1928,4 +1941,23 @@ public class FactoryPatch : PatchImpl<FactoryPatch>
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private class CutConveyorBelt : PatchImpl<CutConveyorBelt>
|
||||||
|
{
|
||||||
|
|
||||||
|
[HarmonyPostfix]
|
||||||
|
[HarmonyPatch(typeof(PlayerController), nameof(PlayerController.GameTick))]
|
||||||
|
private static void PlayerController_GameTick_Postfix(PlayerController __instance)
|
||||||
|
{
|
||||||
|
if (DSPGame.IsMenuDemo) return;
|
||||||
|
if (!_cutConveyorBeltKey.keyValue) return;
|
||||||
|
var raycast = __instance.cmd.raycast;
|
||||||
|
if (raycast == null) return;
|
||||||
|
if (raycast.castEntity.id <= 0) return;
|
||||||
|
int beltId;
|
||||||
|
if ((beltId = raycast.castEntity.beltId) <= 0) return;
|
||||||
|
var cargoTraffic = raycast.planet.factory.cargoTraffic;
|
||||||
|
Functions.FactoryFunctions.CutConveyorBelt(cargoTraffic, beltId);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -45,6 +45,9 @@
|
|||||||
- Larger area for upgrade and dismantle(30x30 at max)
|
- Larger area for upgrade and dismantle(30x30 at max)
|
||||||
- Larger area for terraform(30x30 at max)
|
- Larger area for terraform(30x30 at max)
|
||||||
- Off-grid building and stepped rotation
|
- Off-grid building and stepped rotation
|
||||||
|
- Cut conveyor belt
|
||||||
|
- Press shortcut key to cut conveyor belt under cursor.
|
||||||
|
- The default shortcut key is Alt+X, you can set it in system options panel.
|
||||||
- Treat stack items as single in monitor components
|
- Treat stack items as single in monitor components
|
||||||
- Enhanced control for logistic storage limits
|
- Enhanced control for logistic storage limits
|
||||||
- Logistic storage limits are not scaled on upgrading `Logistics Carrier Capacity`, if they are not set to maximum capacity.
|
- Logistic storage limits are not scaled on upgrading `Logistics Carrier Capacity`, if they are not set to maximum capacity.
|
||||||
@@ -162,6 +165,9 @@
|
|||||||
- 范围升级和拆除的最大区域扩大(最大30x30)
|
- 范围升级和拆除的最大区域扩大(最大30x30)
|
||||||
- 范围铺设地基的最大区域扩大(最大30x30)
|
- 范围铺设地基的最大区域扩大(最大30x30)
|
||||||
- 脱离网格建造以及小角度旋转
|
- 脱离网格建造以及小角度旋转
|
||||||
|
- 切割传送带
|
||||||
|
- 按快捷键切割光标位置的传送带
|
||||||
|
- 默认快捷键是Alt+X,可以在系统选项面板中设置
|
||||||
- 在流速计中将堆叠物品视为单个物品
|
- 在流速计中将堆叠物品视为单个物品
|
||||||
- 物流塔存储数量限制控制改进
|
- 物流塔存储数量限制控制改进
|
||||||
- 当升级`运输机舱扩容`时,不会对各种物流塔的存储限制按比例提升,除非设置为最大允许容量。
|
- 当升级`运输机舱扩容`时,不会对各种物流塔的存储限制按比例提升,除非设置为最大允许容量。
|
||||||
|
|||||||
@@ -70,6 +70,7 @@ public static class UIConfigWindow
|
|||||||
I18N.Add("Quick build and dismantle stacking labs", "Quick build and dismantle stacking labs/storages/tanks(hold shift)", "快速建造和拆除堆叠研究站/储物仓/储液罐(按住shift)");
|
I18N.Add("Quick build and dismantle stacking labs", "Quick build and dismantle stacking labs/storages/tanks(hold shift)", "快速建造和拆除堆叠研究站/储物仓/储液罐(按住shift)");
|
||||||
I18N.Add("Fast fill in to and take out from tanks", "Fast fill in to and take out from tanks", "储液罐快速注入和抽取液体");
|
I18N.Add("Fast fill in to and take out from tanks", "Fast fill in to and take out from tanks", "储液罐快速注入和抽取液体");
|
||||||
I18N.Add("Speed Ratio", "Speed Ratio", "速度倍率");
|
I18N.Add("Speed Ratio", "Speed Ratio", "速度倍率");
|
||||||
|
I18N.Add("Cut conveyor belt (with shortcut key)", "Cut conveyor belt (with shortcut key)", "切割传送带(使用快捷键)");
|
||||||
I18N.Add("Protect veins from exhaustion", "Protect veins from exhaustion", "保护矿脉不会耗尽");
|
I18N.Add("Protect veins from exhaustion", "Protect veins from exhaustion", "保护矿脉不会耗尽");
|
||||||
I18N.Add("Protect veins from exhaustion tips",
|
I18N.Add("Protect veins from exhaustion tips",
|
||||||
"By default, the vein amount is protected at 100, and oil speed is protected at 1.0/s, you can set them yourself in config file.\nWhen reach the protection value, veins/oils steeps will not be mined/extracted any longer.\nClose this function to resume mining and pumping, usually when you have enough level on `Veins Utilization`",
|
"By default, the vein amount is protected at 100, and oil speed is protected at 1.0/s, you can set them yourself in config file.\nWhen reach the protection value, veins/oils steeps will not be mined/extracted any longer.\nClose this function to resume mining and pumping, usually when you have enough level on `Veins Utilization`",
|
||||||
@@ -239,6 +240,8 @@ public static class UIConfigWindow
|
|||||||
y += 36f;
|
y += 36f;
|
||||||
wnd.AddCheckBox(x, y, tab2, FactoryPatch.OffGridBuildingEnabled, "Off-grid building and stepped rotation");
|
wnd.AddCheckBox(x, y, tab2, FactoryPatch.OffGridBuildingEnabled, "Off-grid building and stepped rotation");
|
||||||
y += 36f;
|
y += 36f;
|
||||||
|
wnd.AddCheckBox(x, y, tab2, FactoryPatch.CutConveyorBeltEnabled, "Cut conveyor belt (with shortcut key)");
|
||||||
|
y += 36f;
|
||||||
checkBoxForMeasureTextWidth = wnd.AddCheckBox(x, y, tab2, FactoryPatch.TreatStackingAsSingleEnabled, "Treat stack items as single in monitor components");
|
checkBoxForMeasureTextWidth = wnd.AddCheckBox(x, y, tab2, FactoryPatch.TreatStackingAsSingleEnabled, "Treat stack items as single in monitor components");
|
||||||
y += 36f;
|
y += 36f;
|
||||||
wnd.AddCheckBox(x, y, tab2, FactoryPatch.QuickBuildAndDismantleLabsEnabled, "Quick build and dismantle stacking labs");
|
wnd.AddCheckBox(x, y, tab2, FactoryPatch.QuickBuildAndDismantleLabsEnabled, "Quick build and dismantle stacking labs");
|
||||||
|
|||||||
@@ -134,6 +134,8 @@ public class UXAssist : BaseUnityPlugin, IModCanSave
|
|||||||
FactoryPatch.TankFastFillInAndTakeOutEnabled = Config.Bind("Factory", "TankFastFillInAndTakeOut", false,
|
FactoryPatch.TankFastFillInAndTakeOutEnabled = Config.Bind("Factory", "TankFastFillInAndTakeOut", false,
|
||||||
"Fast fill in to and take out from tanks");
|
"Fast fill in to and take out from tanks");
|
||||||
FactoryPatch.TankFastFillInAndTakeOutMultiplier = Config.Bind("Factory", "TankFastFillInAndTakeOutMultiplier", 1000, "Speed multiplier for fast filling in to and takeing out from tanks");
|
FactoryPatch.TankFastFillInAndTakeOutMultiplier = Config.Bind("Factory", "TankFastFillInAndTakeOutMultiplier", 1000, "Speed multiplier for fast filling in to and takeing out from tanks");
|
||||||
|
FactoryPatch.CutConveyorBeltEnabled = Config.Bind("Factory", "CutConveyorBeltShortcut", false,
|
||||||
|
"Cut conveyor belt (with shortcut key)");
|
||||||
LogisticsPatch.LogisticsCapacityTweaksEnabled = Config.Bind("Factory", "LogisticsCapacityTweaks", true,
|
LogisticsPatch.LogisticsCapacityTweaksEnabled = Config.Bind("Factory", "LogisticsCapacityTweaks", true,
|
||||||
"Logistics capacity related tweaks");
|
"Logistics capacity related tweaks");
|
||||||
LogisticsPatch.AllowOverflowInLogisticsEnabled = Config.Bind("Factory", "AllowOverflowInLogistics", false,
|
LogisticsPatch.AllowOverflowInLogisticsEnabled = Config.Bind("Factory", "AllowOverflowInLogistics", false,
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
<TargetFramework>net472</TargetFramework>
|
<TargetFramework>net472</TargetFramework>
|
||||||
<BepInExPluginGuid>org.soardev.uxassist</BepInExPluginGuid>
|
<BepInExPluginGuid>org.soardev.uxassist</BepInExPluginGuid>
|
||||||
<Description>DSP MOD - UXAssist</Description>
|
<Description>DSP MOD - UXAssist</Description>
|
||||||
<Version>1.2.15</Version>
|
<Version>1.2.16</Version>
|
||||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||||
<LangVersion>latest</LangVersion>
|
<LangVersion>latest</LangVersion>
|
||||||
<PackageId>UXAssist</PackageId>
|
<PackageId>UXAssist</PackageId>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "UXAssist",
|
"name": "UXAssist",
|
||||||
"version_number": "1.2.15",
|
"version_number": "1.2.16",
|
||||||
"website_url": "https://github.com/soarqin/DSP_Mods/tree/master/UXAssist",
|
"website_url": "https://github.com/soarqin/DSP_Mods/tree/master/UXAssist",
|
||||||
"description": "Some functions and patches for better user experience / 一些提升用户体验的功能和补丁",
|
"description": "Some functions and patches for better user experience / 一些提升用户体验的功能和补丁",
|
||||||
"dependencies": [
|
"dependencies": [
|
||||||
|
|||||||
Reference in New Issue
Block a user