mirror of
https://github.com/yawaflua/Informatis.git
synced 2025-12-10 12:09:27 +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.math.Mathf;
|
||||||
import arc.scene.style.*;
|
import arc.scene.style.*;
|
||||||
import arc.struct.Seq;
|
import arc.struct.Seq;
|
||||||
import arc.util.Nullable;
|
import arc.util.*;
|
||||||
import arc.util.Strings;
|
|
||||||
import mindustry.Vars;
|
import mindustry.Vars;
|
||||||
import mindustry.core.UI;
|
import mindustry.core.UI;
|
||||||
import mindustry.entities.bullet.BulletType;
|
import mindustry.entities.bullet.*;
|
||||||
import mindustry.entities.bullet.LightningBulletType;
|
import mindustry.gen.*;
|
||||||
import mindustry.gen.BlockUnitUnit;
|
|
||||||
import mindustry.gen.Groups;
|
|
||||||
import mindustry.gen.Teamc;
|
|
||||||
import mindustry.gen.Unit;
|
|
||||||
import mindustry.type.UnitType;
|
import mindustry.type.UnitType;
|
||||||
import mindustry.type.weapons.PointDefenseWeapon;
|
import mindustry.type.weapons.*;
|
||||||
import mindustry.type.weapons.RepairBeamWeapon;
|
|
||||||
import mindustry.world.Tile;
|
import mindustry.world.Tile;
|
||||||
|
|
||||||
import java.lang.reflect.*;
|
import java.lang.reflect.*;
|
||||||
|
|
||||||
import static unitinfo.SVars.locked;
|
import static unitinfo.SVars.*;
|
||||||
import static unitinfo.SVars.target;
|
import static arc.Core.*;
|
||||||
import static arc.Core.input;
|
|
||||||
import static arc.Core.settings;
|
|
||||||
import static mindustry.Vars.player;
|
import static mindustry.Vars.player;
|
||||||
|
|
||||||
public class SUtils {
|
public class SUtils {
|
||||||
@@ -84,7 +76,7 @@ public class SUtils {
|
|||||||
return b.speed * a * Mathf.pow(1 - b.drag, b.lifetime / 2) * b.lifetime +
|
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,
|
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);
|
b.fragBullet != null ? bulletRange(b.fragBullet) * b.fragLifeMax * b.fragVelocityMax : b.splashDamageRadius);
|
||||||
};
|
}
|
||||||
|
|
||||||
public static float unitRange(UnitType u) {
|
public static float unitRange(UnitType u) {
|
||||||
final float[] mrng = {0};
|
final float[] mrng = {0};
|
||||||
@@ -100,4 +92,14 @@ public class SUtils {
|
|||||||
field.setAccessible(true);
|
field.setAccessible(true);
|
||||||
return field.get(ut);
|
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;
|
package unitinfo;
|
||||||
|
|
||||||
import unitinfo.core.*;
|
import unitinfo.shaders.*;
|
||||||
import unitinfo.shaders.LineShader;
|
|
||||||
import unitinfo.shaders.RangeShader;
|
|
||||||
import arc.graphics.g2d.TextureRegion;
|
import arc.graphics.g2d.TextureRegion;
|
||||||
import mindustry.gen.Teamc;
|
import mindustry.gen.Teamc;
|
||||||
|
|
||||||
@@ -11,10 +9,8 @@ import static arc.Core.atlas;
|
|||||||
public class SVars {
|
public class SVars {
|
||||||
public static TextureRegion clear = atlas.find("clear");
|
public static TextureRegion clear = atlas.find("clear");
|
||||||
public static TextureRegion error = atlas.find("error");
|
public static TextureRegion error = atlas.find("error");
|
||||||
public static RangeShader turretRange;
|
public static RangeShader turretRange = new RangeShader();
|
||||||
public static LineShader lineShader;
|
|
||||||
public static Teamc target;
|
public static Teamc target;
|
||||||
public static boolean locked;
|
public static boolean locked;
|
||||||
public static boolean jsonGen = false;
|
|
||||||
public static float uiResumeRate = 3 * 60f; //default 3s
|
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.Boolf;
|
||||||
import arc.func.Cons;
|
import arc.func.Cons;
|
||||||
@@ -12,10 +12,9 @@ import mindustry.content.Blocks;
|
|||||||
import mindustry.game.Team;
|
import mindustry.game.Team;
|
||||||
import mindustry.world.Block;
|
import mindustry.world.Block;
|
||||||
import mindustry.world.Tile;
|
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.MapEditorWindow.*;
|
||||||
import static unitinfo.ui.windows.MapEditorDisplay.drawBlock;
|
|
||||||
import static unitinfo.ui.windows.Windows.editorTable;
|
import static unitinfo.ui.windows.Windows.editorTable;
|
||||||
import static mindustry.Vars.world;
|
import static mindustry.Vars.world;
|
||||||
|
|
||||||
@@ -114,7 +113,7 @@ public enum EditorTool{
|
|||||||
|
|
||||||
Boolf<Tile> tester;
|
Boolf<Tile> tester;
|
||||||
Cons<Tile> setter;
|
Cons<Tile> setter;
|
||||||
Block drawBlock = MapEditorDisplay.drawBlock;
|
Block drawBlock = MapEditorWindow.drawBlock;
|
||||||
|
|
||||||
if(drawBlock.isOverlay()){
|
if(drawBlock.isOverlay()){
|
||||||
Block dest = tile.overlay();
|
Block dest = tile.overlay();
|
||||||
@@ -1,29 +1,22 @@
|
|||||||
package unitinfo.core;
|
package unitinfo.core;
|
||||||
|
|
||||||
import arc.input.KeyCode;
|
import arc.input.KeyCode;
|
||||||
import arc.scene.ui.layout.Table;
|
|
||||||
import unitinfo.shaders.*;
|
|
||||||
import unitinfo.ui.*;
|
import unitinfo.ui.*;
|
||||||
import unitinfo.ui.draws.OverDraws;
|
import unitinfo.ui.draws.OverDraws;
|
||||||
import unitinfo.ui.windows.*;
|
import unitinfo.ui.windows.*;
|
||||||
import arc.*;
|
import arc.*;
|
||||||
import arc.struct.*;
|
|
||||||
import mindustry.*;
|
import mindustry.*;
|
||||||
import mindustry.game.EventType.*;
|
import mindustry.game.EventType.*;
|
||||||
import mindustry.mod.*;
|
import mindustry.mod.*;
|
||||||
|
|
||||||
import static unitinfo.SVars.*;
|
import static unitinfo.SVars.*;
|
||||||
import static arc.Core.*;
|
import static arc.Core.*;
|
||||||
import static mindustry.Vars.*;
|
|
||||||
import static unitinfo.SUtils.*;
|
import static unitinfo.SUtils.*;
|
||||||
import static unitinfo.ui.windows.WindowManager.windows;
|
import static unitinfo.ui.WindowManager.windows;
|
||||||
|
|
||||||
public class Main extends Mod {
|
public class Main extends Mod {
|
||||||
@Override
|
@Override
|
||||||
public void init(){
|
public void init(){
|
||||||
turretRange = new RangeShader();
|
|
||||||
lineShader = new LineShader();
|
|
||||||
|
|
||||||
Core.app.post(() -> {
|
Core.app.post(() -> {
|
||||||
Mods.ModMeta meta = Vars.mods.locateMod("unitinfo").meta;
|
Mods.ModMeta meta = Vars.mods.locateMod("unitinfo").meta;
|
||||||
meta.displayName = "[#B5FFD9]Unit Information[]";
|
meta.displayName = "[#B5FFD9]Unit Information[]";
|
||||||
@@ -31,49 +24,34 @@ public class Main extends Mod {
|
|||||||
meta.description = bundle.get("shar-description");
|
meta.description = bundle.get("shar-description");
|
||||||
});
|
});
|
||||||
|
|
||||||
Events.run(Trigger.class, () -> {
|
Events.run(Trigger.update, () -> {
|
||||||
try {
|
try {
|
||||||
BarInfo.getInfo(getTarget());
|
BarInfo.getInfo(getTarget());
|
||||||
} catch (IllegalAccessException | NoSuchFieldException err) {
|
} catch (IllegalAccessException | NoSuchFieldException err) {
|
||||||
err.printStackTrace();
|
err.printStackTrace();
|
||||||
}
|
}
|
||||||
});
|
|
||||||
|
|
||||||
Events.run(Trigger.update, () -> {
|
|
||||||
target = getTarget();
|
target = getTarget();
|
||||||
|
|
||||||
for (Window window : windows) {
|
for (Window window : windows) {
|
||||||
if(window instanceof Updatable u) u.update();
|
if(window instanceof Updatable u) u.update();
|
||||||
}
|
}
|
||||||
if((input.keyDown(KeyCode.shiftRight) || input.keyDown(KeyCode.shiftLeft))) {
|
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 -> {
|
Events.on(ClientLoadEvent.class, e -> {
|
||||||
Windows.load();
|
Windows.load();
|
||||||
|
|
||||||
SettingS.init();
|
SettingS.init();
|
||||||
WindowManager.init();
|
WindowManager.init();
|
||||||
|
DisplayManager.init();
|
||||||
OverDraws.init();
|
OverDraws.init();
|
||||||
OverDrawer.setEvent();
|
OverDrawer.init();
|
||||||
|
|
||||||
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();
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void lockTarget() {
|
|
||||||
if(target==getTarget()) locked = !locked;
|
|
||||||
target = getTarget();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ import static mindustry.Vars.*;
|
|||||||
|
|
||||||
public class OverDrawer {
|
public class OverDrawer {
|
||||||
|
|
||||||
public static void setEvent(){
|
public static void init(){
|
||||||
Events.run(EventType.Trigger.draw, () -> {
|
Events.run(EventType.Trigger.draw, () -> {
|
||||||
float sin = Mathf.absin(Time.time, 6f, 1f);
|
float sin = Mathf.absin(Time.time, 6f, 1f);
|
||||||
|
|
||||||
@@ -67,13 +67,4 @@ public class OverDrawer {
|
|||||||
for(OverDraw drawer : OverDraws.all) drawer.draw();
|
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.*;
|
||||||
import arc.struct.*;
|
import arc.struct.*;
|
||||||
import arc.util.*;
|
import arc.util.*;
|
||||||
import mindustry.*;
|
import mindustry.*;
|
||||||
import mindustry.ui.*;
|
import mindustry.ui.*;
|
||||||
|
import unitinfo.ui.windows.Window;
|
||||||
|
|
||||||
public class WindowManager {
|
public class WindowManager {
|
||||||
public static Seq<Window> windows = new Seq<>();
|
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.Draw;
|
||||||
import arc.graphics.g2d.Lines;
|
import arc.graphics.g2d.Lines;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package unitinfo.ui;
|
package unitinfo.ui.display;
|
||||||
|
|
||||||
import unitinfo.SUtils;
|
import unitinfo.SUtils;
|
||||||
import arc.Core;
|
import arc.Core;
|
||||||
@@ -20,6 +20,7 @@ import mindustry.gen.*;
|
|||||||
import mindustry.graphics.Pal;
|
import mindustry.graphics.Pal;
|
||||||
import mindustry.ui.Styles;
|
import mindustry.ui.Styles;
|
||||||
import mindustry.ui.dialogs.*;
|
import mindustry.ui.dialogs.*;
|
||||||
|
import unitinfo.ui.Updatable;
|
||||||
|
|
||||||
import static arc.Core.*;
|
import static arc.Core.*;
|
||||||
import static mindustry.Vars.*;
|
import static mindustry.Vars.*;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package unitinfo.ui;
|
package unitinfo.ui.display;
|
||||||
|
|
||||||
import arc.scene.ui.layout.*;
|
import arc.scene.ui.layout.*;
|
||||||
import arc.util.*;
|
import arc.util.*;
|
||||||
@@ -3,7 +3,7 @@ package unitinfo.ui.draws;
|
|||||||
import arc.scene.style.TextureRegionDrawable;
|
import arc.scene.style.TextureRegionDrawable;
|
||||||
import mindustry.gen.Groups;
|
import mindustry.gen.Groups;
|
||||||
|
|
||||||
import static unitinfo.core.OverDrawer.isInCamera;
|
import static unitinfo.SUtils.*;
|
||||||
import static arc.Core.settings;
|
import static arc.Core.settings;
|
||||||
|
|
||||||
public class BlockDraw extends OverDraw {
|
public class BlockDraw extends OverDraw {
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import mindustry.world.blocks.defense.turrets.TractorBeamTurret;
|
|||||||
import mindustry.world.blocks.defense.turrets.Turret;
|
import mindustry.world.blocks.defense.turrets.Turret;
|
||||||
|
|
||||||
import static unitinfo.SVars.turretRange;
|
import static unitinfo.SVars.turretRange;
|
||||||
import static unitinfo.core.OverDrawer.isInCamera;
|
import static unitinfo.SUtils.*;
|
||||||
import static arc.Core.*;
|
import static arc.Core.*;
|
||||||
import static mindustry.Vars.player;
|
import static mindustry.Vars.player;
|
||||||
|
|
||||||
|
|||||||
@@ -25,8 +25,7 @@ import mindustry.world.blocks.units.CommandCenter;
|
|||||||
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
import static unitinfo.core.OverDrawer.isInCamera;
|
import static unitinfo.SUtils.*;
|
||||||
import static unitinfo.core.OverDrawer.isOutCamera;
|
|
||||||
import static arc.Core.settings;
|
import static arc.Core.settings;
|
||||||
import static mindustry.Vars.*;
|
import static mindustry.Vars.*;
|
||||||
|
|
||||||
|
|||||||
@@ -26,13 +26,13 @@ import mindustry.world.blocks.storage.CoreBlock;
|
|||||||
|
|
||||||
import static mindustry.Vars.*;
|
import static mindustry.Vars.*;
|
||||||
|
|
||||||
public class CoreDisplay extends Window implements Updatable {
|
public class CoreWindow extends Window implements Updatable {
|
||||||
Vec2 scrollPos = new Vec2(0, 0);
|
Vec2 scrollPos = new Vec2(0, 0);
|
||||||
Table window;
|
Table window;
|
||||||
float heat;
|
float heat;
|
||||||
ObjectMap<Team, ItemData> itemData = new ObjectMap<>();
|
ObjectMap<Team, ItemData> itemData = new ObjectMap<>();
|
||||||
|
|
||||||
public CoreDisplay() {
|
public CoreWindow() {
|
||||||
super(Icon.list, "core");
|
super(Icon.list, "core");
|
||||||
resetUsed();
|
resetUsed();
|
||||||
}
|
}
|
||||||
@@ -6,6 +6,7 @@ import arc.math.geom.Geometry;
|
|||||||
import mindustry.editor.MapEditor;
|
import mindustry.editor.MapEditor;
|
||||||
import mindustry.game.EventType;
|
import mindustry.game.EventType;
|
||||||
import mindustry.graphics.Layer;
|
import mindustry.graphics.Layer;
|
||||||
|
import unitinfo.core.EditorTool;
|
||||||
import unitinfo.ui.*;
|
import unitinfo.ui.*;
|
||||||
import arc.Core;
|
import arc.Core;
|
||||||
import arc.func.*;
|
import arc.func.*;
|
||||||
@@ -30,7 +31,7 @@ import mindustry.world.*;
|
|||||||
|
|
||||||
import static mindustry.Vars.*;
|
import static mindustry.Vars.*;
|
||||||
|
|
||||||
public class MapEditorDisplay extends Window implements Updatable {
|
public class MapEditorWindow extends Window implements Updatable {
|
||||||
Vec2 scrollPos = new Vec2(0, 0);
|
Vec2 scrollPos = new Vec2(0, 0);
|
||||||
Table window;
|
Table window;
|
||||||
TextField search;
|
TextField search;
|
||||||
@@ -45,7 +46,7 @@ public class MapEditorDisplay extends Window implements Updatable {
|
|||||||
public static Team drawTeam = Team.sharded;
|
public static Team drawTeam = Team.sharded;
|
||||||
public static Block drawBlock = Blocks.router;
|
public static Block drawBlock = Blocks.router;
|
||||||
|
|
||||||
public MapEditorDisplay() {
|
public MapEditorWindow() {
|
||||||
super(Icon.map, "editor");
|
super(Icon.map, "editor");
|
||||||
|
|
||||||
for(int i = 0; i < MapEditor.brushSizes.length; i++){
|
for(int i = 0; i < MapEditor.brushSizes.length; i++){
|
||||||
@@ -20,14 +20,14 @@ import mindustry.ui.*;
|
|||||||
import static mindustry.Vars.*;
|
import static mindustry.Vars.*;
|
||||||
|
|
||||||
|
|
||||||
public class PlayerDisplay extends Window implements Updatable {
|
public class PlayerWindow extends Window implements Updatable {
|
||||||
Vec2 scrollPos = new Vec2(0, 0);
|
Vec2 scrollPos = new Vec2(0, 0);
|
||||||
TextField search;
|
TextField search;
|
||||||
ImageButton.ImageButtonStyle ustyle;
|
ImageButton.ImageButtonStyle ustyle;
|
||||||
@Nullable Player target;
|
@Nullable Player target;
|
||||||
float heat;
|
float heat;
|
||||||
|
|
||||||
public PlayerDisplay() {
|
public PlayerWindow() {
|
||||||
super(Icon.players, "player");
|
super(Icon.players, "player");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -13,12 +13,12 @@ import mindustry.gen.Tex;
|
|||||||
import mindustry.graphics.Pal;
|
import mindustry.graphics.Pal;
|
||||||
import mindustry.ui.Styles;
|
import mindustry.ui.Styles;
|
||||||
|
|
||||||
public class ToolDisplay extends Window implements Updatable {
|
public class ToolWindow extends Window implements Updatable {
|
||||||
Vec2 scrollPos = new Vec2(0, 0);
|
Vec2 scrollPos = new Vec2(0, 0);
|
||||||
OverDraw selected;
|
OverDraw selected;
|
||||||
float heat;
|
float heat;
|
||||||
|
|
||||||
public ToolDisplay() {
|
public ToolWindow() {
|
||||||
super(Icon.edit, "tool");
|
super(Icon.edit, "tool");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -30,12 +30,12 @@ import static unitinfo.SVars.*;
|
|||||||
import static unitinfo.SUtils.*;
|
import static unitinfo.SUtils.*;
|
||||||
import static mindustry.Vars.*;
|
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 Seq<Color> lastColors = Seq.with(Color.clear,Color.clear,Color.clear,Color.clear,Color.clear,Color.clear);
|
||||||
final Rect scissor = new Rect();
|
final Rect scissor = new Rect();
|
||||||
Vec2 scrollPos;
|
Vec2 scrollPos;
|
||||||
|
|
||||||
public UnitDisplay() {
|
public UnitWindow() {
|
||||||
super(Icon.units, "unit");
|
super(Icon.units, "unit");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -69,7 +69,10 @@ class UnitDisplay extends Window {
|
|||||||
}
|
}
|
||||||
image.setDrawable(region);
|
image.setDrawable(region);
|
||||||
});
|
});
|
||||||
image.clicked(Main::lockTarget);
|
image.clicked(()->{
|
||||||
|
if(target==getTarget()) locked = !locked;
|
||||||
|
target = getTarget();
|
||||||
|
});
|
||||||
|
|
||||||
tt.add(image).size(iconMed).padRight(12f);
|
tt.add(image).size(iconMed).padRight(12f);
|
||||||
tt.label(() -> {
|
tt.label(() -> {
|
||||||
@@ -26,12 +26,12 @@ import static arc.Core.settings;
|
|||||||
import static mindustry.Vars.*;
|
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);
|
static Vec2 scrollPos = new Vec2(0, 0);
|
||||||
Table window;
|
Table window;
|
||||||
float heat;
|
float heat;
|
||||||
|
|
||||||
public WaveDisplay() {
|
public WaveWindow() {
|
||||||
super(Icon.waves, "wave");
|
super(Icon.waves, "wave");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -44,8 +44,8 @@ public class WaveDisplay extends Window implements Updatable {
|
|||||||
table.add(pane).grow().name("wave-pane").row();
|
table.add(pane).grow().name("wave-pane").row();
|
||||||
table.table(total -> {
|
table.table(total -> {
|
||||||
total.left();
|
total.left();
|
||||||
|
total.label(()->"~"+state.wave+"+");
|
||||||
total.field("~"+state.wave+" + "+settings.getInt("wavemax"), f->{
|
total.field(""+settings.getInt("wavemax"), f->{
|
||||||
String str = f.replaceAll("\\D", "");
|
String str = f.replaceAll("\\D", "");
|
||||||
if(str.isEmpty()) settings.put("wavemax", 0);
|
if(str.isEmpty()) settings.put("wavemax", 0);
|
||||||
else settings.put("wavemax", Integer.parseInt(str));
|
else settings.put("wavemax", Integer.parseInt(str));
|
||||||
@@ -10,6 +10,7 @@ import arc.scene.ui.layout.*;
|
|||||||
import arc.util.*;
|
import arc.util.*;
|
||||||
import mindustry.gen.*;
|
import mindustry.gen.*;
|
||||||
import mindustry.ui.*;
|
import mindustry.ui.*;
|
||||||
|
import unitinfo.ui.WindowManager;
|
||||||
|
|
||||||
public class Window extends Table{
|
public class Window extends Table{
|
||||||
public TextureRegionDrawable icon;
|
public TextureRegionDrawable icon;
|
||||||
|
|||||||
@@ -2,18 +2,17 @@ package unitinfo.ui.windows;
|
|||||||
|
|
||||||
import arc.util.*;
|
import arc.util.*;
|
||||||
import mindustry.gen.*;
|
import mindustry.gen.*;
|
||||||
import unitinfo.ui.windows.*;
|
|
||||||
|
|
||||||
public class Windows {
|
public class Windows {
|
||||||
public static MapEditorDisplay editorTable;
|
public static MapEditorWindow editorTable;
|
||||||
|
|
||||||
public static void load(){
|
public static void load(){
|
||||||
new UnitDisplay();
|
new UnitWindow();
|
||||||
new WaveDisplay();
|
new WaveWindow();
|
||||||
new CoreDisplay();
|
new CoreWindow();
|
||||||
new PlayerDisplay();
|
new PlayerWindow();
|
||||||
new ToolDisplay();
|
new ToolWindow();
|
||||||
editorTable = new MapEditorDisplay();
|
editorTable = new MapEditorWindow();
|
||||||
new Window(Icon.box, "test-window", t -> {
|
new Window(Icon.box, "test-window", t -> {
|
||||||
t.labelWrap(() -> t.parent.x + ", " + t.parent.y).top().right().growX();
|
t.labelWrap(() -> t.parent.x + ", " + t.parent.y).top().right().growX();
|
||||||
t.row();
|
t.row();
|
||||||
|
|||||||
Reference in New Issue
Block a user