diff options
author | Yasin <a.piri@hotmail.de> | 2024-05-20 23:43:34 +0200 |
---|---|---|
committer | Yasin <19829407+LifeIsAParadox@users.noreply.github.com> | 2024-07-23 15:22:42 +0200 |
commit | 92c88d720f4a3c103e78257c2c65b1600698f9e2 (patch) | |
tree | a5d58025ca31068bd1287495b776ac4e5a0cb4af /src/main/java/de/hysky/skyblocker/utils | |
parent | 7f91ba452475397e7a6d6f2ecf671408778bb9dd (diff) | |
download | Skyblocker-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.java | 27 |
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); + } } |