• 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/core/client/gui/container/ContainerScreenMultipart.java
1
package org.cyclops.integrateddynamics.core.client.gui.container;
2

3
import com.google.common.collect.Lists;
4
import net.minecraft.client.gui.GuiGraphics;
5
import net.minecraft.network.chat.Component;
6
import net.minecraft.resources.ResourceLocation;
7
import net.minecraft.util.ARGB;
8
import net.minecraft.world.entity.player.Inventory;
9
import org.cyclops.cyclopscore.client.gui.component.button.ButtonImage;
10
import org.cyclops.cyclopscore.client.gui.container.ContainerScreenExtended;
11
import org.cyclops.cyclopscore.client.gui.image.IImage;
12
import org.cyclops.integrateddynamics.Reference;
13
import org.cyclops.integrateddynamics.api.part.IPartState;
14
import org.cyclops.integrateddynamics.api.part.IPartType;
15
import org.cyclops.integrateddynamics.core.inventory.container.ContainerMultipart;
16
import org.cyclops.integrateddynamics.core.part.PartTypeConfigurable;
17

18
import java.awt.*;
19

20

21
/**
22
 * Gui for parts.
23
 * @author rubensworks
24
 */
25
public abstract class ContainerScreenMultipart<P extends IPartType<P, S>, S extends IPartState<P>, C extends ContainerMultipart<P, S>>
26
        extends ContainerScreenExtended<C> {
27

28
    private static final Rectangle ITEM_POSITION = new Rectangle(8, 17, 18, 18);
×
29

30
    protected final DisplayErrorsComponent displayErrors = new DisplayErrorsComponent();
×
31

32
    public ContainerScreenMultipart(C container, Inventory inventory, Component title) {
33
        super(container, inventory, title);
×
34
    }
×
35

36
    @Override
37
    public void init() {
38
        clearWidgets();
×
39
        super.init();
×
40
        P partType = getMenu().getPartType();
×
41
        if(partType instanceof PartTypeConfigurable && partType.getContainerProviderSettings(null).isPresent()) {
×
42
            addRenderableWidget(new ButtonImage(this.leftPos - 20, this.topPos + 0, 18, 18,
×
43
                    Component.translatable("gui.integrateddynamics.partsettings"),
×
44
                    createServerPressable(ContainerMultipart.BUTTON_SETTINGS, (button) -> {}),
×
45
                    new IImage[]{
46
                            org.cyclops.integrateddynamics.client.gui.image.Images.BUTTON_BACKGROUND_INACTIVE,
47
                            org.cyclops.integrateddynamics.client.gui.image.Images.BUTTON_MIDDLE_SETTINGS
48
                    },
49
                    false, 0, 0));
50
            if (getMenu().getPartType().supportsOffsets()) {
×
51
                addRenderableWidget(new ButtonImage(this.leftPos - 20, this.topPos + 20, 18, 18,
×
52
                        Component.translatable("gui.integrateddynamics.part_offsets"),
×
53
                        createServerPressable(ContainerMultipart.BUTTON_OFFSETS, (button) -> {
×
54
                        }),
×
55
                        new IImage[]{
56
                                org.cyclops.integrateddynamics.client.gui.image.Images.BUTTON_BACKGROUND_INACTIVE,
57
                                org.cyclops.integrateddynamics.client.gui.image.Images.BUTTON_MIDDLE_OFFSET
58
                        },
59
                        false, 0, 0));
60
            }
61
        }
62
    }
×
63

64
    protected abstract String getNameId();
65

66
    @Override
67
    protected ResourceLocation constructGuiTexture() {
68
        return ResourceLocation.fromNamespaceAndPath(Reference.MOD_ID, "textures/gui/" + getNameId() + ".png");
×
69
    }
70

71
    protected float colorSmoothener(float color) {
72
        return 1F - ((1F - color) / 4F);
×
73
    }
74

75
    @Override
76
    protected void renderBg(GuiGraphics guiGraphics, float partialTicks, int mouseX, int mouseY) {
77
        super.renderBg(guiGraphics, partialTicks, mouseX, mouseY);
×
78

79
        // Draw part name
80
        guiGraphics.drawString(font, getTitle(), leftPos + 8, topPos + 6, ARGB.opaque(4210752), false);
×
81
    }
×
82

83
    @Override
84
    protected void renderLabels(GuiGraphics guiGraphics, int mouseX, int mouseY) {
85
        // super.drawGuiContainerForegroundLayer(matrixStack, x, y);
86

87
        if (isHovering(-20, 0, 18, 18, mouseX, mouseY)) {
×
88
            drawTooltip(Lists.newArrayList(Component.translatable("gui.integrateddynamics.part_settings")), guiGraphics, mouseX, mouseY);
×
89
        }
90
        if (isHovering(-20, 20, 18, 18, mouseX, mouseY)) {
×
91
            drawTooltip(Lists.newArrayList(Component.translatable("gui.integrateddynamics.part_offsets")), guiGraphics, mouseX, mouseY);
×
92
        }
93
    }
×
94
}
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