]> git.lizzy.rs Git - LightOverlay.git/blobdiff - fabric/src/main/java/me/shedaniel/lightoverlay/fabric/FrustumHelper.java
Multi-loader common module build
[LightOverlay.git] / fabric / src / main / java / me / shedaniel / lightoverlay / fabric / FrustumHelper.java
index 278ff84af8ca37ad836553c0360db96780f9d959..ee36fdc4b8772d9a5d57917656882aae75e8966c 100644 (file)
@@ -1,21 +1,21 @@
 package me.shedaniel.lightoverlay.fabric;
 
-import net.minecraft.client.render.Frustum;
-import net.minecraft.client.util.math.Vector4f;
+import com.mojang.math.Vector4f;
+import net.minecraft.client.renderer.culling.Frustum;
 
 public class FrustumHelper {
     public static boolean isVisible(Frustum frustum, double minX, double minY, double minZ, double maxX, double maxY, double maxZ) {
-        float x1 = (float) (minX - frustum.x);
-        float y1 = (float) (minY - frustum.y);
-        float z1 = (float) (minZ - frustum.z);
-        float x2 = (float) (maxX - frustum.x);
-        float y2 = (float) (maxY - frustum.y);
-        float z2 = (float) (maxZ - frustum.z);
+        float x1 = (float) (minX - frustum.camX);
+        float y1 = (float) (minY - frustum.camY);
+        float z1 = (float) (minZ - frustum.camZ);
+        float x2 = (float) (maxX - frustum.camX);
+        float y2 = (float) (maxY - frustum.camY);
+        float z2 = (float) (maxZ - frustum.camZ);
         return isAnyCornerVisible(frustum, x1, y1, z1, x2, y2, z2);
     }
     
     private static boolean isAnyCornerVisible(Frustum frustum, float x1, float y1, float z1, float x2, float y2, float z2) {
-        Vector4f[] homogeneousCoordinates = frustum.homogeneousCoordinates;
+        Vector4f[] homogeneousCoordinates = frustum.frustumData;
         for (Vector4f vector4f : homogeneousCoordinates) {
             if (dotProduct(vector4f, x1, y1, z1, 1.0F) <= 0.0F && dotProduct(vector4f, x2, y1, z1, 1.0F) <= 0.0F && dotProduct(vector4f, x1, y2, z1, 1.0F) <= 0.0F && dotProduct(vector4f, x2, y2, z1, 1.0F) <= 0.0F && dotProduct(vector4f, x1, y1, z2, 1.0F) <= 0.0F && dotProduct(vector4f, x2, y1, z2, 1.0F) <= 0.0F && dotProduct(vector4f, x1, y2, z2, 1.0F) <= 0.0F && dotProduct(vector4f, x2, y2, z2, 1.0F) <= 0.0F) {
                 return false;
@@ -26,6 +26,6 @@ public class FrustumHelper {
     }
     
     private static float dotProduct(Vector4f self, float x, float y, float z, float w) {
-        return self.getX() * x + self.getY() * y + self.getZ() * z + self.getW() * w;
+        return self.x() * x + self.y() * y + self.z() * z + self.w() * w;
     }
 }