diff --git a/blight-editor/src/main/java/de/blight/editor/SharedInput.java b/blight-editor/src/main/java/de/blight/editor/SharedInput.java index 5527952..997963d 100644 --- a/blight-editor/src/main/java/de/blight/editor/SharedInput.java +++ b/blight-editor/src/main/java/de/blight/editor/SharedInput.java @@ -302,6 +302,8 @@ public class SharedInput { public volatile boolean objectSelectionChanged = false; /** Wird von JME3 gesetzt, wenn ein Objekt gerade neu platziert wurde (nicht nur selektiert). */ public volatile boolean objectJustPlaced = false; + /** JavaFX → JME3: Selektion sofort aufheben (z. B. nach Massenplatzierung). */ + public volatile boolean deselectAllRequest = false; /** Wird von JME3 gesetzt, wenn ein Objekt im Platzierungsmodus angeklickt wurde → JFX wechselt Panel zu Edit. */ public volatile boolean objectClickedWhileInPlaceMode = false; diff --git a/blight-editor/src/main/java/de/blight/editor/state/SceneObjectState.java b/blight-editor/src/main/java/de/blight/editor/state/SceneObjectState.java index 76e4526..539074c 100644 --- a/blight-editor/src/main/java/de/blight/editor/state/SceneObjectState.java +++ b/blight-editor/src/main/java/de/blight/editor/state/SceneObjectState.java @@ -416,6 +416,11 @@ public class SceneObjectState extends BaseAppState { || input.activeLayer == SharedInput.LAYER_AUSWAHL; if (!isObjectLayer) return; + if (input.deselectAllRequest) { + input.deselectAllRequest = false; + deselectAll(); + } + if (input.deselectAllOnAuswahl) { input.deselectAllOnAuswahl = false; deselectAll(); diff --git a/blight-editor/src/main/java/de/blight/editor/toolset/object/ObjectController.java b/blight-editor/src/main/java/de/blight/editor/toolset/object/ObjectController.java index aeac1e3..2171f41 100644 --- a/blight-editor/src/main/java/de/blight/editor/toolset/object/ObjectController.java +++ b/blight-editor/src/main/java/de/blight/editor/toolset/object/ObjectController.java @@ -87,6 +87,8 @@ public class ObjectController implements ToolController { ctx.input().objectJustPlaced = false; if (multiPlaceCB == null || !multiPlaceCB.isSelected()) { showEditPanel(); + } else { + ctx.input().deselectAllRequest = true; } } diff --git a/blight-game/src/main/java/de/blight/game/state/WorldObjectsState.java b/blight-game/src/main/java/de/blight/game/state/WorldObjectsState.java index 22c650a..0416c8f 100644 --- a/blight-game/src/main/java/de/blight/game/state/WorldObjectsState.java +++ b/blight-game/src/main/java/de/blight/game/state/WorldObjectsState.java @@ -112,6 +112,7 @@ public class WorldObjectsState extends BaseAppState { // Baum-Stammkollision: Capsule statt Vollmesh (Blätter ausgeschlossen) String objPath = m.modelPath() != null ? m.modelPath() : ""; + boolean hasCustomCollision = objPath.startsWith("Models/trees/") || objPath.contains("/grapevine/"); if (objPath.contains("/grapevine/") && bulletAppState != null) { try { s.updateGeometricState(); @@ -149,8 +150,8 @@ public class WorldObjectsState extends BaseAppState { } } - // Physik-Kollision für solide Objekte - if (m.solid() && bulletAppState != null) { + // Physik-Kollision für solide Objekte (nicht für Bäume/Reben – die haben eigene Kollision oben) + if (m.solid() && !hasCustomCollision && bulletAppState != null) { try { RigidBodyControl rbc = new RigidBodyControl( CollisionShapeFactory.createMeshShape(s), 0f); diff --git a/blight-map/src/main/map/blight_grass.blg b/blight-map/src/main/map/blight_grass.blg index a4e8c50..a7c3cb1 100644 Binary files a/blight-map/src/main/map/blight_grass.blg and b/blight-map/src/main/map/blight_grass.blg differ diff --git a/blight-map/src/main/map/blight_grass_vertex.blgv b/blight-map/src/main/map/blight_grass_vertex.blgv index 07c9bbd..c23bc1c 100644 Binary files a/blight-map/src/main/map/blight_grass_vertex.blgv and b/blight-map/src/main/map/blight_grass_vertex.blgv differ diff --git a/blight-map/src/main/map/blight_map.blm b/blight-map/src/main/map/blight_map.blm index 7a16143..ea89b2e 100644 Binary files a/blight-map/src/main/map/blight_map.blm and b/blight-map/src/main/map/blight_map.blm differ diff --git a/blight-map/src/main/map/blight_objects.blo b/blight-map/src/main/map/blight_objects.blo index 541ad5b..8a249c2 100644 --- a/blight-map/src/main/map/blight_objects.blo +++ b/blight-map/src/main/map/blight_objects.blo @@ -15,3 +15,15 @@ Models/imported/feuerstelle1.j3o 1.46137 2.00000 -1.08840 0.00000 1.00000 0.0000 Models/trees/palm/palm_20260914_195434.j3o 226.76038 1.25643 -893.77020 -1.59663 1.00000 -0.00000 0.00000 true true true 50.00000 150.00000 300.00000 PALM Models/trees/willow/willow_20260914_210538.j3o 256.04678 5.84959 -887.66675 0.00000 1.00000 0.00000 0.00000 true true true 50.00000 150.00000 300.00000 TREE Models/imported/kampfdummy.j3o -5.95449 2.00000 -11.12527 0.00000 1.00000 0.00000 0.00000 true true true 30.00000 80.00000 120.00000 DUMMY +Models/trees/willow/willow_20260914_210538.j3o 150.00494 2.94445 -13.38018 0.82411 1.00000 0.00000 0.00000 true true true 30.00000 80.00000 200.00000 TREE +Models/trees/willow/willow_20260914_210538.j3o 172.12804 2.96088 -11.39893 1.61566 1.00000 0.00000 0.00000 true true true 30.00000 80.00000 200.00000 TREE +Models/trees/pine/medium/pine_medium_20260706_190953.j3o 164.84961 7.14919 15.62826 -3.10077 1.00000 -0.00000 0.00000 false true true 30.00000 80.00000 120.00000 NONE +Models/trees/pine/medium/pine_medium_20260706_190947.j3o 155.80219 9.33038 16.30900 2.93147 1.00000 0.00000 0.00000 false true true 30.00000 80.00000 120.00000 TREE +Models/trees/pine/medium/pine_medium_20260706_190939.j3o 143.65674 12.30280 20.52005 0.66436 1.00000 0.00000 0.00000 false true true 30.00000 80.00000 120.00000 TREE +Models/trees/pine/medium/pine_medium_20260706_190947.j3o 132.98308 15.19385 24.61456 -0.02996 1.00000 -0.00000 0.00000 false true true 30.00000 80.00000 120.00000 TREE +Models/trees/pine/medium/pine_medium_20260706_190953.j3o 130.20370 15.43188 16.47620 -0.60550 1.00000 -0.00000 0.00000 false true true 30.00000 80.00000 120.00000 NONE +Models/trees/pine/medium/pine_medium_20260706_190947.j3o 140.65765 13.16088 14.08950 -0.38551 1.00000 -0.00000 0.00000 false true true 30.00000 80.00000 120.00000 TREE +Models/trees/pine/medium/pine_medium_20260706_190939.j3o 148.62924 10.59328 11.05173 -0.38486 1.00000 -0.00000 0.00000 false true true 30.00000 80.00000 120.00000 TREE +Models/trees/pine/medium/pine_medium_20260706_190953.j3o 153.52829 9.72414 9.98234 -2.23312 1.00000 -0.00000 0.00000 false true true 30.00000 80.00000 120.00000 NONE +Models/trees/pine/medium/pine_medium_20260706_190939.j3o 163.28604 7.18056 7.21066 2.85147 1.00000 0.00000 0.00000 false true true 30.00000 80.00000 120.00000 TREE +Models/trees/pine/medium/pine_medium_20260706_190947.j3o 170.87265 5.19999 5.21380 1.22752 1.00000 0.00000 0.00000 false true true 30.00000 80.00000 120.00000 TREE diff --git a/blight-map/src/main/map/blight_water.blw b/blight-map/src/main/map/blight_water.blw index 3dadb1c..a4764ff 100644 --- a/blight-map/src/main/map/blight_water.blw +++ b/blight-map/src/main/map/blight_water.blw @@ -1,3 +1,4 @@ # polygon_points waterHeight flowDegrees speed waveScale waveAmplitude transparency waterR waterG waterB deepR deepG deepB 155.13664,11.00000,-898.11578;120.48705,11.00000,-897.61938;107.05534,11.00000,-890.41797;96.71703,11.00000,-875.01575;98.34164,11.00000,-854.85681;182.64165,11.00000,-829.23749;195.95512,11.00000,-848.04095 11.00000 180.0 0.5000 0.008000 0.10000 0.15000 0.05000 0.25000 0.55000 0.02000 0.12000 0.30000 219.67131,1.90000,-796.04559;197.17520,1.90000,-800.89313;192.60945,1.90000,-797.65149;190.13742,1.90000,-767.83209;221.88794,1.90000,-767.83209 1.90000 0.0 0.5000 0.008000 0.10000 0.15000 0.05000 0.25000 0.55000 0.02000 0.12000 0.30000 +145.45116,2.80000,4.87381;163.20361,2.80000,3.51198;172.70294,2.80000,2.84045;175.18158,2.80000,-1.35778;174.98405,2.80000,-7.36192;171.01855,2.80000,-12.93119;156.72575,2.80000,-17.72083;143.90723,2.80000,-10.86586 2.80000 0.0 0.5000 0.008000 0.10000 0.15000 0.10196 0.30196 0.10196 0.02000 0.12000 0.30000 diff --git a/blight-map/src/main/map/chunks/chunk_09_07.blc b/blight-map/src/main/map/chunks/chunk_09_07.blc index 9fb1858..1154abe 100644 Binary files a/blight-map/src/main/map/chunks/chunk_09_07.blc and b/blight-map/src/main/map/chunks/chunk_09_07.blc differ diff --git a/blight-map/src/main/map/chunks/chunk_09_08.blc b/blight-map/src/main/map/chunks/chunk_09_08.blc index 94144c7..1c1ccf3 100644 Binary files a/blight-map/src/main/map/chunks/chunk_09_08.blc and b/blight-map/src/main/map/chunks/chunk_09_08.blc differ diff --git a/blight-map/src/main/map/chunks/voxel_16_0_08_baked_lod0.j3o b/blight-map/src/main/map/chunks/voxel_16_0_08_baked_lod0.j3o index 70ecf0c..32ada0b 100644 Binary files a/blight-map/src/main/map/chunks/voxel_16_0_08_baked_lod0.j3o and b/blight-map/src/main/map/chunks/voxel_16_0_08_baked_lod0.j3o differ diff --git a/blight-map/src/main/map/chunks/voxel_16_0_08_baked_lod1.j3o b/blight-map/src/main/map/chunks/voxel_16_0_08_baked_lod1.j3o index 9742dc3..081cd50 100644 Binary files a/blight-map/src/main/map/chunks/voxel_16_0_08_baked_lod1.j3o and b/blight-map/src/main/map/chunks/voxel_16_0_08_baked_lod1.j3o differ diff --git a/blight-map/src/main/map/chunks/voxel_16_0_08_baked_lod2.j3o b/blight-map/src/main/map/chunks/voxel_16_0_08_baked_lod2.j3o index 3ac62aa..59872db 100644 Binary files a/blight-map/src/main/map/chunks/voxel_16_0_08_baked_lod2.j3o and b/blight-map/src/main/map/chunks/voxel_16_0_08_baked_lod2.j3o differ diff --git a/blight-map/src/main/map/chunks/voxel_16_0_15.blvc b/blight-map/src/main/map/chunks/voxel_16_0_15.blvc deleted file mode 100644 index cacd42a..0000000 Binary files a/blight-map/src/main/map/chunks/voxel_16_0_15.blvc and /dev/null differ diff --git a/blight-map/src/main/map/chunks/voxel_16_0_16_baked_lod0.j3o b/blight-map/src/main/map/chunks/voxel_16_0_16_baked_lod0.j3o index fd230fa..97570c2 100644 Binary files a/blight-map/src/main/map/chunks/voxel_16_0_16_baked_lod0.j3o and b/blight-map/src/main/map/chunks/voxel_16_0_16_baked_lod0.j3o differ diff --git a/blight-map/src/main/map/chunks/voxel_16_0_16_baked_lod1.j3o b/blight-map/src/main/map/chunks/voxel_16_0_16_baked_lod1.j3o index c355610..8907326 100644 Binary files a/blight-map/src/main/map/chunks/voxel_16_0_16_baked_lod1.j3o and b/blight-map/src/main/map/chunks/voxel_16_0_16_baked_lod1.j3o differ diff --git a/blight-map/src/main/map/chunks/voxel_16_0_16_baked_lod2.j3o b/blight-map/src/main/map/chunks/voxel_16_0_16_baked_lod2.j3o index 1a3545f..deb420f 100644 Binary files a/blight-map/src/main/map/chunks/voxel_16_0_16_baked_lod2.j3o and b/blight-map/src/main/map/chunks/voxel_16_0_16_baked_lod2.j3o differ diff --git a/blight-map/src/main/map/chunks/voxel_17_0_09_baked_lod0.j3o b/blight-map/src/main/map/chunks/voxel_17_0_09_baked_lod0.j3o index c6306b5..11826f8 100644 Binary files a/blight-map/src/main/map/chunks/voxel_17_0_09_baked_lod0.j3o and b/blight-map/src/main/map/chunks/voxel_17_0_09_baked_lod0.j3o differ diff --git a/blight-map/src/main/map/chunks/voxel_17_0_09_baked_lod1.j3o b/blight-map/src/main/map/chunks/voxel_17_0_09_baked_lod1.j3o index 5682506..c4a6d11 100644 Binary files a/blight-map/src/main/map/chunks/voxel_17_0_09_baked_lod1.j3o and b/blight-map/src/main/map/chunks/voxel_17_0_09_baked_lod1.j3o differ diff --git a/blight-map/src/main/map/chunks/voxel_17_0_09_baked_lod2.j3o b/blight-map/src/main/map/chunks/voxel_17_0_09_baked_lod2.j3o index b64d792..d998c5f 100644 Binary files a/blight-map/src/main/map/chunks/voxel_17_0_09_baked_lod2.j3o and b/blight-map/src/main/map/chunks/voxel_17_0_09_baked_lod2.j3o differ diff --git a/blight-map/src/main/map/chunks/voxel_17_0_10_baked_lod0.j3o b/blight-map/src/main/map/chunks/voxel_17_0_10_baked_lod0.j3o index e928ded..1e7fc95 100644 Binary files a/blight-map/src/main/map/chunks/voxel_17_0_10_baked_lod0.j3o and b/blight-map/src/main/map/chunks/voxel_17_0_10_baked_lod0.j3o differ diff --git a/blight-map/src/main/map/chunks/voxel_17_0_10_baked_lod1.j3o b/blight-map/src/main/map/chunks/voxel_17_0_10_baked_lod1.j3o index 4c5a3ee..193bb5d 100644 Binary files a/blight-map/src/main/map/chunks/voxel_17_0_10_baked_lod1.j3o and b/blight-map/src/main/map/chunks/voxel_17_0_10_baked_lod1.j3o differ diff --git a/blight-map/src/main/map/chunks/voxel_17_0_10_baked_lod2.j3o b/blight-map/src/main/map/chunks/voxel_17_0_10_baked_lod2.j3o index 5b6dbf4..eb0c90a 100644 Binary files a/blight-map/src/main/map/chunks/voxel_17_0_10_baked_lod2.j3o and b/blight-map/src/main/map/chunks/voxel_17_0_10_baked_lod2.j3o differ diff --git a/blight-map/src/main/map/chunks/voxel_17_0_15_baked_lod0.j3o b/blight-map/src/main/map/chunks/voxel_17_0_15_baked_lod0.j3o index a5d63d0..2df4c86 100644 Binary files a/blight-map/src/main/map/chunks/voxel_17_0_15_baked_lod0.j3o and b/blight-map/src/main/map/chunks/voxel_17_0_15_baked_lod0.j3o differ diff --git a/blight-map/src/main/map/chunks/voxel_17_0_16_baked_lod0.j3o b/blight-map/src/main/map/chunks/voxel_17_0_16_baked_lod0.j3o index 6a358e0..3c1c715 100644 Binary files a/blight-map/src/main/map/chunks/voxel_17_0_16_baked_lod0.j3o and b/blight-map/src/main/map/chunks/voxel_17_0_16_baked_lod0.j3o differ diff --git a/blight-map/src/main/map/chunks/voxel_17_0_16_baked_lod1.j3o b/blight-map/src/main/map/chunks/voxel_17_0_16_baked_lod1.j3o index 69fbdee..547c248 100644 Binary files a/blight-map/src/main/map/chunks/voxel_17_0_16_baked_lod1.j3o and b/blight-map/src/main/map/chunks/voxel_17_0_16_baked_lod1.j3o differ diff --git a/blight-map/src/main/map/chunks/voxel_17_0_16_baked_lod2.j3o b/blight-map/src/main/map/chunks/voxel_17_0_16_baked_lod2.j3o index c422526..a3d3bab 100644 Binary files a/blight-map/src/main/map/chunks/voxel_17_0_16_baked_lod2.j3o and b/blight-map/src/main/map/chunks/voxel_17_0_16_baked_lod2.j3o differ diff --git a/blight-map/src/main/map/chunks/voxel_18_0_08_baked_lod0.j3o b/blight-map/src/main/map/chunks/voxel_18_0_08_baked_lod0.j3o index facf820..44c36e7 100644 Binary files a/blight-map/src/main/map/chunks/voxel_18_0_08_baked_lod0.j3o and b/blight-map/src/main/map/chunks/voxel_18_0_08_baked_lod0.j3o differ diff --git a/blight-map/src/main/map/chunks/voxel_18_0_08_baked_lod1.j3o b/blight-map/src/main/map/chunks/voxel_18_0_08_baked_lod1.j3o index 06c8df2..72a9965 100644 Binary files a/blight-map/src/main/map/chunks/voxel_18_0_08_baked_lod1.j3o and b/blight-map/src/main/map/chunks/voxel_18_0_08_baked_lod1.j3o differ diff --git a/blight-map/src/main/map/chunks/voxel_18_0_08_baked_lod2.j3o b/blight-map/src/main/map/chunks/voxel_18_0_08_baked_lod2.j3o index 126a468..c882945 100644 Binary files a/blight-map/src/main/map/chunks/voxel_18_0_08_baked_lod2.j3o and b/blight-map/src/main/map/chunks/voxel_18_0_08_baked_lod2.j3o differ diff --git a/blight-map/src/main/map/chunks/voxel_18_0_09_baked_lod0.j3o b/blight-map/src/main/map/chunks/voxel_18_0_09_baked_lod0.j3o index 69ec157..c54b2f5 100644 Binary files a/blight-map/src/main/map/chunks/voxel_18_0_09_baked_lod0.j3o and b/blight-map/src/main/map/chunks/voxel_18_0_09_baked_lod0.j3o differ diff --git a/blight-map/src/main/map/chunks/voxel_18_0_09_baked_lod1.j3o b/blight-map/src/main/map/chunks/voxel_18_0_09_baked_lod1.j3o index c9a7840..03d6460 100644 Binary files a/blight-map/src/main/map/chunks/voxel_18_0_09_baked_lod1.j3o and b/blight-map/src/main/map/chunks/voxel_18_0_09_baked_lod1.j3o differ diff --git a/blight-map/src/main/map/chunks/voxel_18_0_09_baked_lod2.j3o b/blight-map/src/main/map/chunks/voxel_18_0_09_baked_lod2.j3o index 6c44c9e..793b0a4 100644 Binary files a/blight-map/src/main/map/chunks/voxel_18_0_09_baked_lod2.j3o and b/blight-map/src/main/map/chunks/voxel_18_0_09_baked_lod2.j3o differ diff --git a/blight-map/src/main/map/chunks/voxel_18_0_10_baked_lod0.j3o b/blight-map/src/main/map/chunks/voxel_18_0_10_baked_lod0.j3o index 269d4a5..4521d10 100644 Binary files a/blight-map/src/main/map/chunks/voxel_18_0_10_baked_lod0.j3o and b/blight-map/src/main/map/chunks/voxel_18_0_10_baked_lod0.j3o differ diff --git a/blight-map/src/main/map/chunks/voxel_18_0_10_baked_lod1.j3o b/blight-map/src/main/map/chunks/voxel_18_0_10_baked_lod1.j3o index d55148e..4f7f63d 100644 Binary files a/blight-map/src/main/map/chunks/voxel_18_0_10_baked_lod1.j3o and b/blight-map/src/main/map/chunks/voxel_18_0_10_baked_lod1.j3o differ diff --git a/blight-map/src/main/map/chunks/voxel_18_0_10_baked_lod2.j3o b/blight-map/src/main/map/chunks/voxel_18_0_10_baked_lod2.j3o index 54d238a..633c80f 100644 Binary files a/blight-map/src/main/map/chunks/voxel_18_0_10_baked_lod2.j3o and b/blight-map/src/main/map/chunks/voxel_18_0_10_baked_lod2.j3o differ