aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build.gradle.kts2
-rw-r--r--src/main/java/net/inyourwalls/frank/Frank.java2
-rw-r--r--src/main/java/net/inyourwalls/frank/ModMenuIntegration.java15
-rw-r--r--src/main/java/net/inyourwalls/frank/ScreenEventHandler.java24
-rw-r--r--src/main/java/net/inyourwalls/frank/config/ConfigScreen.java39
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);
}
}