Skip to content

Commit bb6b6f2

Browse files
committed
Small changes to skybox debug screen stuff
1 parent 9a21f76 commit bb6b6f2

File tree

10 files changed

+132
-142
lines changed

10 files changed

+132
-142
lines changed

build.gradle.kts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,11 @@ stonecutter {
5757
direction = eval(current.version, ">=1.21.11")
5858
replace("ResourceLocation", "Identifier")
5959
}
60+
61+
replacements.string {
62+
direction = eval(current.version, ">=1.21.11")
63+
replace(".location().toString()", ".identifier().toString()")
64+
}
6065
}
6166

6267
blossom {

src/main/java/btw/lowercase/skyboxify/Skyboxify.java

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,8 @@
3636
import lombok.Getter;
3737
import lombok.experimental.UtilityClass;
3838
import net.minecraft.client.multiplayer.ClientLevel;
39-
import net.minecraft.resources.ResourceKey;
4039
import net.minecraft.resources.ResourceLocation;
4140
import net.minecraft.world.level.Level;
42-
import org.jetbrains.annotations.NotNull;
4341
import org.joml.Matrix4f;
4442
import org.slf4j.Logger;
4543
import org.slf4j.LoggerFactory;
@@ -145,6 +143,7 @@ private void parseSkyboxes(SkyboxResourceHelper skyboxResourceHelper, String sky
145143
return a - b;
146144
}
147145
}
146+
148147
return 0;
149148
})).forEach(id -> {
150149
final Matcher matcher = skyPattern.matcher(id.getPath());
@@ -190,24 +189,17 @@ private void parseSkyboxes(SkyboxResourceHelper skyboxResourceHelper, String sky
190189
});
191190

192191
for (Map.Entry<String, JsonArray> entry : layers.entrySet()) {
193-
final JsonObject skyJson = new JsonObject();
194192
final JsonArray skyLayers = entry.getValue();
195193
if (!skyLayers.isEmpty()) {
196-
skyJson.add("layers", skyLayers);
197-
final ResourceKey<@NotNull Level> resourceKey = switch (entry.getKey()) {
198-
case "world-1" -> Level.NETHER;
199-
case "world1" -> Level.END;
200-
default -> Level.OVERWORLD;
201-
};
202-
skyJson.addProperty(
203-
"world",
204-
//? >=1.21.11 {
205-
/*resourceKey.identifier().toString()
206-
*///?} else {
207-
resourceKey.location().toString()
208-
//?}
209-
);
210-
SkyboxManager.INSTANCE.addSkybox(Skybox.CODEC.decode(JsonOps.INSTANCE, skyJson).getOrThrow().getFirst());
194+
final JsonObject skyboxJson = new JsonObject();
195+
skyboxJson.add("layers", skyLayers);
196+
skyboxJson.addProperty("world", switch (entry.getKey()) {
197+
case "world0" -> "overworld";
198+
case "world-1" -> "nether";
199+
case "world1" -> "end";
200+
default -> entry.getKey();
201+
});
202+
SkyboxManager.INSTANCE.addSkybox(Skybox.CODEC.decode(JsonOps.INSTANCE, skyboxJson).getOrThrow().getFirst());
211203
}
212204
}
213205
}

src/main/java/btw/lowercase/skyboxify/command/SkyboxifyCommand.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public SkyboxifyCommand(String name) {
4343
});
4444

4545
then(ClientCommandManager.literal("debug").executes((context) -> {
46-
minecraft.schedule(() -> minecraft.setScreen(new SkyboxListScreen(minecraft.screen, SkyboxManager.INSTANCE.getActiveSkyboxes())));
46+
minecraft.schedule(() -> minecraft.setScreen(new SkyboxListScreen(minecraft.screen, SkyboxManager.INSTANCE.getLoadedSkyboxes())));
4747
return Command.SINGLE_SUCCESS;
4848
}));
4949
}

src/main/java/btw/lowercase/skyboxify/screen/DebugScreen.java

Lines changed: 41 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import net.minecraft.client.gui.screens.Screen;
2929
import net.minecraft.network.chat.Component;
3030
import org.jetbrains.annotations.NotNull;
31+
import org.lwjgl.glfw.GLFW;
3132

3233
import java.util.ArrayList;
3334
import java.util.List;
@@ -36,7 +37,7 @@ public class DebugScreen extends Screen {
3637
protected final List<Gidget> gidgets;
3738
private final Screen parent;
3839

39-
public DebugScreen(Component title, Screen parent) {
40+
public DebugScreen(final Component title, final Screen parent) {
4041
super(title);
4142
this.gidgets = new ArrayList<>();
4243
this.parent = parent;
@@ -50,36 +51,36 @@ protected void init() {
5051
@Override
5152
public void render(@NotNull GuiGraphics guiGraphics, int mouseX, int mouseY, float delta) {
5253
super.render(guiGraphics, mouseX, mouseY, delta);
53-
for (Gidget gidget : this.gidgets) {
54+
for (final Gidget gidget : this.gidgets) {
5455
gidget.render(guiGraphics, mouseX, mouseY);
5556
}
5657
}
5758

58-
private void mouseClickedInternal(double mouseX, double mouseY) {
59-
for (Gidget gidget : this.gidgets) {
60-
if (gidget.box().contains((int) mouseX, (int) mouseY)) {
61-
gidget.onMouseClicked(mouseX, mouseY);
59+
private boolean mouseClickedInternal(double mouseX, double mouseY) {
60+
for (final Gidget gidget : this.gidgets) {
61+
if (gidget.box().contains((int) mouseX, (int) mouseY) && gidget.onMouseClicked(mouseX, mouseY)) {
62+
return true;
6263
}
6364
}
65+
66+
return false;
6467
}
6568

6669
//? >=1.21.9 {
6770
@Override
6871
public boolean mouseClicked(net.minecraft.client.input.MouseButtonEvent event, boolean isDoubleClick) {
69-
this.mouseClickedInternal(event.x(), event.y());
70-
return super.mouseClicked(event, isDoubleClick);
72+
return this.mouseClickedInternal(event.x(), event.y());
7173
}
7274
//?} else {
7375
/*@Override
7476
public boolean mouseClicked(double mouseX, double mouseY, int button) {
75-
this.mouseClickedInternal(mouseX, mouseY);
76-
return super.mouseClicked(mouseX, mouseY, button);
77+
return this.mouseClickedInternal(mouseX, mouseY);
7778
}
7879
*///?}
7980

8081
@Override
8182
public void mouseMoved(double mouseX, double mouseY) {
82-
for (Gidget gidget : this.gidgets) {
83+
for (final Gidget gidget : this.gidgets) {
8384
gidget.onMouseMove(mouseX, mouseY);
8485
}
8586

@@ -88,57 +89,68 @@ public void mouseMoved(double mouseX, double mouseY) {
8889

8990
@Override
9091
public boolean mouseScrolled(double mouseX, double mouseY, double scrollX, double scrollY) {
91-
for (Gidget gidget : this.gidgets) {
92-
if (gidget.box().contains((int) mouseX, (int) mouseY)) {
93-
gidget.onMouseScrolled(mouseX, mouseY, scrollX, scrollY);
92+
for (final Gidget gidget : this.gidgets) {
93+
if (gidget.box().contains((int) mouseX, (int) mouseY) && gidget.onMouseScrolled(mouseX, mouseY, scrollX, scrollY)) {
94+
return true;
9495
}
9596
}
9697

9798
return super.mouseScrolled(mouseX, mouseY, scrollX, scrollY);
9899
}
99100

100-
private void keyPressedInternal(int keyCode, int scanCode, int modifiers) {
101-
for (Gidget gidget : this.gidgets) {
102-
gidget.onKeyDown(scanCode, keyCode, modifiers);
101+
private boolean keyPressedInternal(int keyCode, int scanCode, int modifiers) {
102+
if (keyCode == GLFW.GLFW_KEY_ESCAPE) {
103+
this.minecraft.setScreen(null);
104+
return true;
105+
}
106+
107+
for (final Gidget gidget : this.gidgets) {
108+
if (gidget.onKeyDown(scanCode, keyCode, modifiers)) {
109+
return true;
110+
}
103111
}
112+
113+
return false;
104114
}
105115

106116
//? >=1.21.9 {
107117
@Override
108118
public boolean keyPressed(net.minecraft.client.input.KeyEvent event) {
109-
this.keyPressedInternal(event.key(), event.scancode(), event.modifiers());
110-
return super.keyPressed(event);
119+
return this.keyPressedInternal(event.key(), event.scancode(), event.modifiers());
111120
}
112121
//?} else {
113122
/*@Override
114123
public boolean keyPressed(int keyCode, int scanCode, int modifiers) {
115-
this.keyPressedInternal(keyCode, scanCode, modifiers);
116-
return super.keyPressed(keyCode, scanCode, modifiers);
124+
return this.keyPressedInternal(keyCode, scanCode, modifiers);
117125
}
118126
*///?}
119127

120-
private void keyReleasedInternal(int keyCode, int scanCode, int modifiers) {
121-
for (Gidget gidget : this.gidgets) {
122-
gidget.onKeyUp(scanCode, keyCode, modifiers);
128+
private boolean keyReleasedInternal(int keyCode, int scanCode, int modifiers) {
129+
for (final Gidget gidget : this.gidgets) {
130+
if (gidget.onKeyUp(scanCode, keyCode, modifiers)) {
131+
return true;
132+
}
123133
}
134+
135+
return false;
124136
}
125137

126138
//? >=1.21.9 {
127139
@Override
128140
public boolean keyReleased(net.minecraft.client.input.KeyEvent event) {
129-
this.keyPressedInternal(event.key(), event.scancode(), event.modifiers());
130-
return super.keyReleased(event);
141+
return this.keyPressedInternal(event.key(), event.scancode(), event.modifiers());
131142
}
132143
//?} else {
133144
/*@Override
134145
public boolean keyReleased(int keyCode, int scanCode, int modifiers) {
135-
this.keyPressedInternal(keyCode, scanCode, modifiers);
136-
return super.keyReleased(keyCode, scanCode, modifiers);
146+
return this.keyPressedInternal(keyCode, scanCode, modifiers);
137147
}
138148
*///?}
139149

140150
@Override
141151
public void onClose() {
142-
this.minecraft.setScreen(this.parent);
152+
if (this.minecraft != null) {
153+
this.minecraft.setScreen(this.parent);
154+
}
143155
}
144156
}

src/main/java/btw/lowercase/skyboxify/screen/SkyLayerInfoScreen.java

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
public class SkyLayerInfoScreen extends DebugScreen {
3434
private final SkyLayer skyLayer;
3535

36-
public SkyLayerInfoScreen(Screen parent, SkyLayer skyLayer, int index) {
36+
public SkyLayerInfoScreen(final Screen parent, final SkyLayer skyLayer, final int index) {
3737
super(Component.literal(index + " - " + skyLayer.source().toString()), parent);
3838
this.skyLayer = skyLayer;
3939
}
@@ -58,12 +58,9 @@ protected void init() {
5858
addLine(Text.builder("Heights: " + this.skyLayer.heights()).centered().build(this.font));
5959
addLine(Text.builder("Weather Conditions: " + this.skyLayer.weatherConditions()).centered().build(this.font));
6060

61-
this.gidgets.add(new SimpleButton(
62-
CommonComponents.GUI_BACK,
63-
(this.width / 2) - (SimpleButton.DEFAULT_WIDTH / 2),
64-
this.height - SimpleButton.DEFAULT_HEIGHT - 4,
65-
(button) -> this.onClose()
66-
));
61+
this.gidgets.add(SimpleButton.builder(CommonComponents.GUI_BACK, button -> this.onClose())
62+
.position((this.width / 2) - (SimpleButton.DEFAULT_WIDTH / 2), this.height - SimpleButton.DEFAULT_HEIGHT - 4)
63+
.build());
6764
}
6865

6966
private void addLine(final Text text) {

src/main/java/btw/lowercase/skyboxify/screen/SkyLayerListScreen.java

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
public class SkyLayerListScreen extends DebugScreen {
4040
private final Skybox skybox;
4141

42-
public SkyLayerListScreen(Screen parent, Skybox skybox) {
42+
public SkyLayerListScreen(final Screen parent, final Skybox skybox) {
4343
super(Component.literal(
4444
//? >=1.21.11 {
4545
/*skybox.getWorldResourceKey().identifier().toString()
@@ -59,23 +59,20 @@ protected void init() {
5959
.centered()
6060
.build(this.font));
6161

62-
List<Gidget> scrollableListGidgets = new ArrayList<>();
62+
final List<Gidget> gidgets = new ArrayList<>();
6363
int index = 0;
64-
for (SkyLayer skyLayer : this.skybox.getLayers()) {
64+
for (final SkyLayer skyLayer : this.skybox.getLayers()) {
6565
int skyIndex = index;
66-
scrollableListGidgets.add(SimpleButton.builder(Component.literal((index + 1) + " - " + skyLayer.source()), button -> this.minecraft.setScreen(new SkyLayerInfoScreen(this, skyLayer, skyIndex))).build());
66+
gidgets.add(SimpleButton.builder(Component.literal((index + 1) + " - " + skyLayer.source()), button -> this.minecraft.setScreen(new SkyLayerInfoScreen(this, skyLayer, skyIndex))).build());
6767
index++;
6868
}
6969

70-
int pad = 20 + font.lineHeight;
71-
this.gidgets.add(new ScrollableList(scrollableListGidgets, 0, pad, this.width, this.height - pad - SimpleButton.DEFAULT_HEIGHT - 8));
70+
final int pad = 20 + font.lineHeight;
71+
this.gidgets.add(new ScrollableList(gidgets, 0, pad, this.width, this.height - pad - SimpleButton.DEFAULT_HEIGHT - 8));
7272

73-
this.gidgets.add(new SimpleButton(
74-
CommonComponents.GUI_BACK,
75-
(this.width / 2) - (SimpleButton.DEFAULT_WIDTH / 2),
76-
this.height - SimpleButton.DEFAULT_HEIGHT - 4,
77-
(button) -> this.onClose()
78-
));
73+
this.gidgets.add(SimpleButton.builder(CommonComponents.GUI_BACK, button -> this.onClose())
74+
.position((this.width / 2) - (SimpleButton.DEFAULT_WIDTH / 2), this.height - SimpleButton.DEFAULT_HEIGHT - 4)
75+
.build());
7976
}
8077
}
8178

src/main/java/btw/lowercase/skyboxify/screen/SkyboxListScreen.java

Lines changed: 14 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -31,50 +31,40 @@
3131
import net.minecraft.client.gui.screens.Screen;
3232
import net.minecraft.network.chat.CommonComponents;
3333
import net.minecraft.network.chat.Component;
34+
import net.minecraft.util.ARGB;
3435

3536
import java.util.ArrayList;
3637
import java.util.List;
3738

3839
public class SkyboxListScreen extends DebugScreen {
3940
private final List<Skybox> skyboxes;
4041

41-
public SkyboxListScreen(Screen parent, List<Skybox> skyboxes) {
42-
super(Component.literal(skyboxes.isEmpty() ? "No skies enabled..." : skyboxes.size() + " Total Active Skyboxes"), parent);
42+
public SkyboxListScreen(final Screen parent, final List<Skybox> skyboxes) {
43+
super(Component.literal(skyboxes.isEmpty() ? "No skies enabled..." : skyboxes.size() + " Total Skyboxes"), parent);
4344
this.skyboxes = skyboxes;
4445
}
4546

4647
@Override
4748
protected void init() {
4849
super.init();
4950

50-
// TODO: isActive | button color
51-
this.gidgets.add(Text.builder(this.title)
51+
this.gidgets.add(Text.builder(this.title.copy())
5252
.position(this.width / 2, 12)
5353
.centered()
5454
.build(this.font));
5555

56-
List<Gidget> scrollableListGidgets = new ArrayList<>();
57-
for (Skybox skybox : this.skyboxes) {
58-
scrollableListGidgets.add(SimpleButton.builder(
59-
Component.literal(
60-
//? >=1.21.11 {
61-
/*skybox.getWorldResourceKey().identifier().toString()
62-
*///?} else {
63-
skybox.getWorldResourceKey().location().toString()
64-
//?}
65-
),
66-
button -> this.minecraft.setScreen(new SkyLayerListScreen(this, skybox)
67-
)).build());
56+
final List<Gidget> gidgets = new ArrayList<>();
57+
for (final Skybox skybox : this.skyboxes) {
58+
final Component name = Component.literal(skybox.getWorldResourceKey().location().toString())
59+
.withColor(skybox.isActive() ? ARGB.color(155, 0x00FF00) : ARGB.color(155, 0xFF0000));
60+
gidgets.add(SimpleButton.builder(name,button -> this.minecraft.setScreen(new SkyLayerListScreen(this, skybox))).build());
6861
}
6962

70-
int pad = 20 + font.lineHeight;
71-
this.gidgets.add(new ScrollableList(scrollableListGidgets, 0, pad, this.width, this.height - pad - SimpleButton.DEFAULT_HEIGHT - 8));
63+
final int pad = 20 + this.font.lineHeight;
64+
this.gidgets.add(new ScrollableList(gidgets, 0, pad, this.width, this.height - pad - SimpleButton.DEFAULT_HEIGHT - 8));
7265

73-
this.gidgets.add(new SimpleButton(
74-
CommonComponents.GUI_DONE,
75-
(this.width / 2) - (SimpleButton.DEFAULT_WIDTH / 2),
76-
this.height - SimpleButton.DEFAULT_HEIGHT - 4,
77-
(button) -> this.onClose()
78-
));
66+
this.gidgets.add(SimpleButton.builder(CommonComponents.GUI_BACK, button -> this.onClose())
67+
.position((this.width / 2) - (SimpleButton.DEFAULT_WIDTH / 2), this.height - SimpleButton.DEFAULT_HEIGHT - 4)
68+
.build());
7969
}
8070
}

src/main/java/btw/lowercase/skyboxify/screen/widget/ScrollableList.java

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -114,20 +114,16 @@ public boolean onMouseScrolled(double mouseX, double mouseY, double scrollX, dou
114114
}
115115
}
116116

117-
// idk i don't want 1 element moving :3
118-
if (this.gidgets.size() > 1) {
119-
final int rowHeight = SimpleButton.DEFAULT_HEIGHT + SimpleButton.DEFAULT_PADDING;
120-
final int scrollableHeight = Math.max(0, (this.gidgets.size() * rowHeight) - this.box().height());
121-
final double scrollAmount = (double) rowHeight / scrollableHeight;
122-
if (scrollY > 0.0) {
123-
this.scrollbar.setScrollY(this.scrollbar.getScrollY() - scrollAmount);
124-
} else {
125-
this.scrollbar.setScrollY(this.scrollbar.getScrollY() + scrollAmount);
126-
}
127-
128-
this.updateGidgetsPosition();
117+
final int rowHeight = SimpleButton.DEFAULT_HEIGHT + SimpleButton.DEFAULT_PADDING;
118+
final int scrollableHeight = Math.max(0, (this.gidgets.size() * rowHeight) - this.box().height());
119+
final double scrollAmount = (double) rowHeight / scrollableHeight;
120+
if (scrollY > 0.0) {
121+
this.scrollbar.setScrollY(this.scrollbar.getScrollY() - scrollAmount);
122+
} else {
123+
this.scrollbar.setScrollY(this.scrollbar.getScrollY() + scrollAmount);
129124
}
130125

126+
this.updateGidgetsPosition();
131127
return super.onMouseScrolled(mouseX, mouseY, scrollX, scrollY);
132128
}
133129

0 commit comments

Comments
 (0)