[DEV] New Cloth Config GUIs, new nojang apis, and bug fixes

This commit is contained in:
2025-01-14 17:14:57 +02:00
parent 864baeb6c5
commit 8a46899769
290 changed files with 6213 additions and 459 deletions

View File

@@ -0,0 +1,14 @@
--- a/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/ClothConfigScreenBuilder.java
+++ b/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/ClothConfigScreenBuilder.java
@@ -390,9 +390,9 @@
config.saveConfig(config);
Files.deleteIfExists(backupPath);
} catch (Exception e) {
- Minecraft.getInstance().getToastManager().addToast(
+ Minecraft.getInstance().getToasts().addToast(
new SystemToast(
- SystemToast.SystemToastId.PACK_LOAD_FAILURE,
+ SystemToast.SystemToastIds.PACK_LOAD_FAILURE,
Component.literal("Failed To Save Config"),
Component.literal("Restoring Backup Copy. Check log for details"))
);

View File

@@ -20,7 +20,7 @@
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
@@ -158,7 +157,7 @@
@@ -159,7 +158,7 @@
return new TextConfigOption<>(Objects::toString, BigDecimal::new);
}
if (value instanceof ResourceLocation) {
@@ -29,7 +29,7 @@
}
if (isSubConfig) {
return new SubConfigWidget<>(config, this, value);
@@ -177,19 +176,19 @@
@@ -178,19 +177,19 @@
}
@Override
@@ -59,7 +59,7 @@
int y = (int) (TOP + 4 - Math.round(scrollerAmount));
for (Option<?> option : options) {
@@ -216,23 +215,24 @@
@@ -217,23 +216,24 @@
int maxY = this.height - BOTTOM;
//RenderSystem.disableTexture();
Tesselator tesselator = Tesselator.getInstance();
@@ -101,7 +101,7 @@
RenderSystem.disableBlend();
//RenderSystem.enableTexture();
}
@@ -240,21 +240,22 @@
@@ -241,21 +241,22 @@
private void renderShadow(PoseStack matrices) {
Tesselator tesselator = Tesselator.getInstance();
@@ -135,7 +135,7 @@
//RenderSystem.enableTexture();
RenderSystem.disableBlend();
}
@@ -265,15 +266,16 @@
@@ -266,15 +267,16 @@
protected void overlayBackground(Matrix4f matrix, int minX, int minY, int maxX, int maxY, int red, int green, int blue, int startAlpha, int endAlpha) {
Tesselator tesselator = Tesselator.getInstance();
@@ -160,7 +160,7 @@
}
public int scrollHeight() {
@@ -331,12 +333,12 @@
@@ -332,12 +334,12 @@
}
@Override
@@ -175,7 +175,7 @@
}
@Override
@@ -375,7 +377,7 @@
@@ -376,7 +378,7 @@
}
}
@@ -184,7 +184,7 @@
if (mouseX > startX && mouseX < startX + sizeX) {
if (mouseY > startY && mouseY < startY + sizeY) {
List<Component> list = new ArrayList<>();
@@ -383,7 +385,7 @@
@@ -384,7 +386,7 @@
for (String desc : description) {
list.add(Component.translatable(desc));
}

View File

@@ -10,7 +10,7 @@
import net.minecraft.client.gui.components.AbstractWidget;
import net.minecraft.client.gui.components.EditBox;
@@ -17,11 +17,11 @@
@@ -18,11 +18,11 @@
public W widget;
@Override

View File

@@ -11,7 +11,7 @@
import net.minecraft.client.gui.components.Button;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.MutableComponent;
@@ -16,7 +16,7 @@
@@ -17,7 +17,7 @@
public class BaseWidget<T> extends Option<T> {
public static final int resetButtonOffset = 48;
@@ -20,7 +20,7 @@
private boolean hideReset = false;
private boolean isSubConfig = false;
@@ -39,7 +39,7 @@
@@ -40,7 +40,7 @@
}
@Override
@@ -29,7 +29,7 @@
MutableComponent text = Component.literal(this.text.getString());
boolean edited = isEdited() || hasErrors;
if (edited) {
@@ -50,9 +50,9 @@
@@ -51,9 +51,9 @@
} else {
text.withStyle(ChatFormatting.GRAY);
}

View File

@@ -0,0 +1,62 @@
--- a/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/ClothConfigButtonEntry.java
+++ b/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/ClothConfigButtonEntry.java
@@ -1,9 +1,9 @@
package com.hypherionmc.craterlib.client.gui.config.widgets;
import com.mojang.blaze3d.platform.Window;
+import com.mojang.blaze3d.vertex.PoseStack;
import me.shedaniel.clothconfig2.api.AbstractConfigListEntry;
import net.minecraft.client.Minecraft;
-import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.client.gui.components.Button;
import net.minecraft.client.gui.components.events.GuiEventListener;
import net.minecraft.client.gui.narration.NarratableEntry;
@@ -53,36 +53,36 @@
this.wasEdited = wasEdited;
int mainButtonWidth = hasDeleteButton ? 75 : 100;
- this.button = Button.builder(fieldName, onPress).size(mainButtonWidth, 20).pos(0, 0).build();
- this.deleteButton = deletePress != null ? Button.builder(Component.literal("X"), deletePress).size(20, 20).pos(0, 0).build() : null;
+ this.button = new Button(0, 0, mainButtonWidth, 20, fieldName, onPress);
+ this.deleteButton = deletePress != null ? new Button(0, 0, 20, 20, Component.literal("X"), deletePress) : null;
this.displayName = displayName;
}
@Override
- public void render(GuiGraphics matrices, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean isHovered, float delta) {
+ public void render(PoseStack matrices, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean isHovered, float delta) {
Window window = Minecraft.getInstance().getWindow();
Component displayedFieldName = displayName;
if (Minecraft.getInstance().font.isBidirectional()) {
- matrices.drawString(Minecraft.getInstance().font, displayedFieldName.getVisualOrderText(), window.getGuiScaledWidth() - x - Minecraft.getInstance().font.width(displayedFieldName), y + 6, 16777215);
- this.button.setX(x);
+ drawString(matrices, Minecraft.getInstance().font, displayedFieldName.getVisualOrderText(), window.getGuiScaledWidth() - x - Minecraft.getInstance().font.width(displayedFieldName), y + 6, 16777215);
+ this.button.x = x;
if (hasDeleteButton) {
- this.deleteButton.setX(x + this.button.getWidth() + 4);
+ this.deleteButton.x = x + this.button.getWidth() + 4;
}
} else {
- matrices.drawString(Minecraft.getInstance().font, displayedFieldName.getVisualOrderText(), x, y + 6, this.getPreferredTextColor());
+ drawString(matrices, Minecraft.getInstance().font, displayedFieldName.getVisualOrderText(), x, y + 6, this.getPreferredTextColor());
if (hasDeleteButton) {
- this.button.setX(x + entryWidth - this.button.getWidth() - 24);
- this.deleteButton.setX(x + entryWidth - 20);
+ this.button.x = x + entryWidth - this.button.getWidth() - 24;
+ this.deleteButton.x = x + entryWidth - 20;
} else {
- this.button.setX(x + entryWidth - this.button.getWidth());
+ this.button.x = x + entryWidth - this.button.getWidth();
}
}
- button.setY(y + (entryHeight - 20) / 2);
+ button.y = y + (entryHeight - 20) / 2;
button.render(matrices, mouseX, mouseY, delta);
if (hasDeleteButton) {
- deleteButton.setY(y + (entryHeight - 20) / 2);
+ deleteButton.y = y + (entryHeight - 20) / 2;
deleteButton.render(matrices, mouseX, mouseY, delta);
}
}

View File

@@ -14,7 +14,7 @@
/**
* @author HypherionSA
@@ -22,7 +23,7 @@
@@ -23,7 +24,7 @@
}
@Override
@@ -23,7 +23,7 @@
if (cancel) {
setMessage(Component.translatable(screen.isEdited() ? "t.clc.cancel_discard" : "gui.cancel"));
} else {
@@ -30,11 +31,11 @@
@@ -31,11 +32,11 @@
active = screen.isEdited() && !hasErrors;
setMessage(Component.translatable(hasErrors ? "t.clc.error" : "t.clc.save"));
}

View File

@@ -12,7 +12,7 @@
import net.minecraft.client.gui.components.events.AbstractContainerEventHandler;
import net.minecraft.client.gui.components.events.GuiEventListener;
import net.minecraft.network.chat.Component;
@@ -34,7 +34,7 @@
@@ -35,7 +35,7 @@
@Getter
private List<String> langKeys = new ArrayList<>();

View File

@@ -11,7 +11,7 @@
import net.minecraft.client.gui.components.Button;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.network.chat.Component;
@@ -23,11 +23,11 @@
@@ -24,11 +24,11 @@
this.subConfig = subConfig;
this.screen = screen;

View File

@@ -10,7 +10,7 @@
import java.util.function.Function;
@@ -29,7 +29,7 @@
@@ -30,7 +30,7 @@
}
@Override

View File

@@ -1,6 +1,6 @@
--- a/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/ToggleButton.java
+++ b/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/ToggleButton.java
@@ -18,7 +18,7 @@
@@ -19,7 +19,7 @@
public ToggleButton(List<T> options, Function<T, Component> toComponent) {
this.options = options;
this.toComponent = toComponent;