Skip to content

Commit 84fcf83

Browse files
committed
Bring back block holograms with FRAPI
1 parent a524ce1 commit 84fcf83

File tree

4 files changed

+25
-12
lines changed

4 files changed

+25
-12
lines changed

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ loader_version=0.18.2
88
loom_version=1.14-SNAPSHOT
99

1010
# Fabric API
11-
fabric_api_version=0.139.4+1.21.11
11+
fabric_api_version=0.140.0+1.21.11
1212

1313
# Minecraft Mods
1414
## Dandelion

src/main/java/de/hysky/skyblocker/utils/render/Renderer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public static BufferBuilder getBuffer(RenderPipeline pipeline, TextureSetup text
7171
/**
7272
* Returns the appropriate {@code BufferBuilder} that should be used with the given pipeline, texture view, and line width.
7373
*/
74-
private static BufferBuilder getBuffer(RenderPipeline pipeline, TextureSetup textureSetup, boolean translucent) {
74+
public static BufferBuilder getBuffer(RenderPipeline pipeline, TextureSetup textureSetup, boolean translucent) {
7575
if (!EXCLUDED_FROM_BATCHING.contains(pipeline)) {
7676
return setupBatched(pipeline, textureSetup, translucent);
7777
} else {
Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,37 @@
11
package de.hysky.skyblocker.utils.render.primitive;
22

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;
39
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;
417
import net.minecraft.client.renderer.state.CameraRenderState;
18+
import net.minecraft.client.renderer.texture.TextureAtlas;
519

620
public final class BlockHologramRenderer implements PrimitiveRenderer<BlockHologramRenderState> {
721
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();
1023

1124
private BlockHologramRenderer() {}
1225

1326
@Override
1427
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);
2032

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);
2336
}
2437
}

src/main/resources/fabric.mod.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
"accessWidener": "skyblocker.accesswidener",
4545
"depends": {
4646
"fabricloader": ">=0.18.2",
47-
"fabric-api": ">=0.137.0+1.21.10",
47+
"fabric-api": ">=0.140.0+1.21.11",
4848
"dandelion": ">=1.0.0-alpha.5+1.21.8",
4949
"yet_another_config_lib_v3": ">=3.8.1+1.21.11",
5050
"fabric-language-kotlin": "*",

0 commit comments

Comments
 (0)