Skip to content

Commit 75eee18

Browse files
committed
easier replacement of UI widgets
1 parent 5ecc7e9 commit 75eee18

File tree

2 files changed

+61
-12
lines changed

2 files changed

+61
-12
lines changed

src/main/java/io/github/axolotlclient/config/screen/ButtonWidgetList.java

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import io.github.axolotlclient.config.screen.widgets.ColorOptionWidget;
1818
import io.github.axolotlclient.config.screen.widgets.EnumOptionWidget;
1919
import io.github.axolotlclient.config.screen.widgets.OptionSliderWidget;
20+
import io.github.axolotlclient.config.screen.widgets.OptionWidgetProvider;
2021
import io.github.axolotlclient.config.screen.widgets.StringOptionWidget;
2122
import io.github.axolotlclient.modules.hud.util.Rectangle;
2223
import io.github.axolotlclient.util.Util;
@@ -25,6 +26,7 @@
2526
import net.minecraft.client.MinecraftClient;
2627
import net.minecraft.client.gui.DrawableHelper;
2728
import net.minecraft.client.gui.widget.ButtonListWidget;
29+
import net.minecraft.client.gui.widget.ButtonWidget;
2830
import net.minecraft.client.gui.widget.ClickableWidget;
2931
import net.minecraft.client.util.math.MatrixStack;
3032
import org.lwjgl.opengl.GL11;
@@ -50,10 +52,10 @@ public ButtonWidgetList(MinecraftClient minecraftClient, int width, int height,
5052
if(!category.getSubCategories().isEmpty()) {
5153
for (int i = 0; i < category.getSubCategories().size(); i += 2) {
5254
OptionCategory subCat = category.getSubCategories().get(i);
53-
CategoryWidget buttonWidget = this.createCategoryWidget(width / 2 - 155, subCat);
55+
ClickableWidget buttonWidget = this.createCategoryWidget(width / 2 - 155, subCat);
5456

5557
OptionCategory subCat2 = i < category.getSubCategories().size() - 1 ? category.getSubCategories().get(i + 1) : null;
56-
CategoryWidget buttonWidget2 = this.createCategoryWidget(width / 2 - 155 + 160, subCat2);
58+
ClickableWidget buttonWidget2 = this.createCategoryWidget(width / 2 - 155 + 160, subCat2);
5759

5860
this.addEntry(new CategoryPair(subCat, buttonWidget, subCat2, buttonWidget2));
5961
this.entries.add(new CategoryPair(subCat, buttonWidget, subCat2, buttonWidget2));
@@ -79,23 +81,23 @@ protected int addEntry(ButtonEntry entry) {
7981
return super.addEntry(entry);
8082
}
8183

82-
private CategoryWidget createCategoryWidget(int x, OptionCategory cat){
84+
private ClickableWidget createCategoryWidget(int x, OptionCategory cat){
8385
if(cat==null) {
8486
return null;
8587
} else {
86-
return new CategoryWidget(cat, x, 0,150, 20);
88+
return OptionWidgetProvider.getCategoryWidget(x, 0,150, 20, cat);
8789
}
8890
}
8991

9092
private ClickableWidget createWidget(int x, Option option) {
9193
if (option != null) {
92-
if (option instanceof FloatOption) return new OptionSliderWidget(x, 0, (FloatOption) option);
93-
else if (option instanceof IntegerOption) return new OptionSliderWidget(x, 0, (IntegerOption) option);
94-
else if (option instanceof DoubleOption) return new OptionSliderWidget(x, 0, (DoubleOption) option);
95-
else if (option instanceof BooleanOption) return new BooleanWidget(x, 0, 35, 20, (BooleanOption) option);
96-
else if (option instanceof StringOption) return new StringOptionWidget(x, 0, (StringOption) option);
97-
else if (option instanceof ColorOption) return new ColorOptionWidget(x, 0, (ColorOption) option);
98-
else if (option instanceof EnumOption) return new EnumOptionWidget(x, 0, (EnumOption) option);
94+
if (option instanceof FloatOption) return OptionWidgetProvider.getFloatWidget(x, 0, (FloatOption) option);
95+
else if (option instanceof IntegerOption) return OptionWidgetProvider.getIntegerWidget(x, 0, (IntegerOption) option);
96+
else if (option instanceof DoubleOption) return OptionWidgetProvider.getDoubleWidget(x, 0, (DoubleOption) option);
97+
else if (option instanceof BooleanOption) return OptionWidgetProvider.getBooleanWidget(x, 0, 35, 20, (BooleanOption) option);
98+
else if (option instanceof StringOption) return OptionWidgetProvider.getStringWidget(x, 0, (StringOption) option);
99+
else if (option instanceof ColorOption) return OptionWidgetProvider.getColorWidget(x, 0, (ColorOption) option);
100+
else if (option instanceof EnumOption) return OptionWidgetProvider.getEnumWidget(x, 0, (EnumOption) option);
99101
}
100102
return null;
101103
}
@@ -273,7 +275,7 @@ public class CategoryPair extends Pair {
273275
protected OptionCategory left;
274276
protected OptionCategory right;
275277

276-
public CategoryPair(OptionCategory catLeft, CategoryWidget btnLeft, OptionCategory catRight, CategoryWidget btnRight) {
278+
public CategoryPair(OptionCategory catLeft, ClickableWidget btnLeft, OptionCategory catRight, ClickableWidget btnRight) {
277279
super(btnLeft, btnRight);
278280
left = catLeft;
279281
right = catRight;
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package io.github.axolotlclient.config.screen.widgets;
2+
3+
import io.github.axolotlclient.config.options.BooleanOption;
4+
import io.github.axolotlclient.config.options.ColorOption;
5+
import io.github.axolotlclient.config.options.DoubleOption;
6+
import io.github.axolotlclient.config.options.EnumOption;
7+
import io.github.axolotlclient.config.options.FloatOption;
8+
import io.github.axolotlclient.config.options.IntegerOption;
9+
import io.github.axolotlclient.config.options.OptionCategory;
10+
import io.github.axolotlclient.config.options.StringOption;
11+
import net.minecraft.client.gui.widget.ClickableWidget;
12+
import net.minecraft.client.gui.widget.ClickableWidget;
13+
14+
public class OptionWidgetProvider {
15+
16+
public static ClickableWidget getBooleanWidget(int x, int y, int width, int height, BooleanOption option){
17+
return new BooleanWidget(x, y, width, height, option);
18+
}
19+
20+
public static ClickableWidget getStringWidget(int x, int y, StringOption option){
21+
return new StringOptionWidget(x, y, option);
22+
}
23+
24+
public static ClickableWidget getFloatWidget(int x, int y, FloatOption option){
25+
return new OptionSliderWidget(x, y, option);
26+
}
27+
28+
public static ClickableWidget getDoubleWidget(int x, int y, DoubleOption option){
29+
return new OptionSliderWidget(x, y, option);
30+
}
31+
32+
public static ClickableWidget getIntegerWidget(int x, int y, IntegerOption option){
33+
return new OptionSliderWidget(x, y, option);
34+
}
35+
36+
public static ClickableWidget getColorWidget(int x, int y, ColorOption option){
37+
return new ColorOptionWidget(x, y, option);
38+
}
39+
40+
public static ClickableWidget getEnumWidget(int x, int y, EnumOption option){
41+
return new EnumOptionWidget(x, y, option);
42+
}
43+
44+
public static ClickableWidget getCategoryWidget(int x, int y, int width, int height, OptionCategory option){
45+
return new CategoryWidget(option, x, y, width, height);
46+
}
47+
}

0 commit comments

Comments
 (0)