diff options
| author | Rosa <rosaontheweb@proton.me> | 2026-03-24 14:31:42 -0400 |
|---|---|---|
| committer | Rosa <rosaontheweb@proton.me> | 2026-03-24 14:31:42 -0400 |
| commit | b3b54f998c2fdbca593256517efc2770976b81ff (patch) | |
| tree | fa62b9501aa743a261365aa1407b8e6965ce6160 | |
| parent | a86cf00f643e2cd2108552a157384c95cb07e8d7 (diff) | |
it builds, missing checks in the config screen
| -rw-r--r-- | build.gradle.kts | 2 | ||||
| -rw-r--r-- | src/main/java/net/inyourwalls/frank/Frank.java | 2 | ||||
| -rw-r--r-- | src/main/java/net/inyourwalls/frank/ModMenuIntegration.java | 15 | ||||
| -rw-r--r-- | src/main/java/net/inyourwalls/frank/ScreenEventHandler.java | 24 | ||||
| -rw-r--r-- | src/main/java/net/inyourwalls/frank/config/ConfigScreen.java | 39 |
5 files changed, 35 insertions, 47 deletions
diff --git a/build.gradle.kts b/build.gradle.kts index 333de2b..69487d1 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -16,7 +16,7 @@ dependencies { // Fabric/Minecraft dependencies. minecraft("com.mojang:minecraft:$minecraftVersion") implementation("net.fabricmc:fabric-loader:0.18.4") - implementation("net.fabricmc.fabric-api:fabric-api:0.143.1+$minecraftVersion") + implementation("net.fabricmc.fabric-api:fabric-api:0.144.0+$minecraftVersion") implementation("com.terraformersmc:modmenu:17.0.0-beta.2") } diff --git a/src/main/java/net/inyourwalls/frank/Frank.java b/src/main/java/net/inyourwalls/frank/Frank.java index 811545d..d992208 100644 --- a/src/main/java/net/inyourwalls/frank/Frank.java +++ b/src/main/java/net/inyourwalls/frank/Frank.java @@ -31,7 +31,7 @@ public class Frank implements ClientModInitializer { if (screen instanceof AbstractFurnaceScreen furnace) { AbstractFurnaceMenu screenHandler = (AbstractFurnaceMenu) furnace.getMenu(); ScreenEventHandler handler = new ScreenEventHandler(furnace, screenHandler, client, config); - ScreenEvents.afterRender(screen).register(handler); + ScreenEvents.afterExtract(screen).register(handler); ScreenEvents.afterTick(screen).register(handler); } }); diff --git a/src/main/java/net/inyourwalls/frank/ModMenuIntegration.java b/src/main/java/net/inyourwalls/frank/ModMenuIntegration.java deleted file mode 100644 index 053e871..0000000 --- a/src/main/java/net/inyourwalls/frank/ModMenuIntegration.java +++ /dev/null @@ -1,15 +0,0 @@ -// ModMenuIntegration: Entrypoint for integrating with Mod Menu. -package net.inyourwalls.frank; - -import com.terraformersmc.modmenu.api.ConfigScreenFactory; -import com.terraformersmc.modmenu.api.ModMenuApi; -import net.inyourwalls.frank.config.ConfigScreen; - -public class ModMenuIntegration implements ModMenuApi { - @Override - public ConfigScreenFactory<?> getModConfigScreenFactory() { - return parent -> { - return new ConfigScreen(parent, Frank.getConfig()); - }; - } -} diff --git a/src/main/java/net/inyourwalls/frank/ScreenEventHandler.java b/src/main/java/net/inyourwalls/frank/ScreenEventHandler.java index 849931d..dcc64fd 100644 --- a/src/main/java/net/inyourwalls/frank/ScreenEventHandler.java +++ b/src/main/java/net/inyourwalls/frank/ScreenEventHandler.java @@ -4,14 +4,14 @@ import net.fabricmc.fabric.api.client.screen.v1.ScreenEvents; import net.inyourwalls.frank.config.FrankConfig; import net.inyourwalls.frank.mixin.AbstractRecipeBookScreenAccessor; import net.minecraft.client.gui.screens.inventory.AbstractFurnaceScreen; -import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.Minecraft; import net.minecraft.network.chat.Component; import net.minecraft.world.inventory.AbstractFurnaceMenu; import net.minecraft.world.item.ItemStack; -public class ScreenEventHandler implements ScreenEvents.AfterRender, ScreenEvents.AfterTick { +public class ScreenEventHandler implements ScreenEvents.AfterExtract, ScreenEvents.AfterTick { private static final int CRAFTING_SLOT_INDEX = 0; private static final int FUEL_SLOT_INDEX = 1; private final AbstractFurnaceScreen<?> screen; @@ -34,7 +34,7 @@ public class ScreenEventHandler implements ScreenEvents.AfterRender, ScreenEvent } @Override - public void afterRender(Screen screen, GuiGraphics drawContext, int mouseX, int mouseY, float tickDelta) { + public void afterExtract(Screen screen, GuiGraphicsExtractor drawContext, int mouseX, int mouseY, float tickProgress) { int secondsLeft = this.ticksLeft / 20; int x = this.screen.width / 2 + (((AbstractRecipeBookScreenAccessor) this.screen).getRecipeBookComponent().isVisible() ? 167 : 90); int y = this.screen.height / 2 - 80; @@ -65,10 +65,10 @@ public class ScreenEventHandler implements ScreenEvents.AfterRender, ScreenEvent } } - private void renderTimeLeft(GuiGraphics drawContext, int secondsLeft, int x, int y) { + private void renderTimeLeft(GuiGraphicsExtractor drawContext, int secondsLeft, int x, int y) { int minutesLeft = secondsLeft / 60; secondsLeft %= 60; - drawContext.drawString( + drawContext.text( this.client.font, Component.translatable("ui.frank.time_left", minutesLeft, secondsLeft), x, @@ -77,8 +77,8 @@ public class ScreenEventHandler implements ScreenEvents.AfterRender, ScreenEvent ); } - private void renderItemsSmeltable(GuiGraphics drawContext, int x, int y) { - drawContext.drawString( + private void renderItemsSmeltable(GuiGraphicsExtractor drawContext, int x, int y) { + drawContext.text( this.client.font, Component.translatable("ui.frank.smeltable", itemsSmeltable), x, @@ -87,29 +87,29 @@ public class ScreenEventHandler implements ScreenEvents.AfterRender, ScreenEvent ); } - private void renderDebugValues(GuiGraphics drawContext, int x, int y) { - drawContext.drawString( + private void renderDebugValues(GuiGraphicsExtractor drawContext, int x, int y) { + drawContext.text( this.client.font, Component.literal("remainingFuelTicks: " + screenHandler.getRemainingFuelTicks()), x, y, 0xffffffff ); - drawContext.drawString( + drawContext.text( this.client.font, Component.literal("totalFuelTicks: " + screenHandler.getTotalFuelTicks()), x, y + 10, 0xffffffff ); - drawContext.drawString( + drawContext.text( this.client.font, Component.literal("currentCookingTicks: " + screenHandler.getCurrentCookingTicks()), x, y + 20, 0xffffffff ); - drawContext.drawString( + drawContext.text( this.client.font, Component.literal("totalCookingTicks: " + screenHandler.getTotalCookingTicks()), x, diff --git a/src/main/java/net/inyourwalls/frank/config/ConfigScreen.java b/src/main/java/net/inyourwalls/frank/config/ConfigScreen.java index 14f01ca..f4cc9cb 100644 --- a/src/main/java/net/inyourwalls/frank/config/ConfigScreen.java +++ b/src/main/java/net/inyourwalls/frank/config/ConfigScreen.java @@ -3,7 +3,7 @@ package net.inyourwalls.frank.config; import net.inyourwalls.frank.Frank; import net.minecraft.client.gui.Font; -import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.components.Button; import net.minecraft.client.gui.components.EditBox; import net.minecraft.client.gui.components.Tooltip; @@ -81,13 +81,16 @@ public class ConfigScreen extends Screen { try { int newColour = Integer.parseInt(input, 16); modifiedConfig.setTextColour(newColour); - } catch (NumberFormatException ex) { /* how */ } + } catch (NumberFormatException ex) { + Frank.LOGGER.error("motherfucking mojang"); + } }); - colourField.setFilter(text -> + colourField.setMaxLength(6); + /*colourField.setFilter(text -> text.length() <= 6 && text.chars().allMatch(c -> (c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F') || (c >= '0' && c <= '9') ) - ); + );*/ colourField.setValue(String.format("%x", modifiedConfig.getTextColour())); colourField.setTooltip(Tooltip.create(Component.translatable("ui.frank.config.text_colour.tooltip"))); @@ -103,19 +106,19 @@ public class ConfigScreen extends Screen { } @Override - public void render(GuiGraphics context, int mouseX, int mouseY, float delta) { - super.render(context, mouseX, mouseY, delta); - context.drawCenteredString(this.font, Component.translatable("ui.frank.config"), this.width / 2, 5, 0xffffff); + public void extractRenderState(GuiGraphicsExtractor context, int mouseX, int mouseY, float delta) { + super.extractRenderState(context, mouseX, mouseY, delta); + context.centeredText(this.font, Component.translatable("ui.frank.config"), this.width / 2, 5, 0xffffff); int labelX = this.width / 2 - Math.max(this.font.width(DISPLAY_MODE_LABEL), this.font.width(TEXT_COLOUR_LABEL)) - 4; - context.drawString( + context.text( this.font, DISPLAY_MODE_LABEL, labelX, 30, 0xffffffff ); - context.drawString( + context.text( this.font, TEXT_COLOUR_LABEL, labelX, @@ -126,7 +129,7 @@ public class ConfigScreen extends Screen { renderPreview(context, this.width / 2 - FURNACE_TEXTURE_WIDTH / 2, this.height / 2 - FURNACE_TEXTURE_HEIGHT / 2); } - private void renderPreview(GuiGraphics context, int x, int y) { + private void renderPreview(GuiGraphicsExtractor context, int x, int y) { context.blit( RenderPipelines.GUI_TEXTURED, FURNACE_UI_TEXTURE, @@ -152,14 +155,14 @@ public class ConfigScreen extends Screen { int infoY = y + 3; switch (modifiedConfig.getDisplayMode()) { case TIME_LEFT_FIRST -> { - context.drawString( + context.text( this.font, Component.translatable("ui.frank.time_left", 0, 0), infoX, infoY, 0xff000000 | modifiedConfig.getTextColour() ); - context.drawString( + context.text( this.font, Component.translatable("ui.frank.smeltable", 0), infoX, @@ -170,7 +173,7 @@ public class ConfigScreen extends Screen { } case TIME_LEFT_ONLY -> { - context.drawString( + context.text( this.font, Component.translatable("ui.frank.time_left", 0, 0), infoX, @@ -181,14 +184,14 @@ public class ConfigScreen extends Screen { } case ITEMS_SMELTABLE_FIRST -> { - context.drawString( + context.text( this.font, Component.translatable("ui.frank.smeltable", 0), infoX, infoY, 0xff000000 | modifiedConfig.getTextColour() ); - context.drawString( + context.text( this.font, Component.translatable("ui.frank.time_left", 0, 0), infoX, @@ -199,7 +202,7 @@ public class ConfigScreen extends Screen { } case ITEMS_SMELTABLE_ONLY -> { - context.drawString( + context.text( this.font, Component.translatable("ui.frank.smeltable", 0), infoX, @@ -213,7 +216,7 @@ public class ConfigScreen extends Screen { } } - private void drawCenteredText(GuiGraphics context, Font renderer, Component text, int centerX, int y, int colour) { - context.drawString(renderer, text, centerX - renderer.width(text) / 2, y, colour, false); + private void drawCenteredText(GuiGraphicsExtractor context, Font renderer, Component text, int centerX, int y, int colour) { + context.text(renderer, text, centerX - renderer.width(text) / 2, y, colour, false); } } |
