• 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/evaluate/variable/gui/GuiElementValueTypeString.java
1
package org.cyclops.integrateddynamics.core.evaluate.variable.gui;
2

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

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
@Data
×
25
public class GuiElementValueTypeString<G extends Screen, C extends AbstractContainerMenu> implements IGuiInputElementValueType<GuiElementValueTypeStringRenderPattern, G, C, GuiElementValueTypeStringClient<G, C>> {
26

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

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

40
    @Override
41
    public void setValue(IValue value) {
42
        setInputString(ValueHelpers.toString(value));
×
43
    }
×
44

45
    public void setInputString(String inputString) {
46
        this.inputString = inputString;
×
47
    }
×
48

49
    @Override
50
    public void setValidator(Predicate<IValue> validator) {
51
        this.validator = validator;
×
52
    }
×
53

54
    @Override
55
    public IValue getValue() {
56
        try {
57
            return ValueHelpers.parseString(getValueType(), getInputString());
×
58
        } catch (EvaluationException e) {
×
59
            // Should not occur, as validation must've happened before.
60
            return getValueType().getDefault();
×
61
        }
62
    }
63

64
    @Override
65
    public GuiElementValueTypeStringClient<G, C> getClient() {
66
        return new GuiElementValueTypeStringClient<>(this);
×
67
    }
68

69
    @Override
70
    public Component getName() {
71
        return Component.translatable(getValueType().getTranslationKey());
×
72
    }
73

74
    @Override
75
    public void loadTooltip(Consumer<Component> tooltipAdder) {
76
        getValueType().loadTooltip(tooltipAdder, true, null);
×
77
    }
×
78

79
    @Override
80
    public IConfigRenderPattern getRenderPattern() {
81
        return renderPattern;
×
82
    }
83

84
    @Override
85
    public void activate() {
86
        this.inputString = defaultInputString;
×
87
    }
×
88

89
    @Override
90
    public void deactivate() {
91
        this.inputString = null;
×
92
    }
×
93

94
    @Override
95
    public Component validate() {
96
        try {
97
            IValue value = getValueType().parseString(inputString);
×
98
            if (!this.validator.test(value)) {
×
99
                return Component.translatable(L10NValues.VALUE_ERROR);
×
100
            }
101
        } catch (EvaluationException e) {
×
102
            return e.getErrorMessage();
×
103
        }
×
104
        return null;
×
105
    }
106

107
    @Override
108
    public int getColor() {
109
        return getValueType().getDisplayColor();
×
110
    }
111

112
    @Override
113
    public String getSymbol() {
114
        return IModHelpers.get().getL10NHelpers().localize(getValueType().getTranslationKey());
×
115
    }
116

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