From 5fd2f110e9c60b4791a2ebfc73263cf36ad0fc36 Mon Sep 17 00:00:00 2001 From: MinRi2 <2275045670@qq.com> Date: Sun, 29 Dec 2024 13:30:57 +0800 Subject: [PATCH] =?UTF-8?q?C:=20=E5=8D=95=E4=BD=8D=E5=B7=A5=E5=8E=82-X=20?= =?UTF-8?q?=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../features/ui/UnitFactoryDialog.java | 76 +++++++++++-------- 1 file changed, 43 insertions(+), 33 deletions(-) diff --git a/core/src/mindustryX/features/ui/UnitFactoryDialog.java b/core/src/mindustryX/features/ui/UnitFactoryDialog.java index 9d29d95dba42..a6631b316ae6 100644 --- a/core/src/mindustryX/features/ui/UnitFactoryDialog.java +++ b/core/src/mindustryX/features/ui/UnitFactoryDialog.java @@ -195,44 +195,50 @@ private void rebuild(){ // 等table分配大小后重构 Core.app.post(this::rebuildUnitSelection); - Cell selectionCell = main.add(selection); + Table rightTable = new Table(); - if(Core.graphics.isPortrait()){ - main.row(); - } + rightTable.top(); + rightTable.defaults().growX(); - Cell mainCell = main.table(null, rightTable -> { - rightTable.top(); - rightTable.defaults().growX(); + rightTable.add(infoTable).row(); - rightTable.add(infoTable).row(); + rightTable.defaults().padTop(12f); + + rightTable.add(posTable).row(); + rightTable.add(countTable).row(); + rightTable.table(randDstTable -> { + randDstTable.add("生成范围:"); + randDstTable.field(Strings.autoFixed(unitRandDst, 3), text -> { + unitRandDst = Float.parseFloat(text); + }).valid(Strings::canParsePositiveFloat).tooltip("在目标点附近的这个范围内随机生成").maxTextLength(6).padLeft(4f); + randDstTable.add("格").expandX().left(); + }).row(); + rightTable.add(itemTable).row(); + rightTable.add(propertiesTable).row(); - rightTable.defaults().padTop(12f); + rightTable.add(teamTable).row(); - rightTable.add(posTable).row(); - rightTable.add(countTable).row(); - rightTable.table(randDstTable -> { - randDstTable.add("生成范围:"); - randDstTable.field(Strings.autoFixed(unitRandDst, 3), text -> { - unitRandDst = Float.parseFloat(text); - }).valid(Strings::canParsePositiveFloat).tooltip("在目标点附近的这个范围内随机生成").maxTextLength(6).padLeft(4f); - randDstTable.add("格").expandX().left(); - }).row(); - rightTable.add(itemTable).row(); - rightTable.add(propertiesTable).row(); + rightTable.table(bottomTable -> { + bottomTable.left(); + bottomTable.defaults().top().left(); - rightTable.add(teamTable).row(); + bottomTable.add(effectTable); - rightTable.table(bottomTable -> { - bottomTable.left(); - bottomTable.defaults().top().left(); + bottomTable.defaults().padLeft(16f); + bottomTable.add(payloadTable); + }).padTop(8f).fillY(); - bottomTable.add(effectTable); + Cell unitPropsTable, selectionCell = main.add(selection); - bottomTable.defaults().padLeft(16f); - bottomTable.add(payloadTable); - }).padTop(8f).fillY(); - }); + if(Core.graphics.isPortrait()){ + main.row(); + } + + if(Core.graphics.isPortrait()){ + unitPropsTable = main.add(rightTable); + }else{ + unitPropsTable = main.pane(Styles.noBarPane, rightTable).scrollX(false); + } if(Core.graphics.isPortrait()){ selectionCell.maxHeight(10 * 64f); @@ -240,7 +246,7 @@ private void rebuild(){ }else{ selectionCell.padRight(8f); selectionCell.expand(1, 1).fill(); - mainCell.expand(4, 1).fill(); + unitPropsTable.expand(4, 1).fill(); } } @@ -499,7 +505,7 @@ private void rebuildItemTable(Unit unit, Table itemTable){ changeItem[0].get(null); }).size(48f).padLeft(4); - Slider slider = itemTable.slider(0, itemCapacity, 1, 1, n -> { + Slider slider = itemTable.slider(0, itemCapacity, 1, unit.stack.amount, n -> { changeItemCount[0].get((int)n); }).width(128f).padLeft(4).get(); @@ -513,6 +519,10 @@ private void rebuildItemTable(Unit unit, Table itemTable){ field.setText("" + n); slider.setValue(n); }; + + if(unit.stack.amount > itemCapacity){ + changeItemCount[0].get(itemCapacity); + } } private void rebuildTeamTable(Unit unit, Table teamTable){ @@ -639,7 +649,7 @@ private void rebuildEffectsTable(Unit unit, Table effectTable){ effectTable.row(); - effectTable.pane(noBarPane, settingTable).fillY(); + effectTable.add(settingTable).fillY(); rebuildEffectSettingTable(unitStatus, settingTable); } @@ -803,7 +813,7 @@ private void simpleFactory(Unit unit){ Table main = new Table(); float width = Core.scene.getWidth() * (Core.scene.getWidth() > 1500 ? 0.6f : 0.9f) / Scl.scl(1); - dialog.cont.add(main).width(width).growY(); + dialog.cont.pane(Styles.noBarPane, main).scrollX(false).width(width).growY(); main.top(); main.defaults().growX();