aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRosa <rosaontheweb@proton.me>2026-06-20 17:48:34 -0400
committerRosa <rosaontheweb@proton.me>2026-06-20 17:48:34 -0400
commit0234e418d928c5114b3fb8fd35374d6fe99d897f (patch)
treeccff5b3729482a9c4cb1f19f7cc64bb25c817b29
parent5a0176eb65855e713269101279dabcd1e6ebf889 (diff)
parent44c20fcf884727940864f1cd6f6b90efcd9ea9e8 (diff)
Merge branch '26.2'
-rw-r--r--build.gradle.kts17
-rw-r--r--flake.lock44
-rw-r--r--flake.nix53
-rw-r--r--gradle/wrapper/gradle-wrapper.properties2
-rwxr-xr-xgradlew12
-rw-r--r--gradlew.bat3
-rw-r--r--src/main/java/net/inyourwalls/frank/Frank.java2
-rw-r--r--src/main/java/net/inyourwalls/frank/ModMenuIntegration.java13
-rw-r--r--src/main/java/net/inyourwalls/frank/ScreenEventHandler.java24
-rw-r--r--src/main/java/net/inyourwalls/frank/config/ConfigScreen.java41
-rw-r--r--src/main/resources/fabric.mod.json13
11 files changed, 133 insertions, 91 deletions
diff --git a/build.gradle.kts b/build.gradle.kts
index 92c3c31..c5fae3f 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -1,9 +1,9 @@
plugins {
java
- id("net.fabricmc.fabric-loom-remap") version "1.15-SNAPSHOT"
+ id("net.fabricmc.fabric-loom") version "1.17-SNAPSHOT"
}
-val minecraftVersion = "1.21.11"
+val minecraftVersion = "26.2"
version = "1.0.3+$minecraftVersion"
group = "net.inyourwalls"
@@ -14,22 +14,17 @@ repositories {
dependencies {
// Fabric/Minecraft dependencies.
- val yarnBuild = "4"
minecraft("com.mojang:minecraft:$minecraftVersion")
- mappings(loom.officialMojangMappings())
- modImplementation("net.fabricmc:fabric-loader:0.18.4")
- modImplementation("net.fabricmc.fabric-api:fabric-api:0.141.3+$minecraftVersion")
-
- modImplementation("com.terraformersmc:modmenu:17.0.0-beta.2")
+ implementation("net.fabricmc:fabric-loader:0.18.4")
+ implementation("net.fabricmc.fabric-api:fabric-api:0.152.2+$minecraftVersion")
+ implementation("com.terraformersmc:modmenu:20.0.0-beta.3")
}
tasks {
processResources {
inputs.property("version", project.version)
filesMatching("fabric.mod.json") {
- expand(mapOf(
- "version" to project.version
- ))
+ expand("version" to project.version)
}
}
}
diff --git a/flake.lock b/flake.lock
index f52c5ed..bc7dbb5 100644
--- a/flake.lock
+++ b/flake.lock
@@ -1,16 +1,34 @@
{
"nodes": {
+ "flake-utils": {
+ "inputs": {
+ "systems": "systems"
+ },
+ "locked": {
+ "lastModified": 1731533236,
+ "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
+ "type": "github"
+ },
+ "original": {
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "type": "github"
+ }
+ },
"nixpkgs": {
"locked": {
- "lastModified": 1771848320,
- "narHash": "sha256-0MAd+0mun3K/Ns8JATeHT1sX28faLII5hVLq0L3BdZU=",
- "owner": "NixOS",
+ "lastModified": 1781577229,
+ "narHash": "sha256-lrp67w8AulE9Ks53n27I45ADSzbOCn4H+CNW1Ck8B+8=",
+ "owner": "nixos",
"repo": "nixpkgs",
- "rev": "2fc6539b481e1d2569f25f8799236694180c0993",
+ "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f",
"type": "github"
},
"original": {
- "owner": "NixOS",
+ "owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
@@ -18,8 +36,24 @@
},
"root": {
"inputs": {
+ "flake-utils": "flake-utils",
"nixpkgs": "nixpkgs"
}
+ },
+ "systems": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
}
},
"root": "root",
diff --git a/flake.nix b/flake.nix
index 965fe52..070ff36 100644
--- a/flake.nix
+++ b/flake.nix
@@ -1,23 +1,40 @@
{
- description = "Development environment for frank.";
-
- inputs.nixpkgs = {
- url = "github:NixOS/nixpkgs/nixos-unstable";
+ description = "Minecraft fabric mod dev env";
+ inputs = {
+ flake-utils.url = "github:numtide/flake-utils";
+ nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
};
- outputs = { self, nixpkgs }: {
- devShells.x86_64-linux.default = let pkgs = nixpkgs.legacyPackages.x86_64-linux;
- in pkgs.mkShell {
- buildInputs = with pkgs; [
- libglvnd
- ];
+ outputs =
+ {
+ self,
+ flake-utils,
+ nixpkgs,
+ }:
+ flake-utils.lib.eachDefaultSystem (
+ system:
+ let
+ pkgs = nixpkgs.legacyPackages.${system};
+ in
+ {
+ devShells.default = pkgs.mkShellNoCC rec {
+ buildInputs = with pkgs; [
+ flite
+ libglvnd
+ libpulseaudio
+ pipewire
+ vulkan-loader
+ ];
- LD_LIBRARY_PATH = with pkgs; lib.makeLibraryPath [ libglvnd ];
- nativeBuildInputs = with pkgs.buildPackages; [
- gradle
- jdk21
- jdt-language-server
- ];
- };
- };
+ LD_LIBRARY_PATH = nixpkgs.lib.makeLibraryPath buildInputs;
+ nativeBuildInputs = with pkgs; [
+ gradle_9
+ jdk25
+ jdt-language-server
+ ];
+ };
+
+ formatter = pkgs.nixfmt;
+ }
+ );
}
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 19a6bde..1a70468 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.0-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.0-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
diff --git a/gradlew b/gradlew
index f5feea6..adff685 100755
--- a/gradlew
+++ b/gradlew
@@ -1,7 +1,7 @@
#!/bin/sh
#
-# Copyright © 2015-2021 the original authors.
+# Copyright © 2015 the original authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -86,8 +86,7 @@ done
# shellcheck disable=SC2034
APP_BASE_NAME=${0##*/}
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
-APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s
-' "$PWD" ) || exit
+APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum
@@ -115,7 +114,6 @@ case "$( uname )" in #(
NONSTOP* ) nonstop=true ;;
esac
-CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
@@ -173,7 +171,6 @@ fi
# For Cygwin or MSYS, switch paths to Windows format before running java
if "$cygwin" || "$msys" ; then
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
- CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
JAVACMD=$( cygpath --unix "$JAVACMD" )
@@ -206,15 +203,14 @@ fi
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Collect all arguments for the java command:
-# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
+# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
# and any embedded shellness will be escaped.
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
# treated as '${Hostname}' itself on the command line.
set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \
- -classpath "$CLASSPATH" \
- org.gradle.wrapper.GradleWrapperMain \
+ -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
"$@"
# Stop when "xargs" is not available.
diff --git a/gradlew.bat b/gradlew.bat
index 9b42019..e509b2d 100644
--- a/gradlew.bat
+++ b/gradlew.bat
@@ -70,11 +70,10 @@ goto fail
:execute
@rem Setup the command line
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %*
:end
@rem End local scope for the variables with windows NT shell
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
index 053e871..35a3927 100644
--- a/src/main/java/net/inyourwalls/frank/ModMenuIntegration.java
+++ b/src/main/java/net/inyourwalls/frank/ModMenuIntegration.java
@@ -1,15 +1,12 @@
-// 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());
- };
- }
+public final class ModMenuIntegration implements ModMenuApi {
+ @Override
+ public ConfigScreenFactory<?> getModConfigScreenFactory() {
+ return parent -> 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 c8d4c0a..dcc64fd 100644
--- a/src/main/java/net/inyourwalls/frank/ScreenEventHandler.java
+++ b/src/main/java/net/inyourwalls/frank/ScreenEventHandler.java
@@ -3,15 +3,15 @@ package net.inyourwalls.frank;
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.GuiGraphics;
import net.minecraft.client.gui.screens.inventory.AbstractFurnaceScreen;
+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..bfa73f2 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) {
+ // do nothing :/
+ }
});
- 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")));
@@ -99,23 +102,23 @@ public class ConfigScreen extends Screen {
@Override
public void onClose() {
- this.minecraft.setScreen(this.previousScreen);
+ this.minecraft.setScreenAndShow(this.previousScreen);
}
@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);
}
}
diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json
index 5d2cbc0..3a3574e 100644
--- a/src/main/resources/fabric.mod.json
+++ b/src/main/resources/fabric.mod.json
@@ -18,21 +18,22 @@
"client": [
"net.inyourwalls.frank.Frank"
],
- "modmenu": ["net.inyourwalls.frank.ModMenuIntegration"]
+ "modmenu": [
+ "net.inyourwalls.frank.ModMenuIntegration"
+ ]
},
"mixins": [
"frank.mixins.json"
],
"depends": {
- "fabricloader": ">=0.14.22",
- "fabric-screen-api-v1": ">=0.114.2+1.21.4",
- "java": ">=17",
- "minecraft": "~1.21.11"
+ "fabricloader": ">=0.18.4",
+ "fabric-screen-api-v1": ">=0.152.2+26.2",
+ "minecraft": ">=26.2"
},
"suggests": {},
"custom": {
"loom:injected_interfaces": {
- "net/minecraft/class_1720": ["net/inyourwalls/frank/ScreenHandlerPropertyAccessor"]
+ "net/minecraft/world/inventory/AbstractFurnaceMenu": ["net/inyourwalls/frank/ScreenHandlerPropertyAccessor"]
}
}
}