Better logic UI
This commit is contained in:
@@ -3,11 +3,12 @@ package mindustry.logic;
|
||||
import arc.*;
|
||||
import arc.func.*;
|
||||
import arc.scene.ui.TextButton.*;
|
||||
import arc.scene.ui.layout.*;
|
||||
import arc.util.*;
|
||||
import mindustry.gen.*;
|
||||
import mindustry.logic.LStatements.*;
|
||||
import mindustry.ui.*;
|
||||
import mindustry.ui.dialogs.*;
|
||||
import mindustry.world.blocks.logic.*;
|
||||
|
||||
import static mindustry.Vars.*;
|
||||
|
||||
@@ -23,6 +24,8 @@ public class LogicDialog extends BaseDialog{
|
||||
canvas = new LCanvas();
|
||||
addCloseButton();
|
||||
|
||||
buttons.getCells().first().width(170f);
|
||||
|
||||
buttons.button("@edit", Icon.edit, () -> {
|
||||
BaseDialog dialog = new BaseDialog("@editor.export");
|
||||
dialog.cont.pane(p -> {
|
||||
@@ -49,14 +52,36 @@ public class LogicDialog extends BaseDialog{
|
||||
|
||||
dialog.addCloseButton();
|
||||
dialog.show();
|
||||
});
|
||||
}).width(170f);
|
||||
|
||||
stack(canvas, new Table(t -> {
|
||||
t.bottom();
|
||||
t.add(buttons);
|
||||
})).grow();
|
||||
buttons.button("@add", Icon.add, () -> {
|
||||
BaseDialog dialog = new BaseDialog("@add");
|
||||
dialog.cont.pane(t -> {
|
||||
t.background(Tex.button);
|
||||
int i = 0;
|
||||
for(Prov<LStatement> prov : LogicIO.allStatements){
|
||||
LStatement example = prov.get();
|
||||
if(example instanceof InvalidStatement) continue;
|
||||
t.button(example.name(), Styles.cleart, () -> {
|
||||
canvas.add(prov.get());
|
||||
dialog.hide();
|
||||
}).size(140f, 50f);
|
||||
if(++i % 2 == 0) t.row();
|
||||
}
|
||||
});
|
||||
dialog.addCloseButton();
|
||||
dialog.show();
|
||||
}).width(170f).disabled(t -> canvas.statements.getChildren().size >= LogicBlock.maxInstructions);
|
||||
|
||||
add(canvas).grow();
|
||||
|
||||
row();
|
||||
|
||||
add(buttons).growX();
|
||||
|
||||
hidden(() -> consumer.get(canvas.save()));
|
||||
|
||||
onResize(() -> canvas.rebuild());
|
||||
}
|
||||
|
||||
public void show(String code, Cons<String> consumer){
|
||||
|
||||
Reference in New Issue
Block a user