mirror of
https://github.com/yawaflua/Informatis.git
synced 2026-02-04 10:24:21 +02:00
overdraw refactoring
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
package informatis.ui.windows;
|
||||
|
||||
import arc.Events;
|
||||
import arc.scene.Element;
|
||||
import arc.struct.ObjectMap;
|
||||
import arc.struct.Seq;
|
||||
import informatis.ui.*;
|
||||
import informatis.draws.*;
|
||||
import arc.math.geom.*;
|
||||
@@ -12,9 +15,12 @@ import mindustry.gen.*;
|
||||
import mindustry.graphics.*;
|
||||
import mindustry.ui.*;
|
||||
|
||||
import static arc.Core.bundle;
|
||||
import static arc.Core.settings;
|
||||
|
||||
public class ToolWindow extends Window {
|
||||
Vec2 scrollPos = new Vec2(0, 0);
|
||||
OverDraw selected;
|
||||
OverDrawCategory selected;
|
||||
float heat;
|
||||
|
||||
public ToolWindow() {
|
||||
@@ -34,38 +40,69 @@ public class ToolWindow extends Window {
|
||||
public void build(Table table) {
|
||||
scrollPos = new Vec2(0, 0);
|
||||
|
||||
table.background(Styles.black8).top().left();
|
||||
table.table(pane->{
|
||||
table.background(Styles.black8)
|
||||
.top()
|
||||
.left();
|
||||
table.table(pane -> {
|
||||
pane.add(new OverScrollPane(rebuild(), Styles.noBarPane, scrollPos).disableScroll(true, false)).name("tool-pane");
|
||||
}).top().marginLeft(4f).marginRight(12f);
|
||||
table.table(stats->{
|
||||
})
|
||||
.top()
|
||||
.marginLeft(4f)
|
||||
.marginRight(12f);
|
||||
table.table(stats -> {
|
||||
stats.top();
|
||||
stats.add(rebuildStats()).name("tool-stats");
|
||||
}).growY();
|
||||
}
|
||||
|
||||
Table rebuild() {
|
||||
return new Table(icons->{
|
||||
for(OverDraw draw : OverDraws.all) {
|
||||
icons.button(draw.icon, ()->{
|
||||
selected=draw;
|
||||
return new Table(icons -> {
|
||||
for(OverDrawCategory category : OverDrawCategory.values()) {
|
||||
icons.button(category.icon, () -> {
|
||||
selected = category;
|
||||
Table table = find("tool-stats");
|
||||
table.clearChildren();
|
||||
table.add(rebuildStats());
|
||||
}).grow().tooltip(t->t.background(Styles.black8).add(draw.name).color(Pal.accent)).row();
|
||||
})
|
||||
.grow()
|
||||
.tooltip(t -> t
|
||||
.background(Styles.black8)
|
||||
.add(category.name)
|
||||
.color(Pal.accent)
|
||||
)
|
||||
.row();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Table rebuildStats() {
|
||||
return new Table(tool->{
|
||||
if(selected==null) return;
|
||||
return new Table(tool -> {
|
||||
if(selected == null) return;
|
||||
tool.top();
|
||||
tool.table(Tex.underline2, label->label.add(selected.name).color(Pal.accent)).row();
|
||||
tool.table(des-> selected.displayStats(des)).name("unit-stats").left().row();
|
||||
tool.check("@mod.enable", selected.enabled, c->{
|
||||
selected.enabled=c;
|
||||
selected.onEnabled(find("unit-stats"));
|
||||
tool.table(Tex.underline2, label ->
|
||||
label.add(selected.name).color(Pal.accent)
|
||||
).row();
|
||||
tool.table(desc -> {
|
||||
desc.background(Styles.squarei.up).left();
|
||||
for(OverDraw draw : OverDraws.getDraws().get(selected, new Seq<>())) {
|
||||
desc.check(bundle.get("setting."+draw.name+".name"), settings.getBool(draw.name), b->settings.put(draw.name, b))
|
||||
.tooltip(t -> {
|
||||
t.background(Styles.black8).add(bundle.get("setting."+draw.name+".description"));
|
||||
})
|
||||
.disabled(!selected.enabled)
|
||||
.left()
|
||||
.row();
|
||||
}
|
||||
})
|
||||
.name("unit-stats")
|
||||
.left()
|
||||
.row();
|
||||
tool.check("@mod.enable", selected.enabled, c -> {
|
||||
selected.enabled = c;
|
||||
Table table = find("unit-stats");
|
||||
for (Element elem : table.getChildren()) {
|
||||
if (elem instanceof CheckBox cb) cb.setDisabled(!c);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user