From d0be65323e574000f68f46d00dcccad3aae6459d Mon Sep 17 00:00:00 2001 From: Cedric Beck Date: Fri, 15 Nov 2024 22:47:23 +0100 Subject: [PATCH] added rotation compability to map.mdga --- .../java/pp/mdga/client/Board/AssetOnMap.java | 2 +- .../java/pp/mdga/client/Board/BoardView.java | 11 +- .../java/pp/mdga/client/Board/MapLoader.java | 6 +- .../src/main/java/pp/mdga/client/MdgaApp.java | 5 +- .../mdga/client/src/main/resources/map.mdga | 166 +++++++++++------- 5 files changed, 118 insertions(+), 72 deletions(-) diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/Board/AssetOnMap.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/Board/AssetOnMap.java index e2700b00..3900f56a 100644 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/Board/AssetOnMap.java +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/Board/AssetOnMap.java @@ -1,3 +1,3 @@ package pp.mdga.client.Board; -public record AssetOnMap(Asset asset, int x, int y){} +public record AssetOnMap(Asset asset, int x, int y, float rot){} diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/Board/BoardView.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/Board/BoardView.java index 2d0b1061..fa633c91 100644 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/Board/BoardView.java +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/Board/BoardView.java @@ -19,13 +19,12 @@ public class BoardView { private static final int GRID_EXTEND = 5; private static final String MAP_NAME = "map.mdga"; - private final MdgaApp mdgaApp; private PileControl drawPile = new PileControl(); private PileControl discardPile = new PileControl(); - private ArrayList infield = new ArrayList(40); + private ArrayList infield = new ArrayList<>(40); private ArrayList pieces; private Map> playerMap; @@ -71,16 +70,16 @@ private Color assetToColor(Asset asset){ case heer -> Color.ARMY; case marine -> Color.NAVY; case cir -> Color.CYBER; - default -> null; + default -> throw new RuntimeException("invalid asset"); }; } - private Spatial createModel(Asset asset, Vector3f pos){ + private Spatial createModel(Asset asset, Vector3f pos, float rot){ String modelName = asset.getModelPath(); String texName = asset.getDiffPath(); Spatial model = mdgaApp.getAssetManager().loadModel(modelName); model.scale(asset.getSize()); - model.rotate((float) Math.toRadians(0), 0, (float) Math.toRadians(90)); + model.rotate((float) Math.toRadians(0), 0, (float) Math.toRadians(90 + rot)); model.setLocalTranslation(pos); model.setShadowMode(RenderQueue.ShadowMode.CastAndReceive); Material mat = new Material(mdgaApp.getAssetManager(), "Common/MatDefs/Light/Lighting.j3md"); @@ -109,6 +108,6 @@ public void addPlayer(Color color){ private void displayAsset(AssetOnMap assetOnMap){ int x = assetOnMap.x(); int y = assetOnMap.y(); - Spatial model = createModel(assetOnMap.asset(), gridToWorld(x,y)); + Spatial model = createModel(assetOnMap.asset(), gridToWorld(x,y), assetOnMap.rot()); } } diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/Board/MapLoader.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/Board/MapLoader.java index 69886b3b..22836a90 100644 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/Board/MapLoader.java +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/Board/MapLoader.java @@ -27,7 +27,7 @@ public static List loadMap(String mapName) { if(entry.charAt(0) == '#') continue; String[] parts = entry.trim().split(" "); - assert(parts.length == 2); + assert(parts.length == 3); String assetName = parts[0]; String[] coordinates = parts[1].split(","); @@ -37,8 +37,10 @@ public static List loadMap(String mapName) { int x = Integer.parseInt(coordinates[0]); int y = Integer.parseInt(coordinates[1]); + float rot = Float.parseFloat(parts[2]); + Asset asset = getLoadedAsset(assetName); - assetsOnMap.add(new AssetOnMap(asset, x, y)); + assetsOnMap.add(new AssetOnMap(asset, x, y, rot)); } } catch (IOException e) { e.printStackTrace(); diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/MdgaApp.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/MdgaApp.java index 6cb25775..98866764 100644 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/MdgaApp.java +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/MdgaApp.java @@ -39,7 +39,10 @@ public static void main(String[] args) { public void simpleInitApp() { animationHandler = new AnimationHandler(this); boardView = new BoardView(4,this); -// boardView.addPlayer(Color.NAVY); + boardView.addPlayer(Color.NAVY); + boardView.addPlayer(Color.AIRFORCE); + boardView.addPlayer(Color.ARMY); + boardView.addPlayer(Color.CYBER); flyCam.setEnabled(true); int zoom = 20; cam.setLocation(new Vector3f(zoom,0,zoom)); diff --git a/Projekte/mdga/client/src/main/resources/map.mdga b/Projekte/mdga/client/src/main/resources/map.mdga index fd032ed4..648be666 100644 --- a/Projekte/mdga/client/src/main/resources/map.mdga +++ b/Projekte/mdga/client/src/main/resources/map.mdga @@ -1,70 +1,112 @@ -world 0,0 +world 0,0 0 #Marine Pos -marine 4,-3 -marine 4,-4 -marine 5,-4 -marine 5,-3 +marine 4,-5 180 +marine 4,-4 180 +marine 5,-4 180 +marine 5,-5 180 -#Nodes für Map -node_start -1,-5 -node -1,-4 -node -1,-3 -node -1,-2 -node_bonus -1,-1 -node -2,-1 -node -3,-1 -node -4,-1 -node -5,-1 -node -5,0 -node_start -5,1 -node -4,1 -node -3,1 -node -2,1 -node_bonus -1,1 -node -1,2 -node -1,3 -node -1,4 -node -1,5 -node 0,5 -node_start 1,5 -node 1,4 -node 1,3 -node 1,2 -node_bonus 1,1 -node 2,1 -node 3,1 -node 4,1 -node 5,1 -node 5,0 -node_start 5,-1 -node 4,-1 -node 3,-1 -node 2,-1 -node_bonus 1,-1 -node 1,-2 -node 1,-3 -node 1,-4 -node 1,-5 -node 0,-5 +#Blue (Marine) Home Node +node_home_blue 4,-5 0 +node_home_blue 4,-4 0 +node_home_blue 5,-4 0 +node_home_blue 5,-5 0 + +#Lw Pos +lw -5,4 0 +lw -4,4 0 +lw -4,5 0 +lw -5,5 0 + +#Black (Lw) Home Node +node_home_black -5,4 0 +node_home_black -4,4 0 +node_home_black -4,5 0 +node_home_black -5,5 0 + +#Heer Pos +heer -4,-5 90 +heer -4,-4 90 +heer -5,-4 90 +heer -5,-5 90 + +#Green (Heer) Home Node +node_home_green -4,-5 0 +node_home_green -4,-4 0 +node_home_green -5,-4 0 +node_home_green -5,-5 0 + +#CIR Pos +cir 4,5 -90 +cir 4,4 -90 +cir 5,4 -90 +cir 5,5 -90 + +#Yellow (CIR) Home Node +node_home_yellow 4,5 0 +node_home_yellow 4,4 0 +node_home_yellow 5,4 0 +node_home_yellow 5,5 0 + +#Nodes für Map 0 +node_start -1,-5 0 +node -1,-4 0 0 +node -1,-3 0 0 +node -1,-2 0 0 +node_bonus -1,-1 0 +node -2,-1 0 +node -3,-1 0 +node -4,-1 0 +node -5,-1 0 +node -5,0 0 +node_start -5,1 0 +node -4,1 0 +node -3,1 0 +node -2,1 0 +node_bonus -1,1 0 +node -1,2 0 +node -1,3 0 +node -1,4 0 +node -1,5 0 +node 0,5 0 +node_start 1,5 0 +node 1,4 0 +node 1,3 0 +node 1,2 0 +node_bonus 1,1 0 +node 2,1 0 +node 3,1 0 +node 4,1 0 +node 5,1 0 +node 5,0 0 +node_start 5,-1 0 +node 4,-1 0 +node 3,-1 0 +node 2,-1 0 +node_bonus 1,-1 0 +node 1,-2 0 +node 1,-3 0 +node 1,-4 0 +node 1,-5 0 +node 0,-5 0 #Node Home -node_home_blue 0,-1 -node_home_blue 0,-2 -node_home_blue 0,-3 -node_home_blue 0,-4 +node_home_green 0,-1 0 +node_home_green 0,-2 0 +node_home_green 0,-3 0 +node_home_green 0,-4 0 -node_home_black 0,1 -node_home_black 0,2 -node_home_black 0,3 -node_home_black 0,4 +node_home_yellow 0,1 0 +node_home_yellow 0,2 0 +node_home_yellow 0,3 0 +node_home_yellow 0,4 0 -node_home_yellow 1,0 -node_home_yellow 2,0 -node_home_yellow 3,0 -node_home_yellow 4,0 +node_home_blue 1,0 0 +node_home_blue 2,0 0 +node_home_blue 3,0 0 +node_home_blue 4,0 0 -node_home_green -1,0 -node_home_green -2,0 -node_home_green -3,0 -node_home_green -4,0 +node_home_black -1,0 0 +node_home_black -2,0 0 +node_home_black -3,0 0 +node_home_black -4,0 0