Skip to content

Commit

Permalink
fix rotation state creation
Browse files Browse the repository at this point in the history
  • Loading branch information
omergunr100 committed Feb 10, 2025
1 parent a305ee1 commit 21e5ba0
Showing 1 changed file with 9 additions and 4 deletions.
13 changes: 9 additions & 4 deletions src/main/java/com/gregtechceu/gtceu/utils/GTMatrixUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand All @@ -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;
Expand Down

0 comments on commit 21e5ba0

Please sign in to comment.