|
1 | 1 | package de.hysky.skyblocker.utils.render.primitive; |
2 | 2 |
|
| 3 | +import org.joml.Matrix4f; |
| 4 | + |
| 5 | +import com.mojang.blaze3d.vertex.PoseStack; |
| 6 | + |
| 7 | +import de.hysky.skyblocker.utils.render.MatrixHelper; |
| 8 | +import de.hysky.skyblocker.utils.render.Renderer; |
3 | 9 | import de.hysky.skyblocker.utils.render.state.BlockHologramRenderState; |
| 10 | +import net.fabricmc.fabric.api.renderer.v1.render.RenderLayerHelper; |
| 11 | +import net.minecraft.client.Minecraft; |
| 12 | +import net.minecraft.client.gui.render.TextureSetup; |
| 13 | +import net.minecraft.client.renderer.MultiBufferSource; |
| 14 | +import net.minecraft.client.renderer.RenderPipelines; |
| 15 | +import net.minecraft.client.renderer.block.model.BlockStateModel; |
| 16 | +import net.minecraft.client.renderer.rendertype.RenderTypes; |
4 | 17 | import net.minecraft.client.renderer.state.CameraRenderState; |
| 18 | +import net.minecraft.client.renderer.texture.TextureAtlas; |
5 | 19 |
|
6 | 20 | public final class BlockHologramRenderer implements PrimitiveRenderer<BlockHologramRenderState> { |
7 | 21 | protected static final BlockHologramRenderer INSTANCE = new BlockHologramRenderer(); |
8 | | - /*private static final MinecraftClient CLIENT = MinecraftClient.getInstance(); |
9 | | - private static final boolean SODIUM_LOADED = FabricLoader.getInstance().isModLoaded("sodium");*/ |
| 22 | + private static final Minecraft CLIENT = Minecraft.getInstance(); |
10 | 23 |
|
11 | 24 | private BlockHologramRenderer() {} |
12 | 25 |
|
13 | 26 | @Override |
14 | 27 | public void submitPrimitives(BlockHologramRenderState state, CameraRenderState cameraState) { |
15 | | - // TODO find alternative for this |
16 | | - /*Matrix4f positionMatrix = new Matrix4f() |
17 | | - .translate((float) (state.pos.getX() - cameraState.pos.getX()), (float) (state.pos.getY() - cameraState.pos.getY()), (float) (state.pos.getZ() - cameraState.pos.getZ())); |
18 | | - MatrixStack matrices = MatrixHelper.toStack(positionMatrix); |
19 | | - BlockStateModel model = CLIENT.getBlockRenderManager().getModel(state.state); |
| 28 | + Matrix4f positionMatrix = new Matrix4f() |
| 29 | + .translate((float) (state.pos.getX() - cameraState.pos.x()), (float) (state.pos.getY() - cameraState.pos.y()), (float) (state.pos.getZ() - cameraState.pos.z())); |
| 30 | + PoseStack matrices = MatrixHelper.toStack(positionMatrix); |
| 31 | + BlockStateModel model = CLIENT.getBlockRenderer().getBlockModel(state.state); |
20 | 32 |
|
21 | | - VertexConsumerProvider consumers = SODIUM_LOADED ? CLIENT.getBufferBuilders().getEntityVertexConsumers() : _layer -> Renderer.getBuffer(RenderPipelines.TRANSLUCENT, RenderHelper.singleTexture(BlockRenderLayer.TRANSLUCENT.getTextureView()), true); |
22 | | - CLIENT.getBlockRenderManager().getModelRenderer().render(CLIENT.world, model, state.state, state.pos, matrices, RenderLayerHelper.movingDelegate(consumers), true, state.state.getRenderingSeed(state.pos), 0);*/ |
| 33 | + @SuppressWarnings("deprecation") |
| 34 | + MultiBufferSource bufferSource = _type -> Renderer.getBuffer(RenderPipelines.TRANSLUCENT_MOVING_BLOCK, TextureSetup.singleTextureWithLightmap(CLIENT.getTextureManager().getTexture(TextureAtlas.LOCATION_BLOCKS).getTextureView(), RenderTypes.MOVING_BLOCK_SAMPLER.get()), true); |
| 35 | + CLIENT.getBlockRenderer().getModelRenderer().render(CLIENT.level, model, state.state, state.pos, matrices, RenderLayerHelper.movingDelegate(bufferSource), true, state.state.getSeed(state.pos), 0); |
23 | 36 | } |
24 | 37 | } |
0 commit comments