1
0
mirror of https://github.com/soarqin/DSP_Mods.git synced 2025-12-08 21:33:28 +08:00

prepare for 1.2.21(maybe 1.3.0?) release

This commit is contained in:
2025-04-25 01:50:24 +08:00
parent 68a18c113d
commit 5f53c50da0
22 changed files with 208 additions and 131 deletions

View File

@@ -1,6 +1,12 @@
<details>
<summary>Read me in English</summary>
## Changlog ## Changlog
* 1.2.21 * 1.2.21
+ New feature for starmap view:
- Add a star name filter, you can filter displayed star names by ores or planet types now.
- Add a dropdown box to show all stars' distance and/or planet count.
+ `Cut conveyor belt`: Fix input issue. + `Cut conveyor belt`: Fix input issue.
+ `Shortcut keys for showing stars`: Fix an issue that toggle key is read when Starmap View is not opened. + `Shortcut keys for showing stars`: Fix an issue that toggle key is read when Starmap View is not opened.
+ `Dismantle blueprint selected buildings`: Fix an issue that preview buildings are not dismantled. + `Dismantle blueprint selected buildings`: Fix an issue that preview buildings are not dismantled.
@@ -26,10 +32,6 @@
- Add a shortcut key to always show all star names in starmap when holding, default is `Alt` - Add a shortcut key to always show all star names in starmap when holding, default is `Alt`
- Add a shortcut key to toggle between three star name display states in starmap: `Original state`, `Show all names`, `Hide all names`, default is `Tab`, will restore to original state when closing starmap - Add a shortcut key to toggle between three star name display states in starmap: `Original state`, `Show all names`, `Hide all names`, default is `Tab`, will restore to original state when closing starmap
+ `Cut conveyor belt`: Fix a bug that entity logic connection is not cut so that belt is not cut off on copying as a blueprint. + `Cut conveyor belt`: Fix a bug that entity logic connection is not cut so that belt is not cut off on copying as a blueprint.
<details>
<summary>Older versions</summary>
* 1.2.18 * 1.2.18
+ `Protect veins from exhaustion`: Optimized implementation, now veins will not be protected once you have upgrade `Veins Utilization` to level 390+, while the cost rate becomes absolute 0. + `Protect veins from exhaustion`: Optimized implementation, now veins will not be protected once you have upgrade `Veins Utilization` to level 390+, while the cost rate becomes absolute 0.
+ `Night Sunlight`: Fix bugs that sunlight angle is not updated as expected. + `Night Sunlight`: Fix bugs that sunlight angle is not updated as expected.
@@ -275,9 +277,15 @@
</details> </details>
<details>
<summary>中文读我</summary>
## 更新日志 ## 更新日志
* 1.2.21 * 1.2.21
+ 在星图上添加新功能:
- 添加星系名过滤器,现在可以按矿物或行星类型过滤显示的星系名
- 添加了一个下拉框用以切换显示所有星系的距离和/或行星数量
+ `切割传送带`:修复了输入问题 + `切割传送带`:修复了输入问题
+ `启用显示所有星系名称的快捷键`:修复了在未打开星图视图时读取切换键的问题 + `启用显示所有星系名称的快捷键`:修复了在未打开星图视图时读取切换键的问题
+ `拆除蓝图选中的建筑`:修复了预建造建筑未被拆除的问题 + `拆除蓝图选中的建筑`:修复了预建造建筑未被拆除的问题
@@ -303,10 +311,6 @@
- 新增一个快捷键,按住后始终在星图显示所有星系名称,默认为`Alt` - 新增一个快捷键,按住后始终在星图显示所有星系名称,默认为`Alt`
- 新增一个快捷键,在星图视图切换三种星系名称显示状态:`原始显示状态``显示所有名称``隐藏所有名称`,默认为`Tab`,关闭星图时会恢复到原始状态 - 新增一个快捷键,在星图视图切换三种星系名称显示状态:`原始显示状态``显示所有名称``隐藏所有名称`,默认为`Tab`,关闭星图时会恢复到原始状态
+ `切割传送带`:修复了实体逻辑连接未切断导致复制为蓝图时传送带未被切断的问题。 + `切割传送带`:修复了实体逻辑连接未切断导致复制为蓝图时传送带未被切断的问题。
<details>
<summary>Older versions</summary>
* 1.2.18 * 1.2.18
+ `保护矿脉不会耗尽`:优化实现,当`矿物利用`升级到390级以上时消耗速度变为0时矿脉将不再被保护。 + `保护矿脉不会耗尽`:优化实现,当`矿物利用`升级到390级以上时消耗速度变为0时矿脉将不再被保护。
+ `夜间日光灯`:修复了光照角度未正确更新的问题。 + `夜间日光灯`:修复了光照角度未正确更新的问题。

View File

@@ -34,6 +34,13 @@ public static class UIFunctions
canOverride = true canOverride = true
}); });
I18N.Add("KEYOpenUXAssistConfigWindow", "[UXA] Open UXAssist Config Window", "[UXA] 打开UX助手设置面板"); I18N.Add("KEYOpenUXAssistConfigWindow", "[UXA] Open UXAssist Config Window", "[UXA] 打开UX助手设置面板");
I18N.Add("High yield", "High yield", "高产");
I18N.Add("Perfect", "Perfect", "完美");
I18N.Add("All 6 Basic Ores", "All 6 Basic Ores", "六种基础矿物齐全");
I18N.Add("Show original name", "Show original name", "显示原始名称");
I18N.Add("Show distance", "Show distance", "显示距离");
I18N.Add("Show planet count", "Show planet count", "显示行星数");
I18N.Add("Show all information", "Show all information", "显示全部信息");
I18N.OnInitialized += RecreateConfigWindow; I18N.OnInitialized += RecreateConfigWindow;
} }
@@ -75,9 +82,19 @@ public static class UIFunctions
} }
private static readonly Sprite[] PlanetIcons = [ private static readonly Sprite[] PlanetIcons = [
null,
null,
null,
null,
null,
null,
null,
Common.Util.LoadEmbeddedSprite("assets/planet_icon/07.png"), Common.Util.LoadEmbeddedSprite("assets/planet_icon/07.png"),
null,
Common.Util.LoadEmbeddedSprite("assets/planet_icon/09.png"), Common.Util.LoadEmbeddedSprite("assets/planet_icon/09.png"),
Common.Util.LoadEmbeddedSprite("assets/planet_icon/10.png"), Common.Util.LoadEmbeddedSprite("assets/planet_icon/10.png"),
null,
null,
Common.Util.LoadEmbeddedSprite("assets/planet_icon/13.png"), Common.Util.LoadEmbeddedSprite("assets/planet_icon/13.png"),
Common.Util.LoadEmbeddedSprite("assets/planet_icon/14.png"), Common.Util.LoadEmbeddedSprite("assets/planet_icon/14.png"),
Common.Util.LoadEmbeddedSprite("assets/planet_icon/15.png"), Common.Util.LoadEmbeddedSprite("assets/planet_icon/15.png"),
@@ -85,12 +102,14 @@ public static class UIFunctions
Common.Util.LoadEmbeddedSprite("assets/planet_icon/17.png"), Common.Util.LoadEmbeddedSprite("assets/planet_icon/17.png"),
Common.Util.LoadEmbeddedSprite("assets/planet_icon/18.png"), Common.Util.LoadEmbeddedSprite("assets/planet_icon/18.png"),
Common.Util.LoadEmbeddedSprite("assets/planet_icon/19.png"), Common.Util.LoadEmbeddedSprite("assets/planet_icon/19.png"),
null,
Common.Util.LoadEmbeddedSprite("assets/planet_icon/21.png"), Common.Util.LoadEmbeddedSprite("assets/planet_icon/21.png"),
Common.Util.LoadEmbeddedSprite("assets/planet_icon/22.png"), Common.Util.LoadEmbeddedSprite("assets/planet_icon/22.png"),
Common.Util.LoadEmbeddedSprite("assets/planet_icon/23.png"), Common.Util.LoadEmbeddedSprite("assets/planet_icon/23.png"),
Common.Util.LoadEmbeddedSprite("assets/planet_icon/24.png"), Common.Util.LoadEmbeddedSprite("assets/planet_icon/24.png"),
Common.Util.LoadEmbeddedSprite("assets/planet_icon/25.png") Common.Util.LoadEmbeddedSprite("assets/planet_icon/25.png")
]; ];
private static readonly int[] FilterPlanetThemes = [16, 23, 10, 15, 18, 22, 25, 21, 14, 17, 19, 7, 24, 9, 13];
public static void InitMenuButtons() public static void InitMenuButtons()
{ {
if (_initialized) return; if (_initialized) return;
@@ -151,99 +170,89 @@ public static class UIFunctions
} }
{ {
var rtrans = uiRoot.uiGame.starmap.transform as RectTransform; var rtrans = uiRoot.uiGame.starmap.transform as RectTransform;
var cb = UI.MyCornerComboBox.CreateComboBox(125, 0, rtrans, true).WithItems("显示原始名称", "显示距离", "显示行星数", "显示主要矿物", "显示全部信息"); var cornerComboBox = UI.MyCornerComboBox.CreateComboBox(135, 5, rtrans, true).WithItems("Show original name".Translate(), "Show distance".Translate(), "Show planet count".Translate(), "Show all information".Translate());
cb.SetIndex(Functions.UIFunctions.CornerComboBoxIndex); cornerComboBox.SetIndex(Functions.UIFunctions.CornerComboBoxIndex);
cb.OnSelChanged += (index) => cornerComboBox.OnSelChanged += (index) =>
{ {
Functions.UIFunctions.CornerComboBoxIndex = index; Functions.UIFunctions.CornerComboBoxIndex = index;
}; };
_starmapFilterToggler = UI.MyCheckButton.CreateCheckButton(10, 0, rtrans, false, ">>").WithSize(24, 24); _starmapFilterToggler = UI.MyCheckButton.CreateCheckButton(5, 5, rtrans, false, ">>").WithSize(24, 24);
MyCheckButton[] buttons = [ MyCheckButton[] buttons = [
UI.MyCheckButton.CreateCheckButton(34, 0, rtrans, false).WithIcon().WithSize(24, 24).WithIconWidth(24), // Kimberlite UI.MyCheckButton.CreateCheckButton(29, 5, rtrans, false).WithIcon().WithSize(24, 24).WithIconWidth(24), // Kimberlite
UI.MyCheckButton.CreateCheckButton(58, 0, rtrans, false).WithIcon().WithSize(24, 24).WithIconWidth(24), // Fractal Silicon UI.MyCheckButton.CreateCheckButton(53, 5, rtrans, false).WithIcon().WithSize(24, 24).WithIconWidth(24), // Fractal Silicon
UI.MyCheckButton.CreateCheckButton(82, 0, rtrans, false).WithIcon().WithSize(24, 24).WithIconWidth(24), // Organic Crystal UI.MyCheckButton.CreateCheckButton(77, 5, rtrans, false).WithIcon().WithSize(24, 24).WithIconWidth(24), // Organic Crystal
UI.MyCheckButton.CreateCheckButton(106, 0, rtrans, false).WithIcon().WithSize(24, 24).WithIconWidth(24), // Grating Crystal UI.MyCheckButton.CreateCheckButton(101, 5, rtrans, false).WithIcon().WithSize(24, 24).WithIconWidth(24), // Grating Crystal
UI.MyCheckButton.CreateCheckButton(130, 0, rtrans, false).WithIcon().WithSize(24, 24).WithIconWidth(24), // Stalagmite Crystal UI.MyCheckButton.CreateCheckButton(125, 5, rtrans, false).WithIcon().WithSize(24, 24).WithIconWidth(24), // Stalagmite Crystal
UI.MyCheckButton.CreateCheckButton(154, 0, rtrans, false).WithIcon().WithSize(24, 24).WithIconWidth(24), // Unipolar Magnet UI.MyCheckButton.CreateCheckButton(149, 5, rtrans, false).WithIcon().WithSize(24, 24).WithIconWidth(24), // Unipolar Magnet
UI.MyCheckButton.CreateCheckButton(178, 0, rtrans, false).WithIcon().WithSize(24, 24).WithIconWidth(24), // Crude Oil UI.MyCheckButton.CreateCheckButton(173, 5, rtrans, false).WithIcon().WithSize(24, 24).WithIconWidth(24), // Crude Oil
UI.MyCheckButton.CreateCheckButton(202, 0, rtrans, false).WithIcon().WithSize(24, 24).WithIconWidth(24), // Fire Ice UI.MyCheckButton.CreateCheckButton(197, 5, rtrans, false).WithIcon().WithSize(24, 24).WithIconWidth(24), // Fire Ice
UI.MyCheckButton.CreateCheckButton(226, 0, rtrans, false).WithIcon().WithSize(24, 24).WithIconWidth(24), // Sulfuric Acid UI.MyCheckButton.CreateCheckButton(221, 5, rtrans, false).WithIcon().WithSize(24, 24).WithIconWidth(24), // Sulfuric Acid
UI.MyCheckButton.CreateCheckButton(250, 0, rtrans, false).WithIcon().WithSize(24, 24).WithIconWidth(24), // Water UI.MyCheckButton.CreateCheckButton(245, 5, rtrans, false).WithIcon().WithSize(24, 24).WithIconWidth(24), // Water
UI.MyCheckButton.CreateCheckButton(274, 0, rtrans, false).WithIcon().WithSize(24, 24).WithIconWidth(24), // Hydrogen UI.MyCheckButton.CreateCheckButton(269, 5, rtrans, false).WithIcon().WithSize(24, 24).WithIconWidth(24), // Hydrogen
UI.MyCheckButton.CreateCheckButton(298, 0, rtrans, false).WithIcon().WithSize(24, 24).WithIconWidth(24), // Deuterium UI.MyCheckButton.CreateCheckButton(293, 5, rtrans, false).WithIcon().WithSize(24, 24).WithIconWidth(24), // Deuterium
UI.MyCheckButton.CreateCheckButton(34, 24, rtrans, false).WithIcon().WithSize(120, 24).WithIconWidth(24), UI.MyCheckButton.CreateCheckButton(29, 29, rtrans, false).WithIcon().WithSize(150, 24).WithIconWidth(24),
UI.MyCheckButton.CreateCheckButton(34, 48, rtrans, false).WithIcon().WithSize(120, 24).WithIconWidth(24), UI.MyCheckButton.CreateCheckButton(29, 53, rtrans, false).WithIcon().WithSize(150, 24).WithIconWidth(24),
UI.MyCheckButton.CreateCheckButton(34, 72, rtrans, false).WithIcon().WithSize(120, 24).WithIconWidth(24), UI.MyCheckButton.CreateCheckButton(29, 77, rtrans, false).WithIcon().WithSize(150, 24).WithIconWidth(24),
UI.MyCheckButton.CreateCheckButton(34, 96, rtrans, false).WithIcon().WithSize(120, 24).WithIconWidth(24), UI.MyCheckButton.CreateCheckButton(29, 101, rtrans, false).WithIcon().WithSize(150, 24).WithIconWidth(24),
UI.MyCheckButton.CreateCheckButton(34, 120, rtrans, false).WithIcon().WithSize(120, 24).WithIconWidth(24), UI.MyCheckButton.CreateCheckButton(29, 125, rtrans, false).WithIcon().WithSize(150, 24).WithIconWidth(24),
UI.MyCheckButton.CreateCheckButton(34, 144, rtrans, false).WithIcon().WithSize(120, 24).WithIconWidth(24), UI.MyCheckButton.CreateCheckButton(29, 149, rtrans, false).WithIcon().WithSize(150, 24).WithIconWidth(24),
UI.MyCheckButton.CreateCheckButton(34, 168, rtrans, false).WithIcon().WithSize(120, 24).WithIconWidth(24), UI.MyCheckButton.CreateCheckButton(29, 173, rtrans, false).WithIcon().WithSize(150, 24).WithIconWidth(24),
UI.MyCheckButton.CreateCheckButton(29, 197, rtrans, false).WithIcon().WithSize(150, 24).WithIconWidth(24),
UI.MyCheckButton.CreateCheckButton(29, 221, rtrans, false).WithIcon().WithSize(150, 24).WithIconWidth(24),
UI.MyCheckButton.CreateCheckButton(29, 263, rtrans, false).WithIcon().WithSize(150, 24).WithIconWidth(24),
UI.MyCheckButton.CreateCheckButton(29, 287, rtrans, false).WithIcon().WithSize(150, 24).WithIconWidth(24),
UI.MyCheckButton.CreateCheckButton(29, 311, rtrans, false).WithIcon().WithSize(150, 24).WithIconWidth(24),
UI.MyCheckButton.CreateCheckButton(29, 335, rtrans, false).WithIcon().WithSize(150, 24).WithIconWidth(24),
UI.MyCheckButton.CreateCheckButton(29, 359, rtrans, false).WithIcon().WithSize(150, 24).WithIconWidth(24),
UI.MyCheckButton.CreateCheckButton(29, 383, rtrans, false).WithIcon().WithSize(150, 24).WithIconWidth(24),
]; ];
var allOresText = MyWindow.AddText(25, 243, rtrans, "All 6 Basic Ores".Translate(), 12);
allOresText.gameObject.SetActive(false);
_starmapFilterToggler.OnChecked += UpdateButtons; _starmapFilterToggler.OnChecked += UpdateButtons;
foreach (var button in buttons) foreach (var button in buttons)
{ {
button.OnChecked += UpdateStarmapStarFilters; button.OnChecked += () =>
{
if (button.Checked && !VFInput.shift && !VFInput.control)
{
foreach (var b in buttons)
{
if (b != button) b.Checked = false;
}
}
UpdateStarmapStarFilters();
};
} }
I18N.OnInitialized += UpdateI18N;
GameLogic.OnDataLoaded += () => GameLogic.OnDataLoaded += () =>
{ {
VeinProto veinProto; VeinProto veinProto;
for (int i = 0; i < 6; i++) for (int i = 0; i < 6; i++)
{ {
veinProto = LDB.veins.Select(i + 9); veinProto = LDB.veins.Select(i + 9);
buttons[i].WithTip(veinProto.Name).SetIcon(veinProto.iconSprite); buttons[i].SetIcon(veinProto.iconSprite);
} }
var itemProto = LDB.items.Select(1007); var itemProto = LDB.items.Select(1007);
buttons[6].WithTip(itemProto.Name).SetIcon(itemProto.iconSprite); buttons[6].SetIcon(itemProto.iconSprite);
veinProto = LDB.veins.Select(8); veinProto = LDB.veins.Select(8);
buttons[7].WithTip(veinProto.Name).SetIcon(veinProto.iconSprite); buttons[7].SetIcon(veinProto.iconSprite);
itemProto = LDB.items.Select(1116); itemProto = LDB.items.Select(1116);
buttons[8].WithTip(itemProto.Name).SetIcon(itemProto.iconSprite); buttons[8].SetIcon(itemProto.iconSprite);
itemProto = LDB.items.Select(1000); itemProto = LDB.items.Select(1000);
buttons[9].WithTip(itemProto.Name).SetIcon(itemProto.iconSprite); buttons[9].SetIcon(itemProto.iconSprite);
itemProto = LDB.items.Select(1120); itemProto = LDB.items.Select(1120);
buttons[10].WithTip(itemProto.Name).SetIcon(itemProto.iconSprite); buttons[10].SetIcon(itemProto.iconSprite);
itemProto = LDB.items.Select(1121); itemProto = LDB.items.Select(1121);
buttons[11].WithTip(itemProto.Name).SetIcon(itemProto.iconSprite); buttons[11].SetIcon(itemProto.iconSprite);
// [ 0] = 07.png for (int i = 0; i < FilterPlanetThemes.Length; i++)
// [ 1] = 09.png {
// [ 2] = 10.png buttons[12 + i].SetIcon(PlanetIcons[FilterPlanetThemes[i]]);
// [ 3] = 13.png }
// [ 4] = 14.png UpdateI18N();
// [ 5] = 15.png
// [ 6] = 16.png
// [ 7] = 17.png
// [ 8] = 18.png
// [ 9] = 19.png
// [10] = 21.png
// [11] = 22.png
// [12] = 23.png
// [13] = 24.png
// [14] = 25.png
var themeProto = LDB.themes.Select(16);
buttons[12].SetLabelText(themeProto.DisplayName);
buttons[12].SetIcon(PlanetIcons[6]);
themeProto = LDB.themes.Select(23);
buttons[13].SetLabelText(themeProto.DisplayName);
buttons[13].SetIcon(PlanetIcons[12]);
themeProto = LDB.themes.Select(10);
buttons[14].SetLabelText(themeProto.DisplayName);
buttons[14].SetIcon(PlanetIcons[2]);
themeProto = LDB.themes.Select(15);
buttons[15].SetLabelText(themeProto.DisplayName);
buttons[15].SetIcon(PlanetIcons[5]);
themeProto = LDB.themes.Select(18);
buttons[16].SetLabelText(themeProto.DisplayName);
buttons[16].SetIcon(PlanetIcons[8]);
themeProto = LDB.themes.Select(22);
buttons[17].SetLabelText(themeProto.DisplayName);
buttons[17].SetIcon(PlanetIcons[11]);
themeProto = LDB.themes.Select(25);
buttons[18].SetLabelText(themeProto.DisplayName);
buttons[18].SetIcon(PlanetIcons[14]);
}; };
GameLogic.OnGameBegin += () => GameLogic.OnGameBegin += () =>
@@ -330,6 +339,58 @@ public static class UIFunctions
_starmapStarFilterValues = null; _starmapStarFilterValues = null;
_starmapFilterInitialized = false; _starmapFilterInitialized = false;
}; };
void UpdateI18N()
{
if (cornerComboBox != null)
{
var items = cornerComboBox.Items;
cornerComboBox.UpdateLabelText();
items[0] = "Show original name".Translate();
items[1] = "Show distance".Translate();
items[2] = "Show planet count".Translate();
items[3] = "Show all information".Translate();
}
if (buttons != null)
{
VeinProto veinProto;
for (int i = 0; i < 6; i++)
{
veinProto = LDB.veins.Select(i + 9);
buttons[i].WithTip(veinProto.Name);
}
var itemProto = LDB.items.Select(1007);
buttons[6].WithTip(itemProto.Name);
veinProto = LDB.veins.Select(8);
buttons[7].WithTip(veinProto.Name);
itemProto = LDB.items.Select(1116);
buttons[8].WithTip(itemProto.Name);
itemProto = LDB.items.Select(1000);
buttons[9].WithTip(itemProto.Name);
itemProto = LDB.items.Select(1120);
buttons[10].WithTip(itemProto.Name);
itemProto = LDB.items.Select(1121);
buttons[11].WithTip(itemProto.Name);
for (int i = 0; i < FilterPlanetThemes.Length; i++)
{
var theme = FilterPlanetThemes[i];
var themeProto = LDB.themes.Select(theme);
switch (i)
{
case 7:
buttons[12 + i].SetLabelText($"{themeProto.DisplayName.Translate()} ({"High yield".Translate()})");
break;
case 8:
buttons[12 + i].SetLabelText($"{themeProto.DisplayName.Translate()} ({"Perfect".Translate()})");
break;
default:
buttons[12 + i].SetLabelText(themeProto.DisplayName.Translate());
break;
}
}
}
if (allOresText != null) allOresText.text = "All 6 Basic Ores".Translate();
}
void UpdateButtons() void UpdateButtons()
{ {
var chk = _starmapFilterToggler.Checked; var chk = _starmapFilterToggler.Checked;
@@ -343,6 +404,7 @@ public static class UIFunctions
button.Checked = false; button.Checked = false;
} }
} }
allOresText.gameObject.SetActive(chk);
_starmapFilterToggler.SetLabelText(chk ? "X" : ">>"); _starmapFilterToggler.SetLabelText(chk ? "X" : ">>");
if (!chk) if (!chk)
{ {
@@ -385,33 +447,12 @@ public static class UIFunctions
{ {
filterValue |= 1UL << 21; filterValue |= 1UL << 21;
} }
if (buttons[12].Checked) for (int i = 0; i < FilterPlanetThemes.Length; i++)
{ {
filterValue |= 1UL << (30 + 16); if (buttons[12 + i].Checked)
} {
if (buttons[13].Checked) filterValue |= 1UL << (30 + FilterPlanetThemes[i]);
{ }
filterValue |= 1UL << (30 + 23);
}
if (buttons[14].Checked)
{
filterValue |= 1UL << (30 + 10);
}
if (buttons[15].Checked)
{
filterValue |= 1UL << (30 + 15);
}
if (buttons[16].Checked)
{
filterValue |= 1UL << (30 + 18);
}
if (buttons[17].Checked)
{
filterValue |= 1UL << (30 + 22);
}
if (buttons[18].Checked)
{
filterValue |= 1UL << (30 + 25);
} }
} }
if (filterValue == 0UL) if (filterValue == 0UL)
@@ -491,25 +532,37 @@ public static class UIFunctions
{ {
switch (planet.theme) switch (planet.theme)
{ {
case 7: case 9: case 13: case 17: case 19: case 24: case 7:
{ case 9:
const ulong needed = 0x7EUL; case 13:
if ((planetValue & needed) == needed) case 17:
case 19:
case 24:
{ {
value |= 1UL << (30 + planet.theme); const ulong needed = 0x7EUL;
if ((planetValue & needed) == needed)
{
value |= 1UL << (30 + planet.theme);
}
break;
} }
break;
}
case 14: case 14:
{
const ulong needed = 0x2200UL;
if ((planetValue & needed) == needed)
{ {
value |= 1UL << (30 + planet.theme); const ulong needed = 0x2200UL;
if ((planetValue & needed) == needed)
{
value |= 1UL << (30 + planet.theme);
}
break;
} }
break; case 10:
} case 15:
case 10: case 15: case 16: case 18: case 21: case 22: case 23: case 25: case 16:
case 18:
case 21:
case 22:
case 23:
case 25:
value |= 1UL << (30 + planet.theme); value |= 1UL << (30 + planet.theme);
break; break;
} }
@@ -582,19 +635,15 @@ public static class UIFunctions
break; break;
} }
case 3: case 3:
starUI.nameText.text = String.Format("{0}-{1}", _starOrderNames[star.index], GetStarSpecialOres(star));
break;
case 4:
{ {
var (nongas, total) = GetStarPlanetCount(star); var (nongas, total) = GetStarPlanetCount(star);
starUI.nameText.text = String.Format("{0}-{1:0.00}-{2}-{3}-{4}", _starOrderNames[star.index], GetStarDist(star), GetStarSpecialOres(star), nongas, total); starUI.nameText.text = String.Format("{0}-{1:0.00}-{2}-{3}", _starOrderNames[star.index], GetStarDist(star), nongas, total);
break; break;
} }
default: default:
starUI.nameText.text = star.displayName; starUI.nameText.text = star.displayName;
break; break;
} }
;
} }
return; return;
@@ -615,10 +664,5 @@ public static class UIFunctions
} }
return (nongas, total); return (nongas, total);
} }
string GetStarSpecialOres(StarData star)
{
return "";
}
} }
} }

View File

@@ -1,8 +1,9 @@
# UXAssist # UXAssist
#### Some functions and patches for better user experience <details>
<summary>Read me in English</summary>
#### 一些提升用户体验的功能和补丁 #### Some functions and patches for better user experience
## Usage ## Usage
@@ -40,6 +41,9 @@
- Set enabled CPU threads - Set enabled CPU threads
- Increase maximum count of Metadata Instantiations to 20000 (from 2000) - Increase maximum count of Metadata Instantiations to 20000 (from 2000)
- Increase capacity of player order queue to 128 (from 16) - Increase capacity of player order queue to 128 (from 16)
- Starmap view:
- Add a star name filter, you can filter displayed star names by ores or planet types now.
- Add a dropdown box to show all stars' distance and/or planet count.
+ Factory + Factory
- Sunlight at night - Sunlight at night
- Remove some build conditions - Remove some build conditions
@@ -145,6 +149,16 @@
* [OffGridConstruction](https://github.com/Velociraptor115-DSPModding/OffGridConstruction): Off-grid building & stepped rotation implementations * [OffGridConstruction](https://github.com/Velociraptor115-DSPModding/OffGridConstruction): Off-grid building & stepped rotation implementations
* [CruiseAssist](https://dsp.thunderstore.io/package/tanu/CruiseAssist/) and its extension [AutoPilot](https://dsp.thunderstore.io/package/tanu/AutoPilot/): `Auto navigation on sailings` and `Auto-cruise` implementations * [CruiseAssist](https://dsp.thunderstore.io/package/tanu/CruiseAssist/) and its extension [AutoPilot](https://dsp.thunderstore.io/package/tanu/AutoPilot/): `Auto navigation on sailings` and `Auto-cruise` implementations
</details>
<details>
<summary>中文读我</summary>
#### 一些提升用户体验的功能和补丁
## Bug反馈
* QQ群372754090
## 使用说明 ## 使用说明
* 按 `` Alt+`(反引号) `` 键呼出主面板,可以在面板上修改快捷键。 * 按 `` Alt+`(反引号) `` 键呼出主面板,可以在面板上修改快捷键。
@@ -181,6 +195,9 @@
- 设置使用的CPU线程 - 设置使用的CPU线程
- 将元数据提取的最大数量增加到20000(原来为2000) - 将元数据提取的最大数量增加到20000(原来为2000)
- 将玩家指令队列的容量增加到128(原来为16) - 将玩家指令队列的容量增加到128(原来为16)
- 星图:
- 添加星系名过滤器,现在可以按矿物或行星类型过滤显示的星系名
- 添加了一个下拉框用以切换显示所有星系的距离和/或行星数量
+ 工厂 + 工厂
- 夜间日光灯 - 夜间日光灯
- 移除部分不影响游戏逻辑的建造条件 - 移除部分不影响游戏逻辑的建造条件
@@ -285,4 +302,6 @@
* [BepInEx](https://bepinex.dev/): 基础模组框架 * [BepInEx](https://bepinex.dev/): 基础模组框架
* [LSTM](https://github.com/hetima/DSP_LSTM) & [PlanetFinder](https://github.com/hetima/DSP_PlanetFinder): UI实现 * [LSTM](https://github.com/hetima/DSP_LSTM) & [PlanetFinder](https://github.com/hetima/DSP_PlanetFinder): UI实现
* [OffGridConstruction](https://github.com/Velociraptor115-DSPModding/OffGridConstruction): 脱离网格建造以及小角度旋转的实现 * [OffGridConstruction](https://github.com/Velociraptor115-DSPModding/OffGridConstruction): 脱离网格建造以及小角度旋转的实现
* [CruiseAssist](https://dsp.thunderstore.io/package/tanu/CruiseAssist/)及其扩展[AutoPilot](https://dsp.thunderstore.io/package/tanu/AutoPilot/): `航行时自动导航``自动巡航`的实现 * [CruiseAssist](https://dsp.thunderstore.io/package/tanu/CruiseAssist/)及其扩展[AutoPilot](https://dsp.thunderstore.io/package/tanu/AutoPilot/): `航行时自动导航``自动巡航`的实现
</details>

View File

@@ -255,5 +255,6 @@ public class MyCheckButton : MonoBehaviour
uiButton.transitions[0].pressedColor = closePressColor; uiButton.transitions[0].pressedColor = closePressColor;
uiButton.transitions[0].normalColor = new Color(0.6557f, 0.9145f, 1f, 0.0627f); uiButton.transitions[0].normalColor = new Color(0.6557f, 0.9145f, 1f, 0.0627f);
} }
uiButton.RefreshTransitionsImmediately();
} }
} }

View File

@@ -1,4 +1,5 @@
using System; using System;
using System.Collections.Generic;
using System.Linq; using System.Linq;
using BepInEx.Configuration; using BepInEx.Configuration;
using UnityEngine; using UnityEngine;
@@ -76,6 +77,14 @@ public class MyCornerComboBox : MonoBehaviour
_comboBox.DropDownCount = items.Length; _comboBox.DropDownCount = items.Length;
} }
public List<string> Items => _comboBox.Items;
public void UpdateLabelText()
{
var textComp = _comboBox.transform.Find("Main Button")?.GetComponentInChildren<Text>();
if (textComp) textComp.text = _comboBox.Items[_comboBox.itemIndex];
}
public void SetIndex(int index) => _comboBox.itemIndex = index; public void SetIndex(int index) => _comboBox.itemIndex = index;
public void SetSize(float width, float height) public void SetSize(float width, float height)

View File

@@ -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.20</Version> <Version>1.2.21</Version>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks> <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<LangVersion>latest</LangVersion> <LangVersion>latest</LangVersion>
<PackageId>UXAssist</PackageId> <PackageId>UXAssist</PackageId>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -1,6 +1,6 @@
{ {
"name": "UXAssist", "name": "UXAssist",
"version_number": "1.2.20", "version_number": "1.2.21",
"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": [