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

CyclopsMC / IntegratedDynamics / 22186773560

19 Feb 2026 02:52PM UTC coverage: 52.603% (+0.2%) from 52.363%
22186773560

push

github

web-flow
Remove Lombok dependency (#1604)

2911 of 8664 branches covered (33.6%)

Branch coverage included in aggregate %.

17683 of 30486 relevant lines covered (58.0%)

3.01 hits per line

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

7.58
/src/main/java/org/cyclops/integrateddynamics/core/logicprogrammer/ValueTypeLPElementBase.java
1
package org.cyclops.integrateddynamics.core.logicprogrammer;
2

3
import net.minecraft.client.gui.screens.Screen;
4
import net.minecraft.network.chat.Component;
5
import net.minecraft.world.entity.player.Player;
6
import net.minecraft.world.inventory.AbstractContainerMenu;
7
import net.minecraft.world.inventory.ClickType;
8
import net.minecraft.world.inventory.Slot;
9
import net.minecraft.world.item.ItemStack;
10
import org.cyclops.cyclopscore.helper.IModHelpers;
11
import org.cyclops.integrateddynamics.IntegratedDynamics;
12
import org.cyclops.integrateddynamics.RegistryEntries;
13
import org.cyclops.integrateddynamics.api.client.gui.subgui.IGuiInputElementValueType;
14
import org.cyclops.integrateddynamics.api.client.gui.subgui.ISubGuiBox;
15
import org.cyclops.integrateddynamics.api.evaluate.variable.IValue;
16
import org.cyclops.integrateddynamics.api.evaluate.variable.IValueType;
17
import org.cyclops.integrateddynamics.api.item.IValueTypeVariableFacade;
18
import org.cyclops.integrateddynamics.api.item.IVariableFacade;
19
import org.cyclops.integrateddynamics.api.item.IVariableFacadeHandlerRegistry;
20
import org.cyclops.integrateddynamics.api.logicprogrammer.IConfigRenderPattern;
21
import org.cyclops.integrateddynamics.api.logicprogrammer.ILogicProgrammerElementType;
22
import org.cyclops.integrateddynamics.api.logicprogrammer.IValueTypeLogicProgrammerElement;
23
import org.cyclops.integrateddynamics.client.gui.container.ContainerScreenLogicProgrammerBase;
24
import org.cyclops.integrateddynamics.core.evaluate.variable.ValueHelpers;
25
import org.cyclops.integrateddynamics.core.evaluate.variable.ValueTypes;
26
import org.cyclops.integrateddynamics.core.item.ValueTypeVariableFacade;
27
import org.cyclops.integrateddynamics.core.logicprogrammer.client.ValueTypeLPElementBaseClient;
28
import org.cyclops.integrateddynamics.inventory.container.ContainerLogicProgrammerBase;
29

30
import javax.annotation.Nullable;
31
import java.util.function.Consumer;
32

33
/**
34
 * Element for value type.
35
 * @author rubensworks
36
 */
37
public abstract class ValueTypeLPElementBase<C extends ValueTypeLPElementBaseClient<?>> implements IValueTypeLogicProgrammerElement<ISubGuiBox, ContainerScreenLogicProgrammerBase, ContainerLogicProgrammerBase, C> {
38

39
    private final IValueType<?> valueType;
40
    private C client;
41

42
    public IValueType<?> getValueType() {
43
        return valueType;
×
44
    }
45

46
    public ValueTypeLPElementBase(IValueType<?> valueType) {
×
47
        this.valueType = valueType;
×
48
        if (IModHelpers.get().getMinecraftHelpers().isClientSide()) {
×
49
            this.client = constructClient();
×
50
        }
51
    }
×
52

53
    @Override
54
    public C getClient() {
55
        return this.client;
×
56
    }
57

58
    public abstract C constructClient();
59

60
    @Nullable
61
    @Override
62
    public <G2 extends Screen, C2 extends AbstractContainerMenu> IGuiInputElementValueType<?, G2, C2, ?> createInnerGuiElement() {
63
        return null;
×
64
    }
65

66
    @Nullable
67
    public IGuiInputElementValueType<?, ContainerScreenLogicProgrammerBase, ContainerLogicProgrammerBase, ?> getInnerGuiElement() {
68
        return null;
×
69
    }
70

71
    @Override
72
    public void loadTooltip(Consumer<Component> tooltipAdder) {
73
        getValueType().loadTooltip(tooltipAdder, true, null);
×
74
    }
×
75

76
    @Override
77
    public ILogicProgrammerElementType getType() {
78
        return LogicProgrammerElementTypes.VALUETYPE;
×
79
    }
80

81
    @Override
82
    public String getMatchString() {
83
        return getName().getString().toLowerCase();
×
84
    }
85

86
    @Override
87
    public boolean matchesInput(IValueType<?> valueType) {
88
        return false;
×
89
    }
90

91
    @Override
92
    public boolean matchesOutput(IValueType<?> valueType) {
93
        return ValueHelpers.correspondsTo(valueType, valueType);
×
94
    }
95

96
    @Override
97
    public Component getName() {
98
        return Component.translatable(valueType.getTranslationKey());
×
99
    }
100

101
    @Override
102
    public IConfigRenderPattern getRenderPattern() {
103
        return IConfigRenderPattern.NONE;
×
104
    }
105

106
    @Override
107
    public void onInputSlotUpdated(Player player, int slotId, ItemStack itemStack) {
108

109
    }
×
110

111
    @Override
112
    public boolean isFor(IVariableFacade variableFacade) {
113
        if (variableFacade instanceof IValueTypeVariableFacade) {
×
114
            IValueTypeVariableFacade valueTypeFacade = (IValueTypeVariableFacade) variableFacade;
×
115
            if (valueTypeFacade.isValid()) {
×
116
                return getValueType() == valueTypeFacade.getValueType();
×
117
            }
118
        }
119
        return false;
×
120
    }
121

122
    @Override
123
    public boolean canWriteElementPre() {
124
        return true;
×
125
    }
126

127
    @Override
128
    public ItemStack writeElement(Player player, ItemStack itemStack) {
129
        IVariableFacadeHandlerRegistry registry = IntegratedDynamics._instance.getRegistryManager().getRegistry(IVariableFacadeHandlerRegistry.class);
×
130
        return registry.writeVariableFacadeItem(!player.level().isClientSide(), itemStack, ValueTypes.REGISTRY,
×
131
                new ValueTypeVariableFacadeFactory(getValueType(), getValue()), player.level(), player, RegistryEntries.BLOCK_LOGIC_PROGRAMMER.get().defaultBlockState());
×
132
    }
133

134
    @Override
135
    public void loadElement(IVariableFacade variableFacade) {
136
        if (variableFacade instanceof IValueTypeVariableFacade valueTypeVariableFacade) {
×
137
            setValue(valueTypeVariableFacade.getValue());
×
138
        }
139
    }
×
140

141
    @Override
142
    public boolean canCurrentlyReadFromOtherItem() {
143
        return true;
×
144
    }
145

146
    @Override
147
    public void activate() {
148

149
    }
×
150

151
    @Override
152
    public void deactivate() {
153

154
    }
×
155

156
    @Override
157
    public int getColor() {
158
        return valueType.getDisplayColor();
×
159
    }
160

161
    @Override
162
    public String getSymbol() {
163
        return IModHelpers.get().getL10NHelpers().localize(valueType.getTranslationKey());
×
164
    }
165

166
    @Override
167
    public boolean isItemValidForSlot(int slotId, ItemStack itemStack) {
168
        return itemStack.getItem() == RegistryEntries.ITEM_VARIABLE.get();
×
169
    }
170

171
    @Override
172
    public boolean slotClick(int slotId, Slot slot, int mouseButton, ClickType clickType, Player player) {
173
        return false;
×
174
    }
175

176
    @Override
177
    public int getItemStackSizeLimit() {
178
        return 1;
×
179
    }
180

181
    @Override
182
    public void setValue(IValue value) {
183
        if (getInnerGuiElement() != null) {
×
184
            getInnerGuiElement().setValue(value);
×
185
        }
186
    }
×
187

188
    @Override
189
    public void setValueInContainer(ContainerLogicProgrammerBase container) {
190

191
    }
×
192

193
    public static class ValueTypeVariableFacadeFactory implements IVariableFacadeHandlerRegistry.IVariableFacadeFactory<IValueTypeVariableFacade> {
194

195
        private final IValueType valueType;
196
        private final IValue value;
197

198
        public ValueTypeVariableFacadeFactory(IValueType valueType, IValue value) {
2✔
199
            this.valueType = valueType;
3✔
200
            this.value = value;
3✔
201
        }
1✔
202

203
        public ValueTypeVariableFacadeFactory(IValue value) {
204
            this(value.getType(), value);
×
205
        }
×
206

207
        @Override
208
        public IValueTypeVariableFacade create(boolean generateId) {
209
            return new ValueTypeVariableFacade(generateId, valueType, value);
9✔
210
        }
211

212
        @Override
213
        public IValueTypeVariableFacade create(int id) {
214
            return new ValueTypeVariableFacade(id, valueType, value);
×
215
        }
216
    }
217

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