From 64ae4b7f57c0d6d8a381d4eb1977c3c2ba7f7ebe Mon Sep 17 00:00:00 2001 From: NadavY Date: Mon, 22 Jan 2024 23:33:28 +0200 Subject: [PATCH] WPR-10 - Fix callsign error, adjust heading from radians, add speed to unit details. reduce install size --- pom.xml | 5 ----- .../org/faulty/wpreplace/models/UnitDetails.java | 14 +++++++++++--- .../wpreplace/ui/GroupDetailsController.java | 7 +++++-- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/pom.xml b/pom.xml index 25842ed..79cb0d7 100644 --- a/pom.xml +++ b/pom.xml @@ -48,11 +48,6 @@ spring-boot-starter ${spring.version} - - org.jline - jline-terminal-jna - 3.24.1 - org.openjfx javafx-controls diff --git a/src/main/java/org/faulty/wpreplace/models/UnitDetails.java b/src/main/java/org/faulty/wpreplace/models/UnitDetails.java index 0c23bf7..1530ba2 100644 --- a/src/main/java/org/faulty/wpreplace/models/UnitDetails.java +++ b/src/main/java/org/faulty/wpreplace/models/UnitDetails.java @@ -4,6 +4,8 @@ import org.luaj.vm2.LuaTable; import org.luaj.vm2.LuaValue; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.ArrayList; import java.util.List; @@ -17,7 +19,8 @@ public class UnitDetails { private final float x; private final float y; private final int alt; - private final float heading; + private final BigDecimal heading; + private final float speed; private final LuaTable luaUnit; public static List fromLuaGroup(LuaTable luaGroup) { @@ -34,7 +37,8 @@ public static List fromLuaGroup(LuaTable luaGroup) { luaUnit.get("x").tofloat(), luaUnit.get("y").tofloat(), luaUnit.get("alt").toint(), - luaUnit.get("heading").tofloat(), + BigDecimal.valueOf(Math.toDegrees(luaUnit.get("heading").tofloat())).setScale(1, RoundingMode.HALF_UP), + luaUnit.get("speed").tofloat(), luaUnit) ); } @@ -42,7 +46,11 @@ public static List fromLuaGroup(LuaTable luaGroup) { } private static String getCallsigns(LuaTable luaGroup) { - LuaTable callsign = luaGroup.get("callsign").checktable(); + LuaValue callsignVal = luaGroup.get("callsign"); + if (callsignVal.isint()) { + return Integer.toString(callsignVal.toint()); + } + LuaTable callsign = callsignVal.checktable(); List callSigns = new ArrayList<>(); for (LuaValue key : callsign.keys()) { if (callsign.get(key).isstring()) { diff --git a/src/main/java/org/faulty/wpreplace/ui/GroupDetailsController.java b/src/main/java/org/faulty/wpreplace/ui/GroupDetailsController.java index 97fbdf4..cf2fb2f 100644 --- a/src/main/java/org/faulty/wpreplace/ui/GroupDetailsController.java +++ b/src/main/java/org/faulty/wpreplace/ui/GroupDetailsController.java @@ -26,6 +26,7 @@ import org.springframework.stereotype.Component; import java.io.IOException; +import java.math.BigDecimal; @Log4j2 @Component @@ -66,13 +67,15 @@ public void setGroup(String coalition, int countryId, String unitType, int group yColumn.setCellValueFactory(new PropertyValueFactory<>("y")); TableColumn altColumn = new TableColumn<>("Alt"); altColumn.setCellValueFactory(new PropertyValueFactory<>("alt")); - TableColumn headingColumn = new TableColumn<>("Heading"); + TableColumn headingColumn = new TableColumn<>("Heading"); headingColumn.setCellValueFactory(new PropertyValueFactory<>("heading")); + TableColumn speedColumn = new TableColumn<>("Speed"); + speedColumn.setCellValueFactory(new PropertyValueFactory<>("speed")); TableColumn viewColumn = new TableColumn<>("View Payload"); viewColumn.setCellFactory(createButtonCellFactory()); - dataTable.getColumns().addAll(idColumn, nameColumn, skillColumn, callSignsColumn, unitColumn, xColumn, yColumn, altColumn, headingColumn, viewColumn); + dataTable.getColumns().addAll(idColumn, nameColumn, skillColumn, callSignsColumn, unitColumn, xColumn, yColumn, altColumn, headingColumn, speedColumn, viewColumn); dataTable.setItems(routes); idColumn.setSortType(TableColumn.SortType.ASCENDING);