mirror of
https://github.com/yawaflua/Informatis.git
synced 2026-02-04 10:24:21 +02:00
trooping done
This commit is contained in:
@@ -7,6 +7,7 @@ import informatis.core.OverDrawer;
|
|||||||
import informatis.core.Setting;
|
import informatis.core.Setting;
|
||||||
import informatis.draws.OverDraws;
|
import informatis.draws.OverDraws;
|
||||||
import informatis.ui.SidebarSwitcher;
|
import informatis.ui.SidebarSwitcher;
|
||||||
|
import informatis.ui.TroopingManager;
|
||||||
import informatis.ui.dialogs.DialogManager;
|
import informatis.ui.dialogs.DialogManager;
|
||||||
import informatis.ui.dialogs.ResourcePreviewDialog;
|
import informatis.ui.dialogs.ResourcePreviewDialog;
|
||||||
import informatis.ui.fragments.FragmentManager;
|
import informatis.ui.fragments.FragmentManager;
|
||||||
@@ -37,15 +38,27 @@ public class Informatis extends Mod {
|
|||||||
UnitWindow.currentWindow.locked = !UnitWindow.currentWindow.locked;
|
UnitWindow.currentWindow.locked = !UnitWindow.currentWindow.locked;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
int i = 0;
|
||||||
|
for(KeyCode numCode : KeyCode.numbers) {
|
||||||
|
if(input.keyTap(numCode)) {
|
||||||
|
if(input.keyDown(KeyCode.altLeft)) TroopingManager.applyTrooping(i);
|
||||||
|
else if(input.keyDown(KeyCode.capsLock)) TroopingManager.updateTrooping(i);
|
||||||
|
else TroopingManager.selectTrooping(i);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
i++;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
Events.on(ClientLoadEvent.class, e -> {
|
Events.on(ClientLoadEvent.class, e -> {
|
||||||
Setting.init();
|
Setting.init();
|
||||||
WindowManager.init();
|
WindowManager.init();
|
||||||
DialogManager.init();
|
DialogManager.init();
|
||||||
|
TroopingManager.init();
|
||||||
new SidebarSwitcher(
|
new SidebarSwitcher(
|
||||||
WindowManager.body,
|
WindowManager.body,
|
||||||
DialogManager.body,
|
DialogManager.body,
|
||||||
|
TroopingManager.body,
|
||||||
new Table(Tex.buttonEdge4, t -> {
|
new Table(Tex.buttonEdge4, t -> {
|
||||||
t.label(() -> "it's just label lmao");
|
t.label(() -> "it's just label lmao");
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package informatis.draws;
|
package informatis.draws;
|
||||||
|
|
||||||
import informatis.ui.FreeBar;
|
import informatis.ui.components.FreeBar;
|
||||||
import mindustry.gen.Unit;
|
import mindustry.gen.Unit;
|
||||||
|
|
||||||
public class UnitBarDraw extends OverDraw {
|
public class UnitBarDraw extends OverDraw {
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package informatis.ui;
|
package informatis.ui;
|
||||||
|
|
||||||
import arc.*;
|
import arc.*;
|
||||||
|
import arc.graphics.g2d.Lines;
|
||||||
import arc.math.*;
|
import arc.math.*;
|
||||||
import arc.scene.*;
|
import arc.scene.*;
|
||||||
import arc.scene.actions.*;
|
import arc.scene.actions.*;
|
||||||
@@ -10,7 +11,9 @@ import arc.struct.*;
|
|||||||
import arc.util.*;
|
import arc.util.*;
|
||||||
import mindustry.*;
|
import mindustry.*;
|
||||||
import mindustry.gen.*;
|
import mindustry.gen.*;
|
||||||
import mindustry.ui.*;
|
import mindustry.graphics.Pal;
|
||||||
|
|
||||||
|
import javax.sound.sampled.Line;
|
||||||
|
|
||||||
public class SidebarSwitcher {
|
public class SidebarSwitcher {
|
||||||
int showIndex = 0;
|
int showIndex = 0;
|
||||||
@@ -48,15 +51,22 @@ public class SidebarSwitcher {
|
|||||||
public void init() {
|
public void init() {
|
||||||
Vars.ui.hudGroup.fill(t -> {
|
Vars.ui.hudGroup.fill(t -> {
|
||||||
t.name = "informatis sidebar";
|
t.name = "informatis sidebar";
|
||||||
t.center().left();
|
t.left();
|
||||||
|
|
||||||
t.table(body -> {
|
t.table(body -> {
|
||||||
ImageButton button = new ImageButton();
|
ImageButton button = new ImageButton() {
|
||||||
|
@Override
|
||||||
|
public void draw() {
|
||||||
|
super.draw();
|
||||||
|
Lines.stroke(5, Pal.gray);
|
||||||
|
Lines.line(this.x, this.y + this.height, this.x + this.width, this.y + this.height);
|
||||||
|
}
|
||||||
|
};
|
||||||
button.clicked(() -> {
|
button.clicked(() -> {
|
||||||
SnapshotSeq<Element> children = ((Group) body.getChildren().first()).getChildren();
|
SnapshotSeq<Element> children = ((Stack) body.getChildren().first()).getChildren();
|
||||||
Element currentSidebar = children.get(showIndex);
|
Element currentSidebar = ((Table) children.get(showIndex)).getChildren().first();
|
||||||
showIndex = (showIndex + 1) % children.size;
|
showIndex = (showIndex + 1) % children.size;
|
||||||
Element nextSidebar = children.get(showIndex);
|
Element nextSidebar = ((Table) children.get(showIndex)).getChildren().first();
|
||||||
|
|
||||||
actShowMoveX(currentSidebar, 0, -currentSidebar.getWidth());
|
actShowMoveX(currentSidebar, 0, -currentSidebar.getWidth());
|
||||||
actShowMoveX(nextSidebar, -nextSidebar.getWidth(),0);
|
actShowMoveX(nextSidebar, -nextSidebar.getWidth(),0);
|
||||||
@@ -69,18 +79,22 @@ public class SidebarSwitcher {
|
|||||||
style.up = Tex.buttonEdge4;
|
style.up = Tex.buttonEdge4;
|
||||||
style.imageUp = Icon.right;
|
style.imageUp = Icon.right;
|
||||||
button.setStyle(style);
|
button.setStyle(style);
|
||||||
button.setWidth(sidebars[0].getWidth());
|
actResizeWidth(button, sidebars[showIndex].getWidth());
|
||||||
|
|
||||||
body.top().left()
|
Stack sidebarTables = new Stack();
|
||||||
.defaults().growY();
|
|
||||||
body.table(sides -> {
|
|
||||||
sides.top().left().defaults().growY();
|
|
||||||
for(int i = 0; i < sidebars.length; i++) {
|
for(int i = 0; i < sidebars.length; i++) {
|
||||||
Element elem = sidebars[i];
|
int j = i;
|
||||||
if(elem instanceof Table table) table.setBackground(Tex.buttonEdge3);
|
sidebarTables.add(new Table(table -> {
|
||||||
sides.add(elem).visible(i == 0);
|
Element elem = sidebars[j];
|
||||||
|
if (elem instanceof Table elemTable) elemTable.setBackground(Tex.buttonEdge3);
|
||||||
|
|
||||||
|
table.left();
|
||||||
|
table.add(elem).growY();
|
||||||
|
elem.visible = j == 0;
|
||||||
|
}));
|
||||||
}
|
}
|
||||||
}).row();
|
body.top().left();
|
||||||
|
body.add(sidebarTables).grow().row();
|
||||||
body.add(button).growX();
|
body.add(button).growX();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
98
src/informatis/ui/TroopingManager.java
Normal file
98
src/informatis/ui/TroopingManager.java
Normal file
@@ -0,0 +1,98 @@
|
|||||||
|
package informatis.ui;
|
||||||
|
|
||||||
|
import arc.graphics.Color;
|
||||||
|
import arc.scene.ui.Image;
|
||||||
|
import arc.scene.ui.Label;
|
||||||
|
import arc.scene.ui.layout.Stack;
|
||||||
|
import arc.scene.ui.layout.Table;
|
||||||
|
import arc.struct.IntSeq;
|
||||||
|
import arc.struct.ObjectIntMap;
|
||||||
|
import arc.struct.Seq;
|
||||||
|
import arc.util.Log;
|
||||||
|
import arc.util.Scaling;
|
||||||
|
import mindustry.Vars;
|
||||||
|
import mindustry.gen.Groups;
|
||||||
|
import mindustry.gen.Healthc;
|
||||||
|
import mindustry.gen.Icon;
|
||||||
|
import mindustry.gen.Unit;
|
||||||
|
import mindustry.graphics.Pal;
|
||||||
|
import mindustry.input.InputHandler;
|
||||||
|
import mindustry.type.UnitType;
|
||||||
|
import mindustry.ui.Styles;
|
||||||
|
|
||||||
|
public class TroopingManager {
|
||||||
|
public static Table body;
|
||||||
|
static Seq<IntSeq> troops = new Seq<>(10);
|
||||||
|
|
||||||
|
public static void init() {
|
||||||
|
for (int i = 0; i < 10; i++) troops.add(new IntSeq());
|
||||||
|
|
||||||
|
body = new Table(t -> {
|
||||||
|
t.defaults().growX();
|
||||||
|
|
||||||
|
t.table(header -> {
|
||||||
|
header.center().defaults().pad(10).growX();
|
||||||
|
header.button("all", Styles.defaultt, () -> {
|
||||||
|
Vars.control.input.selectedUnits.clear();
|
||||||
|
Vars.control.input.selectedUnits.addAll(Vars.player.team().data().units);
|
||||||
|
}).wrapLabel(false);
|
||||||
|
header.button(Icon.cancel, Styles.defaulti, () -> Vars.control.input.selectedUnits.clear());
|
||||||
|
}).row();
|
||||||
|
|
||||||
|
t.image().height(5f).color(Pal.gray).pad(10, 0, 10, 0).row();
|
||||||
|
|
||||||
|
t.table(list -> {
|
||||||
|
for(int i = 1; i <= troops.size; i++) {
|
||||||
|
int j = i % troops.size;
|
||||||
|
IntSeq troop = troops.get(j);
|
||||||
|
|
||||||
|
Table troopTab = new Table(tab -> {
|
||||||
|
tab.left();
|
||||||
|
tab.add(String.valueOf(j)).fontScale(0.75f).width(15).padRight(30);
|
||||||
|
tab.image(() -> {
|
||||||
|
if(troop.isEmpty()) return Icon.cancel.getRegion();
|
||||||
|
Unit unit = Groups.unit.getByID(troop.peek());
|
||||||
|
if(unit == null) return Icon.cancel.getRegion();
|
||||||
|
return unit.type.fullIcon;
|
||||||
|
}).size(10).padRight(10);
|
||||||
|
tab.label(() -> {
|
||||||
|
int amount = 0;
|
||||||
|
for(int id : troop.toArray()) {
|
||||||
|
Unit unit = Groups.unit.getByID(id);
|
||||||
|
if(unit != null && !unit.dead()) amount++;
|
||||||
|
}
|
||||||
|
return String.valueOf(amount);
|
||||||
|
}).minWidth(30).fontScale(0.5f);
|
||||||
|
tab.table(icons -> {
|
||||||
|
icons.image(Icon.cancelSmall).size(10).color(Pal.health).padLeft(10).grow().get().clicked(troop::clear);
|
||||||
|
icons.image(Icon.upSmall).size(10).color(Pal.heal).padLeft(10).grow().get().clicked(() -> updateTrooping(j));
|
||||||
|
icons.image(Icon.addSmall).size(10).color(Pal.gray).padLeft(10).grow().get().clicked(() -> applyTrooping(j));
|
||||||
|
}).padLeft(10).grow();
|
||||||
|
});
|
||||||
|
troopTab.clicked(() -> selectTrooping(j));
|
||||||
|
|
||||||
|
list.add(troopTab).pad(10).grow().row();
|
||||||
|
list.image().height(2f).color(Pal.gray).grow().row();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void applyTrooping(int index) {
|
||||||
|
IntSeq seq = troops.get(index);
|
||||||
|
Vars.control.input.selectedUnits.each(unit -> seq.add(unit.id));
|
||||||
|
}
|
||||||
|
public static void selectTrooping(int index) {
|
||||||
|
Vars.control.input.commandMode = true;
|
||||||
|
Vars.control.input.selectedUnits.clear();
|
||||||
|
for(int id : troops.get(index).toArray()) {
|
||||||
|
Unit unit = Groups.unit.getByID(id);
|
||||||
|
if(unit != null) Vars.control.input.selectedUnits.add(unit);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public static void updateTrooping(int index) {
|
||||||
|
IntSeq seq = troops.get(index);
|
||||||
|
seq.clear();
|
||||||
|
Vars.control.input.selectedUnits.each(unit -> seq.add(unit.id));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package informatis.ui;
|
package informatis.ui.components;
|
||||||
|
|
||||||
import arc.graphics.g2d.*;
|
import arc.graphics.g2d.*;
|
||||||
import arc.math.*;
|
import arc.math.*;
|
||||||
@@ -1,12 +1,10 @@
|
|||||||
package informatis.ui;
|
package informatis.ui.components;
|
||||||
|
|
||||||
import arc.math.geom.Vec2;
|
import arc.math.geom.Vec2;
|
||||||
import arc.scene.Element;
|
import arc.scene.Element;
|
||||||
import arc.scene.ui.ScrollPane;
|
import arc.scene.ui.ScrollPane;
|
||||||
import arc.util.Log;
|
|
||||||
|
|
||||||
import static arc.Core.input;
|
import static arc.Core.input;
|
||||||
import static arc.Core.scene;
|
|
||||||
|
|
||||||
public class OverScrollPane extends ScrollPane {
|
public class OverScrollPane extends ScrollPane {
|
||||||
Vec2 scrollPos;
|
Vec2 scrollPos;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package informatis.ui;
|
package informatis.ui.components;
|
||||||
|
|
||||||
import informatis.SUtils;
|
import informatis.SUtils;
|
||||||
import arc.*;
|
import arc.*;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package informatis.ui;
|
package informatis.ui.components;
|
||||||
|
|
||||||
import arc.Core;
|
import arc.Core;
|
||||||
import arc.graphics.g2d.TextureRegion;
|
import arc.graphics.g2d.TextureRegion;
|
||||||
@@ -1,24 +1,20 @@
|
|||||||
package informatis.ui.dialogs;
|
package informatis.ui.dialogs;
|
||||||
|
|
||||||
import arc.func.Cons;
|
import arc.func.*;
|
||||||
import arc.graphics.Color;
|
import arc.graphics.*;
|
||||||
import arc.graphics.g2d.Font;
|
import arc.graphics.g2d.*;
|
||||||
import arc.input.KeyCode;
|
import arc.input.*;
|
||||||
import arc.scene.Element;
|
import arc.scene.event.ClickListener;
|
||||||
import arc.scene.style.Drawable;
|
import arc.scene.event.InputEvent;
|
||||||
import arc.scene.style.TextureRegionDrawable;
|
import arc.scene.event.InputListener;
|
||||||
|
import arc.scene.style.*;
|
||||||
import arc.scene.ui.*;
|
import arc.scene.ui.*;
|
||||||
import arc.scene.ui.layout.*;
|
import arc.scene.ui.layout.*;
|
||||||
import arc.scene.utils.Elem;
|
import arc.struct.*;
|
||||||
import arc.struct.ObjectMap;
|
import arc.util.*;
|
||||||
import arc.struct.Seq;
|
import mindustry.gen.*;
|
||||||
import arc.util.Align;
|
import mindustry.graphics.*;
|
||||||
import arc.util.Log;
|
import mindustry.ui.*;
|
||||||
import arc.util.Scaling;
|
|
||||||
import mindustry.gen.Icon;
|
|
||||||
import mindustry.gen.Tex;
|
|
||||||
import mindustry.graphics.Pal;
|
|
||||||
import mindustry.ui.Styles;
|
|
||||||
import mindustry.ui.dialogs.*;
|
import mindustry.ui.dialogs.*;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
@@ -36,7 +32,7 @@ public class ResourcePreviewDialog extends BaseDialog {
|
|||||||
cont.table(t -> {
|
cont.table(t -> {
|
||||||
t.top().center();
|
t.top().center();
|
||||||
t.table(Tex.underline, tabTable -> {
|
t.table(Tex.underline, tabTable -> {
|
||||||
String[] tabs = {"Textures", "Styles"};
|
String[] tabs = {"Textures", "Styles", "Colors"};
|
||||||
for(int i = 0; i < tabs.length; i++) {
|
for(int i = 0; i < tabs.length; i++) {
|
||||||
int j = i;
|
int j = i;
|
||||||
TextButton button = new TextButton(tabs[j], Styles.flatToggleMenut);
|
TextButton button = new TextButton(tabs[j], Styles.flatToggleMenut);
|
||||||
@@ -61,8 +57,12 @@ public class ResourcePreviewDialog extends BaseDialog {
|
|||||||
resource.add(rebuildResourceList()).grow();
|
resource.add(rebuildResourceList()).grow();
|
||||||
}
|
}
|
||||||
|
|
||||||
float scrollY;
|
float scrollY, scrollY2;
|
||||||
String search = "";
|
String search = "";
|
||||||
|
String colorInput1 = "ffffffff", colorInput2 = "ffffffff";
|
||||||
|
float colorMixProg = 0;
|
||||||
|
int colorMixSelectIndex = 0;
|
||||||
|
Color color1 = Color.white, color2 = Color.white, mixedColor = Color.white;
|
||||||
Table rebuildResourceList() {
|
Table rebuildResourceList() {
|
||||||
return new Table(pane -> {
|
return new Table(pane -> {
|
||||||
Cons[] builders = {
|
Cons[] builders = {
|
||||||
@@ -91,7 +91,76 @@ public class ResourcePreviewDialog extends BaseDialog {
|
|||||||
},
|
},
|
||||||
(Cons<Table>) ppane -> {
|
(Cons<Table>) ppane -> {
|
||||||
buildTitle(ppane, "Styles Resources").row();
|
buildTitle(ppane, "Styles Resources").row();
|
||||||
ppane.pane(this::buildStyleResources).scrollX(true).grow().fill();
|
ppane.pane(this::buildStyleResources).grow().fill();
|
||||||
|
},
|
||||||
|
(Cons<Table>) ppane -> {
|
||||||
|
ppane.table(options -> {
|
||||||
|
options.top().center().defaults().pad(20);
|
||||||
|
|
||||||
|
options.add("Mix");
|
||||||
|
options.add(new Image() {
|
||||||
|
@Override
|
||||||
|
public void draw() {
|
||||||
|
super.draw();
|
||||||
|
|
||||||
|
int size = 8;
|
||||||
|
Draw.color(colorMixSelectIndex == 0 ? Pal.accent : Pal.gray);
|
||||||
|
Draw.alpha(parentAlpha);
|
||||||
|
Lines.stroke(Scl.scl(3f));
|
||||||
|
Lines.rect(x - size / 2f, y - size / 2f, width + size, height + size);
|
||||||
|
Draw.reset();
|
||||||
|
}
|
||||||
|
}).size(30).color(color1).pad(10).get().clicked(() -> colorMixSelectIndex = 0);
|
||||||
|
options.field(colorInput1, field -> {
|
||||||
|
colorInput1 = field;
|
||||||
|
color1 = Color.valueOf(field.matches("^#?[a-fA-F0-9]{6,8}$") ? field : "ffffff");
|
||||||
|
}).get().keyDown(KeyCode.enter, this::refreshResourceTable);
|
||||||
|
options.slider(0, 100, 1, colorMixProg, prog -> {
|
||||||
|
colorMixProg = prog;
|
||||||
|
mixedColor = color1.cpy().lerp(color2, prog / 100);
|
||||||
|
}).get().addListener(new ClickListener(){
|
||||||
|
@Override
|
||||||
|
public void touchUp(InputEvent event, float x, float y, int pointer, KeyCode button) {
|
||||||
|
refreshResourceTable();
|
||||||
|
super.touchUp(event, x, y, pointer, button);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
options.add(new Image() {
|
||||||
|
@Override
|
||||||
|
public void draw() {
|
||||||
|
super.draw();
|
||||||
|
|
||||||
|
int size = 8;
|
||||||
|
Draw.color(colorMixSelectIndex == 1 ? Pal.accent : Pal.gray);
|
||||||
|
Draw.alpha(parentAlpha);
|
||||||
|
Lines.stroke(Scl.scl(3f));
|
||||||
|
Lines.rect(x - size / 2f, y - size / 2f, width + size, height + size);
|
||||||
|
Draw.reset();
|
||||||
|
}
|
||||||
|
}).size(30).color(color2).pad(10).get().clicked(() -> colorMixSelectIndex = 1);
|
||||||
|
options.field(colorInput2, field -> {
|
||||||
|
colorInput2 = field;
|
||||||
|
color2 = Color.valueOf(field.matches("^#?[a-fA-F0-9]{6,8}$") ? field : "ffffff");
|
||||||
|
}).get().keyDown(KeyCode.enter, this::refreshResourceTable);
|
||||||
|
options.row();
|
||||||
|
options.add("---->");
|
||||||
|
options.add(new Image(){
|
||||||
|
@Override
|
||||||
|
public void draw() {
|
||||||
|
this.setColor(mixedColor);
|
||||||
|
super.draw();
|
||||||
|
}
|
||||||
|
}).size(30).pad(10);
|
||||||
|
options.label(() -> mixedColor.toString());
|
||||||
|
options.button(Icon.refresh, this::refreshResourceTable);
|
||||||
|
|
||||||
|
}).growX().row();
|
||||||
|
buildTitle(ppane, "Color Resources").row();
|
||||||
|
ScrollPane contentPane = new ScrollPane(new Table(this::buildColorResources));
|
||||||
|
contentPane.scrolled(y -> scrollY2 = contentPane.getScrollY());
|
||||||
|
contentPane.layout();
|
||||||
|
contentPane.setScrollY(scrollY2);
|
||||||
|
ppane.add(contentPane).grow().fill();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
pane.table(ppane -> {
|
pane.table(ppane -> {
|
||||||
@@ -107,6 +176,50 @@ public class ResourcePreviewDialog extends BaseDialog {
|
|||||||
return table;
|
return table;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void applyColors(Table table, Class<?> target) {
|
||||||
|
buildTitle(table, target.getName()).row();
|
||||||
|
table.table(t -> {
|
||||||
|
t.top().left();
|
||||||
|
Field[] palFields = target.getDeclaredFields();
|
||||||
|
int row = 0;
|
||||||
|
for(Field palField : palFields) {
|
||||||
|
if(!palField.getType().equals(Color.class)) continue;
|
||||||
|
|
||||||
|
try {
|
||||||
|
Object obj = palField.get(null);
|
||||||
|
if(!(obj instanceof Color color)) continue;
|
||||||
|
|
||||||
|
t.table(colorCell -> {
|
||||||
|
colorCell.left();
|
||||||
|
colorCell.image().size(30).color(color).tooltip("#" + color.toString());
|
||||||
|
colorCell.add(palField.getName()).padLeft(10);
|
||||||
|
}).maxWidth(300).growX().pad(20).get().clicked(() -> {
|
||||||
|
if(colorMixSelectIndex == 0) {
|
||||||
|
colorInput1 = color.toString();
|
||||||
|
color1 = color;
|
||||||
|
} else {
|
||||||
|
colorInput2 = color.toString();
|
||||||
|
color2 = color;
|
||||||
|
}
|
||||||
|
mixedColor = color1.cpy().lerp(color2, colorMixProg / 100);
|
||||||
|
refreshResourceTable();
|
||||||
|
});
|
||||||
|
if(++row % 8 == 0) t.row();
|
||||||
|
} catch (IllegalAccessException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}).grow().padLeft(50);
|
||||||
|
}
|
||||||
|
Table buildColorResources(Table table) {
|
||||||
|
table.top().left();
|
||||||
|
|
||||||
|
applyColors(table, Pal.class);
|
||||||
|
table.row();
|
||||||
|
applyColors(table, Color.class);
|
||||||
|
return table;
|
||||||
|
}
|
||||||
|
|
||||||
Table buildStyleResources(Table table) {
|
Table buildStyleResources(Table table) {
|
||||||
Cons<Class<?>> build = classz -> {
|
Cons<Class<?>> build = classz -> {
|
||||||
Seq<Field> allStyles = Seq.with(Styles.class.getFields()).filter(field -> field.getType().equals(classz));
|
Seq<Field> allStyles = Seq.with(Styles.class.getFields()).filter(field -> field.getType().equals(classz));
|
||||||
|
|||||||
@@ -2,8 +2,9 @@ package informatis.ui.windows;
|
|||||||
|
|
||||||
import arc.*;
|
import arc.*;
|
||||||
import informatis.SUtils;
|
import informatis.SUtils;
|
||||||
|
import informatis.ui.components.OverScrollPane;
|
||||||
|
import informatis.ui.components.SBar;
|
||||||
import mindustry.game.*;
|
import mindustry.game.*;
|
||||||
import informatis.ui.*;
|
|
||||||
import arc.graphics.*;
|
import arc.graphics.*;
|
||||||
import arc.math.*;
|
import arc.math.*;
|
||||||
import arc.math.geom.*;
|
import arc.math.geom.*;
|
||||||
|
|||||||
@@ -6,10 +6,10 @@ import arc.math.geom.*;
|
|||||||
import arc.scene.*;
|
import arc.scene.*;
|
||||||
import arc.scene.style.*;
|
import arc.scene.style.*;
|
||||||
import arc.struct.*;
|
import arc.struct.*;
|
||||||
|
import informatis.ui.components.OverScrollPane;
|
||||||
import mindustry.editor.*;
|
import mindustry.editor.*;
|
||||||
import mindustry.game.*;
|
import mindustry.game.*;
|
||||||
import mindustry.graphics.*;
|
import mindustry.graphics.*;
|
||||||
import informatis.ui.*;
|
|
||||||
import arc.*;
|
import arc.*;
|
||||||
import arc.func.*;
|
import arc.func.*;
|
||||||
import arc.graphics.*;
|
import arc.graphics.*;
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package informatis.ui.windows;
|
package informatis.ui.windows;
|
||||||
|
|
||||||
import informatis.ui.*;
|
|
||||||
import arc.*;
|
import arc.*;
|
||||||
import arc.graphics.*;
|
import arc.graphics.*;
|
||||||
import arc.graphics.g2d.*;
|
import arc.graphics.g2d.*;
|
||||||
@@ -10,6 +9,7 @@ import arc.scene.ui.layout.*;
|
|||||||
import arc.scene.utils.*;
|
import arc.scene.utils.*;
|
||||||
import arc.struct.*;
|
import arc.struct.*;
|
||||||
import arc.util.*;
|
import arc.util.*;
|
||||||
|
import informatis.ui.components.OverScrollPane;
|
||||||
import mindustry.game.EventType;
|
import mindustry.game.EventType;
|
||||||
import mindustry.gen.*;
|
import mindustry.gen.*;
|
||||||
import mindustry.graphics.*;
|
import mindustry.graphics.*;
|
||||||
|
|||||||
@@ -2,14 +2,13 @@ package informatis.ui.windows;
|
|||||||
|
|
||||||
import arc.Events;
|
import arc.Events;
|
||||||
import arc.scene.Element;
|
import arc.scene.Element;
|
||||||
import arc.struct.ObjectMap;
|
|
||||||
import arc.struct.Seq;
|
import arc.struct.Seq;
|
||||||
import informatis.ui.*;
|
|
||||||
import informatis.draws.*;
|
import informatis.draws.*;
|
||||||
import arc.math.geom.*;
|
import arc.math.geom.*;
|
||||||
import arc.scene.ui.*;
|
import arc.scene.ui.*;
|
||||||
import arc.scene.ui.layout.*;
|
import arc.scene.ui.layout.*;
|
||||||
import arc.util.*;
|
import arc.util.*;
|
||||||
|
import informatis.ui.components.OverScrollPane;
|
||||||
import mindustry.game.EventType;
|
import mindustry.game.EventType;
|
||||||
import mindustry.gen.*;
|
import mindustry.gen.*;
|
||||||
import mindustry.graphics.*;
|
import mindustry.graphics.*;
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import arc.*;
|
|||||||
import arc.math.*;
|
import arc.math.*;
|
||||||
import arc.scene.*;
|
import arc.scene.*;
|
||||||
import arc.scene.style.*;
|
import arc.scene.style.*;
|
||||||
import informatis.ui.*;
|
|
||||||
import arc.graphics.*;
|
import arc.graphics.*;
|
||||||
import arc.graphics.g2d.*;
|
import arc.graphics.g2d.*;
|
||||||
import arc.scene.ui.*;
|
import arc.scene.ui.*;
|
||||||
@@ -12,6 +11,7 @@ import arc.scene.ui.layout.*;
|
|||||||
import arc.struct.Bits;
|
import arc.struct.Bits;
|
||||||
import arc.struct.*;
|
import arc.struct.*;
|
||||||
import arc.util.*;
|
import arc.util.*;
|
||||||
|
import informatis.ui.components.SBar;
|
||||||
import mindustry.*;
|
import mindustry.*;
|
||||||
import mindustry.core.*;
|
import mindustry.core.*;
|
||||||
import mindustry.ctype.*;
|
import mindustry.ctype.*;
|
||||||
@@ -24,7 +24,6 @@ import mindustry.graphics.*;
|
|||||||
import mindustry.logic.*;
|
import mindustry.logic.*;
|
||||||
import mindustry.type.*;
|
import mindustry.type.*;
|
||||||
import mindustry.ui.*;
|
import mindustry.ui.*;
|
||||||
import mindustry.world.Block;
|
|
||||||
import mindustry.world.blocks.*;
|
import mindustry.world.blocks.*;
|
||||||
import mindustry.world.blocks.defense.*;
|
import mindustry.world.blocks.defense.*;
|
||||||
import mindustry.world.blocks.defense.turrets.*;
|
import mindustry.world.blocks.defense.turrets.*;
|
||||||
@@ -43,8 +42,8 @@ import java.util.Objects;
|
|||||||
import static arc.Core.bundle;
|
import static arc.Core.bundle;
|
||||||
import static informatis.SVars.*;
|
import static informatis.SVars.*;
|
||||||
import static informatis.SUtils.*;
|
import static informatis.SUtils.*;
|
||||||
import static informatis.ui.SIcons.*;
|
import static informatis.ui.components.SIcons.*;
|
||||||
import static informatis.ui.SIcons.liquid;
|
import static informatis.ui.components.SIcons.liquid;
|
||||||
import static mindustry.Vars.*;
|
import static mindustry.Vars.*;
|
||||||
|
|
||||||
public class UnitWindow extends Window {
|
public class UnitWindow extends Window {
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
package informatis.ui.windows;
|
package informatis.ui.windows;
|
||||||
|
|
||||||
|
import informatis.ui.components.OverScrollPane;
|
||||||
import mindustry.*;
|
import mindustry.*;
|
||||||
import mindustry.type.*;
|
import mindustry.type.*;
|
||||||
import informatis.ui.*;
|
|
||||||
import arc.*;
|
import arc.*;
|
||||||
import arc.graphics.*;
|
import arc.graphics.*;
|
||||||
import arc.math.*;
|
import arc.math.*;
|
||||||
|
|||||||
Reference in New Issue
Block a user