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

CyclopsMC / IntegratedDynamics / 20210191346

14 Dec 2025 03:32PM UTC coverage: 19.514% (-33.5%) from 53.061%
20210191346

push

github

rubensworks
Remove deprecations

663 of 8728 branches covered (7.6%)

Branch coverage included in aggregate %.

6786 of 29445 relevant lines covered (23.05%)

1.09 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.math.Axis;
5
import net.minecraft.client.Minecraft;
6
import net.minecraft.client.renderer.RenderType;
7
import net.minecraft.client.renderer.SubmitNodeCollector;
8
import net.minecraft.client.renderer.blockentity.BlockEntityRenderer;
9
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
10
import net.minecraft.client.renderer.blockentity.state.BlockEntityRenderState;
11
import net.minecraft.client.renderer.feature.ModelFeatureRenderer;
12
import net.minecraft.client.renderer.item.ItemStackRenderState;
13
import net.minecraft.client.renderer.state.CameraRenderState;
14
import net.minecraft.client.renderer.texture.OverlayTexture;
15
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
16
import net.minecraft.core.Direction;
17
import net.minecraft.world.item.ItemDisplayContext;
18
import net.minecraft.world.item.ItemStack;
19
import net.minecraft.world.level.Level;
20
import net.minecraft.world.phys.Vec3;
21
import net.neoforged.neoforge.client.extensions.common.IClientFluidTypeExtensions;
22
import net.neoforged.neoforge.fluids.FluidStack;
23
import org.apache.commons.lang3.tuple.Triple;
24
import org.cyclops.cyclopscore.helper.IModHelpers;
25
import org.cyclops.cyclopscore.helper.IModHelpersNeoForge;
26
import org.cyclops.integrateddynamics.blockentity.BlockEntityDryingBasin;
27
import org.jetbrains.annotations.Nullable;
28

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

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

39
    }
×
40

41
    @Override
42
    public RenderState createRenderState() {
43
        return new RenderState();
×
44
    }
45

46
    @Override
47
    public void extractRenderState(BlockEntityDryingBasin blockEntity, RenderState renderState, float partialTick, Vec3 cameraPosition, @Nullable ModelFeatureRenderer.CrumblingOverlay breakProgress) {
48
        BlockEntityRenderer.super.extractRenderState(blockEntity, renderState, partialTick, cameraPosition, breakProgress);
×
49
        renderState.itemStack = blockEntity.getInventory().getItem(0);
×
50
        renderState.fluidStack = blockEntity.getTank().getFluid();
×
51
        renderState.rotation = blockEntity.getRandomRotation();
×
52
        renderState.level = blockEntity.getLevel();
×
53
    }
×
54

55
    @Override
56
    public void submit(RenderState renderState, PoseStack poseStack, SubmitNodeCollector submitNodeCollector, CameraRenderState cameraRenderState) {
57
        if(!renderState.itemStack.isEmpty()) {
×
58
            poseStack.pushPose();
×
59
            poseStack.translate(-0.5F, -0.5F, -0.5F);
×
60
            renderItem(poseStack, submitNodeCollector, renderState);
×
61
            poseStack.popPose();
×
62
        }
63

64
        FluidStack fluid = renderState.fluidStack;
×
65
        IModHelpersNeoForge.get().getRenderHelpers().renderFluidContext(fluid, poseStack, () -> {
×
66
            float height = (float) ((fluid.getAmount() * 0.7D) / IModHelpersNeoForge.get().getFluidHelpers().getBucketVolume() + 0.23D + 0.01D);
×
67
            int brightness = Math.max(renderState.lightCoords, fluid.getFluid().getFluidType().getLightLevel(fluid));
×
68
            int l2 = brightness >> 0x10 & 0xFFFF;
×
69
            int i3 = brightness & 0xFFFF;
×
70

71
            TextureAtlasSprite icon = IModHelpersNeoForge.get().getRenderHelpers().getFluidIcon(fluid, Direction.UP);
×
72
            IClientFluidTypeExtensions renderProperties = IClientFluidTypeExtensions.of(fluid.getFluid());
×
73
            Triple<Float, Float, Float> color = IModHelpers.get().getBaseHelpers().intToRGB(renderProperties.getTintColor(fluid));
×
74

75
            submitNodeCollector.submitCustomGeometry(poseStack, RenderType.text(icon.atlasLocation()), (pose, vb) -> {
×
76
                vb.addVertex(pose, 0.0625F, height, 0.0625F).setColor(color.getLeft(), color.getMiddle(), color.getRight(), 1).setUv(icon.getU0(), icon.getV1()).setUv2(l2, i3);
×
77
                vb.addVertex(pose, 0.0625F, height, 0.9375F).setColor(color.getLeft(), color.getMiddle(), color.getRight(), 1).setUv(icon.getU0(), icon.getV0()).setUv2(l2, i3);
×
78
                vb.addVertex(pose, 0.9375F, height, 0.9375F).setColor(color.getLeft(), color.getMiddle(), color.getRight(), 1).setUv(icon.getU1(), icon.getV0()).setUv2(l2, i3);
×
79
                vb.addVertex(pose, 0.9375F, height, 0.0625F).setColor(color.getLeft(), color.getMiddle(), color.getRight(), 1).setUv(icon.getU1(), icon.getV1()).setUv2(l2, i3);
×
80
            });
×
81
        });
×
82
    }
×
83

84
    private void renderItem(PoseStack poseStack, SubmitNodeCollector submitNodeCollector, RenderState renderStateDryingBasin) {
85
        ItemStackRenderState renderState = new ItemStackRenderState();
×
86
        Minecraft.getInstance().getItemModelResolver().updateForTopItem(renderState, renderStateDryingBasin.itemStack, ItemDisplayContext.FIXED, renderStateDryingBasin.level, null, 0);
×
87

88
        if (renderState.isOversizedInGui()) {
×
89
            poseStack.translate(1F, 1.2F, 1F);
×
90
            poseStack.scale(1.2F, 1.2F, 1.2F);
×
91
        } else {
92
            poseStack.translate(1F, 1.2F, 1F);
×
93
            poseStack.mulPose(Axis.XP.rotationDegrees(25F));
×
94
            poseStack.mulPose(Axis.YP.rotationDegrees(25F));
×
95
            poseStack.mulPose(Axis.YP.rotationDegrees(renderStateDryingBasin.rotation));
×
96
        }
97

98
        renderState.submit(poseStack, submitNodeCollector, 15728880, OverlayTexture.NO_OVERLAY, 0);
×
99
    }
×
100

101
    public static class RenderState extends BlockEntityRenderState {
×
102
        public ItemStack itemStack;
103
        public FluidStack fluidStack;
104
        public float rotation;
105
        public Level level;
106
    }
107

108
}
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