• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

CyclopsMC / IntegratedDynamics / 16552051255

27 Jul 2025 01:58PM UTC coverage: 53.206% (+8.0%) from 45.161%
16552051255

push

github

rubensworks
Resolve minor TODOs

2888 of 8740 branches covered (33.04%)

Branch coverage included in aggregate %.

17341 of 29280 relevant lines covered (59.22%)

3.08 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/main/java/org/cyclops/integrateddynamics/client/render/blockentity/RenderBlockEntityDryingBasin.java
1
package org.cyclops.integrateddynamics.client.render.blockentity;
2

3
import com.mojang.blaze3d.vertex.PoseStack;
4
import com.mojang.blaze3d.vertex.VertexConsumer;
5
import com.mojang.math.Axis;
6
import net.minecraft.client.Minecraft;
7
import net.minecraft.client.renderer.MultiBufferSource;
8
import net.minecraft.client.renderer.RenderType;
9
import net.minecraft.client.renderer.blockentity.BlockEntityRenderer;
10
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
11
import net.minecraft.client.renderer.entity.ItemRenderer;
12
import net.minecraft.client.renderer.item.ItemStackRenderState;
13
import net.minecraft.client.renderer.texture.OverlayTexture;
14
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
15
import net.minecraft.core.Direction;
16
import net.minecraft.world.item.ItemDisplayContext;
17
import net.minecraft.world.item.ItemStack;
18
import net.minecraft.world.level.Level;
19
import net.minecraft.world.phys.Vec3;
20
import net.neoforged.neoforge.client.extensions.common.IClientFluidTypeExtensions;
21
import net.neoforged.neoforge.fluids.FluidStack;
22
import org.apache.commons.lang3.tuple.Triple;
23
import org.cyclops.cyclopscore.helper.IModHelpers;
24
import org.cyclops.cyclopscore.helper.IModHelpersNeoForge;
25
import org.cyclops.integrateddynamics.blockentity.BlockEntityDryingBasin;
26
import org.joml.Matrix4f;
27

28
/**
29
 * Renderer for the item inside the {@link org.cyclops.integrateddynamics.block.BlockDryingBasin}.
30
 *
31
 * @author rubensworks
32
 *
33
 */
34
public class RenderBlockEntityDryingBasin implements BlockEntityRenderer<BlockEntityDryingBasin> {
35

36
    public RenderBlockEntityDryingBasin(BlockEntityRendererProvider.Context context) {
×
37

38
    }
×
39

40
    @Override
41
    public void render(BlockEntityDryingBasin tile, float partialTicks, PoseStack matrixStack,
42
                       MultiBufferSource renderTypeBuffer, int combinedLight, int combinedOverlay, Vec3 cameraPos) {
43
        if(tile != null) {
×
44
            if(!tile.getInventory().getItem(0).isEmpty()) {
×
45
                matrixStack.pushPose();
×
46
                matrixStack.translate(-0.5F, -0.5F, -0.5F);
×
47
                renderItem(matrixStack, renderTypeBuffer, tile.getInventory().getItem(0), tile.getRandomRotation(), tile.getLevel());
×
48
                matrixStack.popPose();
×
49
            }
50

51
            FluidStack fluid = tile.getTank().getFluid();
×
52
            IModHelpersNeoForge.get().getRenderHelpers().renderFluidContext(fluid, matrixStack, () -> {
×
53
                float height = (float) ((fluid.getAmount() * 0.7D) / IModHelpersNeoForge.get().getFluidHelpers().getBucketVolume() + 0.23D + 0.01D);
×
54
                int brightness = Math.max(combinedLight, fluid.getFluid().getFluidType().getLightLevel(fluid));
×
55
                int l2 = brightness >> 0x10 & 0xFFFF;
×
56
                int i3 = brightness & 0xFFFF;
×
57

58
                TextureAtlasSprite icon = IModHelpersNeoForge.get().getRenderHelpers().getFluidIcon(fluid, Direction.UP);
×
59
                IClientFluidTypeExtensions renderProperties = IClientFluidTypeExtensions.of(fluid.getFluid());
×
60
                Triple<Float, Float, Float> color = IModHelpers.get().getBaseHelpers().intToRGB(renderProperties.getTintColor(fluid));
×
61

62
                VertexConsumer vb = renderTypeBuffer.getBuffer(RenderType.text(icon.atlasLocation()));
×
63
                Matrix4f matrix = matrixStack.last().pose();
×
64
                vb.addVertex(matrix, 0.0625F, height, 0.0625F).setColor(color.getLeft(), color.getMiddle(), color.getRight(), 1).setUv(icon.getU0(), icon.getV1()).setUv2(l2, i3);
×
65
                vb.addVertex(matrix, 0.0625F, height, 0.9375F).setColor(color.getLeft(), color.getMiddle(), color.getRight(), 1).setUv(icon.getU0(), icon.getV0()).setUv2(l2, i3);
×
66
                vb.addVertex(matrix, 0.9375F, height, 0.9375F).setColor(color.getLeft(), color.getMiddle(), color.getRight(), 1).setUv(icon.getU1(), icon.getV0()).setUv2(l2, i3);
×
67
                vb.addVertex(matrix, 0.9375F, height, 0.0625F).setColor(color.getLeft(), color.getMiddle(), color.getRight(), 1).setUv(icon.getU1(), icon.getV1()).setUv2(l2, i3);
×
68
            });
×
69
        }
70
    }
×
71

72
    private void renderItem(PoseStack matrixStack, MultiBufferSource renderTypeBuffer, ItemStack itemStack, float rotation, Level level) {
73
        ItemRenderer itemRenderer = Minecraft.getInstance().getItemRenderer();
×
74
        ItemStackRenderState renderState = new ItemStackRenderState();
×
75
        Minecraft.getInstance().getItemModelResolver().updateForTopItem(renderState, itemStack, ItemDisplayContext.FIXED, level, null, 0);
×
76

77
        if (renderState.isOversizedInGui()) {
×
78
            matrixStack.translate(1F, 1.2F, 1F);
×
79
            matrixStack.scale(1.2F, 1.2F, 1.2F);
×
80
        } else {
81
            matrixStack.translate(1F, 1.2F, 1F);
×
82
            matrixStack.mulPose(Axis.XP.rotationDegrees(25F));
×
83
            matrixStack.mulPose(Axis.YP.rotationDegrees(25F));
×
84
            matrixStack.mulPose(Axis.YP.rotationDegrees(rotation));
×
85
        }
86

87
        itemRenderer.renderStatic(itemStack, ItemDisplayContext.FIXED, 15728880, OverlayTexture.NO_OVERLAY, matrixStack, renderTypeBuffer, level, 0);
×
88
    }
×
89

90
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc