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 8ee9a86..ce14aff 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 @@ -451,8 +451,14 @@ public class SceneObjectState extends BaseAppState { // Property-Änderungen (Position, Rotation, Textur, Solid) SharedInput.ObjectPropertyChange prop; + boolean propChanged = false; while ((prop = input.objectPropertyQueue.poll()) != null) { handlePropertyChange(prop); + propChanged = true; + } + if (propChanged) { + refreshBedArrow(); + refreshBenchArrow(); } // Löschen @@ -830,10 +836,10 @@ public class SceneObjectState extends BaseAppState { float ox = meta.interactableOffsetX(); float oy = meta.interactableOffsetY(); float oz = meta.interactableOffsetZ(); - float wx2 = wx + ox * cos - oz * sin; + float wx2 = wx + ox * cos + oz * sin; float wy2 = wy + placementOffY + oy; - float wz2 = wz + ox * sin + oz * cos; - float roty2 = rotY + meta.interactableRotY(); + float wz2 = wz - ox * sin + oz * cos; + float roty2 = meta.interactableRotY() - rotY; if (meta.interactableType() == de.blight.common.model.InteractableType.BED) { Bed bed = new Bed(); bed.setLiegeX(wx2); bed.setLiegeY(wy2); bed.setLiegeZ(wz2); @@ -1204,7 +1210,8 @@ public class SceneObjectState extends BaseAppState { private void updateTerrainLevelIndicator() { if (terrainRingNode == null) return; - if (selectedIndices.isEmpty() || input.activeLayer != SharedInput.LAYER_OBJECTS_EDIT) { + if (selectedIndices.isEmpty() || input.activeLayer != SharedInput.LAYER_OBJECTS_EDIT + || input.objectEditTool == SharedInput.EDIT_TOOL_ROTATE) { terrainRingNode.setCullHint(Spatial.CullHint.Always); terrainStickNode.setCullHint(Spatial.CullHint.Always); return; @@ -1898,6 +1905,8 @@ public class SceneObjectState extends BaseAppState { clearSubSelection(); activeGizmo = -1; updateGizmoVisibility(); + hideBedArrow(); + hideBenchArrow(); input.selectedObjectInfo = null; input.objectSelectionChanged = true; @@ -1940,10 +1949,10 @@ public class SceneObjectState extends BaseAppState { float oy = meta.interactableOffsetY(); float oz = meta.interactableOffsetZ(); - float wx = so.getWorldX() + ox * cos - oz * sin; + float wx = so.getWorldX() + ox * cos + oz * sin; float wy = so.getGroundY() + oy; - float wz = so.getWorldZ() + ox * sin + oz * cos; - float iRotY = rotY + meta.interactableRotY(); + float wz = so.getWorldZ() - ox * sin + oz * cos; + float iRotY = meta.interactableRotY() - rotY; try { if (isBed) { @@ -2526,10 +2535,10 @@ public class SceneObjectState extends BaseAppState { float ox = meta.interactableOffsetX(); float oy = meta.interactableOffsetY(); float oz = meta.interactableOffsetZ(); - float wx = so.getWorldX() + ox * cos - oz * sin; + float wx = so.getWorldX() + ox * cos + oz * sin; float wy = so.getGroundY() + oy; - float wz = so.getWorldZ() + ox * sin + oz * cos; - return new float[]{wx, wy, wz, rotY + meta.interactableRotY()}; + float wz = so.getWorldZ() - ox * sin + oz * cos; + return new float[]{wx, wy, wz, meta.interactableRotY() - rotY}; } /** diff --git a/blight-map/src/main/map/benches/19f0ce17-838d-4938-8739-fc17de491657.bench b/blight-map/src/main/map/benches/19f0ce17-838d-4938-8739-fc17de491657.bench deleted file mode 100644 index fa6b14d..0000000 --- a/blight-map/src/main/map/benches/19f0ce17-838d-4938-8739-fc17de491657.bench +++ /dev/null @@ -1,9 +0,0 @@ -{ - "id": "19f0ce17-838d-4938-8739-fc17de491657", - "benchType": "Simple", - "sitzX": 237.17992, - "sitzY": 6.99606, - "sitzZ": -891.853, - "sitzRotY": -0.8307737, - "sitzSet": true -} \ No newline at end of file diff --git a/blight-map/src/main/map/blight_objects.blo b/blight-map/src/main/map/blight_objects.blo index 044bcfc..5142271 100644 --- a/blight-map/src/main/map/blight_objects.blo +++ b/blight-map/src/main/map/blight_objects.blo @@ -2,10 +2,10 @@ Models/northcoast/wrack1.j3o 286.06750 -3.50554 -947.28595 -1.76657 1.00000 -0.00000 -0.50184 false true true 30.00000 80.00000 120.00000 Models/trees/palm/palm_20260816_213338.j3o 277.36694 2.74803 -956.39905 0.43292 1.00000 0.00000 0.00000 false true true 30.00000 80.00000 120.00000 Models/trees/palm/palm_20260816_213338.j3o 280.27863 2.66144 -928.60248 -1.51992 1.00000 -0.00000 0.00000 false true true 30.00000 80.00000 120.00000 -Models/imported/bank1.j3o 237.17992 6.49606 -891.85303 -2.40157 1.00000 -0.00000 0.00000 true true true 30.00000 80.00000 120.00000 BENCH 19f0ce17-838d-4938-8739-fc17de491657 Models/trees/palm/palm_20260816_213341.j3o 249.12691 6.49606 -895.80035 -0.96942 1.00000 -0.00000 0.00000 false true true 30.00000 80.00000 120.00000 Models/trees/palm/palm_20260816_213341.j3o 243.51527 6.49606 -894.84039 -2.48591 1.00000 -0.00000 0.00000 false true true 30.00000 80.00000 120.00000 Models/trees/palm/palm_20260816_213338.j3o 233.49467 4.51015 -892.32526 2.66339 1.00000 0.00000 0.00000 false true true 30.00000 80.00000 120.00000 Models/trees/palm/palm_20260816_213341.j3o 247.05431 6.44288 -888.47949 1.23606 1.00000 0.00000 0.00000 false true true 30.00000 80.00000 120.00000 Models/trees/palm/palm_20260816_213341.j3o 239.43253 6.49157 -886.23218 -2.49448 1.00000 -0.00000 0.00000 false true true 30.00000 80.00000 120.00000 Models/trees/palm/palm_20260816_213341.j3o 270.73062 3.06689 -913.67090 -1.45828 1.00000 -0.00000 0.00000 false true true 30.00000 80.00000 120.00000 +Models/imported/bank1.j3o 236.63928 6.49530 -888.17450 -3.22597 1.00000 0.00000 0.00000 true true true 30.00000 80.00000 120.00000 BENCH 9ac9943d-0e12-4d5c-8323-0e2b92eebdec