aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker/utils
diff options
context:
space:
mode:
authorYasin <a.piri@hotmail.de>2024-05-20 23:43:34 +0200
committerYasin <19829407+LifeIsAParadox@users.noreply.github.com>2024-07-23 15:22:42 +0200
commit92c88d720f4a3c103e78257c2c65b1600698f9e2 (patch)
treea5d58025ca31068bd1287495b776ac4e5a0cb4af /src/main/java/de/hysky/skyblocker/utils
parent7f91ba452475397e7a6d6f2ecf671408778bb9dd (diff)
downloadSkyblocker-92c88d720f4a3c103e78257c2c65b1600698f9e2.tar.gz
Skyblocker-92c88d720f4a3c103e78257c2c65b1600698f9e2.tar.bz2
Skyblocker-92c88d720f4a3c103e78257c2c65b1600698f9e2.zip
use bounding box instead of block size
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/utils')
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java27
1 files changed, 27 insertions, 0 deletions
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 1b16b138..97c040c9 100644
--- a/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java
+++ b/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java
@@ -31,6 +31,7 @@ import net.minecraft.util.math.Box;
import net.minecraft.util.math.ColorHelper;
import net.minecraft.util.math.Vec3d;
+import net.minecraft.world.BlockView;
import org.joml.Matrix3f;
import org.joml.Matrix4f;
import org.joml.Vector3f;
@@ -60,6 +61,20 @@ public class RenderHelper {
renderFilled(context, pos, colorComponents, alpha, throughWalls);
renderBeaconBeam(context, pos, colorComponents);
}
+ public static void renderFilled(WorldRenderContext context, Box boundingBox, float[] colorComponents, float alpha, boolean throughWalls) {
+ MatrixStack matrices = context.matrixStack();
+ Vec3d camera = context.camera().getPos();
+
+ matrices.push();
+ matrices.translate(-camera.x, -camera.y, -camera.z);
+
+ VertexConsumerProvider consumers = context.consumers();
+ VertexConsumer buffer = consumers.getBuffer(throughWalls ? SkyblockerRenderLayers.FILLED_THROUGH_WALLS : SkyblockerRenderLayers.FILLED);
+
+ WorldRenderer.renderFilledBox(matrices, buffer, boundingBox.minX, boundingBox.minY, boundingBox.minZ, boundingBox.maxX, boundingBox.maxY, boundingBox.maxZ, colorComponents[0], colorComponents[1], colorComponents[2], alpha);
+
+ matrices.pop();
+ }
public static void renderFilled(WorldRenderContext context, BlockPos pos, float[] colorComponents, float alpha, boolean throughWalls) {
renderFilled(context, Vec3d.of(pos), ONE, colorComponents, alpha, throughWalls);
@@ -459,4 +474,16 @@ public class RenderHelper {
return null;
}
+
+ /**
+ * Retrieves the bounding box of a block in the world.
+ *
+ * @param world The client world.
+ * @param pos The position of the block.
+ * @return The bounding box of the block.
+ */
+ public static Box getBlockBoundingBox(BlockView world, BlockPos pos) {
+ BlockState blockState = world.getBlockState(pos);
+ return blockState.getOutlineShape(world, pos).getBoundingBox().offset(pos);
+ }
}