• 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/core/logicprogrammer/ValueTypeLPElementBase.java
1
package org.cyclops.integrateddynamics.core.logicprogrammer;
2

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

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

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

40
    @Getter
×
41
    private final IValueType<?> valueType;
42
    private C client;
43

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

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

56
    public abstract C constructClient();
57

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

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

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

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

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

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

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

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

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

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

107
    }
×
108

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

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

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

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

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

144
    @Override
145
    public void activate() {
146

147
    }
×
148

149
    @Override
150
    public void deactivate() {
151

152
    }
×
153

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

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

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

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

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

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

186
    @Override
187
    public void setValueInContainer(ContainerLogicProgrammerBase container) {
188

189
    }
×
190

191
    public static class ValueTypeVariableFacadeFactory implements IVariableFacadeHandlerRegistry.IVariableFacadeFactory<IValueTypeVariableFacade> {
192

193
        private final IValueType valueType;
194
        private final IValue value;
195

196
        public ValueTypeVariableFacadeFactory(IValueType valueType, IValue value) {
×
197
            this.valueType = valueType;
×
198
            this.value = value;
×
199
        }
×
200

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

205
        @Override
206
        public IValueTypeVariableFacade create(boolean generateId) {
207
            return new ValueTypeVariableFacade(generateId, valueType, value);
×
208
        }
209

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

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