buildTable improvements

This commit is contained in:
Anuken
2020-02-11 11:30:22 -05:00
parent f14df52490
commit d6b5f6a311
6 changed files with 16 additions and 43 deletions
@@ -1,31 +1,28 @@
package mindustry.world.blocks; package mindustry.world.blocks;
import arc.struct.*;
import arc.func.*; import arc.func.*;
import arc.scene.style.*; import arc.scene.style.*;
import arc.scene.ui.*; import arc.scene.ui.*;
import arc.scene.ui.layout.*; import arc.scene.ui.layout.*;
import arc.struct.*;
import mindustry.ctype.*;
import mindustry.gen.*; import mindustry.gen.*;
import mindustry.type.*;
import mindustry.ui.*; import mindustry.ui.*;
import mindustry.ui.Cicon;
import static mindustry.Vars.*; import static mindustry.Vars.*;
public class ItemSelection{ public class ItemSelection{
public static void buildItemTable(Table table, Prov<Item> holder, Cons<Item> consumer){ public static <T extends UnlockableContent> void buildTable(Table table, Array<T> items, Prov<T> holder, Cons<T> consumer){
Array<Item> items = content.items();
ButtonGroup<ImageButton> group = new ButtonGroup<>(); ButtonGroup<ImageButton> group = new ButtonGroup<>();
group.setMinCheckCount(0); group.setMinCheckCount(0);
Table cont = new Table(); Table cont = new Table();
cont.defaults().size(38); cont.defaults().size(40);
int i = 0; int i = 0;
for(Item item : items){ for(T item : items){
if(!data.isUnlocked(item) && world.isZone()) continue; if(!data.isUnlocked(item) && world.isZone()) continue;
ImageButton button = cont.addImageButton(Tex.whiteui, Styles.clearToggleTransi, 24, () -> control.input.frag.config.hideConfig()).group(group).get(); ImageButton button = cont.addImageButton(Tex.whiteui, Styles.clearToggleTransi, 24, () -> control.input.frag.config.hideConfig()).group(group).get();
@@ -133,7 +133,7 @@ public class Sorter extends Block{
@Override @Override
public void buildConfiguration(Tile tile, Table table){ public void buildConfiguration(Tile tile, Table table){
SorterEntity entity = tile.ent(); SorterEntity entity = tile.ent();
ItemSelection.buildItemTable(table, () -> entity.sortItem, item -> { ItemSelection.buildTable(table, content.items(), () -> entity.sortItem, item -> {
lastItem = item; lastItem = item;
tile.configure(item == null ? -1 : item.id); tile.configure(item == null ? -1 : item.id);
}); });
@@ -81,7 +81,7 @@ public class ItemSource extends Block{
@Override @Override
public void buildConfiguration(Tile tile, Table table){ public void buildConfiguration(Tile tile, Table table){
ItemSourceEntity entity = tile.ent(); ItemSourceEntity entity = tile.ent();
ItemSelection.buildItemTable(table, () -> entity.outputItem, item -> { ItemSelection.buildTable(table, content.items(), () -> entity.outputItem, item -> {
lastItem = item; lastItem = item;
tile.configure(item == null ? -1 : item.id); tile.configure(item == null ? -1 : item.id);
}); });
@@ -1,24 +1,19 @@
package mindustry.world.blocks.sandbox; package mindustry.world.blocks.sandbox;
import arc.*; import arc.*;
import arc.struct.*;
import arc.graphics.g2d.*; import arc.graphics.g2d.*;
import arc.scene.style.*;
import arc.scene.ui.*;
import arc.scene.ui.layout.*; import arc.scene.ui.layout.*;
import arc.util.*;
import arc.util.ArcAnnotate.*; import arc.util.ArcAnnotate.*;
import arc.util.*;
import mindustry.entities.traits.BuilderTrait.*; import mindustry.entities.traits.BuilderTrait.*;
import mindustry.entities.type.*; import mindustry.entities.type.*;
import mindustry.gen.*;
import mindustry.type.*; import mindustry.type.*;
import mindustry.ui.*;
import mindustry.ui.Cicon;
import mindustry.world.*; import mindustry.world.*;
import mindustry.world.blocks.*;
import java.io.*; import java.io.*;
import static mindustry.Vars.*; import static mindustry.Vars.content;
public class LiquidSource extends Block{ public class LiquidSource extends Block{
public static Liquid lastLiquid; public static Liquid lastLiquid;
@@ -82,29 +77,10 @@ public class LiquidSource extends Block{
public void buildConfiguration(Tile tile, Table table){ public void buildConfiguration(Tile tile, Table table){
LiquidSourceEntity entity = tile.ent(); LiquidSourceEntity entity = tile.ent();
Array<Liquid> items = content.liquids(); ItemSelection.buildTable(table, content.liquids(), () -> entity.source, liquid -> {
lastLiquid = liquid;
ButtonGroup<ImageButton> group = new ButtonGroup<>(); tile.configure(liquid == null ? -1 : liquid.id);
group.setMinCheckCount(0); });
Table cont = new Table();
for(int i = 0; i < items.size; i++){
final int f = i;
ImageButton button = cont.addImageButton(Tex.clear, Styles.clearToggleTransi, 24, () -> control.input.frag.config.hideConfig()).size(38).group(group).get();
button.changed(() -> {
tile.configure(button.isChecked() ? items.get(f).id : -1);
control.input.frag.config.hideConfig();
lastLiquid = items.get(f);
});
button.getStyle().imageUp = new TextureRegionDrawable(items.get(i).icon(Cicon.medium));
button.setChecked(entity.source == items.get(i));
if(i % 4 == 3){
cont.row();
}
}
table.add(cont);
} }
@Override @Override
@@ -123,7 +123,7 @@ public class Unloader extends Block{
@Override @Override
public void buildConfiguration(Tile tile, Table table){ public void buildConfiguration(Tile tile, Table table){
UnloaderEntity entity = tile.ent(); UnloaderEntity entity = tile.ent();
ItemSelection.buildItemTable(table, () -> entity.sortItem, item -> { ItemSelection.buildTable(table, content.items(), () -> entity.sortItem, item -> {
lastItem = item; lastItem = item;
tile.configure(item == null ? -1 : item.id); tile.configure(item == null ? -1 : item.id);
}); });
+1 -1
View File
@@ -1,3 +1,3 @@
org.gradle.daemon=true org.gradle.daemon=true
org.gradle.jvmargs=-Xms256m -Xmx1024m org.gradle.jvmargs=-Xms256m -Xmx1024m
archash=292d60e7d6c2013334b0f4f30659e1d885f73cfe archash=a3edc4804b57ac9f8c59216cc470f05133f8c804