From 21e5ba0badf274d52d626f40c0930da9af1609f8 Mon Sep 17 00:00:00 2001 From: omergunr100 Date: Mon, 10 Feb 2025 13:35:37 +0200 Subject: [PATCH] fix rotation state creation --- .../com/gregtechceu/gtceu/utils/GTMatrixUtils.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/gregtechceu/gtceu/utils/GTMatrixUtils.java b/src/main/java/com/gregtechceu/gtceu/utils/GTMatrixUtils.java index 8e763fc9f9..d504751db6 100644 --- a/src/main/java/com/gregtechceu/gtceu/utils/GTMatrixUtils.java +++ b/src/main/java/com/gregtechceu/gtceu/utils/GTMatrixUtils.java @@ -106,12 +106,16 @@ public static float upwardFacingAngle(Direction upward) { } * Mth.PI / 2; } - public static void rotateMatrixToFacing(Matrix4f matrix, Direction frontFace, Direction upwardFace) { + public static Vector3f rotateMatrixToFront(Matrix4f matrix, Direction frontFace) { // rotate frontFacing to correct cardinal direction var front = frontFace.step(); rotateMatrix(matrix, Direction.NORTH.step(), frontFace.step(), front); + return front; + } + + public static void rotateMatrixToUp(Matrix4f matrix, Vector3f front, Direction upwardsFace) { // rotate upwards face to the correct orientation - rotateMatrix(matrix, upwardFacingAngle(upwardFace), front.x, front.y, front.z); + rotateMatrix(matrix, upwardFacingAngle(upwardsFace), front.x, front.y, front.z); } public static SimpleModelState createRotationState(Direction frontFace, Direction upwardFace) { @@ -121,8 +125,9 @@ public static SimpleModelState createRotationState(Direction frontFace, Directio return rotation; } var matrix = new Matrix4f(); - rotateMatrixToFacing(matrix, frontFace, upwardFace); - + var front = rotateMatrixToFront(matrix, frontFace); + front.absolute(); + rotateMatrixToUp(matrix, front, upwardFace); var rotation = new SimpleModelState(new Transformation(matrix)); rotations.put(frontFace, upwardFace, rotation); return rotation;