diff --git a/Common/src/main/java/com/hypherionmc/craterlib/api/creativetab/CraterCreativeModeTab.java b/Common/src/main/java/com/hypherionmc/craterlib/api/creativetab/CraterCreativeModeTab.java index a459e1a..7641296 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/api/creativetab/CraterCreativeModeTab.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/api/creativetab/CraterCreativeModeTab.java @@ -1,6 +1,8 @@ package com.hypherionmc.craterlib.api.creativetab; import com.hypherionmc.craterlib.core.systems.internal.CreativeTabRegistry; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.CreativeModeTab; import net.minecraft.world.item.CreativeModeTabs; @@ -14,11 +16,13 @@ public class CraterCreativeModeTab implements Supplier { private final Supplier icon; private final String backgroundSuffix; private CreativeModeTab tab; + private final ResourceKey resourceKey; protected CraterCreativeModeTab(Builder builder) { this.resourceLocation = builder.location; this.icon = builder.stack; this.backgroundSuffix = builder.backgroundSuffix == null ? "" : builder.backgroundSuffix; + this.resourceKey = ResourceKey.create(Registries.CREATIVE_MODE_TAB, this.resourceLocation); CreativeTabRegistry.registerTab(this); } @@ -39,6 +43,10 @@ public class CraterCreativeModeTab implements Supplier { this.tab = tab; } + public ResourceKey getResourceKey() { + return resourceKey; + } + public static class Builder { private final ResourceLocation location; private Supplier stack; diff --git a/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/CraterConfigScreen.java b/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/CraterConfigScreen.java index 1323f9e..8acfa98 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/CraterConfigScreen.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/CraterConfigScreen.java @@ -9,13 +9,15 @@ import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.*; import me.hypherionmc.moonconfig.core.conversion.SpecComment; import net.minecraft.ChatFormatting; -import net.minecraft.client.gui.GuiComponent; +import net.minecraft.client.gui.Font; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.screens.ConfirmScreen; import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.renderer.GameRenderer; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; +import org.jetbrains.annotations.NotNull; import org.joml.Matrix4f; import javax.annotation.Nullable; @@ -172,25 +174,25 @@ public class CraterConfigScreen extends Screen { } @Override - public void render(PoseStack matrices, int mouseX, int mouseY, float delta) { - overlayBackground(matrices, TOP, height - BOTTOM, 32); + public void render(@NotNull GuiGraphics matrices, int mouseX, int mouseY, float delta) { + overlayBackground(matrices.pose(), TOP, height - BOTTOM, 32); renderScrollBar(); - matrices.pushPose(); - matrices.translate(0, 0, 500.0); - overlayBackground(matrices, 0, TOP, 64); - overlayBackground(matrices, height - BOTTOM, height, 64); - renderShadow(matrices); - drawCenteredString(matrices, font, getTitle(), width / 2, 9, 0xFFFFFF); + matrices.pose().pushPose(); + matrices.pose().translate(0, 0, 500.0); + overlayBackground(matrices.pose(), 0, TOP, 64); + overlayBackground(matrices.pose(), height - BOTTOM, height, 64); + renderShadow(matrices.pose()); + matrices.drawCenteredString(font, getTitle(), width / 2, 9, 0xFFFFFF); super.render(matrices, mouseX, mouseY, delta); - matrices.popPose(); + matrices.pose().popPose(); int y = (int) (TOP + 4 - Math.round(scrollerAmount)); for (Option option : options) { int height1 = option.height(); option.render(minecraft, font, 40, y, width - 80, height1, matrices, mouseX, mouseY, delta); - renderConfigTooltip(matrices, mouseX, mouseY, 40, y, font.width(option.text), height1, option.text.getString(), option.getLangKeys().toArray(new String[0])); + renderConfigTooltip(matrices, font, mouseX, mouseY, 40, y, font.width(option.text), height1, option.text.getString(), option.getLangKeys().toArray(new String[0])); y += height1; } } @@ -261,9 +263,10 @@ public class CraterConfigScreen extends Screen { } 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(); BufferBuilder buffer = tesselator.getBuilder(); - RenderSystem.setShaderTexture(0, GuiComponent.BACKGROUND_LOCATION); + RenderSystem.setShaderTexture(0, Screen.BACKGROUND_LOCATION); RenderSystem.setShaderColor(1.0f, 1.0f, 1.0f, 1.0f); RenderSystem.setShader(GameRenderer::getPositionTexColorShader); buffer.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX_COLOR); @@ -373,7 +376,7 @@ public class CraterConfigScreen extends Screen { } } - private void renderConfigTooltip(PoseStack stack, int mouseX, int mouseY, int startX, int startY, int sizeX, int sizeY, String title, String... description) { + private void renderConfigTooltip(GuiGraphics stack, Font font, int mouseX, int mouseY, int startX, int startY, int sizeX, int sizeY, String title, String... description) { if (mouseX > startX && mouseX < startX + sizeX) { if (mouseY > startY && mouseY < startY + sizeY) { List list = new ArrayList<>(); @@ -381,7 +384,7 @@ public class CraterConfigScreen extends Screen { for (String desc : description) { list.add(Component.translatable(desc)); } - renderComponentTooltip(stack, list, mouseX, mouseY); + stack.renderComponentTooltip(font, list, mouseX, mouseY); } } } diff --git a/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/AbstractConfigWidget.java b/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/AbstractConfigWidget.java index 91bdfa3..06202d8 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/AbstractConfigWidget.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/AbstractConfigWidget.java @@ -1,8 +1,8 @@ package com.hypherionmc.craterlib.client.gui.config.widgets; -import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.AbstractWidget; import net.minecraft.client.gui.components.EditBox; @@ -16,7 +16,7 @@ public class AbstractConfigWidget extends BaseWidge public W widget; @Override - public void render(Minecraft minecraft, Font font, int x, int y, int width, int height, PoseStack matrices, int mouseX, int mouseY, float delta) { + public void render(Minecraft minecraft, Font font, int x, int y, int width, int height, GuiGraphics matrices, int mouseX, int mouseY, float delta) { super.render(minecraft, font, x, y, width, height, matrices, mouseX, mouseY, delta); int i = (widget instanceof EditBox ? 1 : 0); widget.setX(x + width - 200 - resetButtonOffset + i); diff --git a/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/BaseWidget.java b/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/BaseWidget.java index ed0e763..79ef163 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/BaseWidget.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/BaseWidget.java @@ -1,9 +1,9 @@ package com.hypherionmc.craterlib.client.gui.config.widgets; -import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.Button; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; @@ -39,7 +39,7 @@ public class BaseWidget extends Option { } @Override - public void render(Minecraft minecraft, Font font, int x, int y, int width, int height, PoseStack matrices, int mouseX, int mouseY, float delta) { + public void render(Minecraft minecraft, Font font, int x, int y, int width, int height, GuiGraphics matrices, int mouseX, int mouseY, float delta) { MutableComponent text = Component.literal(this.text.getString()); boolean edited = isEdited() || hasErrors; if (edited) { @@ -50,7 +50,7 @@ public class BaseWidget extends Option { } else { text.withStyle(ChatFormatting.GRAY); } - font.draw(matrices, text, x, y + 8, 0xFFFFFF); + matrices.drawString(font, text, x, y, 0xFFFFFF); resetButton.setX(x + width - 46); resetButton.setY(y + 1); resetButton.active = isNotDefault(); @@ -58,5 +58,4 @@ public class BaseWidget extends Option { resetButton.render(matrices, mouseX, mouseY, delta); } } - } diff --git a/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/InternalConfigButton.java b/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/InternalConfigButton.java index c4cf1e8..c1ee0fd 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/InternalConfigButton.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/InternalConfigButton.java @@ -1,7 +1,7 @@ package com.hypherionmc.craterlib.client.gui.config.widgets; import com.hypherionmc.craterlib.client.gui.config.CraterConfigScreen; -import com.mojang.blaze3d.vertex.PoseStack; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.AbstractButton; import net.minecraft.client.gui.narration.NarratedElementType; import net.minecraft.client.gui.narration.NarrationElementOutput; @@ -23,7 +23,7 @@ public class InternalConfigButton extends AbstractButton { } @Override - public void render(@NotNull PoseStack poseStack, int i, int j, float f) { + public void render(@NotNull GuiGraphics poseStack, int i, int j, float f) { if (cancel) { setMessage(Component.translatable(screen.isEdited() ? "t.clc.cancel_discard" : "gui.cancel")); } else { diff --git a/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/Option.java b/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/Option.java index 25d6b13..3dcf275 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/Option.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/Option.java @@ -1,8 +1,8 @@ package com.hypherionmc.craterlib.client.gui.config.widgets; -import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.events.AbstractContainerEventHandler; import net.minecraft.client.gui.components.events.GuiEventListener; import net.minecraft.network.chat.Component; @@ -38,7 +38,7 @@ public abstract class Option extends AbstractContainerEventHandler { this.langKeys = langKeys; } - public abstract void render(Minecraft minecraft, Font font, int x, int y, int width, int height, PoseStack matrices, int mouseX, int mouseY, float delta); + public abstract void render(Minecraft minecraft, Font font, int x, int y, int width, int height, GuiGraphics matrices, int mouseX, int mouseY, float delta); public int height() { return 22; diff --git a/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/SubConfigWidget.java b/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/SubConfigWidget.java index c284781..9426ccf 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/SubConfigWidget.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/SubConfigWidget.java @@ -2,9 +2,9 @@ package com.hypherionmc.craterlib.client.gui.config.widgets; import com.hypherionmc.craterlib.client.gui.config.CraterConfigScreen; import com.hypherionmc.craterlib.core.config.ModuleConfig; -import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.Button; import net.minecraft.client.gui.screens.Screen; import net.minecraft.network.chat.Component; @@ -27,7 +27,7 @@ public class SubConfigWidget extends AbstractConfigWidget { } @Override - public void render(Minecraft minecraft, Font font, int x, int y, int width, int height, PoseStack matrices, int mouseX, int mouseY, float delta) { + public void render(Minecraft minecraft, Font font, int x, int y, int width, int height, GuiGraphics matrices, int mouseX, int mouseY, float delta) { this.text = Component.literal(subConfig.getClass().getSimpleName().toLowerCase()); this.hideReset(); super.render(minecraft, font, x, y, width, height, matrices, mouseX, mouseY, delta); diff --git a/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/TextConfigOption.java b/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/TextConfigOption.java index 464e35c..de9552c 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/TextConfigOption.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/client/gui/config/widgets/TextConfigOption.java @@ -1,8 +1,8 @@ package com.hypherionmc.craterlib.client.gui.config.widgets; -import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; +import net.minecraft.client.gui.GuiGraphics; import java.util.function.Function; @@ -29,7 +29,7 @@ public class TextConfigOption extends AbstractConfigWidget 0) { - player.level.playSound(null, player.getOnPos(), SoundEvents.BUCKET_EMPTY, SoundSource.BLOCKS, 1.0f, 1.0f); + player.level().playSound(null, player.getOnPos(), SoundEvents.BUCKET_EMPTY, SoundSource.BLOCKS, 1.0f, 1.0f); return true; } } diff --git a/Fabric/src/main/java/com/hypherionmc/craterlib/mixin/MinecraftMixin.java b/Fabric/src/main/java/com/hypherionmc/craterlib/mixin/MinecraftMixin.java index 7d1939b..3acc614 100644 --- a/Fabric/src/main/java/com/hypherionmc/craterlib/mixin/MinecraftMixin.java +++ b/Fabric/src/main/java/com/hypherionmc/craterlib/mixin/MinecraftMixin.java @@ -19,7 +19,7 @@ public class MinecraftMixin { @Inject(method = "", at = @At("RETURN")) private void injectCraterLateInit(GameConfig gameConfig, CallbackInfo ci) { CreativeTabRegistry.getTabs().forEach(tab -> { - CreativeModeTab finalTab = FabricItemGroup.builder(tab.getResourceLocation()) + CreativeModeTab finalTab = FabricItemGroup.builder() .title(Component.translatable("itemGroup." + tab.getResourceLocation().toString().replace(":", ".") )) @@ -28,7 +28,7 @@ public class MinecraftMixin { tab.setTab(finalTab); - ItemGroupEvents.modifyEntriesEvent(finalTab).register(entries -> CreativeTabRegistry + ItemGroupEvents.modifyEntriesEvent(tab.getResourceKey()).register(entries -> CreativeTabRegistry .getTabItems() .stream().filter(t -> t.getLeft().get() == finalTab && t.getRight() != null) .map(Pair::getRight).forEach(itm -> entries.accept(itm.get()))); diff --git a/Fabric/src/main/resources/fabric.mod.json b/Fabric/src/main/resources/fabric.mod.json index d65ced0..5b9bc0b 100644 --- a/Fabric/src/main/resources/fabric.mod.json +++ b/Fabric/src/main/resources/fabric.mod.json @@ -34,7 +34,7 @@ "depends": { "fabricloader": ">=0.14", "fabric": "*", - "minecraft": ">=1.19.4", + "minecraft": ">=1.20", "java": ">=17" } } diff --git a/build.gradle b/build.gradle index eb2200c..e366269 100644 --- a/build.gradle +++ b/build.gradle @@ -8,7 +8,7 @@ registrationUtils { projects { Common { type 'common'; project ':Common' } Fabric { type 'fabric'; project ':Fabric' } - Forge { type 'forge'; project ':Forge' } + //Forge { type 'forge'; project ':Forge' } } } diff --git a/gradle.properties b/gradle.properties index 45f2dc2..abead35 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,11 +1,11 @@ # Project version_major=0 version_minor=0 -version_patch=8d +version_patch=1d group=me.hypherionmc.craterlib # Common -minecraft_version=1.19.4 +minecraft_version=1.20-pre1 common_runs_enabled=false common_client_run_name=Common Client common_server_run_name=Common Server @@ -15,7 +15,7 @@ forge_version=45.0.9 forge_ats_enabled=true # Fabric -fabric_version=0.76.0+1.19.4 +fabric_version=0.80.3+1.20 fabric_loader_version=0.14.9 # Mod options @@ -28,5 +28,5 @@ org.gradle.jvmargs=-Xmx3G org.gradle.daemon=false # Dependencies -mod_menu_version=6.1.0-rc.4 +mod_menu_version=7.0.0-beta.2 moon_config=1.0.9 diff --git a/settings.gradle b/settings.gradle index a440972..ad35826 100644 --- a/settings.gradle +++ b/settings.gradle @@ -13,4 +13,4 @@ pluginManagement { } rootProject.name = 'CraterLib' -include("Common", "Fabric", "Forge") +include("Common", "Fabric", /*"Forge"*/)