1
0
mirror of https://github.com/soarqin/DSP_Mods.git synced 2026-03-22 10:23:26 +08:00

UXAssist 1.5.5

This commit is contained in:
2026-03-07 20:46:30 +08:00
parent ad99b49bad
commit d6b00b1b78
5 changed files with 81 additions and 26 deletions

View File

@@ -3,6 +3,15 @@
## Changlog
* 1.5.5
* `Initialize This Planet`:
* Fix crash issue.
* Add 3 options to return certain items.
* Enable `Hide UI` function(`F11` by default) while on Star Map view: Hide all other elements in universe.
* Fix warning from abnormal check for following features:
* `Unlock all techs with metadata`
* `Disable battle-related techs in Peace mode`
* ``Restore upgrades of `Sorter Cargo Stacking` on panel``
* 1.5.4
* `Auto-contruct`:
* Add a UI option to hide it completely.
@@ -12,7 +21,7 @@
* New feature: `Auto-contruct`
* Fly to buildings to be contructed automatically.
* `Auto-cruise`: Do not try to fly away planet when `Drive Engine 2` is not researched.
* `Re-intialize planet`: Fix logistic station ships rendering issue.
* `Initialize This Planet`: Fix logistic station ships rendering issue.
* Copying Wireless Power Tower works as expected when `Drag building power poles in maximum connection range` and `Build Tesla Tower and Wireless Power Tower alternately` are enabled.
* `Belt signals for buy out dark fog items automatically`: Grid position on panel is moved to avoid conflict with newly added signals.
* Fix implementation of ``Restore upgrades of `Sorter Cargo Stacking` on panel`` to make it working again.
@@ -28,7 +37,7 @@
* `Night Sunlight`: Fix bugs that sunlight angle is not updated after loading a save.
* `Enhanced control for logistic storage capacities`: Working for Logistics Control Panel now.
* `Protect veins from exhaustion`: Fix a minor bug.
* `Re-intialize planet`: Improve stability and fix some bugs.
* `Initialize This Planet`: Improve stability and fix some bugs.
* 1.4.5
* New feature: `Ctrl+Shift+Click to pick items from whole belts`, with 2 suboptions: `Include branches of belts` and `Include connected inserters`
* Patch [BlueprintTweaks](https://thunderstore.io/c/dyson-sphere-program/p/kremnev8/BlueprintTweaks/) temporarily to fix `Drag Remove` functions (And wait for limoka to merge the [Pull Request](https://github.com/limoka/DSP-Mods/pull/133)):
@@ -62,7 +71,7 @@
* Fix background image issue for tab buttons on config window.
* Now build in C# `Debug` Configuration, to avoid some issues caused by optimizations in `Release` Configuration.
* 1.3.7
* `Re-initialize planet`: Fix a possible crash.
* `Initialize This Planet`: Fix a possible crash.
* `Auto-config logistic stations`: Add `Set default remote logic to storage`
* 1.3.6
* `Dismantle blueprint selected buildings`:
@@ -79,7 +88,7 @@
* 1.3.3
* `Starmap filter`: Hide top overlaping windows while the filter UI is shown.
* `Auto-config logistic stations`: Can set Max. Charging Power for Battlefield Analysis Base now.
* `Re-initialize planet`: Fix a crash.
* `Initialize This Planet`: Fix a crash.
* `Auto navigation on sailings`:
* Add a button to enable/disable `Auto-cruise` quickly.
* Do not auto-use Warper if required Tech is not researched.
@@ -94,7 +103,7 @@
* New button: `Unlock all techs with metadata`
* Add a checkbox to make union of results in starmap filter.
* Fix some starmap vein/planet filter conditions.
* Fix a crash caused by `Re-initialize planet` in peace mode.
* Fix a crash caused by `Initialize This Planet` in peace mode.
* Fix compatibility with `NebulaMultiplayerMod`.
* 1.3.1
* Fix an issue that some UI elements are hidden while hitting the newly added combobox on Starmap.
@@ -294,7 +303,7 @@
* Fix some issues in `Auto nativation` and `Auto-cruise`, now only boosts when core energy at least 10% and warps when core energy at least 50%
* 1.0.20
* Fix an infinite-loop issue when `Quick build and dismantle stacking labs` and `No condition build` are both enabled
* Fix a crash caused by `Re-initialize planet` in combat mode
* Fix a crash caused by `Initialize This Planet` in combat mode
* 1.0.19
* New functions:
* `Quick build and dismantle stacking labs`
@@ -324,7 +333,7 @@
* Enable `Hide UI` function(`F11` by default) while on Star Map view
* New function: `Treat stack items as single in monitor components`
* 1.0.14
* Fix crash in `Re-initialize planet` again
* Fix crash in `Initialize This Planet` again
* `Off-grid building and stepped rotation`: Add Z coordinate to display, and adjust the precision to 4 decimal after point
* 1.0.13
* `Off-grid building and stepped rotation`: show building coordinates(relative to grids) on building preview and building info panel now
@@ -332,7 +341,7 @@
* Increase capacity of player order queue to 128 (from 16)
* Fix issue caused by game updates
* `Remove some build conditions`: fixed issue that some conditions are not eliminated
* `Re-initialize planet`: fixed crash issue
* `Initialize This Planet`: fixed crash issue
* 1.0.12
* Fix a bug that ejectors aimed at even-numbered orbits stop working when `Stop ejectors when available nodes are all filled up` is enabled.
* 1.0.11
@@ -359,7 +368,7 @@
* Fix an issue that window position not restored and can not be resized when function is enabled but game is started with different mod profiles.
* 1.0.3
* Add new function: `Quick build Orbital Collectors`.
* Add confirmation popup for `Re-intialize planet`, `Quick dismantle all buildings`, `Re-initialize Dyson Spheres` and `Quick dismantle Dyson Shells`.
* Add confirmation popup for `Initialize This Planet`, `Quick dismantle all buildings`, `Re-initialize Dyson Spheres` and `Quick dismantle Dyson Shells`.
* Fix error on `Remove build count and range limit` when building a large amount of belts.
* Fix an issue that window position not saved correctly when quit game without using in-game menu.
* 1.0.2
@@ -382,6 +391,15 @@
## 更新日志
* 1.5.5
* `初始化本行星`:
* 修复崩溃问题。
* 增加了3个可返还特定物品的选项。
* 在星图视图中启用`隐藏UI`功能(默认按键为`F11`): 隐藏所有其他宇宙元素。
* 修复以下功能的异常检查警告:
* `使用元数据解锁所有科技`
* `在和平模式下隐藏战斗相关科技`
* ``在升级面板上恢复`分拣器货物堆叠`的升级``
* 1.5.4
* `自动建造`
* 增加了一个 UI 选项,可完全隐藏该功能。

View File

@@ -77,7 +77,7 @@ public static class PlanetFunctions
player.controller.actionBuild.Close();
var groundCombatModule = player.mecha.groundCombatModule;
for (var i = 0; i < groundCombatModule.moduleFleets.Length; i++)
for (var i = groundCombatModule.moduleFleets.Length - 1; i >= 0; i--)
{
var entry = groundCombatModule.moduleFleets[i];
if (entry.fleetId <= 0 || !entry.fleetEnabled) continue;
@@ -86,7 +86,7 @@ public static class PlanetFunctions
}
var constructionSystem = factory.constructionSystem;
var constructionModule = player.mecha.constructionModule;
for (var i = 0; i < constructionSystem.drones.cursor; i++)
for (var i = constructionSystem.drones.cursor - 1; i > 0; i--)
{
ref var drone = ref constructionSystem.drones.buffer[i];
if (drone.id <= 0) continue;
@@ -104,11 +104,14 @@ public static class PlanetFunctions
constructionSystem.constructionModules[owner].droneIdleCount++;
}
}
for (var i = 0; i < constructionSystem.constructStats.cursor; i++)
if (constructionSystem.constructStats?.buffer != null)
{
ref var constructStat = ref constructionSystem.constructStats.buffer[i];
if (constructStat.id <= 0) continue;
constructionSystem.RemoveConstructStat(constructStat.id);
for (var i = constructionSystem.constructStats.cursor - 1; i > 0; i++)
{
ref var constructStat = ref constructionSystem.constructStats.buffer[i];
if (constructStat.id <= 0) continue;
constructionSystem.RemoveConstructStat(constructStat.id);
}
}
constructionModule.autoReconstructTargetTotalCount = 0;
constructionModule.buildTargetTotalCount = 0;
@@ -286,10 +289,10 @@ public static class PlanetFunctions
}
if (lab.researchMode && lab.matrixServed != null)
{
for (var k = lab.matrixServed.Length - 1; k >= 0; k--)
for (var j = lab.matrixServed.Length - 1; j >= 0; j--)
{
var served = lab.matrixServed[k] / 3600;
if (served > 0) AddReturnedItem(LabComponent.matrixIds[k], served, lab.matrixIncServed[k] / 3600, returnedItems);
var served = lab.matrixServed[j] / 3600;
if (served > 0) AddReturnedItem(LabComponent.matrixIds[j], served, lab.matrixIncServed[j] / 3600, returnedItems);
}
}
}
@@ -389,6 +392,38 @@ public static class PlanetFunctions
}
#endregion
}
if (returnBeltAFactoryItems)
{
#region Belt Items
for (var i = cargoTraffic.pathCursor - 1; i > 0; i--)
{
var cargoPath = cargoTraffic.pathPool[i];
if (cargoPath == null) continue;
var end = cargoPath.bufferLength - 5;
var buffer = cargoPath.buffer;
for (var j = 0; j <= end;)
{
if (buffer[j] >= 246)
{
j += 250 - buffer[j];
var bufferIndex = buffer[j + 1] - 1 + (buffer[j + 2] - 1) * 100 + (buffer[j + 3] - 1) * 10000 + (buffer[j + 4] - 1) * 1000000;
ref var cargo = ref cargoPath.cargoContainer.cargoPool[bufferIndex];
var stack = cargo.stack;
if (stack > 0) AddReturnedItem(cargo.item, stack, cargo.inc, returnedItems);
j += 10;
}
else
{
j += 5;
if (j > end && j < end + 5)
{
j = end;
}
}
}
}
#endregion
}
}
var stationPool = factory.transport?.stationPool;
@@ -401,7 +436,7 @@ public static class PlanetFunctions
if (sc is null || sc.id != i) continue;
if (returnLogisticStorageItems)
{
for (var j = 0; j < sc.storage.Length; j++)
for (var j = sc.storage.Length - 1; j >= 0; j--)
{
var count = sc.storage[j].count;
if (count > 0) AddReturnedItem(sc.storage[j].itemId, count, sc.storage[j].inc, returnedItems);
@@ -580,7 +615,7 @@ public static class PlanetFunctions
factory.constructionSystem = new ConstructionSystem(planet);
if (factory.veinPool != null)
{
for (var i = 0; i < factory.veinPool.Length; i++)
for (var i = factory.veinPool.Length - 1; i >= 0; i--)
{
ref var vein = ref factory.veinPool[i];
if (vein.id != i) continue;
@@ -642,7 +677,7 @@ public static class PlanetFunctions
var entityPool = factory.entityPool;
var pos = new Vector3(0f, 0f, planet.realRadius * 1.025f + 0.2f);
var found = false;
for (var i = 1; i < stationCursor; i++)
for (var i = stationCursor - 1; i > 0; i--)
{
if (stationPool[i] == null || stationPool[i].id != i) continue;
ref var entity = ref entityPool[stationPool[i].entityId];
@@ -654,7 +689,7 @@ public static class PlanetFunctions
var prebuildPool = factory.prebuildPool;
if (!found)
{
for (var i = 1; i < prebuildCursor; i++)
for (var i = prebuildCursor - 1; i > 0; i--)
{
if (prebuildPool[i].id != i) continue;
pos = prebuildPool[i].pos;
@@ -677,7 +712,7 @@ public static class PlanetFunctions
{
/* Check for collision */
var collide = false;
for (var j = 1; j < stationCursor; j++)
for (var j = stationCursor - 1; j > 0; j--)
{
if (stationPool[j] == null || stationPool[j].id != j) continue;
if ((entityPool[stationPool[j].entityId].pos - pos).sqrMagnitude >= 14297f) continue;

View File

@@ -65,7 +65,8 @@
* 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.
* Re-intialize planet (without reseting veins)
* Initialize This Planet (without reseting veins)
* 3 Options to return certain items
* Quick dismantle all buildings (without drops)
* Quick build Orbital Collectors
* Belt signals for buy out dark fog items automatically
@@ -228,6 +229,7 @@
* 在蓝图复制模式下按快捷键拆除选中的建筑
* 默认快捷键是Ctrl+X可以在系统选项面板中设置
* 初始化本行星(不重置矿脉)
* 有3个可返还特定物品的选项
* 快速拆除所有建筑(不掉落)
* 快速建造轨道采集器
* 用于自动购买黑雾物品的传送带信号

View File

@@ -4,7 +4,7 @@
<TargetFramework>net472</TargetFramework>
<BepInExPluginGuid>org.soardev.uxassist</BepInExPluginGuid>
<Description>DSP MOD - UXAssist</Description>
<Version>1.5.4</Version>
<Version>1.5.5</Version>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<LangVersion>latest</LangVersion>
<PackageId>UXAssist</PackageId>

View File

@@ -1,6 +1,6 @@
{
"name": "UXAssist",
"version_number": "1.5.4",
"version_number": "1.5.5",
"website_url": "https://github.com/soarqin/DSP_Mods/tree/master/UXAssist",
"description": "Some functions and patches for better user experience / 一些提升用户体验的功能和补丁",
"dependencies": [