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

CyclopsMC / IntegratedDynamics / 15234441513

25 May 2025 05:02AM UTC coverage: 45.524% (-0.02%) from 45.542%
15234441513

push

github

rubensworks
Merge remote-tracking branch 'origin/master-1.21-lts' into master-1.21

2556 of 8407 branches covered (30.4%)

Branch coverage included in aggregate %.

11877 of 23297 relevant lines covered (50.98%)

2.42 hits per line

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

10.0
/src/main/java/org/cyclops/integrateddynamics/core/part/PartTypeConfigurable.java
1
package org.cyclops.integrateddynamics.core.part;
2

3
import net.minecraft.network.RegistryFriendlyByteBuf;
4
import net.minecraft.network.chat.Component;
5
import net.minecraft.server.level.ServerPlayer;
6
import net.minecraft.world.MenuProvider;
7
import net.minecraft.world.SimpleContainer;
8
import net.minecraft.world.entity.player.Inventory;
9
import net.minecraft.world.entity.player.Player;
10
import net.minecraft.world.inventory.AbstractContainerMenu;
11
import org.apache.commons.lang3.tuple.Triple;
12
import org.cyclops.cyclopscore.network.PacketCodecs;
13
import org.cyclops.integrateddynamics.api.part.IPartContainer;
14
import org.cyclops.integrateddynamics.api.part.IPartState;
15
import org.cyclops.integrateddynamics.api.part.IPartType;
16
import org.cyclops.integrateddynamics.api.part.PartPos;
17
import org.cyclops.integrateddynamics.api.part.PartRenderPosition;
18
import org.cyclops.integrateddynamics.api.part.PartTarget;
19
import org.cyclops.integrateddynamics.core.helper.PartHelpers;
20
import org.cyclops.integrateddynamics.core.inventory.container.ContainerPartOffset;
21
import org.cyclops.integrateddynamics.core.inventory.container.ContainerPartSettings;
22

23
import javax.annotation.Nullable;
24
import java.util.Optional;
25

26
/**
27
 * An abstract {@link IPartType} that can have settings.
28
 * @author rubensworks
29
 */
30
public abstract class PartTypeConfigurable<P extends IPartType<P, S>, S extends IPartState<P>> extends PartTypeBase<P, S> {
31

32
    public PartTypeConfigurable(String name, PartRenderPosition partRenderPosition) {
33
        super(name, partRenderPosition);
4✔
34
    }
1✔
35

36
    @Override
37
    public Optional<MenuProvider> getContainerProviderSettings(PartPos pos) {
38
        return Optional.of(new MenuProvider() {
×
39

40
            @Override
41
            public Component getDisplayName() {
42
                return Component.translatable(getTranslationKey());
×
43
            }
44

45
            @Nullable
46
            @Override
47
            public AbstractContainerMenu createMenu(int id, Inventory playerInventory, Player playerEntity) {
48
                Triple<IPartContainer, PartTypeBase, PartTarget> data = PartHelpers.getContainerPartConstructionData(pos);
×
49
                return new ContainerPartSettings(id, playerInventory, new SimpleContainer(0),
×
50
                        data.getRight(), Optional.of(data.getLeft()), data.getMiddle());
×
51
            }
52

53
            @Override
54
            public boolean shouldTriggerClientSideContainerClosingOnOpen() {
55
                return false;
×
56
            }
57
        });
58
    }
59

60
    @Override
61
    public void writeExtraGuiDataSettings(RegistryFriendlyByteBuf packetBuffer, PartPos pos, ServerPlayer player) {
62
        PacketCodecs.write(packetBuffer, pos);
×
63
        packetBuffer.writeUtf(this.getUniqueName().toString());
×
64
    }
×
65

66
    @Override
67
    public Optional<MenuProvider> getContainerProviderOffsets(PartPos pos) {
68
        return Optional.of(new MenuProvider() {
×
69

70
            @Override
71
            public Component getDisplayName() {
72
                return Component.translatable(getTranslationKey());
×
73
            }
74

75
            @Nullable
76
            @Override
77
            public AbstractContainerMenu createMenu(int id, Inventory playerInventory, Player playerEntity) {
78
                Triple<IPartContainer, PartTypeBase, PartTarget> data = PartHelpers.getContainerPartConstructionData(pos);
×
79
                return new ContainerPartOffset(id, playerInventory, new SimpleContainer(0),
×
80
                        data.getRight(), Optional.of(data.getLeft()), data.getMiddle());
×
81
            }
82

83
            @Override
84
            public boolean shouldTriggerClientSideContainerClosingOnOpen() {
85
                return false;
×
86
            }
87
        });
88
    }
89

90
    @Override
91
    public void writeExtraGuiDataOffsets(RegistryFriendlyByteBuf packetBuffer, PartPos pos, ServerPlayer player) {
92
        PacketCodecs.write(packetBuffer, pos);
×
93
        packetBuffer.writeUtf(this.getUniqueName().toString());
×
94
    }
×
95

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