VulkanShader_1.21.10-0.0.4-alpha.jar
Download file
package net.vulkanmod.render.model.quad;
import net.minecraft.class_2350;
public class ModelQuadFlags {
public static final int IS_PARTIAL = 1;
public static final int IS_PARALLEL = 2;
public static final int IS_ALIGNED = 4;
public static boolean contains(int flags, int mask) {
return (flags & mask) != 0;
}
public static int getQuadFlags(ModelQuadView quad, class_2350 face) {
float minX = 32.0F;
float minY = 32.0F;
float minZ = 32.0F;
float maxX = -32.0F;
float maxY = -32.0F;
float maxZ = -32.0F;
for(int i = 0; i < 4; ++i) {
float x = quad.getX(i);
float y = quad.getY(i);
float z = quad.getZ(i);
minX = Math.min(minX, x);
minY = Math.min(minY, y);
minZ = Math.min(minZ, z);
maxX = Math.max(maxX, x);
maxY = Math.max(maxY, y);
maxZ = Math.max(maxZ, z);
}
boolean var10000;
switch (face.method_10166()) {
case field_11048 -> var10000 = minY >= 1.0E-4F || minZ >= 1.0E-4F || maxY <= 0.9999F || maxZ <= 0.9999F;
case field_11052 -> var10000 = minX >= 1.0E-4F || minZ >= 1.0E-4F || maxX <= 0.9999F || maxZ <= 0.9999F;
case field_11051 -> var10000 = minX >= 1.0E-4F || minY >= 1.0E-4F || maxX <= 0.9999F || maxY <= 0.9999F;
default -> throw new MatchException((String)null, (Throwable)null);
}
boolean partial = var10000;
switch (face.method_10166()) {
case field_11048 -> var10000 = minX == maxX;
case field_11052 -> var10000 = minY == maxY;
case field_11051 -> var10000 = minZ == maxZ;
default -> throw new MatchException((String)null, (Throwable)null);
}
boolean parallel;
label86: {
label85: {
parallel = var10000;
if (parallel) {
switch (face) {
case field_11033:
if (minY < 1.0E-4F) {
break label85;
}
break;
case field_11036:
if (maxY > 0.9999F) {
break label85;
}
break;
case field_11043:
if (minZ < 1.0E-4F) {
break label85;
}
break;
case field_11035:
if (maxZ > 0.9999F) {
break label85;
}
break;
case field_11039:
if (minX < 1.0E-4F) {
break label85;
}
break;
case field_11034:
if (maxX > 0.9999F) {
break label85;
}
break;
default:
throw new MatchException((String)null, (Throwable)null);
}
}
var10000 = false;
break label86;
}
var10000 = true;
}
boolean aligned = var10000;
int flags = 0;
if (partial) {
flags |= 1;
}
if (parallel) {
flags |= 2;
}
if (aligned) {
flags |= 4;
}
return flags;
}
}
Download file