Skip to content

Commit 0ef9f9a

Browse files
committed
Use normal to calculate quad facing
1 parent a7ffe3d commit 0ef9f9a

File tree

4 files changed

+17
-10
lines changed

4 files changed

+17
-10
lines changed

src/main/java/net/vulkanmod/mixin/render/block/BakedQuadM.java

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,9 @@ public class BakedQuadM implements ModelQuadView {
3131
private void onInit(int[] vertices, int tintIndex, Direction face, TextureAtlasSprite textureAtlasSprite, boolean shade, CallbackInfo ci) {
3232
this.flags = ModelQuadFlags.getQuadFlags(this, face);
3333

34-
if (face != null) {
35-
this.facing = QuadFacing.fromDirection(face);
36-
this.normal = NormalHelper.packedNormalFromDirection(face);
37-
} else {
38-
int packedNormal = NormalHelper.computePackedNormal(this);
39-
this.facing = QuadFacing.fromNormal(packedNormal);
40-
this.normal = packedNormal;
41-
}
34+
int packedNormal = NormalHelper.computePackedNormal(this);
35+
this.normal = packedNormal;
36+
this.facing = QuadFacing.fromNormal(packedNormal);
4237
}
4338

4439
@Override

src/main/java/net/vulkanmod/render/chunk/build/frapi/mesh/QuadViewImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ public void load() {
7373
isGeometryInvalid = false;
7474
nominalFace = lightFace();
7575
NormalHelper.unpackNormal(packedFaceNormal(), faceNormal);
76-
facing = QuadFacing.fromDirection(lightFace());
76+
facing = QuadFacing.fromNormal(faceNormal);
7777
}
7878

7979
protected void computeGeometry() {
@@ -90,7 +90,7 @@ protected void computeGeometry() {
9090
// depends on light face
9191
data[baseIndex + HEADER_BITS] = EncodingFormat.geometryFlags(data[baseIndex + HEADER_BITS], ModelQuadFlags.getQuadFlags(this, lightFace));
9292

93-
facing = QuadFacing.fromDirection(lightFace);
93+
facing = QuadFacing.fromNormal(faceNormal);
9494
}
9595
}
9696

src/main/java/net/vulkanmod/render/chunk/cull/QuadFacing.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import net.minecraft.core.Direction;
44
import net.minecraft.util.Mth;
55
import net.vulkanmod.render.vertex.format.I32_SNorm;
6+
import org.joml.Vector3f;
67

78
public enum QuadFacing {
89
X_POS,
@@ -32,6 +33,14 @@ public static QuadFacing fromNormal(int packedNormal) {
3233
final float y = I32_SNorm.unpackY(packedNormal);
3334
final float z = I32_SNorm.unpackZ(packedNormal);
3435

36+
return fromNormal(x, y, z);
37+
}
38+
39+
public static QuadFacing fromNormal(Vector3f normal) {
40+
return fromNormal(normal.x(), normal.y(), normal.z());
41+
}
42+
43+
public static QuadFacing fromNormal(float x, float y, float z) {
3544
final float absX = Math.abs(x);
3645
final float absY = Math.abs(y);
3746
final float absZ = Math.abs(z);

src/main/java/net/vulkanmod/render/model/quad/ModelQuad.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44
import net.minecraft.core.Direction;
55
import net.vulkanmod.render.chunk.cull.QuadFacing;
66

7+
/**
8+
* Only used by FluidRenderer
9+
*/
710
public class ModelQuad implements ModelQuadView {
811
public static final int VERTEX_SIZE = 8;
912

0 commit comments

Comments
 (0)