diff --git a/blight-assets/src/main/resources/.thumbnails/Models/waffen/schwerter/rostiges_kurzschwert.j3o.thumb.png b/blight-assets/src/main/resources/.thumbnails/Models/waffen/schwerter/rostiges_kurzschwert.j3o.thumb.png index b2f9e2d..b73f6de 100644 Binary files a/blight-assets/src/main/resources/.thumbnails/Models/waffen/schwerter/rostiges_kurzschwert.j3o.thumb.png and b/blight-assets/src/main/resources/.thumbnails/Models/waffen/schwerter/rostiges_kurzschwert.j3o.thumb.png differ diff --git a/blight-assets/src/main/resources/Models/waffen/schwerter/rostiger_zweihaender.j3o b/blight-assets/src/main/resources/Models/waffen/schwerter/rostiger_zweihaender.j3o index af6a29b..b5c807d 100644 Binary files a/blight-assets/src/main/resources/Models/waffen/schwerter/rostiger_zweihaender.j3o and b/blight-assets/src/main/resources/Models/waffen/schwerter/rostiger_zweihaender.j3o differ diff --git a/blight-assets/src/main/resources/Models/waffen/schwerter/rostiger_zweihaender.j3o.meta b/blight-assets/src/main/resources/Models/waffen/schwerter/rostiger_zweihaender.j3o.meta index f838199..4eb655c 100644 --- a/blight-assets/src/main/resources/Models/waffen/schwerter/rostiger_zweihaender.j3o.meta +++ b/blight-assets/src/main/resources/Models/waffen/schwerter/rostiger_zweihaender.j3o.meta @@ -1,4 +1,4 @@ -#Mon Oct 12 14:17:44 CEST 2026 +#Mon Oct 19 14:39:04 CEST 2026 attachedEmitters.count=0 attachedLights.count=0 attachedSounds.count=0 diff --git a/blight-assets/src/main/resources/Models/waffen/schwerter/rostiges_kurzschwert.j3o b/blight-assets/src/main/resources/Models/waffen/schwerter/rostiges_kurzschwert.j3o index 9e2933c..9f36591 100644 Binary files a/blight-assets/src/main/resources/Models/waffen/schwerter/rostiges_kurzschwert.j3o and b/blight-assets/src/main/resources/Models/waffen/schwerter/rostiges_kurzschwert.j3o differ diff --git a/blight-assets/src/main/resources/Models/waffen/schwerter/rostiges_kurzschwert.j3o.meta b/blight-assets/src/main/resources/Models/waffen/schwerter/rostiges_kurzschwert.j3o.meta index b861f0b..865d7d6 100644 --- a/blight-assets/src/main/resources/Models/waffen/schwerter/rostiges_kurzschwert.j3o.meta +++ b/blight-assets/src/main/resources/Models/waffen/schwerter/rostiges_kurzschwert.j3o.meta @@ -1,4 +1,4 @@ -#Thu Oct 15 15:05:26 CEST 2026 +#Mon Oct 19 14:39:11 CEST 2026 attachedEmitters.count=0 attachedLights.count=0 attachedSounds.count=0 diff --git a/blight-assets/src/main/resources/items/weapon/rostiger_zweihaender.item b/blight-assets/src/main/resources/items/weapon/rostiger_zweihaender.item index d04ffd2..f9f1169 100644 --- a/blight-assets/src/main/resources/items/weapon/rostiger_zweihaender.item +++ b/blight-assets/src/main/resources/items/weapon/rostiger_zweihaender.item @@ -12,13 +12,13 @@ "damage": 50, "grip": { "posX": 0.10248406, - "posY": 0.104730606, + "posY": 0.10473058, "posZ": 0.4630257, "rotX": 0.0, "rotY": 0.0, "rotZ": 0.0, "grip2PosX": 0.0024840608, - "grip2PosY": 0.104730606, + "grip2PosY": 0.10473058, "grip2PosZ": 0.6630257, "handOffsetX": 0.0, "handOffsetY": 0.0, diff --git a/blight-assets/src/main/resources/items/weapon/rostiges_kurzschwert.item b/blight-assets/src/main/resources/items/weapon/rostiges_kurzschwert.item index 87e80f0..7cd4f7e 100644 --- a/blight-assets/src/main/resources/items/weapon/rostiges_kurzschwert.item +++ b/blight-assets/src/main/resources/items/weapon/rostiges_kurzschwert.item @@ -12,8 +12,8 @@ "damage": 0, "grip": { "posX": 0.1114975, - "posY": 0.07676052, - "posZ": -0.27503356, + "posY": 0.07795838, + "posZ": 0.36503196, "rotX": 0.0, "rotY": 0.0, "rotZ": 0.0, diff --git a/blight-assets/src/main/resources/weapon_attachment.json b/blight-assets/src/main/resources/weapon_attachment.json index 77fba56..14d00ea 100644 --- a/blight-assets/src/main/resources/weapon_attachment.json +++ b/blight-assets/src/main/resources/weapon_attachment.json @@ -1,8 +1,8 @@ { "SWORD": { - "handOffX": 0.105, - "handOffY": 0.1, - "handOffZ": 0.5, + "handOffX": 0.095, + "handOffY": 0.045, + "handOffZ": 0.645, "hand2OffX": 0.0, "hand2OffY": 0.0, "hand2OffZ": 0.0 diff --git a/blight-editor/src/main/java/de/blight/editor/EditorApp.java b/blight-editor/src/main/java/de/blight/editor/EditorApp.java index 8551a70..2b1f193 100644 --- a/blight-editor/src/main/java/de/blight/editor/EditorApp.java +++ b/blight-editor/src/main/java/de/blight/editor/EditorApp.java @@ -174,7 +174,7 @@ public class EditorApp extends Application { animPreviewController = new de.blight.editor.toolset.anim.AnimPreviewController(toolCtx); animSetController = new de.blight.editor.toolset.anim.AnimSetController(toolCtx); objectController = new de.blight.editor.toolset.object.ObjectController(toolCtx); - modelEditorController = new de.blight.editor.toolset.model.ModelEditorController(toolCtx, () -> assetController.openOverlay()); + modelEditorController = new de.blight.editor.toolset.model.ModelEditorController(toolCtx, () -> { assetController.openOverlay(); assetController.expandModelsNode(); }); modelEditorController.setObjectController(objectController); atmosphereController = new de.blight.editor.toolset.atmosphere.AtmosphereController(toolCtx); waterController = new de.blight.editor.toolset.water.WaterController(toolCtx); diff --git a/blight-editor/src/main/java/de/blight/editor/state/ModelEditorState.java b/blight-editor/src/main/java/de/blight/editor/state/ModelEditorState.java index 820644d..e815e1c 100644 --- a/blight-editor/src/main/java/de/blight/editor/state/ModelEditorState.java +++ b/blight-editor/src/main/java/de/blight/editor/state/ModelEditorState.java @@ -1551,7 +1551,7 @@ public class ModelEditorState extends BaseAppState { // Schritt 3: Richtung A→B auf +Z ausrichten Vector3f bladeDir = B.subtract(A).normalizeLocal(); - if (bladeDir.z < 0) bladeDir.negateLocal(); // +Z-Richtung bevorzugen + if (bladeDir.z > 0) bladeDir.negateLocal(); // -Z-Richtung bevorzugen Quaternion rot1 = awRotateToZ(bladeDir); // Mitte der Hauptachse → Ursprung @@ -1609,11 +1609,11 @@ public class ModelEditorState extends BaseAppState { float guardNorm = (float) guardBucket / (BKTS - 1); log.info("[ModelEditor] AlignWeapon: Parierstange bei normZ={} (Bucket {}/{})", String.format("%.2f", guardNorm), guardBucket, BKTS); - if (guardNorm > 0.5f) { - // Parierstange in +Z-Hälfte → Pommel bei +Z, Klinge bei -Z → 180° um X flippen + if (guardNorm < 0.5f) { + // Parierstange in -Z-Hälfte → Pommel bei -Z, Klinge bei +Z → 180° um X flippen Quaternion flip = new Quaternion().fromAngles(FastMath.PI, 0f, 0f); combined = flip.mult(combined); - log.info("[ModelEditor] AlignWeapon: Pommel bei +Z detektiert → Schwert geflippt"); + log.info("[ModelEditor] AlignWeapon: Pommel bei -Z detektiert → Schwert geflippt"); } } } @@ -2156,8 +2156,9 @@ public class ModelEditorState extends BaseAppState { float g2x = input.gripEditorGrip2PosX; float g2y = input.gripEditorGrip2PosY; float g2z = input.gripEditorGrip2PosZ; - boolean bladeAtMinusZ = g2z > g1z; - boolean isTwoHand = bladeAtMinusZ && (g2x != 0f || g2y != 0f || g2z != 0f); + boolean hasGrip2 = g2x != 0f || g2y != 0f || g2z != 0f; + boolean bladeAtMinusZ = hasGrip2 ? (g2z > g1z) : (g1z > 0f); + boolean isTwoHand = hasGrip2 && bladeAtMinusZ; Quaternion charWorldRot = charPreviewNode.getWorldRotation(); Quaternion charWorldRotInv = charWorldRot.inverse(); diff --git a/blight-editor/src/main/java/de/blight/editor/toolset/model/ModelEditorController.java b/blight-editor/src/main/java/de/blight/editor/toolset/model/ModelEditorController.java index 131fd4b..fed9b84 100644 --- a/blight-editor/src/main/java/de/blight/editor/toolset/model/ModelEditorController.java +++ b/blight-editor/src/main/java/de/blight/editor/toolset/model/ModelEditorController.java @@ -277,11 +277,8 @@ public class ModelEditorController implements ToolController { public void openModelEditor(String relPath, Path absolutePath) { this.pendingRelPath = relPath; this.pendingAbsPath = absolutePath; - if (ctx.registry().getActive() == this) { - activate(); - } else { - ctx.registry().activate(this); - } + ctx.switchToWorld().run(); + ctx.registry().activate(this); } /** Öffnet den Datei-Dialog für den Modell-Import. */ diff --git a/blight-game/src/main/java/de/blight/game/control/WeaponAttachmentControl.java b/blight-game/src/main/java/de/blight/game/control/WeaponAttachmentControl.java index e93a6de..db6f68b 100644 --- a/blight-game/src/main/java/de/blight/game/control/WeaponAttachmentControl.java +++ b/blight-game/src/main/java/de/blight/game/control/WeaponAttachmentControl.java @@ -225,7 +225,10 @@ public class WeaponAttachmentControl extends AbstractControl { Quaternion animDelta = (handBindRotInChar != null) ? boneRotInChar.mult(handBindRotInChar.inverse()) : boneRotInChar; - boolean bladeAtMinusZ2 = grip != null && grip.getGrip2PosZ() != 0f && grip.getGrip2PosZ() > grip.getPosZ(); + boolean bladeAtMinusZ2 = grip != null && ( + (grip.getGrip2PosX() != 0f || grip.getGrip2PosY() != 0f || grip.getGrip2PosZ() != 0f) + ? grip.getGrip2PosZ() > grip.getPosZ() + : grip.getPosZ() > 0f); Quaternion bladeFlip2 = bladeAtMinusZ2 ? new Quaternion().fromAngles(com.jme3.math.FastMath.PI, 0f, 0f) : new Quaternion(); @@ -369,7 +372,10 @@ public class WeaponAttachmentControl extends AbstractControl { DEG_TO_RAD * grip.getRotY(), DEG_TO_RAD * grip.getRotZ()) : new Quaternion(); - boolean bladeAtMinusZ = grip != null && grip.getGrip2PosZ() != 0f && grip.getGrip2PosZ() > grip.getPosZ(); + boolean bladeAtMinusZ = grip != null && ( + (grip.getGrip2PosX() != 0f || grip.getGrip2PosY() != 0f || grip.getGrip2PosZ() != 0f) + ? grip.getGrip2PosZ() > grip.getPosZ() + : grip.getPosZ() > 0f); Quaternion bladeFlip = bladeAtMinusZ ? new Quaternion().fromAngles(com.jme3.math.FastMath.PI, 0f, 0f) : new Quaternion();