• 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/valuetype/TextValueTypeWorldRenderer.java
1
package org.cyclops.integrateddynamics.client.render.valuetype;
2

3
import com.mojang.blaze3d.vertex.PoseStack;
4
import net.minecraft.client.gui.Font;
5
import net.minecraft.client.renderer.SubmitNodeCollector;
6
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
7
import net.minecraft.core.Direction;
8
import net.minecraft.network.chat.Component;
9
import org.cyclops.cyclopscore.helper.IModHelpers;
10
import org.cyclops.integrateddynamics.api.client.render.valuetype.IValueTypeWorldRenderer;
11
import org.cyclops.integrateddynamics.api.evaluate.variable.IValue;
12
import org.cyclops.integrateddynamics.api.part.IPartContainer;
13
import org.cyclops.integrateddynamics.api.part.IPartType;
14
import org.cyclops.integrateddynamics.client.render.part.DisplayPartOverlayRenderer;
15

16
/**
17
 * A simple text-based value type world renderer.
18
 * @author rubensworks
19
 */
20
public class TextValueTypeWorldRenderer implements IValueTypeWorldRenderer {
×
21

22
    private static final float MARGIN_FACTOR = 1.1F;
23

24
    @Override
25
    public void submitValue(BlockEntityRendererProvider.Context context, IPartContainer partContainer,
26
                            Direction direction, IPartType partType, IValue value, float partialTicks,
27
                            PoseStack matrixStack, SubmitNodeCollector nodeCollector,
28
                            int combinedLight, int combinedOverlay, float alpha) {
29
        Font fontRenderer = context.font();
×
30
        float maxWidth = 0;
×
31

32
        String[] lines = value.getType().toCompactString(value).getString().split("(?<=[^\\\\])\\\\n");
×
33
        for (String line : lines) {
×
34
            float width = fontRenderer.width(polishLine(line)) - 1;
×
35
            maxWidth = Math.max(maxWidth, width);
×
36
        }
37

38
        float singleHeight = fontRenderer.lineHeight;
×
39
        float totalHeight = singleHeight * lines.length;
×
40

41
        matrixStack.pushPose();
×
42

43
        float scaleX = DisplayPartOverlayRenderer.MAX / (maxWidth * MARGIN_FACTOR);
×
44
        float scaleY = DisplayPartOverlayRenderer.MAX / (totalHeight * MARGIN_FACTOR);
×
45
        float scale = Math.min(scaleX, scaleY); // Maintain aspect ratio
×
46
        float newWidth = maxWidth * scale;
×
47
        float newHeight = totalHeight * scale;
×
48
        matrixStack.translate((DisplayPartOverlayRenderer.MAX - newWidth) / 2, (DisplayPartOverlayRenderer.MAX - newHeight) / 2, 0F);
×
49
        matrixStack.scale(scale, scale, 1F);
×
50

51
        int offset = 0;
×
52
        for(String line : lines) {
×
53
            int color = IModHelpers.get().getBaseHelpers().addAlphaToColor(value.getType().getDisplayColor(), alpha);
×
54
            nodeCollector.submitText(matrixStack, 0, offset, Component.literal(polishLine(line)).getVisualOrderText(), false, Font.DisplayMode.NORMAL, combinedLight, color, 0, 0);
×
55
            offset += singleHeight;
×
56
        }
57

58
        matrixStack.popPose();
×
59
    }
×
60

61
    protected String polishLine(String line) {
62
        return line.replaceAll("\\\\\\\\n", "\\\\n");
×
63
    }
64
}
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