diff options
| author | inyourwalls <inyourwalls@tutanota.com> | 2023-11-07 21:54:01 -0500 |
|---|---|---|
| committer | inyourwalls <inyourwalls@tutanota.com> | 2023-11-07 21:54:01 -0500 |
| commit | ad36711caa30a934a61b2d95ad8f898a6690d257 (patch) | |
| tree | 4feaf266072c8ad4772751a75a274e2a6785b6f8 | |
| parent | 9a2907f253fee7598836633d4fe2c03651844786 (diff) | |
implement basic functionality
| -rw-r--r-- | build.gradle.kts | 5 | ||||
| -rw-r--r-- | gradle.properties | 2 | ||||
| -rw-r--r-- | src/main/java/net/inyourwalls/frank/Frank.java | 49 | ||||
| -rw-r--r-- | src/main/resources/fabric.mod.json | 4 |
4 files changed, 52 insertions, 8 deletions
diff --git a/build.gradle.kts b/build.gradle.kts index 64d3c25..bb9a0e6 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -13,8 +13,9 @@ repositories { dependencies { // Fabric/Minecraft dependencies. minecraft("com.mojang:minecraft:1.20.2") - mappings("net.fabricmc:yarn:1.20.2+build.4") - modImplementation("net.fabricmc:fabric-loader:0.14.24") + mappings("net.fabricmc:yarn:1.20.2+build.4:v2") + modImplementation("net.fabricmc:fabric-loader:0.14.23") + modImplementation("net.fabricmc.fabric-api:fabric-api:0.90.4+1.20.2") } tasks { diff --git a/gradle.properties b/gradle.properties index b865697..23483b4 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ # Prevent Gradle from crashing. -org.gradle.jvmArgs=-Xmx1G +org.gradle.jvmargs=-Xmx1G org.gradle.parallel=true diff --git a/src/main/java/net/inyourwalls/frank/Frank.java b/src/main/java/net/inyourwalls/frank/Frank.java index 4d9001b..805d2c4 100644 --- a/src/main/java/net/inyourwalls/frank/Frank.java +++ b/src/main/java/net/inyourwalls/frank/Frank.java @@ -2,15 +2,60 @@ package net.inyourwalls.frank; import net.fabricmc.api.ClientModInitializer; +import net.fabricmc.fabric.api.client.screen.v1.ScreenEvents; +import net.fabricmc.fabric.api.registry.FuelRegistry; +import net.minecraft.client.gui.screen.ingame.FurnaceScreen; +import net.minecraft.item.ItemStack; +import net.minecraft.text.Text; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class Frank implements ClientModInitializer { public static final Logger LOGGER = LoggerFactory.getLogger(Frank.class); + private static final int CRAFTING_SLOT_INDEX = 0; + private static final int FUEL_SLOT_INDEX = 1; + @Override public void onInitializeClient() { - // TODO: config maybe - LOGGER.info("Hello, world!"); + ScreenEvents.AFTER_INIT.register((client, screen, scaledWidth, scaledHeight) -> { + if (screen instanceof FurnaceScreen furnace) { + // Determine where to draw the information. + int infoX = screen.width / 2 + 90; + int infoY = screen.height / 2 - 80; + + ScreenEvents.afterRender(screen).register((_s, drawContext, mouseX, mouseY, tickDelta) -> { + int itemsInProgress = furnace.getScreenHandler().getSlot(CRAFTING_SLOT_INDEX).getStack().getCount(); + int secondsLeft = itemsInProgress * 10 - (int)(furnace.getScreenHandler().getCookProgress() * 10); + + ItemStack fuel = furnace.getScreenHandler().getSlot(FUEL_SLOT_INDEX).getStack(); + int fuelItemCount = fuel.getCount(); + Integer fuelTicks = FuelRegistry.INSTANCE.get(fuel.getItem()); + if (fuelTicks == null) fuelTicks = 0; // Avoid null pointer exception because Java is terrible. + int itemsSmeltable = ((fuelTicks / 10) * fuelItemCount) / 20; + + drawContext.drawTextWithShadow( + client.textRenderer, + Text.literal("ui.frank.time_left: " + secondsLeft), + infoX, + infoY, + 0xffffff); + drawContext.drawTextWithShadow(client.textRenderer, Text.literal("smeltable: " + itemsSmeltable), infoX, infoY + 10, 0xffffff); + drawContext.drawTextWithShadow(client.textRenderer, + Text.literal("fuelProgress: " + furnace.getScreenHandler().getFuelProgress()), + infoX, + infoY + 20, + 0xffffff + ); + drawContext.drawTextWithShadow(client.textRenderer, + Text.literal("cookProgress: " + furnace.getScreenHandler().getCookProgress()), + infoX, + infoY + 30, + 0xffffff + ); + }); + } + }); + LOGGER.info("Screen events registered."); } } diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 41c3277..d2a9d50 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -18,11 +18,9 @@ "net.inyourwalls.frank.Frank" ] }, - "mixins": [ - "frank.mixins.json" - ], "depends": { "fabricloader": ">=0.14.22", + "fabric-api": ">=0.90.4+1.20.2", "minecraft": "~1.20.2", "java": ">=17" }, |
