diff --git a/core/src/mindustry/graphics/g3d/PlanetGrid.java b/core/src/mindustry/graphics/g3d/PlanetGrid.java index 993ca34c25..1282b38d7c 100644 --- a/core/src/mindustry/graphics/g3d/PlanetGrid.java +++ b/core/src/mindustry/graphics/g3d/PlanetGrid.java @@ -210,7 +210,7 @@ public class PlanetGrid{ static int tileCount(int size){ return 10 * Mathf.pow(3, size) + 2; - } + }/// static int cornerCount(int size){ return 20 * Mathf.pow(3, size); diff --git a/core/src/mindustry/ui/dialogs/FileChooser.java b/core/src/mindustry/ui/dialogs/FileChooser.java index 9259130d5c..a9c4ac83b9 100644 --- a/core/src/mindustry/ui/dialogs/FileChooser.java +++ b/core/src/mindustry/ui/dialogs/FileChooser.java @@ -259,15 +259,6 @@ public class FileChooser extends BaseDialog{ Core.settings.put("lastDirectory", directory.absolutePath()); } - private String shorten(String string){ - int max = 30; - if(string.length() <= max){ - return string; - }else{ - return string.substring(0, max - 3).concat("..."); - } - } - public class FileHistory{ private Seq history = new Seq<>(); private int index; @@ -305,19 +296,5 @@ public class FileChooser extends BaseDialog{ public boolean canBack(){ return !(index == 1) && index > 0; } - - void print(){ - - System.out.println("\n\n\n\n\n\n"); - int i = 0; - for(Fi file : history){ - i++; - if(index == i){ - System.out.println("[[" + file.toString() + "]]"); - }else{ - System.out.println("--" + file.toString() + "--"); - } - } - } } } diff --git a/core/src/mindustry/world/Block.java b/core/src/mindustry/world/Block.java index 067c4cb6c2..70c682819f 100644 --- a/core/src/mindustry/world/Block.java +++ b/core/src/mindustry/world/Block.java @@ -266,6 +266,7 @@ public class Block extends UnlockableContent{ /** Main subclass. Non-anonymous. */ public @Nullable Class subclass; + public float selectScroll; //scroll position for certain blocks public Prov buildType = null; //initialized later public ObjectMap, Cons2> configurations = new ObjectMap<>(); diff --git a/core/src/mindustry/world/blocks/ItemSelection.java b/core/src/mindustry/world/blocks/ItemSelection.java index 523fb01325..3f2a32fce0 100644 --- a/core/src/mindustry/world/blocks/ItemSelection.java +++ b/core/src/mindustry/world/blocks/ItemSelection.java @@ -5,20 +5,29 @@ import arc.scene.style.*; import arc.scene.ui.*; import arc.scene.ui.layout.*; import arc.struct.*; +import arc.util.*; import mindustry.ctype.*; import mindustry.gen.*; import mindustry.ui.*; +import mindustry.world.*; import static mindustry.Vars.*; public class ItemSelection{ - private static float scrollPos = 0f; public static void buildTable(Table table, Seq items, Prov holder, Cons consumer){ buildTable(table, items, holder, consumer, true); } - + + public static void buildTable(Block block, Table table, Seq items, Prov holder, Cons consumer){ + buildTable(block, table, items, holder, consumer, true); + } + public static void buildTable(Table table, Seq items, Prov holder, Cons consumer, boolean closeSelect){ + buildTable(null, table, items, holder, consumer, closeSelect); + } + + public static void buildTable(@Nullable Block block, Table table, Seq items, Prov holder, Cons consumer, boolean closeSelect){ ButtonGroup group = new ButtonGroup<>(); group.setMinCheckCount(0); @@ -52,10 +61,13 @@ public class ItemSelection{ ScrollPane pane = new ScrollPane(cont, Styles.smallPane); pane.setScrollingDisabled(true, false); - pane.setScrollYForce(scrollPos); - pane.update(() -> { - scrollPos = pane.getScrollY(); - }); + + if(block != null){ + pane.setScrollYForce(block.selectScroll); + pane.update(() -> { + block.selectScroll = pane.getScrollY(); + }); + } pane.setOverscroll(false, false); table.add(pane).maxHeight(Scl.scl(40 * 5)); diff --git a/core/src/mindustry/world/blocks/distribution/Sorter.java b/core/src/mindustry/world/blocks/distribution/Sorter.java index 4784a954b3..afe3ce6e7f 100644 --- a/core/src/mindustry/world/blocks/distribution/Sorter.java +++ b/core/src/mindustry/world/blocks/distribution/Sorter.java @@ -124,7 +124,7 @@ public class Sorter extends Block{ @Override public void buildConfiguration(Table table){ - ItemSelection.buildTable(table, content.items(), () -> sortItem, this::configure); + ItemSelection.buildTable(Sorter.this, table, content.items(), () -> sortItem, this::configure); } @Override diff --git a/core/src/mindustry/world/blocks/payloads/Constructor.java b/core/src/mindustry/world/blocks/payloads/Constructor.java index f1583a8532..161a4e157a 100644 --- a/core/src/mindustry/world/blocks/payloads/Constructor.java +++ b/core/src/mindustry/world/blocks/payloads/Constructor.java @@ -54,7 +54,7 @@ public class Constructor extends BlockProducer{ @Override public void buildConfiguration(Table table){ - ItemSelection.buildTable(table, content.blocks().select(Constructor.this::canProduce), () -> recipe, this::configure); + ItemSelection.buildTable(Constructor.this, table, content.blocks().select(Constructor.this::canProduce), () -> recipe, this::configure); } @Override diff --git a/core/src/mindustry/world/blocks/payloads/PayloadSource.java b/core/src/mindustry/world/blocks/payloads/PayloadSource.java index d1f37a436b..f035741ab7 100644 --- a/core/src/mindustry/world/blocks/payloads/PayloadSource.java +++ b/core/src/mindustry/world/blocks/payloads/PayloadSource.java @@ -85,7 +85,7 @@ public class PayloadSource extends PayloadBlock{ @Override public void buildConfiguration(Table table){ - ItemSelection.buildTable(table, + ItemSelection.buildTable(PayloadSource.this, table, content.blocks().select(PayloadSource.this::canProduce).as() .and(content.units().select(PayloadSource.this::canProduce).as()), () -> (UnlockableContent)config(), this::configure); diff --git a/core/src/mindustry/world/blocks/sandbox/ItemSource.java b/core/src/mindustry/world/blocks/sandbox/ItemSource.java index c534c0a601..c286af2674 100644 --- a/core/src/mindustry/world/blocks/sandbox/ItemSource.java +++ b/core/src/mindustry/world/blocks/sandbox/ItemSource.java @@ -73,7 +73,7 @@ public class ItemSource extends Block{ @Override public void buildConfiguration(Table table){ - ItemSelection.buildTable(table, content.items(), () -> outputItem, this::configure); + ItemSelection.buildTable(ItemSource.this, table, content.items(), () -> outputItem, this::configure); } @Override diff --git a/core/src/mindustry/world/blocks/sandbox/LiquidSource.java b/core/src/mindustry/world/blocks/sandbox/LiquidSource.java index 621c2252df..ff42509efb 100644 --- a/core/src/mindustry/world/blocks/sandbox/LiquidSource.java +++ b/core/src/mindustry/world/blocks/sandbox/LiquidSource.java @@ -73,7 +73,7 @@ public class LiquidSource extends Block{ @Override public void buildConfiguration(Table table){ - ItemSelection.buildTable(table, content.liquids(), () -> source, this::configure); + ItemSelection.buildTable(LiquidSource.this, table, content.liquids(), () -> source, this::configure); } @Override diff --git a/core/src/mindustry/world/blocks/storage/Unloader.java b/core/src/mindustry/world/blocks/storage/Unloader.java index d535952e70..2f67c042af 100644 --- a/core/src/mindustry/world/blocks/storage/Unloader.java +++ b/core/src/mindustry/world/blocks/storage/Unloader.java @@ -118,7 +118,7 @@ public class Unloader extends Block{ @Override public void buildConfiguration(Table table){ - ItemSelection.buildTable(table, content.items(), () -> sortItem, this::configure); + ItemSelection.buildTable(Unloader.this, table, content.items(), () -> sortItem, this::configure); } @Override diff --git a/core/src/mindustry/world/blocks/units/UnitFactory.java b/core/src/mindustry/world/blocks/units/UnitFactory.java index 948b85f0ff..dd0c81cb06 100644 --- a/core/src/mindustry/world/blocks/units/UnitFactory.java +++ b/core/src/mindustry/world/blocks/units/UnitFactory.java @@ -160,7 +160,7 @@ public class UnitFactory extends UnitBlock{ Seq units = Seq.with(plans).map(u -> u.unit).filter(u -> u.unlockedNow() && !u.isBanned()); if(units.any()){ - ItemSelection.buildTable(table, units, () -> currentPlan == -1 ? null : plans.get(currentPlan).unit, unit -> configure(plans.indexOf(u -> u.unit == unit))); + ItemSelection.buildTable(UnitFactory.this, table, units, () -> currentPlan == -1 ? null : plans.get(currentPlan).unit, unit -> configure(plans.indexOf(u -> u.unit == unit))); }else{ table.table(Styles.black3, t -> t.add("@none").color(Color.lightGray)); }