This commit is contained in:
Anuken
2021-10-22 09:04:00 -04:00
parent 4dc2164468
commit 677e0e6f58
11 changed files with 27 additions and 37 deletions

View File

@@ -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);

View File

@@ -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<Fi> 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() + "--");
}
}
}
}
}

View File

@@ -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<Building> buildType = null; //initialized later
public ObjectMap<Class<?>, Cons2> configurations = new ObjectMap<>();

View File

@@ -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 <T extends UnlockableContent> void buildTable(Table table, Seq<T> items, Prov<T> holder, Cons<T> consumer){
buildTable(table, items, holder, consumer, true);
}
public static <T extends UnlockableContent> void buildTable(Block block, Table table, Seq<T> items, Prov<T> holder, Cons<T> consumer){
buildTable(block, table, items, holder, consumer, true);
}
public static <T extends UnlockableContent> void buildTable(Table table, Seq<T> items, Prov<T> holder, Cons<T> consumer, boolean closeSelect){
buildTable(null, table, items, holder, consumer, closeSelect);
}
public static <T extends UnlockableContent> void buildTable(@Nullable Block block, Table table, Seq<T> items, Prov<T> holder, Cons<T> consumer, boolean closeSelect){
ButtonGroup<ImageButton> 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));

View File

@@ -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

View File

@@ -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

View File

@@ -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).<UnlockableContent>as()
.and(content.units().select(PayloadSource.this::canProduce).as()),
() -> (UnlockableContent)config(), this::configure);

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -160,7 +160,7 @@ public class UnitFactory extends UnitBlock{
Seq<UnitType> 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));
}