• 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

0.0
/src/main/java/org/cyclops/integrateddynamics/core/evaluate/variable/gui/GuiElementValueTypeString.java
1
package org.cyclops.integrateddynamics.core.evaluate.variable.gui;
2

3
import com.google.common.base.Predicates;
4
import net.minecraft.client.gui.screens.Screen;
5
import net.minecraft.network.chat.Component;
6
import net.minecraft.world.inventory.AbstractContainerMenu;
7
import org.cyclops.cyclopscore.helper.IModHelpers;
8
import org.cyclops.integrateddynamics.api.client.gui.subgui.IGuiInputElementValueType;
9
import org.cyclops.integrateddynamics.api.evaluate.EvaluationException;
10
import org.cyclops.integrateddynamics.api.evaluate.variable.IValue;
11
import org.cyclops.integrateddynamics.api.evaluate.variable.IValueType;
12
import org.cyclops.integrateddynamics.api.logicprogrammer.IConfigRenderPattern;
13
import org.cyclops.integrateddynamics.core.evaluate.variable.ValueHelpers;
14
import org.cyclops.integrateddynamics.core.helper.L10NValues;
15

16
import java.util.Objects;
17
import java.util.function.Consumer;
18
import java.util.function.Predicate;
19

20
/**
21
 * GUI element for value type that can be read from and written to strings.
22
 * @author rubensworks
23
 */
24
public class GuiElementValueTypeString<G extends Screen, C extends AbstractContainerMenu> implements IGuiInputElementValueType<GuiElementValueTypeStringRenderPattern, G, C, GuiElementValueTypeStringClient<G, C>> {
25

26
    private final IValueType valueType;
27
    private Predicate<IValue> validator;
28
    private final IConfigRenderPattern renderPattern;
29
    private String defaultInputString;
30
    private String inputString;
31

32
    public GuiElementValueTypeString(IValueType valueType, IConfigRenderPattern renderPattern) {
×
33
        this.valueType = valueType;
×
34
        this.validator = Predicates.alwaysTrue();
×
35
        this.renderPattern = renderPattern;
×
36
        defaultInputString = ValueHelpers.toString(valueType.getDefault());
×
37
    }
×
38

39
    public IValueType getValueType() {
40
        return valueType;
×
41
    }
42

43
    public Predicate<IValue> getValidator() {
44
        return validator;
×
45
    }
46

47
    public String getDefaultInputString() {
48
        return defaultInputString;
×
49
    }
50

51
    public String getInputString() {
52
        return inputString;
×
53
    }
54

55
    @Override
56
    public void setValue(IValue value) {
57
        setInputString(ValueHelpers.toString(value));
×
58
    }
×
59

60
    public void setInputString(String inputString) {
61
        this.inputString = inputString;
×
62
    }
×
63

64
    public void setDefaultInputString(String defaultInputString) {
65
        this.defaultInputString = defaultInputString;
×
66
    }
×
67

68
    @Override
69
    public void setValidator(Predicate<IValue> validator) {
70
        this.validator = validator;
×
71
    }
×
72

73
    @Override
74
    public IValue getValue() {
75
        try {
76
            return ValueHelpers.parseString(getValueType(), getInputString());
×
77
        } catch (EvaluationException e) {
×
78
            // Should not occur, as validation must've happened before.
79
            return getValueType().getDefault();
×
80
        }
81
    }
82

83
    @Override
84
    public GuiElementValueTypeStringClient<G, C> getClient() {
85
        return new GuiElementValueTypeStringClient<>(this);
×
86
    }
87

88
    @Override
89
    public Component getName() {
90
        return Component.translatable(getValueType().getTranslationKey());
×
91
    }
92

93
    @Override
94
    public void loadTooltip(Consumer<Component> tooltipAdder) {
95
        getValueType().loadTooltip(tooltipAdder, true, null);
×
96
    }
×
97

98
    @Override
99
    public IConfigRenderPattern getRenderPattern() {
100
        return renderPattern;
×
101
    }
102

103
    @Override
104
    public void activate() {
105
        this.inputString = defaultInputString;
×
106
    }
×
107

108
    @Override
109
    public void deactivate() {
110
        this.inputString = null;
×
111
    }
×
112

113
    @Override
114
    public Component validate() {
115
        try {
116
            IValue value = getValueType().parseString(inputString);
×
117
            if (!this.validator.test(value)) {
×
118
                return Component.translatable(L10NValues.VALUE_ERROR);
×
119
            }
120
        } catch (EvaluationException e) {
×
121
            return e.getErrorMessage();
×
122
        }
×
123
        return null;
×
124
    }
125

126
    @Override
127
    public int getColor() {
128
        return getValueType().getDisplayColor();
×
129
    }
130

131
    @Override
132
    public String getSymbol() {
133
        return IModHelpers.get().getL10NHelpers().localize(getValueType().getTranslationKey());
×
134
    }
135

136
    @Override
137
    public boolean equals(Object o) {
138
        if (this == o) return true;
×
139
        if (o == null || getClass() != o.getClass()) return false;
×
140
        GuiElementValueTypeString<?, ?> that = (GuiElementValueTypeString<?, ?>) o;
×
141
        return Objects.equals(valueType, that.valueType)
×
142
                && Objects.equals(validator, that.validator)
×
143
                && Objects.equals(renderPattern, that.renderPattern)
×
144
                && Objects.equals(defaultInputString, that.defaultInputString)
×
145
                && Objects.equals(inputString, that.inputString);
×
146
    }
147

148
    @Override
149
    public int hashCode() {
150
        return Objects.hash(valueType, validator, renderPattern, defaultInputString, inputString);
×
151
    }
152

153
    @Override
154
    public String toString() {
155
        return "GuiElementValueTypeString(valueType=" + valueType + ", validator=" + validator + ", renderPattern=" + renderPattern + ", defaultInputString=" + defaultInputString + ", inputString=" + inputString + ")";
×
156
    }
157

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