Skip to content

Commit fc3acc8

Browse files
committed
新波次显示:优化开关按钮;增加核心资源相关设置
1 parent 8f69b9a commit fc3acc8

12 files changed

+55
-51
lines changed

assets/bundles/bundle-mdtx.properties

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,6 @@ setting.powerStatistic.name = 电量统计 [orange][重启生效]
7777
setting.showOtherTeamResource.name = 队伍资源显示(左中部)
7878
setting.showQuickToolTable.name = 快捷工具(右中部) [gray]快捷设置/工具箱/建筑工具
7979
setting.quickToolOffset.name = 快捷工具偏置
80-
setting.arccoreitems.name = 核心物资显示 [gray]点击电量条可快捷切换
81-
setting.arcCoreItemsCol.name = 核心物资显示列数
8280
setting.itemSelectionHeight.name = 建筑选择框(右下角)行数
8381
setting.itemSelectionWidth.name = 建筑选择框(右下角)列数
8482
setting.blockInventoryWidth.name = 建筑物品栏(分类器)每行物品数
@@ -89,7 +87,6 @@ setting.colorizedContent.name = [orange]彩[yellow]色[acid]属[cyan]性[violet]
8987
setting.arcBackgroundPath.name = 首页自定义背景-路径
9088
setting.autoSelSchematic.name = 蓝图自动选择 [gray]打开蓝图时自动筛选
9189
setting.arcCommandTable.name = RTS扩展按钮
92-
setting.newWaveInfoDisplay.name = 新波次显示(中上部)
9390

9491
category.blockSettings.name = 建筑相关设置
9592
setting.rotateCanvas.name = 蓝图旋转时会旋转画板内容 [orange]可能导致崩溃,小心使用
@@ -118,13 +115,19 @@ setting.limitupdate.name = 限制更新
118115
setting.limitdst.name = 限制更新-额外范围
119116
#end Settings
120117
#SettingsV2
118+
settingV2.reset = [red]恢复默认设置
121119
setting.autoFill.cooldown.name = 操作冷却(ms)
122120
setting.autoFill.cooldown.description = 过小的值可能导致被服务器踢出
123121
setting.autoFill.minFill.name = 最小装填个数
124122
setting.autoFill.fillStorageBlock.name = 允许往容器/仓库内填充
125123
setting.autoFill.fillDistribution.name = 允许往塑钢/桥中填充
126124
setting.radarMode.name = [acid]雷达模式
127125
setting.radarSize.name = [acid]雷达大小
126+
setting.coreItems.columns.name = 显示列数
127+
setting.coreItems.showItem.name = 显示核心物品
128+
setting.coreItems.showUnit.name = 显示单位数量
129+
setting.coreItems.showPlan.name = 显示建筑中数量
130+
setting.newWaveInfoDisplay.name = 新波次显示(中上部)
128131
#end SettingsV2
129132

130133
# editor增强

assets/bundles/bundle-mdtx_en.properties

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,6 @@ setting.logicSupport.name = Logic Support
7676
setting.powerStatistic.name = Power Statistics [orange][Restart Required]
7777
setting.showOtherTeamResource.name = Team Resource Display (Middle Left)
7878
setting.showQuickToolTable.name = Quick Tools (Middle Right) [gray]Quick Settings/Toolbox/Building Tools
79-
setting.arccoreitems.name = Core Items Display [gray]Click Power Bar to Quickly Switch
8079
setting.arcCoreItemsCol.name = Core Items Display Column Count
8180
setting.itemSelectionHeight.name = Building Selection Box (Bottom Right) Rows
8281
setting.itemSelectionWidth.name = Building Selection Box (Bottom Right) Columns

patches/client/0037-H-UI-HudFragment.patch

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ Content-Transfer-Encoding: 8bit
88

99
AuxiliaryTools, NewCoreItemsDisplay(新制核心资源显示), WaveInfoDisplay(波次信息显示)
1010
---
11-
.../mindustry/ui/fragments/HudFragment.java | 26 +++++++++++++------
12-
1 file changed, 18 insertions(+), 8 deletions(-)
11+
.../mindustry/ui/fragments/HudFragment.java | 25 +++++++++++++------
12+
1 file changed, 17 insertions(+), 8 deletions(-)
1313

1414
diff --git a/core/src/mindustry/ui/fragments/HudFragment.java b/core/src/mindustry/ui/fragments/HudFragment.java
15-
index 9e26012834bf8d958d0a436616fb653256858f66..b88c201363f48453910068a29b79009af30e6928 100644
15+
index 9e26012834bf8d958d0a436616fb653256858f66..a136fe1ecffd2c78b8e5212e2246a9f412d846dc 100644
1616
--- a/core/src/mindustry/ui/fragments/HudFragment.java
1717
+++ b/core/src/mindustry/ui/fragments/HudFragment.java
1818
@@ -116,13 +116,18 @@ public class HudFragment{
@@ -41,14 +41,13 @@ index 9e26012834bf8d958d0a436616fb653256858f66..b88c201363f48453910068a29b79009a
4141
t.top().right();
4242
});
4343

44-
@@ -317,7 +322,12 @@ public class HudFragment{
44+
@@ -317,7 +322,11 @@ public class HudFragment{
4545

4646
t.table(c -> {
4747
//core items
4848
- c.top().collapser(coreItems, () -> Core.settings.getBool("coreitems") && !mobile && shown).fillX().row();
4949
+ //MDTX: replace coreItems with UIExt.coreItems, keep but invisible for compatibility.
50-
+ c.top().collapser(coreItems, () -> true).fillX().visible(false).row();
51-
+ c.top().add(UIExt.coreItems).touchable(Touchable.disabled).fillX().row();
50+
+ c.top().collapser(coreItems, () -> false).fillX().visible(false).row();
5251
+
5352
+ //MDTX: add waveInfoDisplay
5453
+ c.add(UIExt.waveInfoDisplay.wrapped()).fillX().row();

patches/client/0063-ARC-merged.patch

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2985,7 +2985,7 @@ index e74e6a12e3da57eb58598eb4e679a7990c109def..013255ce5aa828d538814fa25dc64c6a
29852985
//special case for 'clear' command
29862986
if(message.equals("clear")){
29872987
diff --git a/core/src/mindustry/ui/fragments/HudFragment.java b/core/src/mindustry/ui/fragments/HudFragment.java
2988-
index b88c201363f48453910068a29b79009af30e6928..581f4fc4b8bf801264d61c27278997f413ebea18 100644
2988+
index a136fe1ecffd2c78b8e5212e2246a9f412d846dc..c7a1a0473455992cf737ce1affa17dd8b0b3079d 100644
29892989
--- a/core/src/mindustry/ui/fragments/HudFragment.java
29902990
+++ b/core/src/mindustry/ui/fragments/HudFragment.java
29912991
@@ -27,10 +27,18 @@ import mindustry.input.*;
@@ -3108,7 +3108,7 @@ index b88c201363f48453910068a29b79009af30e6928..581f4fc4b8bf801264d61c27278997f4
31083108
if(android){
31093109
info.label(() -> memnative.get((int)(Core.app.getJavaHeap() / 1024 / 1024), (int)(Core.app.getNativeHeap() / 1024 / 1024))).left().style(Styles.outlineLabel).name("memory2");
31103110
}else{
3111-
@@ -902,6 +937,142 @@ public class HudFragment{
3111+
@@ -901,6 +936,142 @@ public class HudFragment{
31123112
return table;
31133113
}
31143114

@@ -3251,7 +3251,7 @@ index b88c201363f48453910068a29b79009af30e6928..581f4fc4b8bf801264d61c27278997f4
32513251
private void addInfoTable(Table table){
32523252
table.name = "infotable";
32533253
table.left();
3254-
@@ -946,7 +1117,45 @@ public class HudFragment{
3254+
@@ -945,7 +1116,45 @@ public class HudFragment{
32553255
}
32563256

32573257
private boolean canSkipWave(){

patches/client/0065-FIX-backport-for-v146.patch

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ index 75eca56accb429ca618f3d6364f2617d098ae0f1..e5634a86878cd39b8b3f9c2a5f1fa1ad
263263
if(Core.settings.getBool("arcSchematicCanBuild") && !arcSchematicCanBuild(s)) continue;
264264
if(firstSchematic == null) firstSchematic = s;
265265
diff --git a/core/src/mindustry/ui/fragments/HudFragment.java b/core/src/mindustry/ui/fragments/HudFragment.java
266-
index 581f4fc4b8bf801264d61c27278997f413ebea18..b09c133bfc7246d090300a67561a9b19492d6a81 100644
266+
index c7a1a0473455992cf737ce1affa17dd8b0b3079d..0b114a71a0a58e3276445cdf0a84bac11fe02eab 100644
267267
--- a/core/src/mindustry/ui/fragments/HudFragment.java
268268
+++ b/core/src/mindustry/ui/fragments/HudFragment.java
269269
@@ -14,6 +14,7 @@ import arc.scene.ui.ImageButton.*;

src/mindustryX/features/Settings.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -43,13 +43,6 @@ public static void addSettings(){
4343
c.checkPref("powerStatistic", true);
4444
c.checkPref("showOtherTeamResource", false);
4545
c.checkPref("showQuickToolTable", true);
46-
c.sliderPref("arccoreitems", 3, 0, 3, 1, s -> switch(s){
47-
case 0 -> "不显示";
48-
case 1 -> "资源状态";
49-
case 2 -> "兵种状态";
50-
default -> "显示资源和兵种";
51-
});
52-
c.sliderPref("arcCoreItemsCol", 5, 4, 15, 1, i -> i + "列");
5346
c.sliderPref("itemSelectionHeight", 4, 4, 12, i -> i + "行");
5447
c.sliderPref("itemSelectionWidth", 4, 4, 12, i -> i + "列");
5548
c.sliderPref("blockInventoryWidth", 3, 3, 16, i -> i + "");

src/mindustryX/features/SettingsV2.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ object SettingsV2 {
165165
cont.add(Table().also { t ->
166166
settings.forEach { it.buildUI(t) }
167167
}).fill().row()
168-
cont.button("@settings.reset") {
168+
cont.button("@settingV2.reset") {
169169
settings.forEach { it.resetDefault() }
170170
}
171171
addCloseButton()

src/mindustryX/features/ui/ArcPowerInfo.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@ public static Element getBars(){
5858
() -> Pal.powerBar,
5959
() -> stored / capacity);
6060

61-
power.clicked(() -> Settings.cycle("arccoreitems",4));
6261
power.margin(0);
6362
power.add(powerBar).height(18).growX().padBottom(1);
6463
power.row();

src/mindustryX/features/ui/NewCoreItemsDisplay.java

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import arc.scene.ui.layout.*;
77
import arc.struct.*;
88
import arc.util.*;
9+
import kotlin.collections.*;
910
import mindustry.core.*;
1011
import mindustry.entities.*;
1112
import mindustry.game.EventType.*;
@@ -16,7 +17,10 @@
1617
import mindustry.world.blocks.ConstructBlock.*;
1718
import mindustry.world.blocks.power.*;
1819
import mindustry.world.blocks.storage.*;
20+
import mindustryX.features.*;
21+
import mindustryX.features.SettingsV2.*;
1922

23+
import java.util.List;
2024
import java.util.*;
2125

2226
import static mindustry.Vars.*;
@@ -28,7 +32,6 @@ public class NewCoreItemsDisplay extends Table{
2832
private Table itemsTable, unitsTable, plansTable;
2933

3034
private static final Interval timer = new Interval(2);
31-
private int columns = -1;
3235

3336
private final int[] itemDelta;
3437
private final int[] lastItemAmount;
@@ -38,6 +41,12 @@ public class NewCoreItemsDisplay extends Table{
3841
private final ItemSeq planItems = new ItemSeq();
3942
private final ObjectIntMap<Block> planCounter = new ObjectIntMap<>();
4043

44+
private final SettingsV2.Data<Integer> columns = new SettingsV2.SliderPref(4, 15).create("coreItems.columns", 5);
45+
private final SettingsV2.Data<Boolean> showItem = CheckPref.INSTANCE.create("coreItems.showItem", true);
46+
private final SettingsV2.Data<Boolean> showUnit = CheckPref.INSTANCE.create("coreItems.showUnit", true);
47+
private final SettingsV2.Data<Boolean> showPlan = CheckPref.INSTANCE.create("coreItems.showPlan", true);
48+
final List<Data<?>> settings = CollectionsKt.listOf(columns, showItem, showUnit, showPlan);
49+
4150
public NewCoreItemsDisplay(){
4251
itemDelta = new int[content.items().size];
4352
lastItemAmount = new int[content.items().size];
@@ -55,28 +64,20 @@ public NewCoreItemsDisplay(){
5564
}
5665

5766
private void setup(){
58-
itemsTable = new Table(Styles.black3);
59-
unitsTable = new Table(Styles.black3);
60-
plansTable = new Table(Styles.black3);
67+
collapser(itemsTable = new Table(Styles.black3), showItem::getValue).growX().row();
68+
collapser(unitsTable = new Table(Styles.black3), showUnit::getValue).growX().row();
6169

62-
var itemCol = add(new SimpleCollapser(itemsTable, true)).growX().get();
63-
var unitsCol = row().add(new SimpleCollapser(unitsTable, true)).growX().get();
6470
var emptyLine = row().add();
65-
var plansCol = row().add(new SimpleCollapser(plansTable, true)).growX().get();
71+
row().collapser(plansTable = new Table(Styles.black3), showPlan::getValue).growX().row();
72+
6673
update(() -> {
67-
var columns = Core.settings.getInt("arcCoreItemsCol");
68-
int displayType = Core.settings.getInt("arccoreitems");
69-
itemCol.setCollapsed(displayType != 1 && displayType != 3);
70-
unitsCol.setCollapsed(displayType != 2 && displayType != 3);
71-
plansCol.setCollapsed(displayType < 1);
7274
var newHeight = plansTable.hasChildren() ? 12f : 0f;
7375
if(emptyLine.maxHeight() != newHeight){
7476
emptyLine.height(newHeight);
7577
emptyLine.getTable().invalidate();
7678
}
7779

78-
if(this.columns != columns){
79-
this.columns = columns;
80+
if(this.columns.changed()){
8081
rebuildItems();
8182
rebuildUnits();
8283
rebuildPlans();
@@ -172,7 +173,7 @@ private void rebuildItems(){
172173
});
173174
}).minWidth(MIN_WIDTH).left();
174175

175-
if(++i % columns == 0){
176+
if(++i % columns.getValue() == 0){
176177
itemsTable.row();
177178
}
178179
}
@@ -191,7 +192,7 @@ private void rebuildUnits(){
191192
return (typeCount == Units.getCap(player.team()) ? "[stat]" : "") + typeCount;
192193
}).minWidth(MIN_WIDTH).left();
193194

194-
if(++i % columns == 0){
195+
if(++i % columns.getValue() == 0){
195196
unitsTable.row();
196197
}
197198
}
@@ -233,7 +234,7 @@ private void rebuildPlans(){
233234
plansTable.image(block.uiIcon).size(iconSmall).scaling(Scaling.fit).pad(2f);
234235
plansTable.label(() -> (count > 0 ? "[green]+" : "[red]") + count).minWidth(MIN_WIDTH).left();
235236

236-
if(++i % columns == 0){
237+
if(++i % columns.getValue() == 0){
237238
plansTable.row();
238239
}
239240
}

src/mindustryX/features/ui/WaveInfoDisplay.java

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package mindustryX.features.ui;
22

33
import arc.*;
4+
import arc.scene.*;
5+
import arc.scene.event.*;
46
import arc.scene.ui.*;
57
import arc.scene.ui.layout.*;
68
import arc.util.*;
@@ -48,8 +50,16 @@ public WaveInfoDisplay(){
4850
state.wave += waveOffset;
4951
setWaveOffset(0);
5052
})).tooltip("强制跳波").disabled((b) -> net.client());
51-
buttons.button("♐", Styles.cleart, () -> ArcMessageDialog.shareWaveInfo(state.wave + waveOffset))
52-
.disabled((b) -> !state.rules.waves);
53+
buttons.button("♐", Styles.cleart, () -> ArcMessageDialog.shareWaveInfo(state.wave + waveOffset)).tooltip("分享波次信息");
54+
55+
buttons.button(Icon.settingsSmall, Styles.clearNonei, iconMed, () -> {
56+
}).tooltip("配置资源显示").get().addListener(new ClickListener(){
57+
@Override
58+
public void clicked(InputEvent event, float x, float y){
59+
new SettingsV2.SettingDialog(UIExt.coreItems.settings).showFloatPanel(event.stageX, event.stageY);
60+
}
61+
});
62+
buttons.button(Icon.eyeOffSmall, Styles.clearNonei, iconMed, () -> enable.setValue(false)).tooltip("隐藏波次显示");
5363
}).center().row();
5464

5565
waveInfo = new Table().left().top();
@@ -72,12 +82,12 @@ public float getPrefWidth(){
7282
}).growX();
7383
}
7484

75-
public Collapser wrapped(){
76-
var ret = new Collapser(t -> {
77-
t.add().height(4).row();
78-
t.add(this).growX();
79-
}, true);
80-
ret.setCollapsed(false, () -> !state.rules.waves || !enable.getValue());
85+
public Element wrapped(){
86+
var ret = new Table();
87+
ret.add(UIExt.coreItems).touchable(Touchable.disabled).fillX().row();
88+
ret.add().height(4).row();
89+
ret.collapser(this, () -> enable.getValue()).growX().row();
90+
ret.collapser(tt -> tt.button(Icon.downOpen, Styles.emptyi, () -> enable.setValue(true)), () -> !enable.getValue()).center().row();
8191
return ret;
8292
}
8393

src/mindustryX/features/ui/toolTable/HudSettingsTable.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,6 @@ protected void rebuild(){
118118
checkPref("unitbuildplan");
119119
sliderPref("minimapSize", 40, 400, 10, i -> i + "");
120120
UIExt.quickToolOffset.buildUI(this);
121-
WaveInfoDisplay.enable.buildUI(this);
122121
}
123122

124123
private void arcQuickMsgTable(){

src/mindustryX/features/ui/toolTable/ToolTableBase.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package mindustryX.features.ui.toolTable;
22

33
import arc.*;
4+
import arc.graphics.*;
45
import arc.scene.*;
56
import arc.scene.ui.*;
67
import arc.scene.ui.layout.*;
@@ -33,8 +34,8 @@ public Table wrapped(){
3334
});
3435
}
3536
t.collapser(main, () -> expand);
36-
t.button("", Styles.flatBordert, () -> expand = !expand).width(36f).minHeight(40f).fillY()
37-
.update(i -> i.setText((expand ? "" : "[lightgray]") + icon));
37+
t.button(icon, Styles.flatBordert, () -> expand = !expand).width(40f).minHeight(40f).fillY()
38+
.update(i -> i.getLabel().setColor(expand ? Color.white : Color.lightGray));
3839
});
3940
}
4041
}

0 commit comments

Comments
 (0)