Skip to content

Commit f5feb07

Browse files
author
LunaFox
committed
chore: Keep particle and sound blocks visible while targeted for easier handling
1 parent 9266d1b commit f5feb07

3 files changed

Lines changed: 10 additions & 3 deletions

File tree

src/main/java/dev/hephaestus/glowcase/client/render/block/entity/ParticleDisplayBlockEntityRenderer.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ public record ParticleDisplayBlockEntityRenderer(BlockEntityRendererFactory.Cont
1616

1717
public void render(ParticleDisplayBlockEntity entity, float f, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay, Vec3d cameraPos) {
1818
if (entity.getWorld() == null || entity.getWorld().getBlockState(entity.getPos()).isAir()) return;
19-
if (entity.count.equals(DeviatedInteger.ZERO) || BlockEntityRenderUtil.shouldRenderPlaceholder(entity.getPos())) BlockEntityRenderUtil.renderBillboardPlaceholder(entity, ITEM_TEXTURE, 1.0F, matrices, vertexConsumers, context.getRenderDispatcher().camera);
19+
if (entity.count.equals(DeviatedInteger.ZERO) || BlockEntityRenderUtil.shouldRenderPlaceholder(entity.getPos(), false)) {
20+
BlockEntityRenderUtil.renderBillboardPlaceholder(entity, ITEM_TEXTURE, 1.0F, matrices, vertexConsumers, context.getRenderDispatcher().camera);
21+
}
2022
}
2123
}

src/main/java/dev/hephaestus/glowcase/client/render/block/entity/SoundPlayerBlockEntityRenderer.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ public record SoundPlayerBlockEntityRenderer(BlockEntityRendererFactory.Context
1616
@Override
1717
public void render(SoundPlayerBlockEntity entity, float tickDelta, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay, Vec3d cameraPos) {
1818
if (entity.getWorld() == null || entity.getWorld().getBlockState(entity.getPos()).isAir()) return;
19-
if (BlockEntityRenderUtil.shouldRenderPlaceholder(entity.getPos()))
19+
if (BlockEntityRenderUtil.shouldRenderPlaceholder(entity.getPos(), false)) {
2020
BlockEntityRenderUtil.renderBillboardPlaceholder(entity, ITEM_TEXTURE, 1.0F, matrices, vertexConsumers, context.getRenderDispatcher().camera);
21+
}
2122
}
2223
}

src/main/java/dev/hephaestus/glowcase/client/util/BlockEntityRenderUtil.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,11 @@ public static void renderFacingPlaceholder(BlockEntity entity, Identifier textur
8585
}
8686

8787
public static boolean shouldRenderPlaceholder(BlockPos pos) {
88-
return MinecraftClient.getInstance().player != null && MinecraftClient.getInstance().player.isHolding(stack -> stack.isIn(Glowcase.ITEM_TAG)) && !(MinecraftClient.getInstance().crosshairTarget instanceof BlockHitResult bhr && bhr.getBlockPos().equals(pos));
88+
return shouldRenderPlaceholder(pos, true);
89+
}
90+
91+
public static boolean shouldRenderPlaceholder(BlockPos pos, boolean disappearWhenFaced) {
92+
return MinecraftClient.getInstance().player != null && MinecraftClient.getInstance().player.isHolding(stack -> stack.isIn(Glowcase.ITEM_TAG)) && (!disappearWhenFaced || !(MinecraftClient.getInstance().crosshairTarget instanceof BlockHitResult bhr && bhr.getBlockPos().equals(pos)));
8993
}
9094

9195
public static Vec2f getTracking(Entity camera, BlockPos pos, float delta) {

0 commit comments

Comments
 (0)