mirror of
https://github.com/yawaflua/Informatis.git
synced 2025-12-10 20:19:26 +02:00
code cleanup with refactoring
This commit is contained in:
@@ -4,27 +4,19 @@ import arc.graphics.g2d.*;
|
||||
import arc.math.Mathf;
|
||||
import arc.scene.style.*;
|
||||
import arc.struct.Seq;
|
||||
import arc.util.Nullable;
|
||||
import arc.util.Strings;
|
||||
import arc.util.*;
|
||||
import mindustry.Vars;
|
||||
import mindustry.core.UI;
|
||||
import mindustry.entities.bullet.BulletType;
|
||||
import mindustry.entities.bullet.LightningBulletType;
|
||||
import mindustry.gen.BlockUnitUnit;
|
||||
import mindustry.gen.Groups;
|
||||
import mindustry.gen.Teamc;
|
||||
import mindustry.gen.Unit;
|
||||
import mindustry.entities.bullet.*;
|
||||
import mindustry.gen.*;
|
||||
import mindustry.type.UnitType;
|
||||
import mindustry.type.weapons.PointDefenseWeapon;
|
||||
import mindustry.type.weapons.RepairBeamWeapon;
|
||||
import mindustry.type.weapons.*;
|
||||
import mindustry.world.Tile;
|
||||
|
||||
import java.lang.reflect.*;
|
||||
|
||||
import static unitinfo.SVars.locked;
|
||||
import static unitinfo.SVars.target;
|
||||
import static arc.Core.input;
|
||||
import static arc.Core.settings;
|
||||
import static unitinfo.SVars.*;
|
||||
import static arc.Core.*;
|
||||
import static mindustry.Vars.player;
|
||||
|
||||
public class SUtils {
|
||||
@@ -84,7 +76,7 @@ public class SUtils {
|
||||
return b.speed * a * Mathf.pow(1 - b.drag, b.lifetime / 2) * b.lifetime +
|
||||
Math.max(b.lightning > 0 || b instanceof LightningBulletType ? (b.lightningLength + b.lightningLengthRand) * 6 : 0,
|
||||
b.fragBullet != null ? bulletRange(b.fragBullet) * b.fragLifeMax * b.fragVelocityMax : b.splashDamageRadius);
|
||||
};
|
||||
}
|
||||
|
||||
public static float unitRange(UnitType u) {
|
||||
final float[] mrng = {0};
|
||||
@@ -100,4 +92,14 @@ public class SUtils {
|
||||
field.setAccessible(true);
|
||||
return field.get(ut);
|
||||
}
|
||||
|
||||
|
||||
public static boolean isOutCamera(float x, float y) {
|
||||
return !isInCamera(x, y, 0);
|
||||
}
|
||||
|
||||
public static boolean isInCamera(float x, float y, float size) {
|
||||
Tmp.r2.setCentered(x, y, size);
|
||||
return Tmp.r1.overlaps(Tmp.r2);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
package unitinfo;
|
||||
|
||||
import unitinfo.core.*;
|
||||
import unitinfo.shaders.LineShader;
|
||||
import unitinfo.shaders.RangeShader;
|
||||
import unitinfo.shaders.*;
|
||||
import arc.graphics.g2d.TextureRegion;
|
||||
import mindustry.gen.Teamc;
|
||||
|
||||
@@ -11,10 +9,8 @@ import static arc.Core.atlas;
|
||||
public class SVars {
|
||||
public static TextureRegion clear = atlas.find("clear");
|
||||
public static TextureRegion error = atlas.find("error");
|
||||
public static RangeShader turretRange;
|
||||
public static LineShader lineShader;
|
||||
public static RangeShader turretRange = new RangeShader();
|
||||
public static Teamc target;
|
||||
public static boolean locked;
|
||||
public static boolean jsonGen = false;
|
||||
public static float uiResumeRate = 3 * 60f; //default 3s
|
||||
}
|
||||
|
||||
@@ -1,109 +0,0 @@
|
||||
package unitinfo.core;
|
||||
|
||||
import arc.Core;
|
||||
import arc.struct.Seq;
|
||||
import arc.util.*;
|
||||
import mindustry.*;
|
||||
import mindustry.ctype.*;
|
||||
import mindustry.entities.abilities.*;
|
||||
import mindustry.entities.bullet.*;
|
||||
import mindustry.type.*;
|
||||
import mindustry.world.*;
|
||||
import org.hjson.*;
|
||||
|
||||
import java.lang.reflect.*;
|
||||
|
||||
import static mindustry.Vars.modDirectory;
|
||||
|
||||
public class ContentJSON {
|
||||
static JsonValue parse(Object object) {
|
||||
if(object instanceof Integer val) return JsonObject.valueOf(val);
|
||||
else if(object instanceof Double val) return JsonObject.valueOf(val);
|
||||
else if(object instanceof Float val) return JsonObject.valueOf(val);
|
||||
else if(object instanceof Long val) return JsonObject.valueOf(val);
|
||||
else if(object instanceof String val) return JsonObject.valueOf(val);
|
||||
else if(object instanceof Boolean val) return JsonObject.valueOf(val);
|
||||
else if(object instanceof Content) {
|
||||
if(object instanceof Block c) return getContent(c, Block.class, new JsonObject());
|
||||
if(object instanceof BulletType c) return getContent(c, BulletType.class, new JsonObject());
|
||||
if(object instanceof Item c) return getContent(c, Item.class, new JsonObject());
|
||||
if(object instanceof Liquid c) return getContent(c, Liquid.class, new JsonObject());
|
||||
if(object instanceof UnitType c) return getContent(c, UnitType.class, new JsonObject());
|
||||
if(object instanceof Weather c) return getContent(c, Weather.class, new JsonObject());
|
||||
}
|
||||
else if(object instanceof Weapon val) return getContent(val, new JsonObject());
|
||||
else if(object instanceof Ability val) return getContent(val, new JsonObject());
|
||||
else if(object instanceof Seq seq && seq.any()) {
|
||||
JsonArray array = new JsonArray();
|
||||
for(int i = 0; i < seq.size; i++) {
|
||||
if(seq.get(i) != null) array.add(parse(seq.get(i)));
|
||||
}
|
||||
return array;
|
||||
}
|
||||
else {
|
||||
if(object.getClass().isArray()) {
|
||||
JsonArray array = new JsonArray();
|
||||
for(int i = 0; i < Array.getLength(object); i++) {
|
||||
if(Array.get(object, i) != null) array.add(parse(Array.get(object, i)));
|
||||
}
|
||||
return array;
|
||||
}
|
||||
}
|
||||
return JsonObject.valueOf(object.toString());
|
||||
}
|
||||
|
||||
static <T extends Object> JsonObject getContent(T cont, JsonObject obj) {
|
||||
return getContent(cont, cont.getClass(), obj);
|
||||
}
|
||||
|
||||
static JsonObject getContent(Object cont, Class objClass, JsonObject obj) {
|
||||
obj.add("type", objClass.getName());
|
||||
for(Field field : objClass.getFields()){
|
||||
if(Modifier.isStatic(field.getModifiers())) continue;
|
||||
try {
|
||||
String name = field.getName();
|
||||
Object object = field.get(cont);
|
||||
Object preval = obj.get(name);
|
||||
if(preval != null) obj.set(name, preval + " or " + object);
|
||||
else {
|
||||
if(object == null) obj.add(name, "null");
|
||||
else if(!cont.getClass().isAssignableFrom(field.get(cont).getClass()) && !field.get(cont).getClass().isAssignableFrom(cont.getClass())){
|
||||
obj.add(name, parse(object));
|
||||
}
|
||||
}
|
||||
} catch(Throwable e) {
|
||||
try {
|
||||
Log.info(e + " ### " + cont + " ### " + objClass + " ### " + cont.getClass() + " ### " + field.get(cont));
|
||||
} catch (IllegalAccessException ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
obj.add(field.getName(), "### ERROR ###");
|
||||
}
|
||||
}
|
||||
|
||||
return obj;
|
||||
}
|
||||
|
||||
static void save() {
|
||||
for(Seq<Content> content : Vars.content.getContentMap()) {
|
||||
if(content.isEmpty()) continue;
|
||||
|
||||
JsonObject data = new JsonObject();
|
||||
content.each(cont -> {
|
||||
JsonObject obj = new JsonObject();
|
||||
getContent(cont, obj);
|
||||
|
||||
String name = cont.toString();
|
||||
if(cont instanceof MappableContent mapCont) name = mapCont.name;
|
||||
data.add(name, obj);
|
||||
});
|
||||
try {
|
||||
modDirectory.child("unitinfo").child(content.peek().getContentType().toString() + ".json").writeString(data.toString(Stringify.FORMATTED));
|
||||
} catch (Throwable e){
|
||||
Log.warn(e.getMessage());
|
||||
}
|
||||
}
|
||||
Log.info("JSON file is completely updated!");
|
||||
Core.app.exit();
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package unitinfo.ui;
|
||||
package unitinfo.core;
|
||||
|
||||
import arc.func.Boolf;
|
||||
import arc.func.Cons;
|
||||
@@ -12,10 +12,9 @@ import mindustry.content.Blocks;
|
||||
import mindustry.game.Team;
|
||||
import mindustry.world.Block;
|
||||
import mindustry.world.Tile;
|
||||
import unitinfo.ui.windows.MapEditorDisplay;
|
||||
import unitinfo.ui.windows.*;
|
||||
|
||||
import static unitinfo.ui.windows.MapEditorDisplay.drawTeam;
|
||||
import static unitinfo.ui.windows.MapEditorDisplay.drawBlock;
|
||||
import static unitinfo.ui.windows.MapEditorWindow.*;
|
||||
import static unitinfo.ui.windows.Windows.editorTable;
|
||||
import static mindustry.Vars.world;
|
||||
|
||||
@@ -114,7 +113,7 @@ public enum EditorTool{
|
||||
|
||||
Boolf<Tile> tester;
|
||||
Cons<Tile> setter;
|
||||
Block drawBlock = MapEditorDisplay.drawBlock;
|
||||
Block drawBlock = MapEditorWindow.drawBlock;
|
||||
|
||||
if(drawBlock.isOverlay()){
|
||||
Block dest = tile.overlay();
|
||||
@@ -1,29 +1,22 @@
|
||||
package unitinfo.core;
|
||||
|
||||
import arc.input.KeyCode;
|
||||
import arc.scene.ui.layout.Table;
|
||||
import unitinfo.shaders.*;
|
||||
import unitinfo.ui.*;
|
||||
import unitinfo.ui.draws.OverDraws;
|
||||
import unitinfo.ui.windows.*;
|
||||
import arc.*;
|
||||
import arc.struct.*;
|
||||
import mindustry.*;
|
||||
import mindustry.game.EventType.*;
|
||||
import mindustry.mod.*;
|
||||
|
||||
import static unitinfo.SVars.*;
|
||||
import static arc.Core.*;
|
||||
import static mindustry.Vars.*;
|
||||
import static unitinfo.SUtils.*;
|
||||
import static unitinfo.ui.windows.WindowManager.windows;
|
||||
import static unitinfo.ui.WindowManager.windows;
|
||||
|
||||
public class Main extends Mod {
|
||||
@Override
|
||||
public void init(){
|
||||
turretRange = new RangeShader();
|
||||
lineShader = new LineShader();
|
||||
|
||||
Core.app.post(() -> {
|
||||
Mods.ModMeta meta = Vars.mods.locateMod("unitinfo").meta;
|
||||
meta.displayName = "[#B5FFD9]Unit Information[]";
|
||||
@@ -31,49 +24,34 @@ public class Main extends Mod {
|
||||
meta.description = bundle.get("shar-description");
|
||||
});
|
||||
|
||||
Events.run(Trigger.class, () -> {
|
||||
Events.run(Trigger.update, () -> {
|
||||
try {
|
||||
BarInfo.getInfo(getTarget());
|
||||
} catch (IllegalAccessException | NoSuchFieldException err) {
|
||||
err.printStackTrace();
|
||||
}
|
||||
});
|
||||
|
||||
Events.run(Trigger.update, () -> {
|
||||
target = getTarget();
|
||||
|
||||
for (Window window : windows) {
|
||||
if(window instanceof Updatable u) u.update();
|
||||
}
|
||||
if((input.keyDown(KeyCode.shiftRight) || input.keyDown(KeyCode.shiftLeft))) {
|
||||
if(input.keyTap(KeyCode.r)) lockTarget();
|
||||
if(input.keyTap(KeyCode.r)) {
|
||||
if(target==getTarget()) locked = !locked;
|
||||
target = getTarget();
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
Events.on(ClientLoadEvent.class, e -> {
|
||||
Windows.load();
|
||||
|
||||
SettingS.init();
|
||||
WindowManager.init();
|
||||
DisplayManager.init();
|
||||
OverDraws.init();
|
||||
OverDrawer.setEvent();
|
||||
|
||||
Seq.with(scene.root,
|
||||
ui.picker, ui.editor, ui.controls, ui.restart, ui.join, ui.discord,
|
||||
ui.load, ui.custom, ui.language, ui.database, ui.settings, ui.host,
|
||||
ui.paused, ui.about, ui.bans, ui.admins, ui.traces, ui.maps, ui.content,
|
||||
ui.planet, ui.research, ui.mods, ui.schematics, ui.logic
|
||||
).each(dialog-> dialog.addChild(new ElementDisplay(dialog)));
|
||||
|
||||
Table table = ((Table) scene.find("minimap/position")).row();
|
||||
table.add(new SchemDisplay());
|
||||
new WaveInfoDisplay().addWaveInfoTable();
|
||||
|
||||
if(jsonGen) ContentJSON.save();
|
||||
OverDrawer.init();
|
||||
});
|
||||
}
|
||||
|
||||
public static void lockTarget() {
|
||||
if(target==getTarget()) locked = !locked;
|
||||
target = getTarget();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ import static mindustry.Vars.*;
|
||||
|
||||
public class OverDrawer {
|
||||
|
||||
public static void setEvent(){
|
||||
public static void init(){
|
||||
Events.run(EventType.Trigger.draw, () -> {
|
||||
float sin = Mathf.absin(Time.time, 6f, 1f);
|
||||
|
||||
@@ -67,13 +67,4 @@ public class OverDrawer {
|
||||
for(OverDraw drawer : OverDraws.all) drawer.draw();
|
||||
});
|
||||
}
|
||||
|
||||
public static boolean isOutCamera(float x, float y) {
|
||||
return !isInCamera(x, y, 0);
|
||||
}
|
||||
|
||||
public static boolean isInCamera(float x, float y, float size) {
|
||||
Tmp.r2.setCentered(x, y, size);
|
||||
return Tmp.r1.overlaps(Tmp.r2);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
package unitinfo.shaders;
|
||||
|
||||
import arc.Core;
|
||||
import arc.graphics.gl.Shader;
|
||||
import arc.scene.ui.layout.Scl;
|
||||
import arc.util.Time;
|
||||
import mindustry.Vars;
|
||||
|
||||
public class LineShader extends Shader {
|
||||
public LineShader() {
|
||||
super(Core.files.internal("shaders/screenspace.vert"), Vars.tree.get("shaders/line.frag"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void apply(){
|
||||
setUniformf("u_dp", Scl.scl(1f));
|
||||
setUniformf("u_time", Time.time / Scl.scl(1f));
|
||||
setUniformf("u_offset",
|
||||
Core.camera.position.x - Core.camera.width / 2,
|
||||
Core.camera.position.y - Core.camera.height / 2);
|
||||
setUniformf("u_texsize", Core.camera.width, Core.camera.height);
|
||||
setUniformf("u_invsize", 1f/Core.camera.width, 1f/Core.camera.height);
|
||||
}
|
||||
}
|
||||
28
src/unitinfo/ui/DisplayManager.java
Normal file
28
src/unitinfo/ui/DisplayManager.java
Normal file
@@ -0,0 +1,28 @@
|
||||
package unitinfo.ui;
|
||||
|
||||
import arc.scene.ui.layout.Table;
|
||||
import arc.struct.Seq;
|
||||
import unitinfo.ui.display.ElementDisplay;
|
||||
import unitinfo.ui.display.SchemDisplay;
|
||||
import unitinfo.ui.display.WaveInfoDisplay;
|
||||
|
||||
import static arc.Core.scene;
|
||||
import static mindustry.Vars.ui;
|
||||
|
||||
public class DisplayManager {
|
||||
public static void init() {
|
||||
//layout debug
|
||||
Seq.with(scene.root,
|
||||
ui.picker, ui.editor, ui.controls, ui.restart, ui.join, ui.discord,
|
||||
ui.load, ui.custom, ui.language, ui.database, ui.settings, ui.host,
|
||||
ui.paused, ui.about, ui.bans, ui.admins, ui.traces, ui.maps, ui.content,
|
||||
ui.planet, ui.research, ui.mods, ui.schematics, ui.logic
|
||||
).each(dialog-> dialog.addChild(new ElementDisplay(dialog)));
|
||||
|
||||
//schem quick-slot
|
||||
Table table = ((Table) scene.find("minimap/position")).row();
|
||||
table.add(new SchemDisplay());
|
||||
new WaveInfoDisplay().addWaveInfoTable();
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,10 +1,11 @@
|
||||
package unitinfo.ui.windows;
|
||||
package unitinfo.ui;
|
||||
|
||||
import arc.*;
|
||||
import arc.struct.*;
|
||||
import arc.util.*;
|
||||
import mindustry.*;
|
||||
import mindustry.ui.*;
|
||||
import unitinfo.ui.windows.Window;
|
||||
|
||||
public class WindowManager {
|
||||
public static Seq<Window> windows = new Seq<>();
|
||||
@@ -1,4 +1,4 @@
|
||||
package unitinfo.ui;
|
||||
package unitinfo.ui.display;
|
||||
|
||||
import arc.graphics.g2d.Draw;
|
||||
import arc.graphics.g2d.Lines;
|
||||
@@ -1,4 +1,4 @@
|
||||
package unitinfo.ui;
|
||||
package unitinfo.ui.display;
|
||||
|
||||
import unitinfo.SUtils;
|
||||
import arc.Core;
|
||||
@@ -20,6 +20,7 @@ import mindustry.gen.*;
|
||||
import mindustry.graphics.Pal;
|
||||
import mindustry.ui.Styles;
|
||||
import mindustry.ui.dialogs.*;
|
||||
import unitinfo.ui.Updatable;
|
||||
|
||||
import static arc.Core.*;
|
||||
import static mindustry.Vars.*;
|
||||
@@ -1,4 +1,4 @@
|
||||
package unitinfo.ui;
|
||||
package unitinfo.ui.display;
|
||||
|
||||
import arc.scene.ui.layout.*;
|
||||
import arc.util.*;
|
||||
@@ -3,7 +3,7 @@ package unitinfo.ui.draws;
|
||||
import arc.scene.style.TextureRegionDrawable;
|
||||
import mindustry.gen.Groups;
|
||||
|
||||
import static unitinfo.core.OverDrawer.isInCamera;
|
||||
import static unitinfo.SUtils.*;
|
||||
import static arc.Core.settings;
|
||||
|
||||
public class BlockDraw extends OverDraw {
|
||||
|
||||
@@ -14,7 +14,7 @@ import mindustry.world.blocks.defense.turrets.TractorBeamTurret;
|
||||
import mindustry.world.blocks.defense.turrets.Turret;
|
||||
|
||||
import static unitinfo.SVars.turretRange;
|
||||
import static unitinfo.core.OverDrawer.isInCamera;
|
||||
import static unitinfo.SUtils.*;
|
||||
import static arc.Core.*;
|
||||
import static mindustry.Vars.player;
|
||||
|
||||
|
||||
@@ -25,8 +25,7 @@ import mindustry.world.blocks.units.CommandCenter;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
import static unitinfo.core.OverDrawer.isInCamera;
|
||||
import static unitinfo.core.OverDrawer.isOutCamera;
|
||||
import static unitinfo.SUtils.*;
|
||||
import static arc.Core.settings;
|
||||
import static mindustry.Vars.*;
|
||||
|
||||
|
||||
@@ -26,13 +26,13 @@ import mindustry.world.blocks.storage.CoreBlock;
|
||||
|
||||
import static mindustry.Vars.*;
|
||||
|
||||
public class CoreDisplay extends Window implements Updatable {
|
||||
public class CoreWindow extends Window implements Updatable {
|
||||
Vec2 scrollPos = new Vec2(0, 0);
|
||||
Table window;
|
||||
float heat;
|
||||
ObjectMap<Team, ItemData> itemData = new ObjectMap<>();
|
||||
|
||||
public CoreDisplay() {
|
||||
public CoreWindow() {
|
||||
super(Icon.list, "core");
|
||||
resetUsed();
|
||||
}
|
||||
@@ -6,6 +6,7 @@ import arc.math.geom.Geometry;
|
||||
import mindustry.editor.MapEditor;
|
||||
import mindustry.game.EventType;
|
||||
import mindustry.graphics.Layer;
|
||||
import unitinfo.core.EditorTool;
|
||||
import unitinfo.ui.*;
|
||||
import arc.Core;
|
||||
import arc.func.*;
|
||||
@@ -30,7 +31,7 @@ import mindustry.world.*;
|
||||
|
||||
import static mindustry.Vars.*;
|
||||
|
||||
public class MapEditorDisplay extends Window implements Updatable {
|
||||
public class MapEditorWindow extends Window implements Updatable {
|
||||
Vec2 scrollPos = new Vec2(0, 0);
|
||||
Table window;
|
||||
TextField search;
|
||||
@@ -45,7 +46,7 @@ public class MapEditorDisplay extends Window implements Updatable {
|
||||
public static Team drawTeam = Team.sharded;
|
||||
public static Block drawBlock = Blocks.router;
|
||||
|
||||
public MapEditorDisplay() {
|
||||
public MapEditorWindow() {
|
||||
super(Icon.map, "editor");
|
||||
|
||||
for(int i = 0; i < MapEditor.brushSizes.length; i++){
|
||||
@@ -20,14 +20,14 @@ import mindustry.ui.*;
|
||||
import static mindustry.Vars.*;
|
||||
|
||||
|
||||
public class PlayerDisplay extends Window implements Updatable {
|
||||
public class PlayerWindow extends Window implements Updatable {
|
||||
Vec2 scrollPos = new Vec2(0, 0);
|
||||
TextField search;
|
||||
ImageButton.ImageButtonStyle ustyle;
|
||||
@Nullable Player target;
|
||||
float heat;
|
||||
|
||||
public PlayerDisplay() {
|
||||
public PlayerWindow() {
|
||||
super(Icon.players, "player");
|
||||
}
|
||||
|
||||
@@ -13,12 +13,12 @@ import mindustry.gen.Tex;
|
||||
import mindustry.graphics.Pal;
|
||||
import mindustry.ui.Styles;
|
||||
|
||||
public class ToolDisplay extends Window implements Updatable {
|
||||
public class ToolWindow extends Window implements Updatable {
|
||||
Vec2 scrollPos = new Vec2(0, 0);
|
||||
OverDraw selected;
|
||||
float heat;
|
||||
|
||||
public ToolDisplay() {
|
||||
public ToolWindow() {
|
||||
super(Icon.edit, "tool");
|
||||
}
|
||||
|
||||
@@ -30,12 +30,12 @@ import static unitinfo.SVars.*;
|
||||
import static unitinfo.SUtils.*;
|
||||
import static mindustry.Vars.*;
|
||||
|
||||
class UnitDisplay extends Window {
|
||||
class UnitWindow extends Window {
|
||||
final Seq<Color> lastColors = Seq.with(Color.clear,Color.clear,Color.clear,Color.clear,Color.clear,Color.clear);
|
||||
final Rect scissor = new Rect();
|
||||
Vec2 scrollPos;
|
||||
|
||||
public UnitDisplay() {
|
||||
public UnitWindow() {
|
||||
super(Icon.units, "unit");
|
||||
}
|
||||
|
||||
@@ -69,7 +69,10 @@ class UnitDisplay extends Window {
|
||||
}
|
||||
image.setDrawable(region);
|
||||
});
|
||||
image.clicked(Main::lockTarget);
|
||||
image.clicked(()->{
|
||||
if(target==getTarget()) locked = !locked;
|
||||
target = getTarget();
|
||||
});
|
||||
|
||||
tt.add(image).size(iconMed).padRight(12f);
|
||||
tt.label(() -> {
|
||||
@@ -26,12 +26,12 @@ import static arc.Core.settings;
|
||||
import static mindustry.Vars.*;
|
||||
|
||||
|
||||
public class WaveDisplay extends Window implements Updatable {
|
||||
public class WaveWindow extends Window implements Updatable {
|
||||
static Vec2 scrollPos = new Vec2(0, 0);
|
||||
Table window;
|
||||
float heat;
|
||||
|
||||
public WaveDisplay() {
|
||||
public WaveWindow() {
|
||||
super(Icon.waves, "wave");
|
||||
}
|
||||
|
||||
@@ -44,8 +44,8 @@ public class WaveDisplay extends Window implements Updatable {
|
||||
table.add(pane).grow().name("wave-pane").row();
|
||||
table.table(total -> {
|
||||
total.left();
|
||||
|
||||
total.field("~"+state.wave+" + "+settings.getInt("wavemax"), f->{
|
||||
total.label(()->"~"+state.wave+"+");
|
||||
total.field(""+settings.getInt("wavemax"), f->{
|
||||
String str = f.replaceAll("\\D", "");
|
||||
if(str.isEmpty()) settings.put("wavemax", 0);
|
||||
else settings.put("wavemax", Integer.parseInt(str));
|
||||
@@ -10,6 +10,7 @@ import arc.scene.ui.layout.*;
|
||||
import arc.util.*;
|
||||
import mindustry.gen.*;
|
||||
import mindustry.ui.*;
|
||||
import unitinfo.ui.WindowManager;
|
||||
|
||||
public class Window extends Table{
|
||||
public TextureRegionDrawable icon;
|
||||
|
||||
@@ -2,18 +2,17 @@ package unitinfo.ui.windows;
|
||||
|
||||
import arc.util.*;
|
||||
import mindustry.gen.*;
|
||||
import unitinfo.ui.windows.*;
|
||||
|
||||
public class Windows {
|
||||
public static MapEditorDisplay editorTable;
|
||||
public static MapEditorWindow editorTable;
|
||||
|
||||
public static void load(){
|
||||
new UnitDisplay();
|
||||
new WaveDisplay();
|
||||
new CoreDisplay();
|
||||
new PlayerDisplay();
|
||||
new ToolDisplay();
|
||||
editorTable = new MapEditorDisplay();
|
||||
new UnitWindow();
|
||||
new WaveWindow();
|
||||
new CoreWindow();
|
||||
new PlayerWindow();
|
||||
new ToolWindow();
|
||||
editorTable = new MapEditorWindow();
|
||||
new Window(Icon.box, "test-window", t -> {
|
||||
t.labelWrap(() -> t.parent.x + ", " + t.parent.y).top().right().growX();
|
||||
t.row();
|
||||
|
||||
Reference in New Issue
Block a user