This commit is contained in:
2026-01-02 18:04:49 +01:00
parent 07f940caf1
commit 3000585586

View File

@@ -116,8 +116,8 @@ final class FenceGateAnimation {
FenceGateSection section = classifyFenceGateQuad(quad, leftRightIsX);
switch (section) {
case POSTS -> posts.add(dir, quad);
case LEFT -> left.add(dir, quad);
case RIGHT -> right.add(dir, quad);
case LEFT -> addDoubleSided(left, dir, quad);
case RIGHT -> addDoubleSided(right, dir, quad);
}
}
}
@@ -148,6 +148,27 @@ final class FenceGateAnimation {
private enum FenceGateSection { POSTS, LEFT, RIGHT }
private static void addDoubleSided(FenceGateCollector target, Direction dir, BakedQuad quad) {
target.add(dir, quad);
target.add(dir, reverseQuad(quad));
}
private static BakedQuad reverseQuad(BakedQuad quad) {
int[] data = quad.vertexData();
int stride = data.length / 4;
int[] flipped = new int[data.length];
for (int v = 0; v < 4; v++) {
int src = (3 - v) * stride;
int dst = v * stride;
System.arraycopy(data, src, flipped, dst, stride);
}
Direction face = quad.face();
Direction opposite = (face == null) ? null : face.getOpposite();
return new BakedQuad(flipped, quad.tintIndex(), opposite, quad.sprite(), quad.shade(), quad.lightEmission());
}
private static final class FenceGateModels {
final BlockStateModel posts;
final BlockStateModel left;