Skip to content

Commit 061d874

Browse files
committed
color supplier for text
1 parent ae4ca22 commit 061d874

File tree

5 files changed

+53
-13
lines changed

5 files changed

+53
-13
lines changed

src/main/java/com/cleanroommc/modularui/api/drawable/IKey.java

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,15 @@
22

33
import com.cleanroommc.modularui.api.IJsonSerializable;
44
import com.cleanroommc.modularui.drawable.Icon;
5-
import com.cleanroommc.modularui.drawable.text.*;
5+
import com.cleanroommc.modularui.drawable.text.AnimatedText;
6+
import com.cleanroommc.modularui.drawable.text.CompoundKey;
7+
import com.cleanroommc.modularui.drawable.text.DynamicKey;
8+
import com.cleanroommc.modularui.drawable.text.FormattingState;
9+
import com.cleanroommc.modularui.drawable.text.KeyIcon;
10+
import com.cleanroommc.modularui.drawable.text.LangKey;
11+
import com.cleanroommc.modularui.drawable.text.StringKey;
12+
import com.cleanroommc.modularui.drawable.text.StyledText;
13+
import com.cleanroommc.modularui.drawable.text.TextRenderer;
614
import com.cleanroommc.modularui.screen.viewport.GuiContext;
715
import com.cleanroommc.modularui.theme.WidgetTheme;
816
import com.cleanroommc.modularui.utils.Alignment;
@@ -17,6 +25,7 @@
1725
import org.jetbrains.annotations.NotNull;
1826
import org.jetbrains.annotations.Nullable;
1927

28+
import java.util.function.IntSupplier;
2029
import java.util.function.Supplier;
2130

2231
/**
@@ -234,7 +243,11 @@ default StyledText alignment(Alignment alignment) {
234243
return withStyle().alignment(alignment);
235244
}
236245

237-
default StyledText color(@Nullable Integer color) {
246+
default StyledText color(int color) {
247+
return withStyle().color(() -> color);
248+
}
249+
250+
default StyledText color(@Nullable IntSupplier color) {
238251
return withStyle().color(color);
239252
}
240253

src/main/java/com/cleanroommc/modularui/drawable/text/AnimatedText.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212

1313
import org.jetbrains.annotations.Nullable;
1414

15+
import java.util.function.IntSupplier;
16+
1517
public class AnimatedText extends StyledText {
1618

1719
private String fullString;
@@ -113,7 +115,12 @@ public AnimatedText alignment(Alignment alignment) {
113115
}
114116

115117
@Override
116-
public AnimatedText color(@Nullable Integer color) {
118+
public AnimatedText color(int color) {
119+
return color(() -> color);
120+
}
121+
122+
@Override
123+
public AnimatedText color(@Nullable IntSupplier color) {
117124
return (AnimatedText) super.color(color);
118125
}
119126

src/main/java/com/cleanroommc/modularui/drawable/text/StyledText.java

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,13 @@
1212

1313
import org.jetbrains.annotations.Nullable;
1414

15+
import java.util.function.IntSupplier;
16+
1517
public class StyledText extends BaseKey {
1618

1719
private final IKey key;
1820
private Alignment alignment = Alignment.Center;
19-
private Integer color = null;
21+
private IntSupplier color = null;
2022
private Boolean shadow = null;
2123
private float scale = 1f;
2224

@@ -38,7 +40,7 @@ public String getFormatted() {
3840
@Override
3941
public void draw(GuiContext context, int x, int y, int width, int height, WidgetTheme widgetTheme) {
4042
renderer.setAlignment(this.alignment, width, height);
41-
renderer.setColor(this.color != null ? this.color : widgetTheme.getColor());
43+
renderer.setColor(this.color != null ? this.color.getAsInt() : widgetTheme.getColor());
4244
renderer.setScale(this.scale);
4345
renderer.setPos(x, y);
4446
renderer.setShadow(this.shadow != null ? this.shadow : widgetTheme.getTextShadow());
@@ -49,7 +51,7 @@ public Alignment getAlignment() {
4951
return this.alignment;
5052
}
5153

52-
public @Nullable Integer getColor() {
54+
public @Nullable IntSupplier getColor() {
5355
return this.color;
5456
}
5557

@@ -74,7 +76,12 @@ public StyledText alignment(Alignment alignment) {
7476
}
7577

7678
@Override
77-
public StyledText color(@Nullable Integer color) {
79+
public StyledText color(int color) {
80+
return color(() -> color);
81+
}
82+
83+
@Override
84+
public StyledText color(@Nullable IntSupplier color) {
7885
this.color = color;
7986
return this;
8087
}

src/main/java/com/cleanroommc/modularui/widgets/ScrollingTextWidget.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88

99
import org.jetbrains.annotations.Nullable;
1010

11+
import java.util.function.IntSupplier;
12+
1113
public class ScrollingTextWidget extends TextWidget {
1214

1315
private static final int pauseTime = 60;
@@ -59,7 +61,7 @@ public void onUpdate() {
5961
public void draw(ModularGuiContext context, WidgetTheme widgetTheme) {
6062
checkString();
6163
TextRenderer renderer = TextRenderer.SHARED;
62-
renderer.setColor(getColor() != null ? getColor() : widgetTheme.getTextColor());
64+
renderer.setColor(getColor() != null ? getColor().getAsInt() : widgetTheme.getTextColor());
6365
renderer.setAlignment(getAlignment(), getArea().w() + 1, getArea().h());
6466
renderer.setShadow(isShadow() != null ? isShadow() : widgetTheme.getTextShadow());
6567
renderer.setPos(getArea().getPadding().left, getArea().getPadding().top);
@@ -88,7 +90,12 @@ public ScrollingTextWidget alignment(Alignment alignment) {
8890
}
8991

9092
@Override
91-
public ScrollingTextWidget color(@Nullable Integer color) {
93+
public ScrollingTextWidget color(int color) {
94+
return color(() -> color);
95+
}
96+
97+
@Override
98+
public ScrollingTextWidget color(@Nullable IntSupplier color) {
9299
return (ScrollingTextWidget) super.color(color);
93100
}
94101

src/main/java/com/cleanroommc/modularui/widgets/TextWidget.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,13 @@
1313

1414
import org.jetbrains.annotations.Nullable;
1515

16+
import java.util.function.IntSupplier;
17+
1618
public class TextWidget extends Widget<TextWidget> {
1719

1820
private final IKey key;
1921
private Alignment alignment = Alignment.CenterLeft;
20-
private Integer color = null;
22+
private IntSupplier color = null;
2123
private Boolean shadow = null;
2224
private float scale = 1f;
2325

@@ -37,7 +39,7 @@ public void draw(ModularGuiContext context, WidgetTheme widgetTheme) {
3739
WidgetTree.resizeInternal(this, false);
3840
}
3941
this.lastText = text;
40-
renderer.setColor(this.color != null ? this.color : widgetTheme.getTextColor());
42+
renderer.setColor(this.color != null ? this.color.getAsInt() : widgetTheme.getTextColor());
4143
renderer.setAlignment(this.alignment, getArea().w() + this.scale, getArea().h());
4244
renderer.setShadow(this.shadow != null ? this.shadow : widgetTheme.getTextShadow());
4345
renderer.setPos(getArea().getPadding().left, getArea().getPadding().top);
@@ -121,7 +123,7 @@ public float getScale() {
121123
return this.scale;
122124
}
123125

124-
public @Nullable Integer getColor() {
126+
public @Nullable IntSupplier getColor() {
125127
return this.color;
126128
}
127129

@@ -134,7 +136,11 @@ public TextWidget alignment(Alignment alignment) {
134136
return this;
135137
}
136138

137-
public TextWidget color(@Nullable Integer color) {
139+
public TextWidget color(int color) {
140+
return color(() -> color);
141+
}
142+
143+
public TextWidget color(@Nullable IntSupplier color) {
138144
this.color = color;
139145
return this;
140146
}

0 commit comments

Comments
 (0)