aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build.gradle14
-rw-r--r--gradle.properties2
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java13
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/render/culling/OcclusionCuller.java45
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/render/culling/OcclusionCulling.java26
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/render/culling/ReducedWorldProvider.java19
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/render/culling/WorldProvider.java28
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/render/culling/package-info.java4
8 files changed, 3 insertions, 148 deletions
diff --git a/build.gradle b/build.gradle
index 3e189db1..65e0a801 100644
--- a/build.gradle
+++ b/build.gradle
@@ -95,17 +95,6 @@ repositories {
}
}
- // For Occlusion Culling library
- exclusiveContent {
- forRepository {
- maven { url = "https://repo.codemc.io/repository/maven-public/" }
- }
-
- filter {
- includeGroup "com.logisticscraft"
- }
- }
-
// For NEU repo parser
exclusiveContent {
forRepository {
@@ -179,9 +168,6 @@ dependencies {
include modImplementation("meteordevelopment:discord-ipc:1.1")
- // Occlusion Culling (https://github.com/LogisticsCraft/OcclusionCulling)
- include implementation("com.logisticscraft:occlusionculling:${project.occlusionculling_version}")
-
// NEU RepoParser
include implementation("moe.nea:neurepoparser:${project.repoparser_version}")
diff --git a/gradle.properties b/gradle.properties
index 4d5c025a..11e2c3ed 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -28,8 +28,6 @@ jei_version = 19.8.4.113
# Minecraft and Related Libraries
## McDev Annotations (https://central.sonatype.com/artifact/com.demonwav.mcdev/annotations)
mcdev_annotations_version = 2.1.0
-## Occlusion Culling (https://github.com/LogisticsCraft/OcclusionCulling)
-occlusionculling_version = 0.0.8-SNAPSHOT
## neu repoparser (https://repo.nea.moe/#/releases/moe/nea/neurepoparser/)
repoparser_version = 1.6.0
## Networth Calculator (https://github.com/AzureAaron/networth-calculator)
diff --git a/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java b/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java
index c87b43ad..d473badf 100644
--- a/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java
+++ b/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java
@@ -4,7 +4,6 @@ import com.mojang.blaze3d.systems.RenderSystem;
import de.hysky.skyblocker.SkyblockerMod;
import de.hysky.skyblocker.annotations.Init;
import de.hysky.skyblocker.mixins.accessors.BeaconBlockEntityRendererInvoker;
-import de.hysky.skyblocker.utils.render.culling.OcclusionCulling;
import de.hysky.skyblocker.utils.render.title.Title;
import de.hysky.skyblocker.utils.render.title.TitleContainer;
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext;
@@ -63,15 +62,9 @@ public class RenderHelper {
}
public static void renderFilled(WorldRenderContext context, double minX, double minY, double minZ, double maxX, double maxY, double maxZ, float[] colorComponents, float alpha, boolean throughWalls) {
- if (throughWalls) {
- if (FrustumUtils.isVisible(minX, minY, minZ, maxX, maxY, maxZ)) {
- renderFilledInternal(context, minX, minY, minZ, maxX, maxY, maxZ, colorComponents, alpha, true);
- }
- } else {
- if (OcclusionCulling.getRegularCuller().isVisible(minX, minY, minZ, maxX, maxY, maxZ)) {
- renderFilledInternal(context, minX, minY, minZ, maxX, maxY, maxZ, colorComponents, alpha, false);
- }
- }
+ if (FrustumUtils.isVisible(minX, minY, minZ, maxX, maxY, maxZ)) {
+ renderFilledInternal(context, minX, minY, minZ, maxX, maxY, maxZ, colorComponents, alpha, throughWalls);
+ }
}
private static void renderFilledInternal(WorldRenderContext context, double minX, double minY, double minZ, double maxX, double maxY, double maxZ, float[] colorComponents, float alpha, boolean throughWalls) {
diff --git a/src/main/java/de/hysky/skyblocker/utils/render/culling/OcclusionCuller.java b/src/main/java/de/hysky/skyblocker/utils/render/culling/OcclusionCuller.java
deleted file mode 100644
index 3c48a47e..00000000
--- a/src/main/java/de/hysky/skyblocker/utils/render/culling/OcclusionCuller.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package de.hysky.skyblocker.utils.render.culling;
-
-import com.logisticscraft.occlusionculling.OcclusionCullingInstance;
-import com.logisticscraft.occlusionculling.cache.ArrayOcclusionCache;
-import com.logisticscraft.occlusionculling.util.Vec3d;
-
-import de.hysky.skyblocker.utils.render.FrustumUtils;
-import net.minecraft.client.MinecraftClient;
-
-public class OcclusionCuller {
- private static final MinecraftClient CLIENT = MinecraftClient.getInstance();
-
- private final OcclusionCullingInstance instance;
-
- // Reused objects to reduce allocation overhead
- private final Vec3d cameraPos = new Vec3d(0, 0, 0);
- private final Vec3d min = new Vec3d(0, 0, 0);
- private final Vec3d max = new Vec3d(0, 0, 0);
-
- OcclusionCuller(int tracingDistance, WorldProvider worldProvider, double aabbExpansion) {
- this.instance = new OcclusionCullingInstance(tracingDistance, worldProvider, new ArrayOcclusionCache(tracingDistance), aabbExpansion);
- }
-
- private void updateCameraPos() {
- var camera = CLIENT.gameRenderer.getCamera().getPos();
- cameraPos.set(camera.x, camera.y, camera.z);
- }
-
- /**
- * This first checks checks if the bounding box is within the camera's FOV, if
- * it is then it checks for whether it's occluded or not.
- *
- * @return A boolean representing whether the bounding box is fully visible or
- * not as per the instance's settings.
- */
- public boolean isVisible(double x1, double y1, double z1, double x2, double y2, double z2) {
- if (!FrustumUtils.isVisible(x1, y1, z1, x2, y2, z2)) return false;
-
- updateCameraPos();
- min.set(x1, y1, z1);
- max.set(x2, y2, z2);
-
- return instance.isAABBVisible(min, max, cameraPos);
- }
-}
diff --git a/src/main/java/de/hysky/skyblocker/utils/render/culling/OcclusionCulling.java b/src/main/java/de/hysky/skyblocker/utils/render/culling/OcclusionCulling.java
deleted file mode 100644
index eb607aa5..00000000
--- a/src/main/java/de/hysky/skyblocker/utils/render/culling/OcclusionCulling.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package de.hysky.skyblocker.utils.render.culling;
-
-import de.hysky.skyblocker.annotations.Init;
-
-public class OcclusionCulling {
- private static final int TRACING_DISTANCE = 128;
- private static OcclusionCuller regularCuller = null;
- private static OcclusionCuller reducedCuller = null;
-
- /**
- * Initializes the occlusion culling instances
- */
- @Init
- public static void init() {
- regularCuller = new OcclusionCuller(TRACING_DISTANCE, new WorldProvider(), 2);
- reducedCuller = new OcclusionCuller(TRACING_DISTANCE, new ReducedWorldProvider(), 0);
- }
-
- public static OcclusionCuller getRegularCuller() {
- return regularCuller;
- }
-
- public static OcclusionCuller getReducedCuller() {
- return reducedCuller;
- }
-}
diff --git a/src/main/java/de/hysky/skyblocker/utils/render/culling/ReducedWorldProvider.java b/src/main/java/de/hysky/skyblocker/utils/render/culling/ReducedWorldProvider.java
deleted file mode 100644
index ca55ba05..00000000
--- a/src/main/java/de/hysky/skyblocker/utils/render/culling/ReducedWorldProvider.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package de.hysky.skyblocker.utils.render.culling;
-
-import net.minecraft.block.BlockState;
-import net.minecraft.registry.tag.BlockTags;
-import net.minecraft.util.math.BlockPos;
-
-public class ReducedWorldProvider extends WorldProvider {
-
- @Override
- public boolean isOpaqueFullCube(int x, int y, int z) {
- BlockPos pos = new BlockPos(x, y, z);
- BlockState state = this.world.getBlockState(pos);
-
- //Fixes edge cases where stairs etc aren't treated as being full blocks for the use case
- boolean isException = state.isIn(BlockTags.STAIRS) || state.isIn(BlockTags.WALLS) || state.isIn(BlockTags.FENCES);
-
- return isException || this.world.getBlockState(pos).isOpaqueFullCube();
- }
-}
diff --git a/src/main/java/de/hysky/skyblocker/utils/render/culling/WorldProvider.java b/src/main/java/de/hysky/skyblocker/utils/render/culling/WorldProvider.java
deleted file mode 100644
index 722878b0..00000000
--- a/src/main/java/de/hysky/skyblocker/utils/render/culling/WorldProvider.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package de.hysky.skyblocker.utils.render.culling;
-
-import com.logisticscraft.occlusionculling.DataProvider;
-import net.minecraft.client.MinecraftClient;
-import net.minecraft.client.world.ClientWorld;
-import net.minecraft.util.math.BlockPos;
-
-public class WorldProvider implements DataProvider {
- private final static MinecraftClient CLIENT = MinecraftClient.getInstance();
- protected ClientWorld world = null;
-
- @Override
- public boolean prepareChunk(int chunkX, int chunkZ) {
- this.world = CLIENT.world;
- return this.world != null;
- }
-
- @Override
- public boolean isOpaqueFullCube(int x, int y, int z) {
- BlockPos pos = new BlockPos(x, y, z);
- return this.world.getBlockState(pos).isOpaqueFullCube();
- }
-
- @Override
- public void cleanup() {
- this.world = null;
- }
-}
diff --git a/src/main/java/de/hysky/skyblocker/utils/render/culling/package-info.java b/src/main/java/de/hysky/skyblocker/utils/render/culling/package-info.java
deleted file mode 100644
index 1d5cdf98..00000000
--- a/src/main/java/de/hysky/skyblocker/utils/render/culling/package-info.java
+++ /dev/null
@@ -1,4 +0,0 @@
-/**
- * Package dedicated to occlusion culling utilities
- */
-package de.hysky.skyblocker.utils.render.culling; \ No newline at end of file