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

CyclopsMC / IntegratedDynamics / 13343606055

15 Feb 2025 09:01AM UTC coverage: 38.561% (-0.02%) from 38.576%
13343606055

push

github

rubensworks
Fix broken advancement icons

1949 of 8371 branches covered (23.28%)

Branch coverage included in aggregate %.

10107 of 22894 relevant lines covered (44.15%)

2.07 hits per line

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

81.54
/src/main/java/org/cyclops/integrateddynamics/core/evaluate/variable/ValueTypeInteger.java
1
package org.cyclops.integrateddynamics.core.evaluate.variable;
2

3
import lombok.ToString;
4
import net.minecraft.ChatFormatting;
5
import net.minecraft.nbt.ByteTag;
6
import net.minecraft.nbt.IntTag;
7
import net.minecraft.nbt.Tag;
8
import net.minecraft.network.chat.Component;
9
import net.minecraft.network.chat.MutableComponent;
10
import org.cyclops.cyclopscore.helper.Helpers;
11
import org.cyclops.integrateddynamics.GeneralConfig;
12
import org.cyclops.integrateddynamics.api.evaluate.EvaluationException;
13
import org.cyclops.integrateddynamics.api.evaluate.variable.IValueTypeNumber;
14
import org.cyclops.integrateddynamics.api.evaluate.variable.ValueDeseralizationContext;
15
import org.cyclops.integrateddynamics.core.helper.L10NValues;
16

17
import java.text.NumberFormat;
18
import java.util.Locale;
19

20
/**
21
 * Value type with values that are integers.
22
 * The raw value is nullable.
23
 * @author rubensworks
24
 */
25
public class ValueTypeInteger extends ValueTypeBase<ValueTypeInteger.ValueInteger> implements IValueTypeNumber<ValueTypeInteger.ValueInteger> {
26

27
    public ValueTypeInteger() {
28
        super("integer", Helpers.RGBToInt(243, 150, 4), ChatFormatting.GOLD, ValueTypeInteger.ValueInteger.class);
9✔
29
    }
1✔
30

31
    @Override
32
    public ValueInteger getDefault() {
33
        return ValueInteger.of(0);
3✔
34
    }
35

36
    @Override
37
    public MutableComponent toCompactString(ValueInteger value) {
38
        return Component.literal(Integer.toString(value.getRawValue()));
5✔
39
    }
40

41
    @Override
42
    public Tag serialize(ValueDeseralizationContext valueDeseralizationContext, ValueInteger value) {
43
        return IntTag.valueOf(value.getRawValue());
4✔
44
    }
45

46
    @Override
47
    public ValueInteger deserialize(ValueDeseralizationContext valueDeseralizationContext, Tag value) {
48
        if (value.getId() == Tag.TAG_INT) {
4!
49
            return ValueInteger.of(((IntTag) value).getAsInt());
5✔
50
        } else if (value.getId() == Tag.TAG_BYTE) {
×
51
            return ValueInteger.of(((ByteTag) value).getAsInt());
×
52
        } else {
53
            throw new IllegalArgumentException(String.format("Value \"%s\" could not be parsed to an integer.", value));
×
54
        }
55
    }
56

57
    @Override
58
    public String toString(ValueInteger value) {
59
        return Integer.toString(value.getRawValue());
4✔
60
    }
61

62
    @Override
63
    public ValueInteger parseString(String value) throws EvaluationException {
64
        try {
65
            return ValueInteger.of(Integer.parseInt(value));
4✔
66
        } catch (NumberFormatException e) {
×
67
            throw new EvaluationException(Component.translatable(L10NValues.OPERATOR_ERROR_PARSE, value,
×
68
                    Component.translatable(getTranslationKey())));
×
69
        }
70
    }
71

72
    @Override
73
    public boolean isZero(ValueInteger a) {
74
        return a.getRawValue() == 0;
7✔
75
    }
76

77
    @Override
78
    public boolean isOne(ValueInteger a) {
79
        return a.getRawValue() == 1;
8✔
80
    }
81

82
    @Override
83
    public ValueInteger add(ValueInteger a, ValueInteger b) {
84
        return ValueInteger.of(a.getRawValue() + b.getRawValue());
7✔
85
    }
86

87
    @Override
88
    public ValueInteger subtract(ValueInteger a, ValueInteger b) {
89
        return ValueInteger.of(a.getRawValue() - b.getRawValue());
7✔
90
    }
91

92
    @Override
93
    public ValueInteger multiply(ValueInteger a, ValueInteger b) {
94
        return ValueInteger.of(a.getRawValue() * b.getRawValue());
7✔
95
    }
96

97
    @Override
98
    public ValueInteger divide(ValueInteger a, ValueInteger b) {
99
        return ValueInteger.of(a.getRawValue() / b.getRawValue());
7✔
100
    }
101

102
    @Override
103
    public ValueInteger max(ValueInteger a, ValueInteger b) {
104
        return ValueInteger.of(Math.max(a.getRawValue(), b.getRawValue()));
7✔
105
    }
106

107
    @Override
108
    public ValueInteger min(ValueInteger a, ValueInteger b) {
109
        return ValueInteger.of(Math.min(a.getRawValue(), b.getRawValue()));
7✔
110
    }
111

112
    @Override
113
    public ValueInteger increment(ValueInteger a) {
114
        return ValueInteger.of(a.getRawValue() + 1);
6✔
115
    }
116

117
    @Override
118
    public ValueInteger decrement(ValueInteger a) {
119
        return ValueInteger.of(a.getRawValue() - 1);
6✔
120
    }
121

122
    @Override
123
    public ValueInteger modulus(ValueInteger a, ValueInteger b) {
124
        return ValueInteger.of(a.getRawValue() % b.getRawValue());
7✔
125
    }
126

127
    @Override
128
    public boolean greaterThan(ValueInteger a, ValueInteger b) {
129
        return a.getRawValue() > b.getRawValue();
9✔
130
    }
131

132
    @Override
133
    public boolean lessThan(ValueInteger a, ValueInteger b) {
134
        return a.getRawValue() < b.getRawValue();
9✔
135
    }
136

137
    @Override
138
    public ValueInteger round(ValueInteger a) {
139
        return a;
2✔
140
    }
141

142
    @Override
143
    public ValueInteger ceil(ValueInteger a) {
144
        return a;
2✔
145
    }
146

147
    @Override
148
    public ValueInteger floor(ValueInteger a) {
149
        return a;
2✔
150
    }
151

152
    @Override
153
    public ValueTypeString.ValueString compact(ValueInteger a) {
154
        NumberFormat nf = NumberFormat.getCompactNumberInstance(
3✔
155
            Locale.US,
156
            GeneralConfig.numberCompactUseLongStyle ? NumberFormat.Style.LONG : NumberFormat.Style.SHORT
3!
157
        );
158
        nf.setMinimumFractionDigits(GeneralConfig.numberCompactMinimumFractionDigits);
3✔
159
        nf.setMaximumFractionDigits(GeneralConfig.numberCompactMaximumFractionDigits);
3✔
160
        nf.setMinimumIntegerDigits(GeneralConfig.numberCompactMinimumIntegerDigits);
3✔
161
        nf.setMaximumIntegerDigits(GeneralConfig.numberCompactMaximumIntegerDigits);
3✔
162
        return ValueTypeString.ValueString.of(nf.format(a.getRawValue()));
7✔
163
    }
164

165
    @Override
166
    public String getName(ValueInteger a) {
167
        return toCompactString(a).getString();
5✔
168
    }
169

170
    @ToString
×
171
    public static class ValueInteger extends ValueBase {
172

173
        private final int value;
174

175
        private ValueInteger(int value) {
176
            super(ValueTypes.INTEGER);
3✔
177
            this.value = value;
3✔
178
        }
1✔
179

180
        public static ValueInteger of(int value) {
181
            return new ValueInteger(value);
5✔
182
        }
183

184
        public int getRawValue() {
185
            return value;
3✔
186
        }
187

188
        @Override
189
        public boolean equals(Object o) {
190
            return o instanceof ValueInteger && ((ValueInteger) o).value == this.value;
13!
191
        }
192

193
        @Override
194
        public int hashCode() {
195
            return getType().hashCode() + value;
7✔
196
        }
197
    }
198

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