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

3
import com.google.common.collect.Sets;
4
import net.minecraft.network.chat.Component;
5
import net.minecraft.network.chat.MutableComponent;
6
import org.cyclops.cyclopscore.helper.IModHelpers;
7
import org.cyclops.integrateddynamics.IntegratedDynamics;
8
import org.cyclops.integrateddynamics.api.evaluate.operator.IOperator;
9
import org.cyclops.integrateddynamics.api.evaluate.variable.IValue;
10
import org.cyclops.integrateddynamics.api.evaluate.variable.ValueDeseralizationContext;
11
import org.cyclops.integrateddynamics.api.logicprogrammer.IConfigRenderPattern;
12
import org.cyclops.integrateddynamics.api.logicprogrammer.ILogicProgrammerElementType;
13
import org.cyclops.integrateddynamics.client.gui.container.ContainerScreenLogicProgrammerBase;
14
import org.cyclops.integrateddynamics.core.client.gui.IDropdownEntry;
15
import org.cyclops.integrateddynamics.core.client.gui.IDropdownEntryListener;
16
import org.cyclops.integrateddynamics.core.evaluate.operator.Operators;
17
import org.cyclops.integrateddynamics.core.evaluate.variable.ValueTypeOperator;
18
import org.cyclops.integrateddynamics.core.evaluate.variable.ValueTypes;
19
import org.cyclops.integrateddynamics.core.evaluate.variable.gui.GuiElementValueTypeDropdownList;
20
import org.cyclops.integrateddynamics.core.helper.L10NValues;
21
import org.cyclops.integrateddynamics.core.logicprogrammer.client.ValueTypeOperatorLPElementClient;
22
import org.cyclops.integrateddynamics.inventory.container.ContainerLogicProgrammerBase;
23
import org.cyclops.integrateddynamics.network.packet.LogicProgrammerValueTypeOperatorValueChangedPacket;
24

25
import java.util.List;
26
import java.util.Set;
27

28
/**
29
 * Element for the operator value type.
30
 * @author rubensworks
31
 */
32
public class ValueTypeOperatorLPElement extends ValueTypeLPElementBase<ValueTypeOperatorLPElementClient> implements IDropdownEntryListener {
33

34
    private IOperator selectedOperator = null;
×
35
    private GuiElementValueTypeDropdownList<IOperator, ContainerScreenLogicProgrammerBase, ContainerLogicProgrammerBase> innerGuiElement;
36

37
    public ValueTypeOperatorLPElement() {
38
        super(ValueTypes.OPERATOR);
×
39
        Set<IDropdownEntry<IOperator>> operatorEntries = Sets.newLinkedHashSet();
×
40
        for (IOperator operator : Operators.REGISTRY.getOperators()) {
×
41
            operatorEntries.add(new OperatorDropdownEntry(operator));
×
42
        }
×
43
        this.innerGuiElement = new GuiElementValueTypeDropdownList<>(getValueType(), getRenderPattern());
×
44
        getInnerGuiElement().setDropdownPossibilities(operatorEntries);
×
45
        getInnerGuiElement().setDropdownEntryListener(this);
×
46
    }
×
47

48
    @Override
49
    public ValueTypeOperatorLPElementClient constructClient() {
50
        return new ValueTypeOperatorLPElementClient(this);
×
51
    }
52

53
    @Override
54
    public GuiElementValueTypeDropdownList<IOperator, ContainerScreenLogicProgrammerBase, ContainerLogicProgrammerBase> getInnerGuiElement() {
55
        return innerGuiElement;
×
56
    }
57

58
    @Override
59
    public ILogicProgrammerElementType getType() {
60
        return LogicProgrammerElementTypes.VALUETYPE;
×
61
    }
62

63
    @Override
64
    public Component validate() {
65
        if (selectedOperator == null) {
×
66
            return Component.translatable(L10NValues.VALUETYPE_ERROR_INVALIDINPUT, getInnerGuiElement().getInputString());
×
67
        }
68
        return null;
×
69
    }
70

71
    @Override
72
    public IConfigRenderPattern getRenderPattern() {
73
        return IConfigRenderPattern.NONE_CANVAS;
×
74
    }
75

76
    @Override
77
    public boolean canWriteElementPre() {
78
        return selectedOperator != null;
×
79
    }
80

81
    @Override
82
    public IValue getValue() {
83
        return ValueTypeOperator.ValueOperator.of(selectedOperator);
×
84
    }
85

86
    @Override
87
    public void setValue(IValue value) {
88
        this.selectedOperator = ((ValueTypeOperator.ValueOperator) value).getRawValue();
×
89
    }
×
90

91
    @Override
92
    public void activate() {
93

94
    }
×
95

96
    @Override
97
    public void onSetDropdownPossiblity(IDropdownEntry dropdownEntry) {
98
        OperatorDropdownEntry operatorDropdownEntry = (OperatorDropdownEntry) dropdownEntry;
×
99
        selectedOperator = operatorDropdownEntry == null ? null : operatorDropdownEntry.getValue();
×
100
        if (IModHelpers.get().getMinecraftHelpers().isClientSideThread()) {
×
101
            IntegratedDynamics._instance.getPacketHandler().sendToServer(
×
102
                    new LogicProgrammerValueTypeOperatorValueChangedPacket(ValueDeseralizationContext.ofClient(),
×
103
                            ValueTypeOperator.ValueOperator.of(selectedOperator)));
×
104
        }
105
    }
×
106

107
    public IOperator getSelectedOperator() {
108
        return selectedOperator;
×
109
    }
110

111
    public void setSelectedOperator(IOperator selectedOperator) {
112
        this.selectedOperator = selectedOperator;
×
113
    }
×
114

115
    public static class OperatorDropdownEntry implements IDropdownEntry<IOperator> {
116

117
        private final IOperator operator;
118

119
        public OperatorDropdownEntry(IOperator operator) {
×
120
            this.operator = operator;
×
121
        }
×
122

123
        @Override
124
        public String getMatchString() {
125
            return operator.getLocalizedNameFull().getString();
×
126
        }
127

128
        @Override
129
        public MutableComponent getDisplayString() {
130
            return Component.literal(getMatchString());
×
131
        }
132

133
        @Override
134
        public List<MutableComponent> getTooltip() {
135
            return ValueTypeOperator.getSignatureLines(operator, true);
×
136
        }
137

138
        @Override
139
        public IOperator getValue() {
140
            return operator;
×
141
        }
142
    }
143

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