mirror of
https://github.com/soarqin/DSP_Mods.git
synced 2025-12-09 02:53:29 +08:00
UXAssist v1.2.20
This commit is contained in:
@@ -4,6 +4,8 @@
|
||||
+ New feature: `Dismantle blueprint selected buildings`
|
||||
- Press shortcut key in blueprint copy mode to dismantle selected buildings.
|
||||
- The default shortcut key is Ctrl+X, you can set it in system options panel.
|
||||
+ New feature: `Auto-config logistic stations`
|
||||
- Auto-config buildings include: Logistics Distributor, PLS, ILS, Advanced Mining Machine.
|
||||
+ `Night Sunlight`: Fix bugs that sunlight angle is not updated as expected again.
|
||||
* 1.2.19
|
||||
+ New feature: `Tweak building buffer`
|
||||
@@ -274,6 +276,8 @@
|
||||
+ 新功能:`拆除蓝图选中的建筑`
|
||||
- 在蓝图复制模式下按快捷键拆除选中的建筑
|
||||
- 默认快捷键是Ctrl+X,可以在系统选项面板中设置
|
||||
+ 新功能:`自动配置物流站`
|
||||
- 自动配置的建筑包括:物流配送器、行星物流站、星际物流站、高级采矿机
|
||||
+ `夜间日光灯`:再次修复了光照角度未正确更新的问题
|
||||
* 1.2.19
|
||||
+ 新功能:`调整建筑输入缓冲`
|
||||
|
||||
@@ -19,7 +19,6 @@ public static class LogisticsPatch
|
||||
// Dispenser config
|
||||
public static ConfigEntry<int> AutoConfigDispenserChargePower; // 3~30, display as 300000.0 * value
|
||||
public static ConfigEntry<int> AutoConfigDispenserCourierCount; // 0~10
|
||||
public static ConfigEntry<bool> AutoConfigDispenserAutoGuess;
|
||||
// PLS config
|
||||
public static ConfigEntry<int> AutoConfigPLSChargePower; // 2~20, display as 3000000.0 * value
|
||||
public static ConfigEntry<int> AutoConfigPLSMaxTripDrone; // 1~180, by degress
|
||||
@@ -94,11 +93,77 @@ public static class LogisticsPatch
|
||||
|
||||
private class AutoConfigLogistics: PatchImpl<AutoConfigLogistics>
|
||||
{
|
||||
enum KnownItemId: int
|
||||
{
|
||||
Drone = 5001,
|
||||
Ship = 5002,
|
||||
Bot = 5003,
|
||||
Warper = 1210,
|
||||
}
|
||||
|
||||
private static void DoConfigStation(PlanetFactory factory, StationComponent station)
|
||||
{
|
||||
if (station.isCollector) return;
|
||||
if (station.isVeinCollector)
|
||||
{
|
||||
factory.factorySystem.minerPool[station.minerId].speed = 10000 + AutoConfigVeinCollectorHarvestSpeed.Value * 1000;
|
||||
station.pilerCount = AutoConfigVeinCollectorMinPilerValue.Value;
|
||||
return;
|
||||
}
|
||||
int toFill;
|
||||
if (!station.isStellar) {
|
||||
factory.powerSystem.consumerPool[station.pcId].workEnergyPerTick = (long)(50000.0 * (double)AutoConfigPLSChargePower.Value + 0.5);
|
||||
station.tripRangeDrones = Math.Cos(AutoConfigPLSMaxTripDrone.Value / 180.0 * Math.PI);
|
||||
station.deliveryDrones = AutoConfigPLSDroneMinDeliver.Value switch { 0 => 1, _ => AutoConfigPLSDroneMinDeliver.Value * 10 };
|
||||
station.pilerCount = AutoConfigPLSMinPilerValue.Value;
|
||||
toFill = Math.Max(0, AutoConfigPLSDroneCount.Value - station.idleDroneCount - station.workDroneCount);
|
||||
if (toFill > 0) station.idleDroneCount += GameMain.data.mainPlayer.package.TakeItem((int)KnownItemId.Drone, toFill, out _);
|
||||
return;
|
||||
}
|
||||
factory.powerSystem.consumerPool[station.pcId].workEnergyPerTick = (long)(250000.0 * (double)AutoConfigILSChargePower.Value + 0.5);
|
||||
station.tripRangeDrones = Math.Cos(AutoConfigILSMaxTripDrone.Value / 180.0 * Math.PI);
|
||||
station.tripRangeShips = AutoConfigILSMaxTripShip.Value switch {
|
||||
<= 20 => AutoConfigILSMaxTripShip.Value,
|
||||
<= 40 => AutoConfigILSMaxTripShip.Value * 2 - 20,
|
||||
_ => 10000,
|
||||
} * 2400000.0;
|
||||
station.warpEnableDist = AutoConfigILSWarperDistance.Value switch {
|
||||
<= 7 => AutoConfigILSWarperDistance.Value * 0.5 - 0.5,
|
||||
<= 16 => AutoConfigILSWarperDistance.Value - 4.0,
|
||||
<= 20 => AutoConfigILSWarperDistance.Value * 2 - 20.0,
|
||||
_ => 60.0,
|
||||
} * 40000.0;
|
||||
station.deliveryDrones = AutoConfigILSDroneMinDeliver.Value switch { 0 => 1, _ => AutoConfigILSDroneMinDeliver.Value * 10 };
|
||||
station.deliveryShips = AutoConfigILSShipMinDeliver.Value switch { 0 => 1, _ => AutoConfigILSShipMinDeliver.Value * 10 };
|
||||
station.pilerCount = AutoConfigILSMinPilerValue.Value;
|
||||
station.includeOrbitCollector = AutoConfigILSIncludeOrbitCollector.Value;
|
||||
station.warperNecessary = AutoConfigILSWarperNecessary.Value;
|
||||
toFill = Math.Max(0, AutoConfigILSDroneCount.Value - station.idleDroneCount - station.workDroneCount);
|
||||
if (toFill > 0) station.idleDroneCount += GameMain.data.mainPlayer.package.TakeItem((int)KnownItemId.Drone, toFill, out _);
|
||||
toFill = Math.Max(0, AutoConfigILSShipCount.Value - station.idleShipCount - station.workShipCount);
|
||||
if (toFill > 0) station.idleShipCount += GameMain.data.mainPlayer.package.TakeItem((int)KnownItemId.Ship, toFill, out _);
|
||||
}
|
||||
|
||||
private static void DoConfigDispenser(PlanetFactory factory, DispenserComponent dispenser)
|
||||
{
|
||||
factory.powerSystem.consumerPool[dispenser.pcId].workEnergyPerTick = (long)(5000.0 * (double)AutoConfigDispenserChargePower.Value + 0.5);
|
||||
var toFill = Math.Max(0, AutoConfigDispenserCourierCount.Value - dispenser.idleCourierCount - dispenser.workCourierCount);
|
||||
if (toFill > 0) dispenser.idleCourierCount += GameMain.data.mainPlayer.package.TakeItem((int)KnownItemId.Bot, toFill, out _);
|
||||
}
|
||||
|
||||
[HarmonyPostfix]
|
||||
[HarmonyPatch(typeof(PlanetTransport), nameof(PlanetTransport.NewStationComponent))]
|
||||
private static void PlanetTransport_NewStationComponent_Postfix(PlanetTransport __instance, StationComponent __result)
|
||||
{
|
||||
DoConfigStation(__instance.factory, __result);
|
||||
}
|
||||
|
||||
[HarmonyPostfix]
|
||||
[HarmonyPatch(typeof(PlanetTransport), nameof(PlanetTransport.NewDispenserComponent))]
|
||||
private static void PlanetTransport_NewDispenserComponent_Postfix(PlanetTransport __instance, int __result)
|
||||
{
|
||||
if (__result <= 0) return;
|
||||
DoConfigDispenser(__instance.factory, __instance.dispenserPool[__result]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
- Set enabled CPU threads
|
||||
- Increase maximum count of Metadata Instantiations to 20000 (from 2000)
|
||||
- Increase capacity of player order queue to 128 (from 16)
|
||||
+ Planet/Factory
|
||||
+ Factory
|
||||
- Sunlight at night
|
||||
- Remove some build conditions
|
||||
- Remove build count and range limit
|
||||
@@ -51,9 +51,6 @@
|
||||
- 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
|
||||
- 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.
|
||||
- You can use arrow keys to adjust logistic storage limits gracefully.
|
||||
- Quick build and dismantle stacking labs/storages/tanks
|
||||
- Fast fill in to and take out from tanks
|
||||
- You can set multiplier for tanks' operation speed
|
||||
@@ -65,14 +62,6 @@
|
||||
- Do not render factory entities (except belts and sorters)
|
||||
- This also makes players click though factory entities but belts and sorters
|
||||
- Drag building power poles in maximum connection range
|
||||
- Allow overflow for Logistic Stations and Advanced Mining Machines
|
||||
- Allow overflow when trying to insert in-hand items
|
||||
- Allow `Enhanced control for logistic storage limits` to exceed tech capacity limits
|
||||
- Remove logistic strorage limit check on loading game
|
||||
- Logistics Control Panel Improvement
|
||||
- Auto apply filter with item under mouse cursor while opening the panel
|
||||
- Quick-set item filter while right-clicking item icons in storage list on the panel
|
||||
- Real-time logistic stations info panel
|
||||
- Dismantle blueprint selected buildings
|
||||
- Press shortcut key in blueprint copy mode to dismantle selected buildings.
|
||||
- The default shortcut key is Ctrl+X, you can set it in system options panel.
|
||||
@@ -98,6 +87,20 @@
|
||||
- `Extra buffer count for Self-evolution Labs`: Range 1-10, default is 3 (same as game)
|
||||
- `Buffer count for researching in labs`: Range 2-20, default is 10 (same as game)
|
||||
- `Ray Receiver Graviton Lens buffer count`: Range 1-20, default is 1 (game default is 20)
|
||||
+ Logistics
|
||||
- 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.
|
||||
- You can use arrow keys to adjust logistic storage limits gracefully.
|
||||
- Logistics Control Panel Improvement
|
||||
- Auto apply filter with item under mouse cursor while opening the panel
|
||||
- Quick-set item filter while right-clicking item icons in storage list on the panel
|
||||
- Allow overflow for Logistic Stations and Advanced Mining Machines
|
||||
- Allow overflow when trying to insert in-hand items
|
||||
- Allow `Enhanced control for logistic storage limits` to exceed tech capacity limits
|
||||
- Remove logistic strorage limit check on loading game
|
||||
- Real-time logistic stations info panel
|
||||
- Auto-config logistic stations
|
||||
- Auto-config buildings include: Logistics Distributor, PLS, ILS, Advanced Mining Machine
|
||||
+ Player/Mecha
|
||||
- Unlimited interactive range
|
||||
- Enable player actions in globe view
|
||||
@@ -178,7 +181,7 @@
|
||||
- 设置使用的CPU线程
|
||||
- 将元数据提取的最大数量增加到20000(原来为2000)
|
||||
- 将玩家指令队列的容量增加到128(原来为16)
|
||||
+ 行星/工厂
|
||||
+ 工厂
|
||||
- 夜间日光灯
|
||||
- 移除部分不影响游戏逻辑的建造条件
|
||||
- 范围升级和拆除的最大区域扩大(最大30x30)
|
||||
@@ -188,9 +191,6 @@
|
||||
- 按快捷键切割光标位置的传送带
|
||||
- 默认快捷键是Alt+X,可以在系统选项面板中设置
|
||||
- 在流速计中将堆叠物品视为单个物品
|
||||
- 物流塔存储数量限制控制改进
|
||||
- 当升级`运输机舱扩容`时,不会对各种物流塔的存储限制按比例提升,除非设置为最大允许容量。
|
||||
- 你可以使用方向键微调物流塔存储限制
|
||||
- 快速建造和拆除堆叠研究站/储物仓/储液罐
|
||||
- 储液罐快速注入和抽取液体
|
||||
- 你可以设置储液罐操作速度的倍率
|
||||
@@ -202,15 +202,6 @@
|
||||
- 不渲染工厂建筑实体(除了传送带和分拣器)
|
||||
- 这也使玩家可以点穿工厂实体直接点到传送带和分拣器
|
||||
- 拖动建造电线杆时自动使用最大连接距离间隔
|
||||
- 允许物流塔和大型采矿机物品溢出
|
||||
- 当尝试塞入手中物品时允许溢出
|
||||
- 允许`物流塔存储数量限制控制改进`超过科技容量限制
|
||||
- 在加载游戏时移除物流塔容量限制检查
|
||||
- 物流控制面板改进
|
||||
- 打开面板时自动将鼠标指向物品设为筛选条件
|
||||
- 在控制面板物流塔列表中右键点击物品图标快速设置为筛选条件
|
||||
- 物流运输站实时信息面板
|
||||
- 注意:如果你启用了`Auxilaryfunction`中的`展示物流站信息`,此功能将被隐藏
|
||||
- 拆除蓝图选中的建筑
|
||||
- 在蓝图复制模式下按快捷键拆除选中的建筑
|
||||
- 默认快捷键是Ctrl+X,可以在系统选项面板中设置
|
||||
@@ -236,6 +227,21 @@
|
||||
- `自演化研究站矩阵额外缓冲数量`:范围1-10,默认为3(同游戏)
|
||||
- `研究站科研模式缓存数量`:范围2-20,默认为10(同游戏)
|
||||
- `射线接收器透镜缓冲数量`:范围1-20,默认为1(游戏默认为20)
|
||||
+ 物流
|
||||
- 物流塔存储数量限制控制改进
|
||||
- 当升级`运输机舱扩容`时,不会对各种物流塔的存储限制按比例提升,除非设置为最大允许容量。
|
||||
- 你可以使用方向键微调物流塔存储限制
|
||||
- 物流控制面板改进
|
||||
- 打开面板时自动将鼠标指向物品设为筛选条件
|
||||
- 在控制面板物流塔列表中右键点击物品图标快速设置为筛选条件
|
||||
- 允许物流塔和大型采矿机物品溢出
|
||||
- 当尝试塞入手中物品时允许溢出
|
||||
- 允许`物流塔存储数量限制控制改进`超过科技容量限制
|
||||
- 在加载游戏时移除物流塔容量限制检查
|
||||
- 物流运输站实时信息面板
|
||||
- 注意:如果你启用了`Auxilaryfunction`中的`展示物流站信息`,此功能将被隐藏
|
||||
- 自动配置物流站
|
||||
- 自动配置的建筑包括:物流配送器、行星物流站、星际物流站、高级采矿机
|
||||
+ 玩家/机甲
|
||||
- 无限交互距离
|
||||
- 移除建造数量和范围限制
|
||||
|
||||
@@ -66,6 +66,7 @@ public class MyCheckBox : MonoBehaviour
|
||||
cb.uiButton = go.GetComponent<UIButton>();
|
||||
cb.boxImage = go.transform.GetComponent<Image>();
|
||||
cb.checkImage = go.transform.Find("checked")?.GetComponent<Image>();
|
||||
Util.NormalizeRectWithTopLeft(cb.checkImage, 0f, 0f);
|
||||
|
||||
var child = go.transform.Find("text");
|
||||
if (child != null)
|
||||
@@ -151,6 +152,16 @@ public class MyCheckBox : MonoBehaviour
|
||||
return this;
|
||||
}
|
||||
|
||||
public MyCheckBox WithSmallerBox(float boxSize = 20f)
|
||||
{
|
||||
var oldWidth = rectTrans.sizeDelta.x;
|
||||
rectTrans.sizeDelta = new Vector2(boxSize, boxSize);
|
||||
checkImage.rectTransform.sizeDelta = new Vector2(boxSize, boxSize);
|
||||
labelText.rectTransform.sizeDelta = new Vector2(labelText.rectTransform.sizeDelta.x, boxSize);
|
||||
labelText.rectTransform.localPosition = new Vector3(labelText.rectTransform.localPosition.x + boxSize - oldWidth, labelText.rectTransform.localPosition.y, labelText.rectTransform.localPosition.z);
|
||||
return this;
|
||||
}
|
||||
|
||||
public MyCheckBox WithEnable(bool on)
|
||||
{
|
||||
SetEnable(on);
|
||||
|
||||
@@ -127,6 +127,12 @@ public class MySideSlider : MonoBehaviour
|
||||
return this;
|
||||
}
|
||||
|
||||
public MySideSlider WithFontSize(int fontSize)
|
||||
{
|
||||
labelText.fontSize = fontSize;
|
||||
return this;
|
||||
}
|
||||
|
||||
public MySideSlider WithEnable(bool on)
|
||||
{
|
||||
SetEnable(on);
|
||||
|
||||
@@ -82,13 +82,12 @@ public static class UIConfigWindow
|
||||
I18N.Add("Build Tesla Tower and Wireless Power Tower alternately", "Build Tesla Tower and Wireless Power Tower alternately", "交替建造电力感应塔和无线输电塔");
|
||||
I18N.Add("Belt signals for buy out dark fog items automatically", "Belt signals for buy out dark fog items automatically", "用于自动购买黑雾物品的传送带信号");
|
||||
I18N.Add("Auto-config logistic stations", "Auto-config logistic stations", "自动配置物流设施");
|
||||
I18N.Add("Dispenser", "Dispenser", "物流配送器");
|
||||
I18N.Add("Dispenser", "Logistics Distributor", "物流配送器");
|
||||
I18N.Add("PLS", "PLS", "行星物流站");
|
||||
I18N.Add("ILS", "ILS", "星际物流站");
|
||||
I18N.Add("Advanced Mining Machine", "Advanced Mining Machine", "大型采矿机");
|
||||
I18N.Add("Max. Charging Power", "Max. Charging Power", "最大充能功率");
|
||||
I18N.Add("Count of Bots auto-filled", "Count of Bots auto-filled", "自动填充的配送机数量");
|
||||
I18N.Add("Auto guess dispenser filter", "Auto guess dispenser filter", "自动智能猜测");
|
||||
I18N.Add("Max. Charging Power", "Max. Charging Power", "最大充能功率");
|
||||
I18N.Add("Drone transport range", "Drone transport range", "运输机最远路程");
|
||||
I18N.Add("Min. Load of Drones", "Min. Load of Drones", "运输机起送量");
|
||||
@@ -219,7 +218,7 @@ public static class UIConfigWindow
|
||||
{
|
||||
public override string FormatValue(string format, int value)
|
||||
{
|
||||
return value == 0 ? "1%" : (value * 10).ToString() + "%";
|
||||
return (value == 0 ? 1 : (value * 10)).ToString("0\\%");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -227,7 +226,7 @@ public static class UIConfigWindow
|
||||
{
|
||||
public override string FormatValue(string format, int value)
|
||||
{
|
||||
return value == 0 ? "集装使用科技上限" : value.ToString();
|
||||
return value == 0 ? "集装使用科技上限".Translate().Trim() : value.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -248,8 +247,8 @@ public static class UIConfigWindow
|
||||
{
|
||||
return value switch
|
||||
{
|
||||
<= 20 => value.ToString("0 LY"),
|
||||
<= 40 => (value * 2 - 20).ToString("0 LY"),
|
||||
<= 20 => value.ToString("0LY"),
|
||||
<= 40 => (value * 2 - 20).ToString("0LY"),
|
||||
_ => "∞",
|
||||
};
|
||||
}
|
||||
@@ -261,11 +260,11 @@ public static class UIConfigWindow
|
||||
{
|
||||
return value switch
|
||||
{
|
||||
<= 7 => (value * 0.5 - 0.5).ToString("0.0 AU"),
|
||||
<= 13 => (value - 4.0).ToString("0.0 AU"),
|
||||
<= 16 => (value - 4).ToString("0 AU"),
|
||||
<= 20 => (value * 2 - 20).ToString("0 AU"),
|
||||
_ => "60 AU",
|
||||
<= 7 => (value * 0.5 - 0.5).ToString("0.0AU"),
|
||||
<= 13 => (value - 4.0).ToString("0.0AU"),
|
||||
<= 16 => (value - 4).ToString("0AU"),
|
||||
<= 20 => (value * 2 - 20).ToString("0AU"),
|
||||
_ => "60AU",
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -274,7 +273,7 @@ public static class UIConfigWindow
|
||||
{
|
||||
public override string FormatValue(string format, int value)
|
||||
{
|
||||
return (value * 10).ToString("0%");
|
||||
return (100 + value * 10).ToString("0\\%");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -401,6 +400,24 @@ public static class UIConfigWindow
|
||||
y += 36f;
|
||||
wnd.AddCheckBox(x, y, tab2, FactoryPatch.BeltSignalsForBuyOutEnabled, "Belt signals for buy out dark fog items automatically");
|
||||
|
||||
y += 36f;
|
||||
checkBoxForMeasureTextWidth = wnd.AddCheckBox(x, y, tab2, FactoryPatch.ProtectVeinsFromExhaustionEnabled, "Protect veins from exhaustion");
|
||||
wnd.AddTipsButton2(x + checkBoxForMeasureTextWidth.Width + 5f, y + 6f, tab2, "Protect veins from exhaustion", "Protect veins from exhaustion tips", "protect-veins-tips");
|
||||
{
|
||||
y += 36f;
|
||||
wnd.AddCheckBox(x, y, tab2, FactoryPatch.DragBuildPowerPolesEnabled, "Drag building power poles in maximum connection range");
|
||||
y += 27f;
|
||||
var alternatelyCheckBox = wnd.AddCheckBox(x + 20f, y, tab2, FactoryPatch.DragBuildPowerPolesAlternatelyEnabled, "Build Tesla Tower and Wireless Power Tower alternately", 13);
|
||||
FactoryPatch.DragBuildPowerPolesEnabled.SettingChanged += AlternatelyCheckBoxChanged;
|
||||
wnd.OnFree += () => { FactoryPatch.DragBuildPowerPolesEnabled.SettingChanged -= AlternatelyCheckBoxChanged; };
|
||||
AlternatelyCheckBoxChanged(null, null);
|
||||
|
||||
void AlternatelyCheckBoxChanged(object o, EventArgs e)
|
||||
{
|
||||
alternatelyCheckBox.SetEnable(FactoryPatch.DragBuildPowerPolesEnabled.Value);
|
||||
}
|
||||
}
|
||||
|
||||
x = 400f;
|
||||
y = 10f;
|
||||
wnd.AddButton(x, y, tab2, "Initialize This Planet", 16, "button-init-planet", () =>
|
||||
@@ -420,24 +437,6 @@ public static class UIConfigWindow
|
||||
|
||||
y += 18f;
|
||||
|
||||
y += 36f;
|
||||
checkBoxForMeasureTextWidth = wnd.AddCheckBox(x, y, tab2, FactoryPatch.ProtectVeinsFromExhaustionEnabled, "Protect veins from exhaustion");
|
||||
wnd.AddTipsButton2(x + checkBoxForMeasureTextWidth.Width + 5f, y + 6f, tab2, "Protect veins from exhaustion", "Protect veins from exhaustion tips", "protect-veins-tips");
|
||||
{
|
||||
y += 36f;
|
||||
wnd.AddCheckBox(x, y, tab2, FactoryPatch.DragBuildPowerPolesEnabled, "Drag building power poles in maximum connection range");
|
||||
y += 27f;
|
||||
var alternatelyCheckBox = wnd.AddCheckBox(x + 20f, y, tab2, FactoryPatch.DragBuildPowerPolesAlternatelyEnabled, "Build Tesla Tower and Wireless Power Tower alternately", 13);
|
||||
FactoryPatch.DragBuildPowerPolesEnabled.SettingChanged += AlternatelyCheckBoxChanged;
|
||||
wnd.OnFree += () => { FactoryPatch.DragBuildPowerPolesEnabled.SettingChanged -= AlternatelyCheckBoxChanged; };
|
||||
AlternatelyCheckBoxChanged(null, null);
|
||||
|
||||
void AlternatelyCheckBoxChanged(object o, EventArgs e)
|
||||
{
|
||||
alternatelyCheckBox.SetEnable(FactoryPatch.DragBuildPowerPolesEnabled.Value);
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
y += 36f;
|
||||
wnd.AddCheckBox(x, y, tab2, FactoryPatch.TweakBuildingBufferEnabled, "Tweak building buffers");
|
||||
@@ -534,109 +533,108 @@ public static class UIConfigWindow
|
||||
wnd.AddCheckBox(x, y, tab3, LogisticsPatch.AutoConfigLogisticsEnabled, "Auto-config logistic stations");
|
||||
y += 24f;
|
||||
var maxWidth = 0f;
|
||||
wnd.AddText2(10f, y, tab3, "Dispenser", 15, "text-dispenser");
|
||||
y += 24f;
|
||||
wnd.AddText2(10f, y, tab3, "Dispenser", 14, "text-dispenser");
|
||||
y += 18f;
|
||||
var oy = y;
|
||||
x = 20f;
|
||||
var textForMeasureTextWidth = wnd.AddText2(x, y, tab3, "Max. Charging Power", 15, "text-dispenser-max-charging-power");
|
||||
var textForMeasureTextWidth = wnd.AddText2(x, y, tab3, "Max. Charging Power", 13, "text-dispenser-max-charging-power");
|
||||
maxWidth = Mathf.Max(maxWidth, textForMeasureTextWidth.preferredWidth);
|
||||
wnd.AddCheckBox(x + 400, y, tab3, LogisticsPatch.AutoConfigDispenserAutoGuess, "Auto guess dispenser filter");
|
||||
y += 24f;
|
||||
textForMeasureTextWidth = wnd.AddText2(x, y, tab3, "Count of Bots auto-filled", 15, "text-dispenser-count-of-bots-auto-filled");
|
||||
y += 18f;
|
||||
textForMeasureTextWidth = wnd.AddText2(x, y, tab3, "Count of Bots auto-filled", 13, "text-dispenser-count-of-bots-auto-filled");
|
||||
maxWidth = Mathf.Max(maxWidth, textForMeasureTextWidth.preferredWidth);
|
||||
y += 24f;
|
||||
wnd.AddText2(10f, y, tab3, "PLS", 15, "text-pls");
|
||||
y += 24f;
|
||||
textForMeasureTextWidth = wnd.AddText2(x, y, tab3, "Max. Charging Power", 15, "text-pls-max-charging-power");
|
||||
y += 18f;
|
||||
wnd.AddText2(10f, y, tab3, "PLS", 14, "text-pls");
|
||||
y += 18f;
|
||||
textForMeasureTextWidth = wnd.AddText2(x, y, tab3, "Max. Charging Power", 13, "text-pls-max-charging-power");
|
||||
maxWidth = Mathf.Max(maxWidth, textForMeasureTextWidth.preferredWidth);
|
||||
y += 24f;
|
||||
textForMeasureTextWidth = wnd.AddText2(x, y, tab3, "Drone transport range", 15, "text-pls-drone-transport-range");
|
||||
y += 18f;
|
||||
textForMeasureTextWidth = wnd.AddText2(x, y, tab3, "Drone transport range", 13, "text-pls-drone-transport-range");
|
||||
maxWidth = Mathf.Max(maxWidth, textForMeasureTextWidth.preferredWidth);
|
||||
y += 24f;
|
||||
textForMeasureTextWidth = wnd.AddText2(x, y, tab3, "Min. Load of Drones", 15, "text-pls-min-load-of-drones");
|
||||
y += 18f;
|
||||
textForMeasureTextWidth = wnd.AddText2(x, y, tab3, "Min. Load of Drones", 13, "text-pls-min-load-of-drones");
|
||||
maxWidth = Mathf.Max(maxWidth, textForMeasureTextWidth.preferredWidth);
|
||||
y += 24f;
|
||||
textForMeasureTextWidth = wnd.AddText2(x, y, tab3, "Outgoing integration count", 15, "text-pls-outgoing-integration-count");
|
||||
y += 18f;
|
||||
textForMeasureTextWidth = wnd.AddText2(x, y, tab3, "Outgoing integration count", 13, "text-pls-outgoing-integration-count");
|
||||
maxWidth = Mathf.Max(maxWidth, textForMeasureTextWidth.preferredWidth);
|
||||
y += 24f;
|
||||
textForMeasureTextWidth = wnd.AddText2(x, y, tab3, "Count of Drones auto-filled", 15, "text-pls-count-of-drones-auto-filled");
|
||||
y += 18f;
|
||||
textForMeasureTextWidth = wnd.AddText2(x, y, tab3, "Count of Drones auto-filled", 13, "text-pls-count-of-drones-auto-filled");
|
||||
maxWidth = Mathf.Max(maxWidth, textForMeasureTextWidth.preferredWidth);
|
||||
y += 24f;
|
||||
wnd.AddText2(10f, y, tab3, "ILS", 15, "text-ils");
|
||||
y += 24f;
|
||||
textForMeasureTextWidth = wnd.AddText2(x, y, tab3, "Max. Charging Power", 15, "text-ils-max-charging-power");
|
||||
y += 18f;
|
||||
wnd.AddText2(10f, y, tab3, "ILS", 14, "text-ils");
|
||||
y += 18f;
|
||||
textForMeasureTextWidth = wnd.AddText2(x, y, tab3, "Max. Charging Power", 13, "text-ils-max-charging-power");
|
||||
maxWidth = Mathf.Max(maxWidth, textForMeasureTextWidth.preferredWidth);
|
||||
y += 24f;
|
||||
textForMeasureTextWidth = wnd.AddText2(x, y, tab3, "Drone transport range", 15, "text-ils-drone-transport-range");
|
||||
y += 18f;
|
||||
textForMeasureTextWidth = wnd.AddText2(x, y, tab3, "Drone transport range", 13, "text-ils-drone-transport-range");
|
||||
maxWidth = Mathf.Max(maxWidth, textForMeasureTextWidth.preferredWidth);
|
||||
y += 24f;
|
||||
textForMeasureTextWidth = wnd.AddText2(x, y, tab3, "Vessel transport range", 15, "text-ils-vessel-transport-range");
|
||||
y += 18f;
|
||||
textForMeasureTextWidth = wnd.AddText2(x, y, tab3, "Vessel transport range", 13, "text-ils-vessel-transport-range");
|
||||
maxWidth = Mathf.Max(maxWidth, textForMeasureTextWidth.preferredWidth);
|
||||
wnd.AddCheckBox(x + 400, y, tab3, LogisticsPatch.AutoConfigILSIncludeOrbitCollector, "Include Orbital Collector");
|
||||
y += 24f;
|
||||
textForMeasureTextWidth = wnd.AddText2(x, y, tab3, "Warp distance", 15, "text-ils-warp-distance");
|
||||
wnd.AddCheckBox(x + 360f, y + 6f, tab3, LogisticsPatch.AutoConfigILSIncludeOrbitCollector, "Include Orbital Collector", 13).WithSmallerBox();
|
||||
y += 18f;
|
||||
textForMeasureTextWidth = wnd.AddText2(x, y, tab3, "Warp distance", 13, "text-ils-warp-distance");
|
||||
maxWidth = Mathf.Max(maxWidth, textForMeasureTextWidth.preferredWidth);
|
||||
wnd.AddCheckBox(x + 400, y, tab3, LogisticsPatch.AutoConfigILSWarperNecessary, "Warpers required");
|
||||
y += 24f;
|
||||
textForMeasureTextWidth = wnd.AddText2(x, y, tab3, "Min. Load of Drones", 15, "text-ils-min-load-of-drones");
|
||||
wnd.AddCheckBox(x + 360f, y + 6f, tab3, LogisticsPatch.AutoConfigILSWarperNecessary, "Warpers required", 13).WithSmallerBox();
|
||||
y += 18f;
|
||||
textForMeasureTextWidth = wnd.AddText2(x, y, tab3, "Min. Load of Drones", 13, "text-ils-min-load-of-drones");
|
||||
maxWidth = Mathf.Max(maxWidth, textForMeasureTextWidth.preferredWidth);
|
||||
y += 24f;
|
||||
textForMeasureTextWidth = wnd.AddText2(x, y, tab3, "Min. Load of Vessels", 15, "text-ils-min-load-of-vessels");
|
||||
y += 18f;
|
||||
textForMeasureTextWidth = wnd.AddText2(x, y, tab3, "Min. Load of Vessels", 13, "text-ils-min-load-of-vessels");
|
||||
maxWidth = Mathf.Max(maxWidth, textForMeasureTextWidth.preferredWidth);
|
||||
y += 24f;
|
||||
textForMeasureTextWidth = wnd.AddText2(x, y, tab3, "Outgoing integration count", 15, "text-ils-outgoing-integration-count");
|
||||
y += 18f;
|
||||
textForMeasureTextWidth = wnd.AddText2(x, y, tab3, "Outgoing integration count", 13, "text-ils-outgoing-integration-count");
|
||||
maxWidth = Mathf.Max(maxWidth, textForMeasureTextWidth.preferredWidth);
|
||||
y += 24f;
|
||||
textForMeasureTextWidth = wnd.AddText2(x, y, tab3, "Count of Drones auto-filled", 15, "text-ils-count-of-drones-auto-filled");
|
||||
y += 18f;
|
||||
textForMeasureTextWidth = wnd.AddText2(x, y, tab3, "Count of Drones auto-filled", 13, "text-ils-count-of-drones-auto-filled");
|
||||
maxWidth = Mathf.Max(maxWidth, textForMeasureTextWidth.preferredWidth);
|
||||
y += 24f;
|
||||
textForMeasureTextWidth = wnd.AddText2(x, y, tab3, "Count of Vessels auto-filled", 15, "text-ils-count-of-vessels-auto-filled");
|
||||
y += 18f;
|
||||
textForMeasureTextWidth = wnd.AddText2(x, y, tab3, "Count of Vessels auto-filled", 13, "text-ils-count-of-vessels-auto-filled");
|
||||
maxWidth = Mathf.Max(maxWidth, textForMeasureTextWidth.preferredWidth);
|
||||
y += 24f;
|
||||
wnd.AddText2(10f, y, tab3, "Advanced Mining Machine", 15, "text-amm");
|
||||
y += 24f;
|
||||
textForMeasureTextWidth = wnd.AddText2(x, y, tab3, "Collecting Speed", 15, "text-amm-collecting-speed");
|
||||
y += 18f;
|
||||
wnd.AddText2(10f, y, tab3, "Advanced Mining Machine", 14, "text-amm");
|
||||
y += 18f;
|
||||
textForMeasureTextWidth = wnd.AddText2(x, y, tab3, "Collecting Speed", 13, "text-amm-collecting-speed");
|
||||
maxWidth = Mathf.Max(maxWidth, textForMeasureTextWidth.preferredWidth);
|
||||
y += 24f;
|
||||
textForMeasureTextWidth = wnd.AddText2(x, y, tab3, "Min. Piler Value", 15, "text-amm-min-piler-value");
|
||||
y += 18f;
|
||||
textForMeasureTextWidth = wnd.AddText2(x, y, tab3, "Min. Piler Value", 13, "text-amm-min-piler-value");
|
||||
maxWidth = Mathf.Max(maxWidth, textForMeasureTextWidth.preferredWidth);
|
||||
y = oy + 2;
|
||||
y = oy + 1;
|
||||
var nx = x + maxWidth + 5f;
|
||||
wnd.AddSideSlider(nx, y, tab3, LogisticsPatch.AutoConfigDispenserChargePower, new AutoConfigDispenserChargePowerMapper(), "G", 150f, -100f);
|
||||
y += 24f;
|
||||
wnd.AddSideSlider(nx, y, tab3, LogisticsPatch.AutoConfigDispenserCourierCount, new MyWindow.RangeValueMapper<int>(0, 10), "G", 150f, -100f);
|
||||
y += 48f;
|
||||
wnd.AddSideSlider(nx, y, tab3, LogisticsPatch.AutoConfigPLSChargePower, new AutoConfigPLSChargePowerMapper(), "G", 150f, -100f);
|
||||
y += 24f;
|
||||
wnd.AddSideSlider(nx, y, tab3, LogisticsPatch.AutoConfigPLSMaxTripDrone, new MyWindow.RangeValueMapper<int>(1, 180), "0 °", 150f, -100f);
|
||||
y += 24f;
|
||||
wnd.AddSideSlider(nx, y, tab3, LogisticsPatch.AutoConfigPLSDroneMinDeliver, new AutoConfigCarrierMinDeliverMapper(), "G", 150f, -100f);
|
||||
y += 24f;
|
||||
wnd.AddSideSlider(nx, y, tab3, LogisticsPatch.AutoConfigPLSMinPilerValue, new AutoConfigMinPilerValueMapper(), "G", 150f, -100f);
|
||||
y += 24f;
|
||||
wnd.AddSideSlider(nx, y, tab3, LogisticsPatch.AutoConfigPLSDroneCount, new MyWindow.RangeValueMapper<int>(0, 50), "G", 150f, -100f);
|
||||
y += 48f;
|
||||
wnd.AddSideSlider(nx, y, tab3, LogisticsPatch.AutoConfigILSChargePower, new AutoConfigILSChargePowerMapper(), "G", 150f, -100f);
|
||||
y += 24f;
|
||||
wnd.AddSideSlider(nx, y, tab3, LogisticsPatch.AutoConfigILSMaxTripDrone, new MyWindow.RangeValueMapper<int>(1, 180), "0 °", 150f, -100f);
|
||||
y += 24f;
|
||||
wnd.AddSideSlider(nx, y, tab3, LogisticsPatch.AutoConfigILSMaxTripShip, new AutoConfigILSMaxTripShipMapper(), "G", 150f, -100f);
|
||||
y += 24f;
|
||||
wnd.AddSideSlider(nx, y, tab3, LogisticsPatch.AutoConfigILSWarperDistance, new AutoConfigILSWarperDistanceMapper(), "G", 150f, -100f);
|
||||
y += 24f;
|
||||
wnd.AddSideSlider(nx, y, tab3, LogisticsPatch.AutoConfigILSDroneMinDeliver, new AutoConfigCarrierMinDeliverMapper(), "G", 150f, -100f);
|
||||
y += 24f;
|
||||
wnd.AddSideSlider(nx, y, tab3, LogisticsPatch.AutoConfigILSShipMinDeliver, new AutoConfigCarrierMinDeliverMapper(), "G", 150f, -100f);
|
||||
y += 24f;
|
||||
wnd.AddSideSlider(nx, y, tab3, LogisticsPatch.AutoConfigILSMinPilerValue, new AutoConfigMinPilerValueMapper(), "G", 150f, -100f);
|
||||
y += 24f;
|
||||
wnd.AddSideSlider(nx, y, tab3, LogisticsPatch.AutoConfigILSDroneCount, new MyWindow.RangeValueMapper<int>(0, 100), "G", 150f, -100f);
|
||||
y += 24f;
|
||||
wnd.AddSideSlider(nx, y, tab3, LogisticsPatch.AutoConfigILSShipCount, new MyWindow.RangeValueMapper<int>(0, 10), "G", 150f, -100f);
|
||||
y += 48f;
|
||||
wnd.AddSideSlider(nx, y, tab3, LogisticsPatch.AutoConfigVeinCollectorHarvestSpeed, new MyWindow.RangeValueMapper<int>(0, 20), "G", 150f, -100f);
|
||||
y += 24f;
|
||||
wnd.AddSideSlider(nx, y, tab3, LogisticsPatch.AutoConfigVeinCollectorMinPilerValue, new AutoConfigMinPilerValueMapper(), "G", 150f, -100f);
|
||||
wnd.AddSideSlider(nx, y, tab3, LogisticsPatch.AutoConfigDispenserChargePower, new AutoConfigDispenserChargePowerMapper(), "G", 150f, -100f).WithFontSize(13);
|
||||
y += 18f;
|
||||
wnd.AddSideSlider(nx, y, tab3, LogisticsPatch.AutoConfigDispenserCourierCount, new MyWindow.RangeValueMapper<int>(0, 10), "G", 150f, -100f).WithFontSize(13);
|
||||
y += 36f;
|
||||
wnd.AddSideSlider(nx, y, tab3, LogisticsPatch.AutoConfigPLSChargePower, new AutoConfigPLSChargePowerMapper(), "G", 150f, -100f).WithFontSize(13);
|
||||
y += 18f;
|
||||
wnd.AddSideSlider(nx, y, tab3, LogisticsPatch.AutoConfigPLSMaxTripDrone, new MyWindow.RangeValueMapper<int>(1, 180), "0°", 150f, -100f).WithFontSize(13);
|
||||
y += 18f;
|
||||
wnd.AddSideSlider(nx, y, tab3, LogisticsPatch.AutoConfigPLSDroneMinDeliver, new AutoConfigCarrierMinDeliverMapper(), "G", 150f, -100f).WithFontSize(13);
|
||||
y += 18f;
|
||||
wnd.AddSideSlider(nx, y, tab3, LogisticsPatch.AutoConfigPLSMinPilerValue, new AutoConfigMinPilerValueMapper(), "G", 150f, -100f).WithFontSize(13);
|
||||
y += 18f;
|
||||
wnd.AddSideSlider(nx, y, tab3, LogisticsPatch.AutoConfigPLSDroneCount, new MyWindow.RangeValueMapper<int>(0, 50), "G", 150f, -100f).WithFontSize(13);
|
||||
y += 36f;
|
||||
wnd.AddSideSlider(nx, y, tab3, LogisticsPatch.AutoConfigILSChargePower, new AutoConfigILSChargePowerMapper(), "G", 150f, -100f).WithFontSize(13);
|
||||
y += 18f;
|
||||
wnd.AddSideSlider(nx, y, tab3, LogisticsPatch.AutoConfigILSMaxTripDrone, new MyWindow.RangeValueMapper<int>(1, 180), "0°", 150f, -100f).WithFontSize(13);
|
||||
y += 18f;
|
||||
wnd.AddSideSlider(nx, y, tab3, LogisticsPatch.AutoConfigILSMaxTripShip, new AutoConfigILSMaxTripShipMapper(), "G", 150f, -100f).WithFontSize(13);
|
||||
y += 18f;
|
||||
wnd.AddSideSlider(nx, y, tab3, LogisticsPatch.AutoConfigILSWarperDistance, new AutoConfigILSWarperDistanceMapper(), "G", 150f, -100f).WithFontSize(13);
|
||||
y += 18f;
|
||||
wnd.AddSideSlider(nx, y, tab3, LogisticsPatch.AutoConfigILSDroneMinDeliver, new AutoConfigCarrierMinDeliverMapper(), "G", 150f, -100f).WithFontSize(13);
|
||||
y += 18f;
|
||||
wnd.AddSideSlider(nx, y, tab3, LogisticsPatch.AutoConfigILSShipMinDeliver, new AutoConfigCarrierMinDeliverMapper(), "G", 150f, -100f).WithFontSize(13);
|
||||
y += 18f;
|
||||
wnd.AddSideSlider(nx, y, tab3, LogisticsPatch.AutoConfigILSMinPilerValue, new AutoConfigMinPilerValueMapper(), "G", 150f, -100f).WithFontSize(13);
|
||||
y += 18f;
|
||||
wnd.AddSideSlider(nx, y, tab3, LogisticsPatch.AutoConfigILSDroneCount, new MyWindow.RangeValueMapper<int>(0, 100), "G", 150f, -100f).WithFontSize(13);
|
||||
y += 18f;
|
||||
wnd.AddSideSlider(nx, y, tab3, LogisticsPatch.AutoConfigILSShipCount, new MyWindow.RangeValueMapper<int>(0, 10), "G", 150f, -100f).WithFontSize(13);
|
||||
y += 36f;
|
||||
wnd.AddSideSlider(nx, y, tab3, LogisticsPatch.AutoConfigVeinCollectorHarvestSpeed, new AutoConfigVeinCollectorHarvestSpeedMapper(), "G", 150f, -100f).WithFontSize(13);
|
||||
y += 18f;
|
||||
wnd.AddSideSlider(nx, y, tab3, LogisticsPatch.AutoConfigVeinCollectorMinPilerValue, new AutoConfigMinPilerValueMapper(), "G", 150f, -100f).WithFontSize(13);
|
||||
x = 0f;
|
||||
|
||||
var tab4 = wnd.AddTab(trans, "Player/Mecha");
|
||||
|
||||
@@ -150,10 +150,8 @@ public class UXAssist : BaseUnityPlugin, IModCanSave
|
||||
"Dismantle blueprint selected buildings");
|
||||
LogisticsPatch.AutoConfigLogisticsEnabled = Config.Bind("Factory", "AutoConfigLogistics", false,
|
||||
"Auto-config logistic stations");
|
||||
LogisticsPatch.AutoConfigDispenserChargePower = Config.Bind("Factory", "AutoConfigDispenserChargePower", 30, new ConfigDescription("Dispenser: Max. Charging Power", new AcceptableValueRange<int>(3, 30)));
|
||||
LogisticsPatch.AutoConfigDispenserCourierCount = Config.Bind("Factory", "AutoConfigDispenserCourierCount", 10, new ConfigDescription("Dispenser: Count of Bots auto-filled", new AcceptableValueRange<int>(0, 10)));
|
||||
LogisticsPatch.AutoConfigDispenserAutoGuess = Config.Bind("Factory", "AutoConfigDispenserAutoGuess", false,
|
||||
"Dispenser: Auto guess dispenser filter");
|
||||
LogisticsPatch.AutoConfigDispenserChargePower = Config.Bind("Factory", "AutoConfigDispenserChargePower", 30, new ConfigDescription("LD: Max. Charging Power", new AcceptableValueRange<int>(3, 30)));
|
||||
LogisticsPatch.AutoConfigDispenserCourierCount = Config.Bind("Factory", "AutoConfigDispenserCourierCount", 10, new ConfigDescription("LD: Count of Bots auto-filled", new AcceptableValueRange<int>(0, 10)));
|
||||
LogisticsPatch.AutoConfigPLSChargePower = Config.Bind("Factory", "AutoConfigPLSChargePower", 4, new ConfigDescription("PLS: Max. Charging Power", new AcceptableValueRange<int>(2, 20)));
|
||||
LogisticsPatch.AutoConfigPLSMaxTripDrone = Config.Bind("Factory", "AutoConfigPLSMaxTripDrone", 180, new ConfigDescription("PLS: Drone transport range", new AcceptableValueRange<int>(1, 180)));
|
||||
LogisticsPatch.AutoConfigPLSDroneMinDeliver = Config.Bind("Factory", "AutoConfigPLSDroneMinDeliver", 10, new ConfigDescription("PLS: Min. Load of Drones", new AcceptableValueRange<int>(0, 10)));
|
||||
@@ -166,9 +164,9 @@ public class UXAssist : BaseUnityPlugin, IModCanSave
|
||||
LogisticsPatch.AutoConfigILSDroneMinDeliver = Config.Bind("Factory", "AutoConfigILSDroneMinDeliver", 10, new ConfigDescription("ILS: Min. Load of Drones", new AcceptableValueRange<int>(0, 10)));
|
||||
LogisticsPatch.AutoConfigILSShipMinDeliver = Config.Bind("Factory", "AutoConfigILSShipMinDeliver", 10, new ConfigDescription("ILS: Min. Load of Vessels", new AcceptableValueRange<int>(0, 10)));
|
||||
LogisticsPatch.AutoConfigILSMinPilerValue = Config.Bind("Factory", "AutoConfigILSMinPilerValue", 0, new ConfigDescription("ILS: Outgoing integration count", new AcceptableValueRange<int>(0, 4)));
|
||||
LogisticsPatch.AutoConfigILSIncludeOrbitCollector = Config.Bind("Factory", "AutoConfigILSIncludeOrbitCollector", false,
|
||||
LogisticsPatch.AutoConfigILSIncludeOrbitCollector = Config.Bind("Factory", "AutoConfigILSIncludeOrbitCollector", true,
|
||||
"ILS: Include Orbital Collector");
|
||||
LogisticsPatch.AutoConfigILSWarperNecessary = Config.Bind("Factory", "AutoConfigILSWarperNecessary", false,
|
||||
LogisticsPatch.AutoConfigILSWarperNecessary = Config.Bind("Factory", "AutoConfigILSWarperNecessary", true,
|
||||
"ILS: Warpers required");
|
||||
LogisticsPatch.AutoConfigILSDroneCount = Config.Bind("Factory", "AutoConfigILSDroneCount", 20, new ConfigDescription("ILS: Count of Drones auto-filled", new AcceptableValueRange<int>(0, 100)));
|
||||
LogisticsPatch.AutoConfigILSShipCount = Config.Bind("Factory", "AutoConfigILSShipCount", 10, new ConfigDescription("ILS: Count of Vessels auto-filled", new AcceptableValueRange<int>(0, 10)));
|
||||
|
||||
Reference in New Issue
Block a user