diff --git a/build.gradle b/build.gradle index 68fb06f..afcd4ed 100644 --- a/build.gradle +++ b/build.gradle @@ -122,7 +122,7 @@ dependencies { minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}" jarJar("com.jozufozu.flywheel:flywheel-forge-${flywheel_minecraft_version}:${flywheel_version}") { - jarJar.ranged(it, '[0.6.10,0.7)') + jarJar.ranged(it, '[0.6.9,0.7)') } if (flywheelInWorkspace) { diff --git a/gradle.properties b/gradle.properties index a37c366..0a3796d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,18 +3,18 @@ org.gradle.jvmargs=-Xmx3G org.gradle.daemon=false -mod_version = 3.6 -artifact_minecraft_version = 1.20.1 +mod_version = 3.7 +artifact_minecraft_version = 1.19.4 -minecraft_version = 1.20.1 -forge_version = 47.1.3 +minecraft_version = 1.19.4 +forge_version = 45.2.6 forgegradle_version = 6.0.7 mixingradle_version = 0.7-SNAPSHOT mixin_version = 0.8.5 librarian_version = 1.+ cursegradle_version = 1.4.0 -parchment_version = 2023.09.03 +parchment_version = 2023.06.26 -flywheel_minecraft_version = 1.20.1 -flywheel_version = 0.6.10-7 \ No newline at end of file +flywheel_minecraft_version = 1.19.3 +flywheel_version = 0.6.9-2 \ No newline at end of file diff --git a/src/main/java/nl/requios/effortlessbuilding/AllGuiTextures.java b/src/main/java/nl/requios/effortlessbuilding/AllGuiTextures.java index 2134d4d..35f69f2 100644 --- a/src/main/java/nl/requios/effortlessbuilding/AllGuiTextures.java +++ b/src/main/java/nl/requios/effortlessbuilding/AllGuiTextures.java @@ -1,7 +1,8 @@ package nl.requios.effortlessbuilding; import com.mojang.blaze3d.systems.RenderSystem; -import net.minecraft.client.gui.GuiGraphics; +import com.mojang.blaze3d.vertex.PoseStack; +import net.minecraft.client.gui.GuiComponent; import net.minecraft.resources.ResourceLocation; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @@ -46,16 +47,23 @@ public enum AllGuiTextures implements ScreenElement { public void bind() { RenderSystem.setShaderTexture(0, location); } - + @OnlyIn(Dist.CLIENT) @Override - public void render(GuiGraphics ms, int x, int y) { - ms.blit(location, x, y, 0, startX, startY, width, height, 256, 256); + public void render(PoseStack poseStack, int x, int y) { + bind(); + GuiComponent.blit(poseStack, x, y, 0, startX, startY, width, height, 256, 256); + } + + @OnlyIn(Dist.CLIENT) + public void render(PoseStack poseStack, int x, int y, GuiComponent component) { + bind(); + component.blit(poseStack, x, y, 0, startX, startY, width, height, 256, 256); } @OnlyIn(Dist.CLIENT) - public void render(GuiGraphics ms, int x, int y, Color c) { + public void render(PoseStack poseStack, int x, int y, Color c, GuiComponent component) { bind(); - UIRenderHelper.drawColoredTexture(ms, c, x, y, startX, startY, width, height); + UIRenderHelper.drawColoredTexture(poseStack, c, x, y, startX, startY, width, height); } } diff --git a/src/main/java/nl/requios/effortlessbuilding/AllIcons.java b/src/main/java/nl/requios/effortlessbuilding/AllIcons.java index e6b6ac6..4e01cab 100644 --- a/src/main/java/nl/requios/effortlessbuilding/AllIcons.java +++ b/src/main/java/nl/requios/effortlessbuilding/AllIcons.java @@ -1,8 +1,9 @@ package nl.requios.effortlessbuilding; +import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; -import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.GuiComponent; import net.minecraft.client.renderer.LightTexture; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; @@ -100,10 +101,15 @@ public class AllIcons implements ScreenElement { return new AllIcons(x = 0, ++y); } + public void bind() { + RenderSystem.setShaderTexture(0, ICON_ATLAS); + } + @OnlyIn(Dist.CLIENT) @Override - public void render(GuiGraphics guiGraphics, int x, int y) { - guiGraphics.blit(ICON_ATLAS, x, y, 0, iconX, iconY, 16, 16, 256, 256); + public void render(PoseStack ms, int x, int y) { + bind(); + GuiComponent.blit(ms, x, y, 0, iconX, iconY, 16, 16, 256, 256); } @OnlyIn(Dist.CLIENT) diff --git a/src/main/java/nl/requios/effortlessbuilding/EffortlessBuilding.java b/src/main/java/nl/requios/effortlessbuilding/EffortlessBuilding.java index 1ecdd9e..dff3926 100644 --- a/src/main/java/nl/requios/effortlessbuilding/EffortlessBuilding.java +++ b/src/main/java/nl/requios/effortlessbuilding/EffortlessBuilding.java @@ -12,7 +12,7 @@ import net.minecraft.world.item.ItemStack; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.loot.IGlobalLootModifier; -import net.minecraftforge.event.BuildCreativeModeTabContentsEvent; +import net.minecraftforge.event.CreativeModeTabEvent; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.fml.DistExecutor; import net.minecraftforge.fml.ModLoadingContext; @@ -106,8 +106,8 @@ public class EffortlessBuilding { CompatHelper.setup(); } - public static void addTabContents(final BuildCreativeModeTabContentsEvent event) { - if (event.getTabKey() == CreativeModeTabs.TOOLS_AND_UTILITIES) { + public static void addTabContents(final CreativeModeTabEvent.BuildContents event) { + if (event.getTab() == CreativeModeTabs.TOOLS_AND_UTILITIES) { List stacks = ITEMS.getEntries().stream().map(reg -> new ItemStack(reg.get())).toList(); event.acceptAll(stacks); } diff --git a/src/main/java/nl/requios/effortlessbuilding/buildmode/BuildModes.java b/src/main/java/nl/requios/effortlessbuilding/buildmode/BuildModes.java index e232392..ba4a60f 100644 --- a/src/main/java/nl/requios/effortlessbuilding/buildmode/BuildModes.java +++ b/src/main/java/nl/requios/effortlessbuilding/buildmode/BuildModes.java @@ -109,7 +109,7 @@ public class BuildModes { if (!skipRaytrace) { //collision within a 1 block radius to selected is fine ClipContext rayTraceContext = new ClipContext(start, lineBound, ClipContext.Block.COLLIDER, ClipContext.Fluid.NONE, player); - HitResult rayTraceResult = player.level().clip(rayTraceContext); + HitResult rayTraceResult = player.level.clip(rayTraceContext); intersects = rayTraceResult != null && rayTraceResult.getType() == HitResult.Type.BLOCK && planeBound.subtract(rayTraceResult.getLocation()).lengthSqr() > 4; } diff --git a/src/main/java/nl/requios/effortlessbuilding/buildmode/ModeOptions.java b/src/main/java/nl/requios/effortlessbuilding/buildmode/ModeOptions.java index c322bd5..3f4849c 100644 --- a/src/main/java/nl/requios/effortlessbuilding/buildmode/ModeOptions.java +++ b/src/main/java/nl/requios/effortlessbuilding/buildmode/ModeOptions.java @@ -103,7 +103,7 @@ public class ModeOptions { case CIRCLE_START_CORNER -> circleStart = ActionEnum.CIRCLE_START_CORNER; } - if (player.level().isClientSide && + if (player.level.isClientSide && action != ActionEnum.OPEN_MODIFIER_SETTINGS && action != ActionEnum.OPEN_PLAYER_SETTINGS && action != ActionEnum.PREVIOUS_BUILD_MODE && diff --git a/src/main/java/nl/requios/effortlessbuilding/buildmodifier/RadialMirror.java b/src/main/java/nl/requios/effortlessbuilding/buildmodifier/RadialMirror.java index 11afa09..625776b 100644 --- a/src/main/java/nl/requios/effortlessbuilding/buildmodifier/RadialMirror.java +++ b/src/main/java/nl/requios/effortlessbuilding/buildmodifier/RadialMirror.java @@ -112,11 +112,11 @@ public class RadialMirror extends BaseModifier { BlockState newBlockState = blockState; if (startAngleToCenter < -0.751 * Math.PI || startAngleToCenter > 0.749 * Math.PI) { - newBlockState = blockState.rotate(player.level(), startPos, Rotation.CLOCKWISE_180); + newBlockState = blockState.rotate(player.level, startPos, Rotation.CLOCKWISE_180); } else if (startAngleToCenter < -0.251 * Math.PI) { - newBlockState = blockState.rotate(player.level(), startPos, Rotation.COUNTERCLOCKWISE_90); + newBlockState = blockState.rotate(player.level, startPos, Rotation.COUNTERCLOCKWISE_90); } else if (startAngleToCenter > 0.249 * Math.PI) { - newBlockState = blockState.rotate(player.level(), startPos, Rotation.CLOCKWISE_90); + newBlockState = blockState.rotate(player.level, startPos, Rotation.CLOCKWISE_90); } return newBlockState; @@ -127,17 +127,17 @@ public class RadialMirror extends BaseModifier { double angleToCenter = Mth.atan2(relVec.x, relVec.z); //between -PI and PI if (angleToCenter < -0.751 * Math.PI || angleToCenter > 0.749 * Math.PI) { - newBlockState = blockState.rotate(player.level(), startPos, Rotation.CLOCKWISE_180); + newBlockState = blockState.rotate(player.level, startPos, Rotation.CLOCKWISE_180); if (alternate) { newBlockState = newBlockState.mirror(Mirror.FRONT_BACK); } } else if (angleToCenter < -0.251 * Math.PI) { - newBlockState = blockState.rotate(player.level(), startPos, Rotation.CLOCKWISE_90); + newBlockState = blockState.rotate(player.level, startPos, Rotation.CLOCKWISE_90); if (alternate) { newBlockState = newBlockState.mirror(Mirror.LEFT_RIGHT); } } else if (angleToCenter > 0.249 * Math.PI) { - newBlockState = blockState.rotate(player.level(), startPos, Rotation.COUNTERCLOCKWISE_90); + newBlockState = blockState.rotate(player.level, startPos, Rotation.COUNTERCLOCKWISE_90); if (alternate) { newBlockState = newBlockState.mirror(Mirror.LEFT_RIGHT); } diff --git a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/AbstractSimiScreen.java b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/AbstractSimiScreen.java index 62d3df6..abce52a 100644 --- a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/AbstractSimiScreen.java +++ b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/AbstractSimiScreen.java @@ -2,7 +2,6 @@ package nl.requios.effortlessbuilding.create.foundation.gui; import com.mojang.blaze3d.platform.InputConstants; import com.mojang.blaze3d.vertex.PoseStack; -import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.AbstractWidget; import net.minecraft.client.gui.components.EditBox; import net.minecraft.client.gui.components.Renderable; @@ -105,18 +104,16 @@ public abstract class AbstractSimiScreen extends Screen { } @Override - public void render(GuiGraphics graphics, int mouseX, int mouseY, float partialTicks) { + public void render(PoseStack ms, int mouseX, int mouseY, float partialTicks) { partialTicks = minecraft.getFrameTime(); - PoseStack ms = graphics.pose(); - ms.pushPose(); prepareFrame(); - renderWindowBackground(graphics, mouseX, mouseY, partialTicks); - renderWindow(graphics, mouseX, mouseY, partialTicks); - super.render(graphics, mouseX, mouseY, partialTicks); - renderWindowForeground(graphics, mouseX, mouseY, partialTicks); + renderWindowBackground(ms, mouseX, mouseY, partialTicks); + renderWindow(ms, mouseX, mouseY, partialTicks); + super.render(ms, mouseX, mouseY, partialTicks); + renderWindowForeground(ms, mouseX, mouseY, partialTicks); endFrame(); @@ -140,13 +137,13 @@ public abstract class AbstractSimiScreen extends Screen { protected void prepareFrame() {} - protected void renderWindowBackground(GuiGraphics graphics, int mouseX, int mouseY, float partialTicks) { - renderBackground(graphics); + protected void renderWindowBackground(PoseStack ms, int mouseX, int mouseY, float partialTicks) { + renderBackground(ms); } - protected abstract void renderWindow(GuiGraphics graphics, int mouseX, int mouseY, float partialTicks); + protected abstract void renderWindow(PoseStack ms, int mouseX, int mouseY, float partialTicks); - protected void renderWindowForeground(GuiGraphics graphics, int mouseX, int mouseY, float partialTicks) { + protected void renderWindowForeground(PoseStack ms, int mouseX, int mouseY, float partialTicks) { for (Renderable widget : renderables) { if (widget instanceof AbstractSimiWidget simiWidget && simiWidget.isMouseOver(mouseX, mouseY) && simiWidget.visible) { @@ -155,12 +152,12 @@ public abstract class AbstractSimiScreen extends Screen { continue; int ttx = simiWidget.lockedTooltipX == -1 ? mouseX : simiWidget.lockedTooltipX + simiWidget.getX(); int tty = simiWidget.lockedTooltipY == -1 ? mouseY : simiWidget.lockedTooltipY + simiWidget.getY(); - graphics.renderComponentTooltip(font, tooltip, ttx, tty); + renderComponentTooltip(ms, tooltip, ttx, tty); } //Added if (widget instanceof ModifiersScreenList list) { - list.renderWindowForeground(graphics, mouseX, mouseY, partialTicks); + list.renderWindowForeground(ms, mouseX, mouseY, partialTicks); } } } @@ -168,8 +165,8 @@ public abstract class AbstractSimiScreen extends Screen { protected void endFrame() {} @Deprecated - protected void debugWindowArea(GuiGraphics graphics) { - graphics.fill(guiLeft + windowWidth, guiTop + windowHeight, guiLeft, guiTop, 0xD3D3D3D3); + protected void debugWindowArea(PoseStack graphics) { + fill(graphics, guiLeft + windowWidth, guiTop + windowHeight, guiLeft, guiTop, 0xD3D3D3D3); } @Override diff --git a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/AllGuiTextures.java b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/AllGuiTextures.java index 4fb5be8..ff36500 100644 --- a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/AllGuiTextures.java +++ b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/AllGuiTextures.java @@ -1,7 +1,8 @@ package nl.requios.effortlessbuilding.create.foundation.gui; import com.mojang.blaze3d.systems.RenderSystem; -import net.minecraft.client.gui.GuiGraphics; +import com.mojang.blaze3d.vertex.PoseStack; +import net.minecraft.client.gui.GuiComponent; import net.minecraft.resources.ResourceLocation; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @@ -72,15 +73,21 @@ public enum AllGuiTextures implements ScreenElement { RenderSystem.setShaderTexture(0, location); } - @OnlyIn(Dist.CLIENT) - public void render(GuiGraphics graphics, int x, int y) { - graphics.blit(location, x, y, startX, startY, width, height); + public void render(PoseStack ms, int x, int y) { + bind(); + GuiComponent.blit(ms, x, y, startX, startY, width, height); } @OnlyIn(Dist.CLIENT) - public void render(GuiGraphics graphics, int x, int y, Color c) { + public void render(PoseStack ms, int x, int y, GuiComponent component) { bind(); - UIRenderHelper.drawColoredTexture(graphics, c, x, y, startX, startY, width, height); + component.blit(ms, x, y, startX, startY, width, height); + } + + @OnlyIn(Dist.CLIENT) + public void render(PoseStack ms, int x, int y, Color c) { + bind(); + UIRenderHelper.drawColoredTexture(ms, c, x, y, startX, startY, width, height); } } diff --git a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/AllIcons.java b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/AllIcons.java index 23d80ac..51b06ed 100644 --- a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/AllIcons.java +++ b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/AllIcons.java @@ -3,7 +3,7 @@ package nl.requios.effortlessbuilding.create.foundation.gui; import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; -import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.GuiComponent; import net.minecraft.client.renderer.LightTexture; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; @@ -173,8 +173,9 @@ public class AllIcons implements ScreenElement { @OnlyIn(Dist.CLIENT) @Override - public void render(GuiGraphics graphics, int x, int y) { - graphics.blit(ICON_ATLAS, x, y, 0, iconX, iconY, 16, 16, 256, 256); + public void render(PoseStack ms, int x, int y) { + bind(); + GuiComponent.blit(ms, x, y, 0, iconX, iconY, 16, 16, 256, 256); } @OnlyIn(Dist.CLIENT) diff --git a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/ConfirmationScreen.java b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/ConfirmationScreen.java index bc48353..918d4a2 100644 --- a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/ConfirmationScreen.java +++ b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/ConfirmationScreen.java @@ -3,7 +3,6 @@ package nl.requios.effortlessbuilding.create.foundation.gui; import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.screens.Screen; import net.minecraft.network.chat.FormattedText; import net.minecraft.network.chat.Style; @@ -174,12 +173,11 @@ public class ConfirmationScreen extends AbstractSimiScreen { } @Override - protected void renderWindow(GuiGraphics graphics, int mouseX, int mouseY, float partialTicks) { - textBackground.render(graphics); + protected void renderWindow(PoseStack ms, int mouseX, int mouseY, float partialTicks) { + textBackground.render(ms); int offset = font.lineHeight + 1; int lineY = y - offset; - PoseStack ms = graphics.pose(); ms.pushPose(); ms.translate(0, 0, 200); @@ -187,21 +185,21 @@ public class ConfirmationScreen extends AbstractSimiScreen { lineY += offset; if (line == null) continue; - graphics.drawString(font, line.getString(), x, lineY, 0xeaeaea, false); + font.draw(ms, line.getString(), x, lineY, 0xeaeaea); } ms.popPose(); } @Override - protected void renderWindowBackground(GuiGraphics graphics, int mouseX, int mouseY, float partialTicks) { + protected void renderWindowBackground(PoseStack ms, int mouseX, int mouseY, float partialTicks) { endFrame(); - source.render(graphics, 0, 0, 10); // zero mouse coords to prevent further tooltips + source.render(ms, 0, 0, 10); // zero mouse coords to prevent further tooltips prepareFrame(); - graphics.fillGradient(0, 0, this.width, this.height, 0x70101010, 0x80101010); + fillGradient(ms, 0, 0, this.width, this.height, 0x70101010, 0x80101010); } diff --git a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/RemovedGuiUtils.java b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/RemovedGuiUtils.java index deba030..9a3b672 100644 --- a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/RemovedGuiUtils.java +++ b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/RemovedGuiUtils.java @@ -1,203 +1,202 @@ -package nl.requios.effortlessbuilding.create.foundation.gui; - -import java.util.ArrayList; -import java.util.List; - -import javax.annotation.Nonnull; - -import org.joml.Matrix4f; - -import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.vertex.Tesselator; - -import net.minecraft.client.gui.Font; -import net.minecraft.client.gui.GuiGraphics; -import net.minecraft.client.gui.screens.inventory.tooltip.ClientTooltipComponent; -import net.minecraft.client.renderer.MultiBufferSource; -import net.minecraft.network.chat.FormattedText; -import net.minecraft.network.chat.Style; -import net.minecraft.world.item.ItemStack; -import net.minecraftforge.client.ForgeHooksClient; -import net.minecraftforge.client.event.RenderTooltipEvent; -import net.minecraftforge.client.extensions.IForgeGuiGraphics; -import net.minecraftforge.common.MinecraftForge; - -public class RemovedGuiUtils { - @Nonnull - private static ItemStack cachedTooltipStack = ItemStack.EMPTY; - - public static void preItemToolTip(@Nonnull ItemStack stack) { - cachedTooltipStack = stack; - } - - public static void postItemToolTip() { - cachedTooltipStack = ItemStack.EMPTY; - } - - public static void drawHoveringText(GuiGraphics graphics, List textLines, int mouseX, - int mouseY, int screenWidth, int screenHeight, int maxTextWidth, Font font) { - drawHoveringText(graphics, textLines, mouseX, mouseY, screenWidth, screenHeight, maxTextWidth, - IForgeGuiGraphics.DEFAULT_BACKGROUND_COLOR, IForgeGuiGraphics.DEFAULT_BORDER_COLOR_START, IForgeGuiGraphics.DEFAULT_BORDER_COLOR_END, - font); - } - - public static void drawHoveringText(GuiGraphics graphics, List textLines, int mouseX, - int mouseY, int screenWidth, int screenHeight, int maxTextWidth, int backgroundColor, int borderColorStart, - int borderColorEnd, Font font) { - drawHoveringText(cachedTooltipStack, graphics, textLines, mouseX, mouseY, screenWidth, screenHeight, maxTextWidth, - backgroundColor, borderColorStart, borderColorEnd, font); - } - - public static void drawHoveringText(@Nonnull final ItemStack stack, GuiGraphics graphics, - List textLines, int mouseX, int mouseY, int screenWidth, int screenHeight, - int maxTextWidth, Font font) { - drawHoveringText(stack, graphics, textLines, mouseX, mouseY, screenWidth, screenHeight, maxTextWidth, - IForgeGuiGraphics.DEFAULT_BACKGROUND_COLOR, IForgeGuiGraphics.DEFAULT_BORDER_COLOR_START, IForgeGuiGraphics.DEFAULT_BORDER_COLOR_END, - font); - } - - public static void drawHoveringText(@Nonnull final ItemStack stack, GuiGraphics graphics, - List textLines, int mouseX, int mouseY, int screenWidth, int screenHeight, - int maxTextWidth, int backgroundColor, int borderColorStart, int borderColorEnd, Font font) { - if (textLines.isEmpty()) - return; - - List list = ForgeHooksClient.gatherTooltipComponents(stack, textLines, - stack.getTooltipImage(), mouseX, screenWidth, screenHeight, font); - RenderTooltipEvent.Pre event = - new RenderTooltipEvent.Pre(stack, graphics, mouseX, mouseY, screenWidth, screenHeight, font, list, null); - if (MinecraftForge.EVENT_BUS.post(event)) - return; - - PoseStack pStack = graphics.pose(); - - mouseX = event.getX(); - mouseY = event.getY(); - screenWidth = event.getScreenWidth(); - screenHeight = event.getScreenHeight(); - font = event.getFont(); - - // RenderSystem.disableRescaleNormal(); - RenderSystem.disableDepthTest(); - int tooltipTextWidth = 0; - - for (FormattedText textLine : textLines) { - int textLineWidth = font.width(textLine); - if (textLineWidth > tooltipTextWidth) - tooltipTextWidth = textLineWidth; - } - - boolean needsWrap = false; - - int titleLinesCount = 1; - int tooltipX = mouseX + 12; - if (tooltipX + tooltipTextWidth + 4 > screenWidth) { - tooltipX = mouseX - 16 - tooltipTextWidth; - if (tooltipX < 4) // if the tooltip doesn't fit on the screen - { - if (mouseX > screenWidth / 2) - tooltipTextWidth = mouseX - 12 - 8; - else - tooltipTextWidth = screenWidth - 16 - mouseX; - needsWrap = true; - } - } - - if (maxTextWidth > 0 && tooltipTextWidth > maxTextWidth) { - tooltipTextWidth = maxTextWidth; - needsWrap = true; - } - - if (needsWrap) { - int wrappedTooltipWidth = 0; - List wrappedTextLines = new ArrayList<>(); - for (int i = 0; i < textLines.size(); i++) { - FormattedText textLine = textLines.get(i); - List wrappedLine = font.getSplitter() - .splitLines(textLine, tooltipTextWidth, Style.EMPTY); - if (i == 0) - titleLinesCount = wrappedLine.size(); - - for (FormattedText line : wrappedLine) { - int lineWidth = font.width(line); - if (lineWidth > wrappedTooltipWidth) - wrappedTooltipWidth = lineWidth; - wrappedTextLines.add(line); - } - } - tooltipTextWidth = wrappedTooltipWidth; - textLines = wrappedTextLines; - - if (mouseX > screenWidth / 2) - tooltipX = mouseX - 16 - tooltipTextWidth; - else - tooltipX = mouseX + 12; - } - - int tooltipY = mouseY - 12; - int tooltipHeight = 8; - - if (textLines.size() > 1) { - tooltipHeight += (textLines.size() - 1) * 10; - if (textLines.size() > titleLinesCount) - tooltipHeight += 2; // gap between title lines and next lines - } - - if (tooltipY < 4) - tooltipY = 4; - else if (tooltipY + tooltipHeight + 4 > screenHeight) - tooltipY = screenHeight - tooltipHeight - 4; - - final int zLevel = 400; - RenderTooltipEvent.Color colorEvent = new RenderTooltipEvent.Color(stack, graphics, tooltipX, tooltipY, - font, backgroundColor, borderColorStart, borderColorEnd, list); - MinecraftForge.EVENT_BUS.post(colorEvent); - backgroundColor = colorEvent.getBackgroundStart(); - borderColorStart = colorEvent.getBorderStart(); - borderColorEnd = colorEvent.getBorderEnd(); - - pStack.pushPose(); - Matrix4f mat = pStack.last() - .pose(); - graphics.fillGradient(tooltipX - 3, tooltipY - 4, tooltipX + tooltipTextWidth + 3, - tooltipY - 3, zLevel, backgroundColor, backgroundColor); - graphics.fillGradient(tooltipX - 3, tooltipY + tooltipHeight + 3, - tooltipX + tooltipTextWidth + 3, tooltipY + tooltipHeight + 4, zLevel, backgroundColor, backgroundColor); - graphics.fillGradient(tooltipX - 3, tooltipY - 3, tooltipX + tooltipTextWidth + 3, - tooltipY + tooltipHeight + 3, zLevel, backgroundColor, backgroundColor); - graphics.fillGradient(tooltipX - 4, tooltipY - 3, tooltipX - 3, tooltipY + tooltipHeight + 3, - zLevel, backgroundColor, backgroundColor); - graphics.fillGradient(tooltipX + tooltipTextWidth + 3, tooltipY - 3, - tooltipX + tooltipTextWidth + 4, tooltipY + tooltipHeight + 3, zLevel, backgroundColor, backgroundColor); - graphics.fillGradient(tooltipX - 3, tooltipY - 3 + 1, tooltipX - 3 + 1, - tooltipY + tooltipHeight + 3 - 1, zLevel, borderColorStart, borderColorEnd); - graphics.fillGradient(tooltipX + tooltipTextWidth + 2, tooltipY - 3 + 1, - tooltipX + tooltipTextWidth + 3, tooltipY + tooltipHeight + 3 - 1, zLevel, borderColorStart, borderColorEnd); - graphics.fillGradient(tooltipX - 3, tooltipY - 3, tooltipX + tooltipTextWidth + 3, - tooltipY - 3 + 1, zLevel, borderColorStart, borderColorStart); - graphics.fillGradient(tooltipX - 3, tooltipY + tooltipHeight + 2, - tooltipX + tooltipTextWidth + 3, tooltipY + tooltipHeight + 3, zLevel, borderColorEnd, borderColorEnd); - - MultiBufferSource.BufferSource renderType = MultiBufferSource.immediate(Tesselator.getInstance() - .getBuilder()); - pStack.translate(0.0D, 0.0D, zLevel); - - for (int lineNumber = 0; lineNumber < list.size(); ++lineNumber) { - ClientTooltipComponent line = list.get(lineNumber); - - if (line != null) - line.renderText(font, tooltipX, tooltipY, mat, renderType); - - if (lineNumber + 1 == titleLinesCount) - tooltipY += 2; - - tooltipY += 10; - } - - renderType.endBatch(); - pStack.popPose(); - - RenderSystem.enableDepthTest(); - } -} +//package nl.requios.effortlessbuilding.create.foundation.gui; +// +//import java.util.ArrayList; +//import java.util.List; +// +//import javax.annotation.Nonnull; +// +//import net.minecraft.client.gui.GuiComponent; +//import org.joml.Matrix4f; +// +//import com.mojang.blaze3d.systems.RenderSystem; +//import com.mojang.blaze3d.vertex.PoseStack; +//import com.mojang.blaze3d.vertex.Tesselator; +// +//import net.minecraft.client.gui.Font; +//import com.mojang.blaze3d.vertex.PoseStack; +//import net.minecraft.client.gui.screens.inventory.tooltip.ClientTooltipComponent; +//import net.minecraft.client.renderer.MultiBufferSource; +//import net.minecraft.network.chat.FormattedText; +//import net.minecraft.network.chat.Style; +//import net.minecraft.world.item.ItemStack; +//import net.minecraftforge.client.ForgeHooksClient; +//import net.minecraftforge.client.event.RenderTooltipEvent; +//import net.minecraftforge.client.extensions.IForgeGuiGraphics; +//import net.minecraftforge.common.MinecraftForge; +// +//public class RemovedGuiUtils { +// @Nonnull +// private static ItemStack cachedTooltipStack = ItemStack.EMPTY; +// +// public static void preItemToolTip(@Nonnull ItemStack stack) { +// cachedTooltipStack = stack; +// } +// +// public static void postItemToolTip() { +// cachedTooltipStack = ItemStack.EMPTY; +// } +// +// public static void drawHoveringText(PoseStack graphics, List textLines, int mouseX, +// int mouseY, int screenWidth, int screenHeight, int maxTextWidth, Font font) { +// drawHoveringText(graphics, textLines, mouseX, mouseY, screenWidth, screenHeight, maxTextWidth, +// IForgeGuiGraphics.DEFAULT_BACKGROUND_COLOR, IForgeGuiGraphics.DEFAULT_BORDER_COLOR_START, IForgeGuiGraphics.DEFAULT_BORDER_COLOR_END, +// font); +// } +// +// public static void drawHoveringText(PoseStack graphics, List textLines, int mouseX, +// int mouseY, int screenWidth, int screenHeight, int maxTextWidth, int backgroundColor, int borderColorStart, +// int borderColorEnd, Font font) { +// drawHoveringText(cachedTooltipStack, graphics, textLines, mouseX, mouseY, screenWidth, screenHeight, maxTextWidth, +// backgroundColor, borderColorStart, borderColorEnd, font); +// } +// +// public static void drawHoveringText(@Nonnull final ItemStack stack, PoseStack graphics, +// List textLines, int mouseX, int mouseY, int screenWidth, int screenHeight, +// int maxTextWidth, Font font) { +// drawHoveringText(stack, graphics, textLines, mouseX, mouseY, screenWidth, screenHeight, maxTextWidth, +// IForgeGuiGraphics.DEFAULT_BACKGROUND_COLOR, IForgeGuiGraphics.DEFAULT_BORDER_COLOR_START, IForgeGuiGraphics.DEFAULT_BORDER_COLOR_END, +// font); +// } +// +// public static void drawHoveringText(@Nonnull final ItemStack stack, PoseStack pStack, +// List textLines, int mouseX, int mouseY, int screenWidth, int screenHeight, +// int maxTextWidth, int backgroundColor, int borderColorStart, int borderColorEnd, Font font) { +// if (textLines.isEmpty()) +// return; +// +// List list = ForgeHooksClient.gatherTooltipComponents(stack, textLines, +// stack.getTooltipImage(), mouseX, screenWidth, screenHeight, font); +// RenderTooltipEvent.Pre event = +// new RenderTooltipEvent.Pre(stack, pStack, mouseX, mouseY, screenWidth, screenHeight, font, list, null); +// if (MinecraftForge.EVENT_BUS.post(event)) +// return; +// +// mouseX = event.getX(); +// mouseY = event.getY(); +// screenWidth = event.getScreenWidth(); +// screenHeight = event.getScreenHeight(); +// font = event.getFont(); +// +// // RenderSystem.disableRescaleNormal(); +// RenderSystem.disableDepthTest(); +// int tooltipTextWidth = 0; +// +// for (FormattedText textLine : textLines) { +// int textLineWidth = font.width(textLine); +// if (textLineWidth > tooltipTextWidth) +// tooltipTextWidth = textLineWidth; +// } +// +// boolean needsWrap = false; +// +// int titleLinesCount = 1; +// int tooltipX = mouseX + 12; +// if (tooltipX + tooltipTextWidth + 4 > screenWidth) { +// tooltipX = mouseX - 16 - tooltipTextWidth; +// if (tooltipX < 4) // if the tooltip doesn't fit on the screen +// { +// if (mouseX > screenWidth / 2) +// tooltipTextWidth = mouseX - 12 - 8; +// else +// tooltipTextWidth = screenWidth - 16 - mouseX; +// needsWrap = true; +// } +// } +// +// if (maxTextWidth > 0 && tooltipTextWidth > maxTextWidth) { +// tooltipTextWidth = maxTextWidth; +// needsWrap = true; +// } +// +// if (needsWrap) { +// int wrappedTooltipWidth = 0; +// List wrappedTextLines = new ArrayList<>(); +// for (int i = 0; i < textLines.size(); i++) { +// FormattedText textLine = textLines.get(i); +// List wrappedLine = font.getSplitter() +// .splitLines(textLine, tooltipTextWidth, Style.EMPTY); +// if (i == 0) +// titleLinesCount = wrappedLine.size(); +// +// for (FormattedText line : wrappedLine) { +// int lineWidth = font.width(line); +// if (lineWidth > wrappedTooltipWidth) +// wrappedTooltipWidth = lineWidth; +// wrappedTextLines.add(line); +// } +// } +// tooltipTextWidth = wrappedTooltipWidth; +// textLines = wrappedTextLines; +// +// if (mouseX > screenWidth / 2) +// tooltipX = mouseX - 16 - tooltipTextWidth; +// else +// tooltipX = mouseX + 12; +// } +// +// int tooltipY = mouseY - 12; +// int tooltipHeight = 8; +// +// if (textLines.size() > 1) { +// tooltipHeight += (textLines.size() - 1) * 10; +// if (textLines.size() > titleLinesCount) +// tooltipHeight += 2; // gap between title lines and next lines +// } +// +// if (tooltipY < 4) +// tooltipY = 4; +// else if (tooltipY + tooltipHeight + 4 > screenHeight) +// tooltipY = screenHeight - tooltipHeight - 4; +// +// final int zLevel = 400; +// RenderTooltipEvent.Color colorEvent = new RenderTooltipEvent.Color(stack, pStack, tooltipX, tooltipY, +// font, backgroundColor, borderColorStart, borderColorEnd, list); +// MinecraftForge.EVENT_BUS.post(colorEvent); +// backgroundColor = colorEvent.getBackgroundStart(); +// borderColorStart = colorEvent.getBorderStart(); +// borderColorEnd = colorEvent.getBorderEnd(); +// +// pStack.pushPose(); +// Matrix4f mat = pStack.last() +// .pose(); +// GuiComponent.fillGradient(pStack, tooltipX - 3, tooltipY - 4, tooltipX + tooltipTextWidth + 3, +// tooltipY - 3, zLevel, backgroundColor, backgroundColor); +// GuiComponent.fillGradient(pStack, tooltipX - 3, tooltipY + tooltipHeight + 3, +// tooltipX + tooltipTextWidth + 3, tooltipY + tooltipHeight + 4, zLevel, backgroundColor, backgroundColor); +// GuiComponent.fillGradient(pStack, tooltipX - 3, tooltipY - 3, tooltipX + tooltipTextWidth + 3, +// tooltipY + tooltipHeight + 3, zLevel, backgroundColor, backgroundColor); +// GuiComponent.fillGradient(pStack, tooltipX - 4, tooltipY - 3, tooltipX - 3, tooltipY + tooltipHeight + 3, +// zLevel, backgroundColor, backgroundColor); +// GuiComponent.fillGradient(pStack, tooltipX + tooltipTextWidth + 3, tooltipY - 3, +// tooltipX + tooltipTextWidth + 4, tooltipY + tooltipHeight + 3, zLevel, backgroundColor, backgroundColor); +// GuiComponent.fillGradient(pStack, tooltipX - 3, tooltipY - 3 + 1, tooltipX - 3 + 1, +// tooltipY + tooltipHeight + 3 - 1, zLevel, borderColorStart, borderColorEnd); +// GuiComponent.fillGradient(pStack, tooltipX + tooltipTextWidth + 2, tooltipY - 3 + 1, +// tooltipX + tooltipTextWidth + 3, tooltipY + tooltipHeight + 3 - 1, zLevel, borderColorStart, borderColorEnd); +// GuiComponent.fillGradient(pStack, tooltipX - 3, tooltipY - 3, tooltipX + tooltipTextWidth + 3, +// tooltipY - 3 + 1, zLevel, borderColorStart, borderColorStart); +// GuiComponent.fillGradient(pStack, tooltipX - 3, tooltipY + tooltipHeight + 2, +// tooltipX + tooltipTextWidth + 3, tooltipY + tooltipHeight + 3, zLevel, borderColorEnd, borderColorEnd); +// +// MultiBufferSource.BufferSource renderType = MultiBufferSource.immediate(Tesselator.getInstance() +// .getBuilder()); +// pStack.translate(0.0D, 0.0D, zLevel); +// +// for (int lineNumber = 0; lineNumber < list.size(); ++lineNumber) { +// ClientTooltipComponent line = list.get(lineNumber); +// +// if (line != null) +// line.renderText(font, tooltipX, tooltipY, mat, renderType); +// +// if (lineNumber + 1 == titleLinesCount) +// tooltipY += 2; +// +// tooltipY += 10; +// } +// +// renderType.endBatch(); +// pStack.popPose(); +// +// RenderSystem.enableDepthTest(); +// } +//} diff --git a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/UIRenderHelper.java b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/UIRenderHelper.java index 091d5c4..46f1d10 100644 --- a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/UIRenderHelper.java +++ b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/UIRenderHelper.java @@ -12,8 +12,8 @@ import com.mojang.blaze3d.vertex.Tesselator; import com.mojang.blaze3d.vertex.VertexFormat; import com.mojang.math.Axis; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.renderer.GameRenderer; +import net.minecraftforge.client.gui.ScreenUtils; import nl.requios.effortlessbuilding.create.foundation.utility.Color; import nl.requios.effortlessbuilding.create.foundation.utility.Couple; import org.joml.Matrix4f; @@ -55,14 +55,14 @@ public class UIRenderHelper { GlStateManager._glBindFramebuffer(GlConst.GL_FRAMEBUFFER, dst.frameBufferId); } - public static void streak(GuiGraphics graphics, float angle, int x, int y, int breadth, int length) { - streak(graphics, angle, x, y, breadth, length, Theme.i(Theme.Key.STREAK)); + public static void streak(PoseStack ms, float angle, int x, int y, int breadth, int length) { + streak(ms, angle, x, y, breadth, length, Theme.i(Theme.Key.STREAK)); } // angle in degrees; 0° -> fading to the right // x and y specify the middle point of the starting edge // breadth is the total width of the streak - public static void streak(GuiGraphics graphics, float angle, int x, int y, int breadth, int length, int color) { + public static void streak(PoseStack ms, float angle, int x, int y, int breadth, int length, int color) { int a1 = 0xa0 << 24; int a2 = 0x80 << 24; int a3 = 0x10 << 24; @@ -74,60 +74,59 @@ public class UIRenderHelper { int c3 = a3 | color; int c4 = a4 | color; - PoseStack ms = graphics.pose(); ms.pushPose(); ms.translate(x, y, 0); ms.mulPose(Axis.ZP.rotationDegrees(angle - 90)); - streak(graphics, breadth / 2, length, c1, c2, c3, c4); + streak(ms, breadth / 2, length, c1, c2, c3, c4); ms.popPose(); } - public static void streak(GuiGraphics graphics, float angle, int x, int y, int breadth, int length, Color c) { + public static void streak(PoseStack ms, float angle, int x, int y, int breadth, int length, Color c) { Color color = c.copy().setImmutable(); int c1 = color.scaleAlpha(0.625f).getRGB(); int c2 = color.scaleAlpha(0.5f).getRGB(); int c3 = color.scaleAlpha(0.0625f).getRGB(); int c4 = color.scaleAlpha(0f).getRGB(); - PoseStack ms = graphics.pose(); ms.pushPose(); ms.translate(x, y, 0); ms.mulPose(Axis.ZP.rotationDegrees(angle - 90)); - streak(graphics, breadth / 2, length, c1, c2, c3, c4); + streak(ms, breadth / 2, length, c1, c2, c3, c4); ms.popPose(); } - private static void streak(GuiGraphics graphics, int width, int height, int c1, int c2, int c3, int c4) { + private static void streak(PoseStack ms, int width, int height, int c1, int c2, int c3, int c4) { double split1 = .5; double split2 = .75; - graphics.fillGradient(-width, 0, width, (int) (split1 * height), 0, c1, c2); - graphics.fillGradient(-width, (int) (split1 * height), width, (int) (split2 * height), 0, c2, c3); - graphics.fillGradient(-width, (int) (split2 * height), width, height, 0, c3, c4); + Matrix4f model = ms.last().pose(); + ScreenUtils.drawGradientRect(model, -width, 0, width, (int) (split1 * height), 0, c1, c2); + ScreenUtils.drawGradientRect(model, -width, (int) (split1 * height), width, (int) (split2 * height), 0, c2, c3); + ScreenUtils.drawGradientRect(model, -width, (int) (split2 * height), width, height, 0, c3, c4); } /** - * @see #angledGradient(GuiGraphics, float, int, int, int, int, int, Color, Color) + * @see #angledGradient(PoseStack, float, int, int, int, int, int, Color, Color) */ - public static void angledGradient(GuiGraphics graphics, float angle, int x, int y, int breadth, int length, Couple c) { - angledGradient(graphics, angle, x, y, 0, breadth, length, c); + public static void angledGradient(PoseStack ms, float angle, int x, int y, int breadth, int length, Couple c) { + angledGradient(ms, angle, x, y, 0, breadth, length, c); } /** - * @see #angledGradient(GuiGraphics, float, int, int, int, int, int, Color, Color) + * @see #angledGradient(PoseStack, float, int, int, int, int, int, Color, Color) */ - public static void angledGradient(GuiGraphics graphics, float angle, int x, int y, int z, int breadth, int length, Couple c) { - angledGradient(graphics, angle, x, y, z, breadth, length, c.getFirst(), c.getSecond()); + public static void angledGradient(PoseStack ms, float angle, int x, int y, int z, int breadth, int length, Couple c) { + angledGradient(ms, angle, x, y, z, breadth, length, c.getFirst(), c.getSecond()); } /** - * @see #angledGradient(GuiGraphics, float, int, int, int, int, int, Color, Color) + * @see #angledGradient(PoseStack, float, int, int, int, int, int, Color, Color) */ - public static void angledGradient(GuiGraphics graphics, float angle, int x, int y, int breadth, int length, Color color1, Color color2) { - angledGradient(graphics, angle, x, y, 0, breadth, length, color1, color2); + public static void angledGradient(PoseStack ms, float angle, int x, int y, int breadth, int length, Color color1, Color color2) { + angledGradient(ms, angle, x, y, 0, breadth, length, color1, color2); } /** @@ -138,32 +137,31 @@ public class UIRenderHelper { * @param color2 the color at the ending edge * @param breadth the total width of the gradient */ - public static void angledGradient(GuiGraphics graphics, float angle, int x, int y, int z, int breadth, int length, Color color1, Color color2) { - PoseStack ms = graphics.pose(); + public static void angledGradient(PoseStack ms, float angle, int x, int y, int z, int breadth, int length, Color color1, Color color2) { ms.pushPose(); ms.translate(x, y, z); ms.mulPose(Axis.ZP.rotationDegrees(angle - 90)); int w = breadth / 2; - graphics.fillGradient(-w, 0, w, length, 0, color1.getRGB(), color2.getRGB()); + Matrix4f model = ms.last().pose(); + ScreenUtils.drawGradientRect(model, -w, 0, w, length, 0, color1.getRGB(), color2.getRGB()); ms.popPose(); } - public static void breadcrumbArrow(GuiGraphics graphics, int x, int y, int z, int width, int height, int indent, Couple colors) {breadcrumbArrow(graphics, x, y, z, width, height, indent, colors.getFirst(), colors.getSecond());} + public static void breadcrumbArrow(PoseStack ms, int x, int y, int z, int width, int height, int indent, Couple colors) {breadcrumbArrow(ms, x, y, z, width, height, indent, colors.getFirst(), colors.getSecond());} // draws a wide chevron-style breadcrumb arrow pointing left - public static void breadcrumbArrow(GuiGraphics graphics, int x, int y, int z, int width, int height, int indent, Color startColor, Color endColor) { - PoseStack matrixStack = graphics.pose(); - matrixStack.pushPose(); - matrixStack.translate(x - indent, y, z); + public static void breadcrumbArrow(PoseStack ms, int x, int y, int z, int width, int height, int indent, Color startColor, Color endColor) { + ms.pushPose(); + ms.translate(x - indent, y, z); - breadcrumbArrow(graphics, width, height, indent, startColor, endColor); + breadcrumbArrow(ms, width, height, indent, startColor, endColor); - matrixStack.popPose(); + ms.popPose(); } - private static void breadcrumbArrow(GuiGraphics graphics, int width, int height, int indent, Color c1, Color c2) { + private static void breadcrumbArrow(PoseStack ms, int width, int height, int indent, Color c1, Color c2) { /* * 0,0 x1,y1 ********************* x4,y4 ***** x7,y7 @@ -201,7 +199,7 @@ public class UIRenderHelper { Tesselator tessellator = Tesselator.getInstance(); BufferBuilder bufferbuilder = tessellator.getBuilder(); - Matrix4f model = graphics.pose().last().pose(); + Matrix4f model = ms.last().pose(); bufferbuilder.begin(VertexFormat.Mode.TRIANGLES, DefaultVertexFormat.POSITION_COLOR); bufferbuilder.vertex(model, x0, y0, 0).color(fc1.getRed(), fc1.getGreen(), fc1.getBlue(), fc1.getAlpha()).endVertex(); @@ -235,30 +233,30 @@ public class UIRenderHelper { } //just like AbstractGui#drawTexture, but with a color at every vertex - public static void drawColoredTexture(GuiGraphics graphics, Color c, int x, int y, int tex_left, int tex_top, int width, int height) { - drawColoredTexture(graphics, c, x, y, 0, (float) tex_left, (float) tex_top, width, height, 256, 256); + public static void drawColoredTexture(PoseStack ms, Color c, int x, int y, int tex_left, int tex_top, int width, int height) { + drawColoredTexture(ms, c, x, y, 0, (float) tex_left, (float) tex_top, width, height, 256, 256); } - public static void drawColoredTexture(GuiGraphics graphics, Color c, int x, int y, int z, float tex_left, float tex_top, int width, int height, int sheet_width, int sheet_height) { - drawColoredTexture(graphics, c, x, x + width, y, y + height, z, width, height, tex_left, tex_top, sheet_width, sheet_height); + public static void drawColoredTexture(PoseStack ms, Color c, int x, int y, int z, float tex_left, float tex_top, int width, int height, int sheet_width, int sheet_height) { + drawColoredTexture(ms, c, x, x + width, y, y + height, z, width, height, tex_left, tex_top, sheet_width, sheet_height); } - public static void drawStretched(GuiGraphics graphics, int left, int top, int w, int h, int z, AllGuiTextures tex) { + public static void drawStretched(PoseStack ms, int left, int top, int w, int h, int z, AllGuiTextures tex) { tex.bind(); - drawTexturedQuad(graphics.pose().last() + drawTexturedQuad(ms.last() .pose(), Color.WHITE, left, left + w, top, top + h, z, tex.startX / 256f, (tex.startX + tex.width) / 256f, tex.startY / 256f, (tex.startY + tex.height) / 256f); } - public static void drawCropped(GuiGraphics graphics, int left, int top, int w, int h, int z, AllGuiTextures tex) { + public static void drawCropped(PoseStack ms, int left, int top, int w, int h, int z, AllGuiTextures tex) { tex.bind(); - drawTexturedQuad(graphics.pose().last() + drawTexturedQuad(ms.last() .pose(), Color.WHITE, left, left + w, top, top + h, z, tex.startX / 256f, (tex.startX + w) / 256f, tex.startY / 256f, (tex.startY + h) / 256f); } - private static void drawColoredTexture(GuiGraphics graphics, Color c, int left, int right, int top, int bot, int z, int tex_width, int tex_height, float tex_left, float tex_top, int sheet_width, int sheet_height) { - drawTexturedQuad(graphics.pose().last().pose(), c, left, right, top, bot, z, (tex_left + 0.0F) / (float) sheet_width, (tex_left + (float) tex_width) / (float) sheet_width, (tex_top + 0.0F) / (float) sheet_height, (tex_top + (float) tex_height) / (float) sheet_height); + private static void drawColoredTexture(PoseStack ms, Color c, int left, int right, int top, int bot, int z, int tex_width, int tex_height, float tex_left, float tex_top, int sheet_width, int sheet_height) { + drawTexturedQuad(ms.last().pose(), c, left, right, top, bot, z, (tex_left + 0.0F) / (float) sheet_width, (tex_left + (float) tex_width) / (float) sheet_width, (tex_top + 0.0F) / (float) sheet_height, (tex_top + (float) tex_height) / (float) sheet_height); } private static void drawTexturedQuad(Matrix4f m, Color c, int left, int right, int top, int bot, int z, float u1, float u2, float v1, float v2) { diff --git a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/container/AbstractSimiContainerScreen.java b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/container/AbstractSimiContainerScreen.java index 69eaebe..d4ecc83 100644 --- a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/container/AbstractSimiContainerScreen.java +++ b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/container/AbstractSimiContainerScreen.java @@ -1,7 +1,7 @@ package nl.requios.effortlessbuilding.create.foundation.gui.container; import com.mojang.blaze3d.platform.InputConstants; -import net.minecraft.client.gui.GuiGraphics; +import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.client.gui.components.AbstractWidget; import net.minecraft.client.gui.components.EditBox; import net.minecraft.client.gui.components.Renderable; @@ -15,7 +15,6 @@ import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; -import nl.requios.effortlessbuilding.create.foundation.gui.AllGuiTextures; import nl.requios.effortlessbuilding.create.foundation.gui.TickableGuiEventListener; import nl.requios.effortlessbuilding.create.foundation.gui.widget.AbstractSimiWidget; @@ -92,26 +91,26 @@ public abstract class AbstractSimiContainerScreen tooltip = simiWidget.getToolTip(); @@ -119,7 +118,7 @@ public abstract class AbstractSimiContainerScreenwithBounds(width, height).renderElement(graphics); diff --git a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/element/DelegatedStencilElement.java b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/element/DelegatedStencilElement.java index 2fecfa3..64f6ead 100644 --- a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/element/DelegatedStencilElement.java +++ b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/element/DelegatedStencilElement.java @@ -1,6 +1,6 @@ package nl.requios.effortlessbuilding.create.foundation.gui.element; -import net.minecraft.client.gui.GuiGraphics; +import com.mojang.blaze3d.vertex.PoseStack; import nl.requios.effortlessbuilding.create.foundation.gui.UIRenderHelper; import nl.requios.effortlessbuilding.create.foundation.utility.Color; @@ -35,18 +35,18 @@ public class DelegatedStencilElement extends StencilElement { } @Override - protected void renderStencil(GuiGraphics graphics) { - stencil.render(graphics, width, height, 1); + protected void renderStencil(PoseStack ms) { + stencil.render(ms, width, height, 1); } @Override - protected void renderElement(GuiGraphics graphics) { - element.render(graphics, width, height, alpha); + protected void renderElement(PoseStack ms) { + element.render(ms, width, height, alpha); } @FunctionalInterface public interface ElementRenderer { - void render(GuiGraphics graphics, int width, int height, float alpha); + void render(PoseStack ms, int width, int height, float alpha); } } diff --git a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/element/GuiGameElement.java b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/element/GuiGameElement.java index 60aa3c3..e9bc4a8 100644 --- a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/element/GuiGameElement.java +++ b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/element/GuiGameElement.java @@ -9,7 +9,6 @@ import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.math.Axis; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.renderer.LightTexture; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; @@ -161,8 +160,7 @@ public class GuiGameElement { } @Override - public void render(GuiGraphics graphics) { - PoseStack matrixStack = graphics.pose(); + public void render(PoseStack matrixStack) { prepareMatrix(matrixStack); Minecraft mc = Minecraft.getInstance(); @@ -256,8 +254,7 @@ public class GuiGameElement { } @Override - public void render(GuiGraphics graphics) { - PoseStack matrixStack = graphics.pose(); + public void render(PoseStack matrixStack) { prepareMatrix(matrixStack); transformMatrix(matrixStack); renderItemIntoGUI(matrixStack, stack, customLighting == null); diff --git a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/element/RenderElement.java b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/element/RenderElement.java index 16a7519..f5e1e86 100644 --- a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/element/RenderElement.java +++ b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/element/RenderElement.java @@ -1,12 +1,12 @@ package nl.requios.effortlessbuilding.create.foundation.gui.element; -import net.minecraft.client.gui.GuiGraphics; +import com.mojang.blaze3d.vertex.PoseStack; public abstract class RenderElement implements ScreenElement { public static final RenderElement EMPTY = new RenderElement() { @Override - public void render(GuiGraphics graphics) { + public void render(PoseStack ms) { } }; @@ -66,11 +66,11 @@ public abstract class RenderElement implements ScreenElement { return z; } - public abstract void render(GuiGraphics graphics); + public abstract void render(PoseStack ms); @Override - public void render(GuiGraphics graphics, int x, int y) { - this.at(x, y).render(graphics); + public void render(PoseStack ms, int x, int y) { + this.at(x, y).render(ms); } public static class SimpleRenderElement extends RenderElement { @@ -82,8 +82,8 @@ public abstract class RenderElement implements ScreenElement { } @Override - public void render(GuiGraphics graphics) { - renderable.render(graphics, (int) x, (int) y); + public void render(PoseStack ms) { + renderable.render(ms, (int) x, (int) y); } } } diff --git a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/element/ScreenElement.java b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/element/ScreenElement.java index 86c2700..15fa782 100644 --- a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/element/ScreenElement.java +++ b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/element/ScreenElement.java @@ -1,12 +1,12 @@ package nl.requios.effortlessbuilding.create.foundation.gui.element; -import net.minecraft.client.gui.GuiGraphics; +import com.mojang.blaze3d.vertex.PoseStack; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; public interface ScreenElement { @OnlyIn(Dist.CLIENT) - void render(GuiGraphics graphics, int x, int y); + void render(PoseStack poseStack, int x, int y); } diff --git a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/element/StencilElement.java b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/element/StencilElement.java index 968ab5d..f30ea07 100644 --- a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/element/StencilElement.java +++ b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/element/StencilElement.java @@ -6,26 +6,24 @@ import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiGraphics; public abstract class StencilElement extends RenderElement { @Override - public void render(GuiGraphics graphics) { - PoseStack ms = graphics.pose(); + public void render(PoseStack ms) { ms.pushPose(); transform(ms); prepareStencil(ms); - renderStencil(graphics); + renderStencil(ms); prepareElement(ms); - renderElement(graphics); + renderElement(ms); cleanUp(ms); ms.popPose(); } - protected abstract void renderStencil(GuiGraphics graphics); + protected abstract void renderStencil(PoseStack graphics); - protected abstract void renderElement(GuiGraphics graphics); + protected abstract void renderElement(PoseStack graphics); protected void transform(PoseStack ms) { ms.translate(x, y, z); diff --git a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/element/TextStencilElement.java b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/element/TextStencilElement.java index 82c554e..9af2d30 100644 --- a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/element/TextStencilElement.java +++ b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/element/TextStencilElement.java @@ -2,7 +2,6 @@ package nl.requios.effortlessbuilding.create.foundation.gui.element; import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.client.gui.Font; -import net.minecraft.client.gui.GuiGraphics; import net.minecraft.network.chat.MutableComponent; import nl.requios.effortlessbuilding.create.foundation.utility.Components; @@ -46,7 +45,7 @@ public class TextStencilElement extends DelegatedStencilElement { } @Override - protected void renderStencil(GuiGraphics graphics) { + protected void renderStencil(PoseStack ms) { float x = 0, y = 0; if (centerHorizontally) x = width / 2f - font.width(component) / 2f; @@ -54,11 +53,11 @@ public class TextStencilElement extends DelegatedStencilElement { if (centerVertically) y = height / 2f - (font.lineHeight - 1) / 2f; - graphics.drawString(font, component, Math.round(x), Math.round(y), 0xff_000000, false); + font.draw(ms, component, Math.round(x), Math.round(y), 0xff_000000); } @Override - protected void renderElement(GuiGraphics graphics) { + protected void renderElement(PoseStack ms) { float x = 0, y = 0; if (centerHorizontally) x = width / 2f - font.width(component) / 2f; @@ -66,10 +65,9 @@ public class TextStencilElement extends DelegatedStencilElement { if (centerVertically) y = height / 2f - (font.lineHeight - 1) / 2f; - PoseStack ms = graphics.pose(); ms.pushPose(); ms.translate(x, y, 0); - element.render(graphics, font.width(component), font.lineHeight + 2, alpha); + element.render(ms, font.width(component), font.lineHeight + 2, alpha); ms.popPose(); } diff --git a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/widget/AbstractSimiWidget.java b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/widget/AbstractSimiWidget.java index 2851206..00a830c 100644 --- a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/widget/AbstractSimiWidget.java +++ b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/widget/AbstractSimiWidget.java @@ -1,6 +1,6 @@ package nl.requios.effortlessbuilding.create.foundation.gui.widget; -import net.minecraft.client.gui.GuiGraphics; +import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.client.gui.components.AbstractWidget; import net.minecraft.client.gui.narration.NarrationElementOutput; import net.minecraft.client.gui.screens.inventory.tooltip.ClientTooltipPositioner; @@ -68,22 +68,22 @@ public abstract class AbstractSimiWidget extends AbstractWidget implements Ticka public void tick() {} @Override - public void renderWidget(@Nonnull GuiGraphics graphics, int mouseX, int mouseY, float partialTicks) { - beforeRender(graphics, mouseX, mouseY, partialTicks); - doRender(graphics, mouseX, mouseY, partialTicks); - afterRender(graphics, mouseX, mouseY, partialTicks); + public void renderWidget(@Nonnull PoseStack ms, int mouseX, int mouseY, float partialTicks) { + beforeRender(ms, mouseX, mouseY, partialTicks); + doRender(ms, mouseX, mouseY, partialTicks); + afterRender(ms, mouseX, mouseY, partialTicks); wasHovered = isHoveredOrFocused(); } - protected void beforeRender(@Nonnull GuiGraphics graphics, int mouseX, int mouseY, float partialTicks) { - graphics.pose().pushPose(); + protected void beforeRender(@Nonnull PoseStack ms, int mouseX, int mouseY, float partialTicks) { + ms.pushPose(); } - protected void doRender(@Nonnull GuiGraphics graphics, int mouseX, int mouseY, float partialTicks) { + protected void doRender(@Nonnull PoseStack ms, int mouseX, int mouseY, float partialTicks) { } - protected void afterRender(@Nonnull GuiGraphics graphics, int mouseX, int mouseY, float partialTicks) { - graphics.pose().popPose(); + protected void afterRender(@Nonnull PoseStack ms, int mouseX, int mouseY, float partialTicks) { + ms.popPose(); } public void runCallback(double mouseX, double mouseY) { diff --git a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/widget/BoxWidget.java b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/widget/BoxWidget.java index 5818c7c..5c23f91 100644 --- a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/widget/BoxWidget.java +++ b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/widget/BoxWidget.java @@ -1,6 +1,6 @@ package nl.requios.effortlessbuilding.create.foundation.gui.widget; -import net.minecraft.client.gui.GuiGraphics; +import com.mojang.blaze3d.vertex.PoseStack; import nl.requios.effortlessbuilding.create.foundation.gui.Theme; import nl.requios.effortlessbuilding.create.foundation.gui.UIRenderHelper; import nl.requios.effortlessbuilding.create.foundation.gui.element.BoxElement; @@ -96,8 +96,8 @@ public class BoxWidget extends ElementWidget { } @Override - protected void beforeRender(GuiGraphics graphics, int mouseX, int mouseY, float partialTicks) { - super.beforeRender(graphics, mouseX, mouseY, partialTicks); + protected void beforeRender(PoseStack ms, int mouseX, int mouseY, float partialTicks) { + super.beforeRender(ms, mouseX, mouseY, partialTicks); if (isHovered != wasHovered) { startGradientAnimation( @@ -119,7 +119,7 @@ public class BoxWidget extends ElementWidget { } @Override - public void doRender(GuiGraphics graphics, int mouseX, int mouseY, float partialTicks) { + public void doRender(PoseStack ms, int mouseX, int mouseY, float partialTicks) { float fadeValue = fade.getValue(partialTicks); if (fadeValue < .1f) return; @@ -129,9 +129,9 @@ public class BoxWidget extends ElementWidget { .gradientBorder(gradientColor1, gradientColor2) .at(getX(), getY(), z) .withBounds(width, height) - .render(graphics); + .render(ms); - super.doRender(graphics, mouseX, mouseY, partialTicks); + super.doRender(ms, mouseX, mouseY, partialTicks); wasHovered = isHovered; } diff --git a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/widget/ElementWidget.java b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/widget/ElementWidget.java index 9cffb11..481cbb0 100644 --- a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/widget/ElementWidget.java +++ b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/widget/ElementWidget.java @@ -1,7 +1,6 @@ package nl.requios.effortlessbuilding.create.foundation.gui.widget; import com.mojang.blaze3d.vertex.PoseStack; -import net.minecraft.client.gui.GuiGraphics; import nl.requios.effortlessbuilding.create.foundation.gui.element.RenderElement; import nl.requios.effortlessbuilding.create.foundation.gui.element.ScreenElement; import nl.requios.effortlessbuilding.create.foundation.utility.animation.LerpedFloat; @@ -117,20 +116,19 @@ public class ElementWidget extends AbstractSimiWidget { } @Override - protected void beforeRender(GuiGraphics graphics, int mouseX, int mouseY, float partialTicks) { - super.beforeRender(graphics, mouseX, mouseY, partialTicks); + protected void beforeRender(PoseStack ms, int mouseX, int mouseY, float partialTicks) { + super.beforeRender(ms, mouseX, mouseY, partialTicks); isHovered = isMouseOver(mouseX, mouseY); float fadeValue = fade.getValue(partialTicks); element.withAlpha(fadeValue); if (fadeValue < 1) { - graphics.pose().translate((1 - fadeValue) * fadeModX, (1 - fadeValue) * fadeModY, 0); + ms.translate((1 - fadeValue) * fadeModX, (1 - fadeValue) * fadeModY, 0); } } @Override - public void doRender(GuiGraphics graphics, int mouseX, int mouseY, float partialTicks) { - PoseStack ms = graphics.pose(); + public void doRender(PoseStack ms, int mouseX, int mouseY, float partialTicks) { ms.pushPose(); ms.translate(getX() + paddingX, getY() + paddingY, z); float innerWidth = width - 2 * paddingX; @@ -144,7 +142,7 @@ public class ElementWidget extends AbstractSimiWidget { innerWidth /= xScale; innerHeight /= yScale; } - element.withBounds((int) innerWidth, (int) innerHeight).render(graphics); + element.withBounds((int) innerWidth, (int) innerHeight).render(ms); ms.popPose(); if (rescaleElement) { element.at(eX, eY); diff --git a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/widget/IconButton.java b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/widget/IconButton.java index 6554942..e57003c 100644 --- a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/widget/IconButton.java +++ b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/widget/IconButton.java @@ -1,7 +1,7 @@ package nl.requios.effortlessbuilding.create.foundation.gui.widget; import com.mojang.blaze3d.systems.RenderSystem; -import net.minecraft.client.gui.GuiGraphics; +import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.network.chat.Component; import nl.requios.effortlessbuilding.create.foundation.gui.AllGuiTextures; import nl.requios.effortlessbuilding.create.foundation.gui.element.ScreenElement; @@ -20,7 +20,7 @@ public class IconButton extends AbstractSimiWidget { } @Override - public void doRender(GuiGraphics graphics, int mouseX, int mouseY, float partialTicks) { + public void doRender(PoseStack ms, int mouseX, int mouseY, float partialTicks) { if (visible) { isHovered = mouseX >= getX() && mouseY >= getY() && mouseX < getX() + width && mouseY < getY() + height; @@ -28,13 +28,14 @@ public class IconButton extends AbstractSimiWidget { : isMouseOver(mouseX, mouseY) ? AllGuiTextures.BUTTON_HOVER : AllGuiTextures.BUTTON; RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); - drawBg(graphics, button); - icon.render(graphics, getX() + 1, getY() + 1); + drawBg(ms, button); + icon.render(ms, getX() + 1, getY() + 1); } } - protected void drawBg(GuiGraphics graphics, AllGuiTextures button) { - graphics.blit(button.location, getX(), getY(), button.startX, button.startY, button.width, button.height); + protected void drawBg(PoseStack ms, AllGuiTextures button) { + AllGuiTextures.BUTTON.bind(); + blit(ms, getX(), getY(), button.startX, button.startY, button.width, button.height); } public void setToolTip(Component text) { diff --git a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/widget/Indicator.java b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/widget/Indicator.java index 314457b..d4c4037 100644 --- a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/widget/Indicator.java +++ b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/widget/Indicator.java @@ -1,7 +1,7 @@ package nl.requios.effortlessbuilding.create.foundation.gui.widget; import com.google.common.collect.ImmutableList; -import net.minecraft.client.gui.GuiGraphics; +import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.network.chat.Component; import nl.requios.effortlessbuilding.create.foundation.gui.AllGuiTextures; @@ -16,7 +16,7 @@ public class Indicator extends AbstractSimiWidget { } @Override - public void render(GuiGraphics graphics, int mouseX, int mouseY, float partialTicks ) { + public void render(PoseStack ms, int mouseX, int mouseY, float partialTicks ) { if (!visible) return; AllGuiTextures toDraw; @@ -28,7 +28,7 @@ public class Indicator extends AbstractSimiWidget { case GREEN: toDraw = AllGuiTextures.INDICATOR_GREEN; break; default: toDraw = AllGuiTextures.INDICATOR; break; } - toDraw.render(graphics, getX(), getY()); + toDraw.render(ms, getX(), getY()); } public enum State { diff --git a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/widget/Label.java b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/widget/Label.java index 8b72474..b4e5fca 100644 --- a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/widget/Label.java +++ b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/widget/Label.java @@ -1,9 +1,9 @@ package nl.requios.effortlessbuilding.create.foundation.gui.widget; import com.mojang.blaze3d.systems.RenderSystem; +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.network.chat.Component; import net.minecraft.network.chat.MutableComponent; import nl.requios.effortlessbuilding.create.foundation.utility.Components; @@ -70,7 +70,7 @@ public class Label extends AbstractSimiWidget { } @Override - protected void doRender(@Nonnull GuiGraphics graphics, int mouseX, int mouseY, float partialTicks) { + protected void doRender(@Nonnull PoseStack ms, int mouseX, int mouseY, float partialTicks) { if (text == null || text.getString().isEmpty()) return; @@ -79,7 +79,10 @@ public class Label extends AbstractSimiWidget { if (suffix != null && !suffix.isEmpty()) copy.append(suffix); - graphics.drawString(font, copy, getX(), getY(), color, hasShadow); + if (hasShadow) + font.drawShadow(ms, copy, getX(), getY(), color); + else + font.draw(ms, copy, getX(), getY(), color); } } diff --git a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/widget/TooltipArea.java b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/widget/TooltipArea.java index e3dcd78..5fbc348 100644 --- a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/widget/TooltipArea.java +++ b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/widget/TooltipArea.java @@ -2,7 +2,7 @@ package nl.requios.effortlessbuilding.create.foundation.gui.widget; import java.util.List; -import net.minecraft.client.gui.GuiGraphics; +import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.network.chat.Component; public class TooltipArea extends AbstractSimiWidget { @@ -12,7 +12,7 @@ public class TooltipArea extends AbstractSimiWidget { } @Override - public void renderWidget(GuiGraphics graphics, int mouseX, int mouseY, float partialTicks) { + public void renderWidget(PoseStack graphics, int mouseX, int mouseY, float partialTicks) { if (visible) isHovered = mouseX >= getX() && mouseY >= getY() && mouseX < getX() + width && mouseY < getY() + height; } diff --git a/src/main/java/nl/requios/effortlessbuilding/create/foundation/item/ItemHelper.java b/src/main/java/nl/requios/effortlessbuilding/create/foundation/item/ItemHelper.java index 4153a84..74f3d58 100644 --- a/src/main/java/nl/requios/effortlessbuilding/create/foundation/item/ItemHelper.java +++ b/src/main/java/nl/requios/effortlessbuilding/create/foundation/item/ItemHelper.java @@ -122,7 +122,7 @@ public class ItemHelper { return true; if (stacks1.length == stacks2.length) { for (int i = 0; i < stacks1.length; i++) - if (!ItemStack.isSameItem(stacks1[i], stacks2[i])) + if (!ItemStack.isSame(stacks1[i], stacks2[i])) return false; return true; } diff --git a/src/main/java/nl/requios/effortlessbuilding/create/foundation/render/BakedModelRenderHelper.java b/src/main/java/nl/requios/effortlessbuilding/create/foundation/render/BakedModelRenderHelper.java index 6b68393..5ea7b51 100644 --- a/src/main/java/nl/requios/effortlessbuilding/create/foundation/render/BakedModelRenderHelper.java +++ b/src/main/java/nl/requios/effortlessbuilding/create/foundation/render/BakedModelRenderHelper.java @@ -1,7 +1,8 @@ package nl.requios.effortlessbuilding.create.foundation.render; import com.jozufozu.flywheel.core.model.ModelUtil; -import com.jozufozu.flywheel.core.model.ShadeSeparatedBufferedData; +import com.jozufozu.flywheel.util.Pair; +import com.mojang.blaze3d.vertex.BufferBuilder; import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.block.BlockRenderDispatcher; @@ -12,7 +13,7 @@ public class BakedModelRenderHelper { public static SuperByteBuffer standardBlockRender(BlockState renderedState) { BlockRenderDispatcher dispatcher = Minecraft.getInstance() - .getBlockRenderer(); + .getBlockRenderer(); return standardModelRender(dispatcher.getBlockModel(renderedState), renderedState); } @@ -21,10 +22,7 @@ public class BakedModelRenderHelper { } public static SuperByteBuffer standardModelRender(BakedModel model, BlockState referenceState, PoseStack ms) { - ShadeSeparatedBufferedData data = ModelUtil.getBufferedData(model, referenceState, ms); - SuperByteBuffer sbb = new SuperByteBuffer(data); - data.release(); - return sbb; + Pair pair = ModelUtil.getBufferBuilder(model, referenceState, ms); + return new SuperByteBuffer(pair.first(), pair.second()); } - } diff --git a/src/main/java/nl/requios/effortlessbuilding/create/foundation/render/SuperByteBuffer.java b/src/main/java/nl/requios/effortlessbuilding/create/foundation/render/SuperByteBuffer.java index ece25d2..dd17ee1 100644 --- a/src/main/java/nl/requios/effortlessbuilding/create/foundation/render/SuperByteBuffer.java +++ b/src/main/java/nl/requios/effortlessbuilding/create/foundation/render/SuperByteBuffer.java @@ -1,18 +1,24 @@ package nl.requios.effortlessbuilding.create.foundation.render; +import com.jozufozu.flywheel.util.Color; +import nl.requios.effortlessbuilding.create.foundation.block.render.SpriteShiftEntry; +import org.joml.Matrix3f; +import org.joml.Matrix4f; +import org.joml.Quaternionf; +import org.joml.Vector3f; +import org.joml.Vector4f; import com.jozufozu.flywheel.api.vertex.ShadedVertexList; -import com.jozufozu.flywheel.api.vertex.VertexList; import com.jozufozu.flywheel.backend.ShadersModHandler; -import com.jozufozu.flywheel.core.model.ShadeSeparatedBufferedData; import com.jozufozu.flywheel.core.vertex.BlockVertexList; -import com.jozufozu.flywheel.util.Color; import com.jozufozu.flywheel.util.DiffuseLightCalculator; import com.jozufozu.flywheel.util.transform.TStack; import com.jozufozu.flywheel.util.transform.Transform; -import com.mojang.blaze3d.vertex.BufferBuilder; +import com.mojang.blaze3d.vertex.BufferBuilder.DrawState; +import com.mojang.blaze3d.vertex.BufferBuilder.RenderedBuffer; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; + import it.unimi.dsi.fastutil.longs.Long2IntMap; import it.unimi.dsi.fastutil.longs.Long2IntOpenHashMap; import net.minecraft.client.Minecraft; @@ -23,23 +29,13 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.util.Mth; import net.minecraft.world.level.Level; -import nl.requios.effortlessbuilding.create.foundation.block.render.SpriteShiftEntry; -import org.joml.Matrix3f; -import org.joml.Matrix4f; -import org.joml.Quaternionf; -import org.joml.Vector3f; -import org.joml.Vector4f; - -import java.nio.ByteBuffer; -import java.util.function.IntPredicate; public class SuperByteBuffer implements Transform, TStack { - private final VertexList template; - private final IntPredicate shadedPredicate; + private final ShadedVertexList template; // Vertex Position - private final PoseStack transforms = new PoseStack(); + private final PoseStack transforms; // Vertex Coloring private boolean shouldColor; @@ -67,28 +63,11 @@ public class SuperByteBuffer implements Transform, TStack true; + public SuperByteBuffer(RenderedBuffer buf, int unshadedStartVertex) { + DrawState drawState = buf.drawState(); + template = new BlockVertexList.Shaded(buf.vertexBuffer(), drawState.vertexCount(), drawState.format().getVertexSize(), unshadedStartVertex); + transforms = new PoseStack(); transforms.pushPose(); } @@ -97,21 +76,21 @@ public class SuperByteBuffer implements Transform, TStack, TStack, TStack, TStack, TStack, TStack { float targetU = u - entry.getOriginal() - .getU0() + entry.getTarget() + .getU0() + entry.getTarget() .getU0() - + scrollU; + + scrollU; float targetV = v - entry.getOriginal() - .getV0() + entry.getTarget() + .getV0() + entry.getTarget() .getV0() - + scrollV; + + scrollV; builder.uv(targetU, targetV); }; return this; @@ -390,9 +365,9 @@ public class SuperByteBuffer implements Transform, TStack { float targetU = entry.getTarget() - .getU((SpriteShiftEntry.getUnInterpolatedU(entry.getOriginal(), u) / sheetSize) + uTarget * 16); + .getU((SpriteShiftEntry.getUnInterpolatedU(entry.getOriginal(), u) / sheetSize) + uTarget * 16); float targetV = entry.getTarget() - .getV((SpriteShiftEntry.getUnInterpolatedV(entry.getOriginal(), v) / sheetSize) + vTarget * 16); + .getV((SpriteShiftEntry.getUnInterpolatedV(entry.getOriginal(), v) / sheetSize) + vTarget * 16); builder.uv(targetU, targetV); }; return this; @@ -489,4 +464,4 @@ public class SuperByteBuffer implements Transform, TStack compartment) { caches.put(compartment, CacheBuilder.newBuilder() - .removalListener(n -> n.getValue().delete()) - .build()); + .build()); } public synchronized void registerCompartment(Compartment compartment, long ticksUntilExpired) { caches.put(compartment, CacheBuilder.newBuilder() - .expireAfterAccess(ticksUntilExpired * 50, TimeUnit.MILLISECONDS) - .removalListener(n -> n.getValue().delete()) - .build()); + .expireAfterAccess(ticksUntilExpired * 50, TimeUnit.MILLISECONDS) + .build()); } public SuperByteBuffer get(Compartment compartment, T key, Callable callable) { diff --git a/src/main/java/nl/requios/effortlessbuilding/create/foundation/utility/BlockHelper.java b/src/main/java/nl/requios/effortlessbuilding/create/foundation/utility/BlockHelper.java index 6a37500..8c19a2a 100644 --- a/src/main/java/nl/requios/effortlessbuilding/create/foundation/utility/BlockHelper.java +++ b/src/main/java/nl/requios/effortlessbuilding/create/foundation/utility/BlockHelper.java @@ -185,7 +185,7 @@ public class BlockHelper { return false; BlockState belowState = world.getBlockState(pos.below()); - if (belowState.blocksMotion() || belowState.liquid()) + if (belowState.getMaterial().blocksMotion() || belowState.getMaterial().isLiquid()) world.setBlockAndUpdate(pos, Blocks.WATER.defaultBlockState()); return true; } @@ -213,7 +213,7 @@ public class BlockHelper { int idx = chunk.getSectionIndex(target.getY()); LevelChunkSection chunksection = chunk.getSection(idx); if (chunksection == null) { - chunksection = new LevelChunkSection(world.registryAccess() + chunksection = new LevelChunkSection(chunk.getSectionYFromSectionIndex(idx), world.registryAccess() .registryOrThrow(Registries.BIOME)); chunk.getSections()[idx] = chunksection; } diff --git a/src/main/java/nl/requios/effortlessbuilding/create/foundation/utility/worldWrappers/WrappedServerWorld.java b/src/main/java/nl/requios/effortlessbuilding/create/foundation/utility/worldWrappers/WrappedServerWorld.java index f1675b8..7baf728 100644 --- a/src/main/java/nl/requios/effortlessbuilding/create/foundation/utility/worldWrappers/WrappedServerWorld.java +++ b/src/main/java/nl/requios/effortlessbuilding/create/foundation/utility/worldWrappers/WrappedServerWorld.java @@ -35,7 +35,7 @@ public class WrappedServerWorld extends ServerLevel { (ServerLevelData) world.getLevelData(), world.dimension(), new LevelStem(world.dimensionTypeRegistration(), world.getChunkSource().getGenerator()), new DummyStatusListener(), world.isDebug(), world.getBiomeManager().biomeZoomSeed, - Collections.emptyList(), false, world.getRandomSequences()); + Collections.emptyList(), false); this.world = world; } diff --git a/src/main/java/nl/requios/effortlessbuilding/gui/DiamondRandomizerBagContainer.java b/src/main/java/nl/requios/effortlessbuilding/gui/DiamondRandomizerBagContainer.java index 709d60b..8e4c50c 100644 --- a/src/main/java/nl/requios/effortlessbuilding/gui/DiamondRandomizerBagContainer.java +++ b/src/main/java/nl/requios/effortlessbuilding/gui/DiamondRandomizerBagContainer.java @@ -141,7 +141,7 @@ public class DiamondRandomizerBagContainer extends AbstractContainerMenu { @Override public void removed(Player player) { super.removed(player); - if (!player.level().isClientSide) { + if (!player.level.isClientSide) { broadcastChanges(); } } diff --git a/src/main/java/nl/requios/effortlessbuilding/gui/DiamondRandomizerBagScreen.java b/src/main/java/nl/requios/effortlessbuilding/gui/DiamondRandomizerBagScreen.java index ba3b9c2..520623f 100644 --- a/src/main/java/nl/requios/effortlessbuilding/gui/DiamondRandomizerBagScreen.java +++ b/src/main/java/nl/requios/effortlessbuilding/gui/DiamondRandomizerBagScreen.java @@ -1,6 +1,7 @@ package nl.requios.effortlessbuilding.gui; -import net.minecraft.client.gui.GuiGraphics; +import com.mojang.blaze3d.systems.RenderSystem; +import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; @@ -25,22 +26,24 @@ public class DiamondRandomizerBagScreen extends AbstractContainerScreen ShaderTypeList.this.y0 && rowTop + rowHeight - 5 < ShaderTypeList.this.y1) - guiGraphics.drawString(font, shaderType.name, ShaderTypeList.this.x0 + 8, rowTop + 4, 0xFFFFFF, false); + font.draw(ms, shaderType.name, ShaderTypeList.this.x0 + 8, rowTop + 4, 0xFFFFFF); } @Override diff --git a/src/main/java/nl/requios/effortlessbuilding/gui/buildmode/RadialMenu.java b/src/main/java/nl/requios/effortlessbuilding/gui/buildmode/RadialMenu.java index bcf17a1..50abe6c 100644 --- a/src/main/java/nl/requios/effortlessbuilding/gui/buildmode/RadialMenu.java +++ b/src/main/java/nl/requios/effortlessbuilding/gui/buildmode/RadialMenu.java @@ -9,7 +9,7 @@ import com.mojang.blaze3d.vertex.VertexFormat; import net.minecraft.ChatFormatting; import net.minecraft.client.KeyMapping; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiGraphics; +import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.renderer.GameRenderer; import net.minecraft.client.resources.language.I18n; @@ -102,10 +102,9 @@ public class RadialMenu extends Screen { } @Override - public void render(GuiGraphics guiGraphics, final int mouseX, final int mouseY, final float partialTicks) { + public void render(PoseStack ms, final int mouseX, final int mouseY, final float partialTicks) { BuildModeEnum currentBuildMode = EffortlessBuildingClient.BUILD_MODES.getBuildMode(); - PoseStack ms = guiGraphics.pose(); ms.pushPose(); ms.translate(0, 0, 200); @@ -115,7 +114,7 @@ public class RadialMenu extends Screen { final int startColor = (int) (visibility * 98) << 24; final int endColor = (int) (visibility * 128) << 24; - guiGraphics.fillGradient(0, 0, width, height, startColor, endColor); + fillGradient(ms, 0, 0, width, height, startColor, endColor); RenderSystem.enableBlend(); RenderSystem.blendFuncSeparate(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, 1, 0); @@ -191,9 +190,9 @@ public class RadialMenu extends Screen { tessellator.end(); RenderSystem.disableBlend(); - drawIcons(guiGraphics, middleX, middleY, modes, buttons); + drawIcons(ms, middleX, middleY, modes, buttons); - drawTexts(guiGraphics, currentBuildMode, middleX, middleY, modes, buttons, options, mouseXX, mouseYY); + drawTexts(ms, currentBuildMode, middleX, middleY, modes, buttons, options, mouseXX, mouseYY); ms.popPose(); } @@ -295,9 +294,8 @@ public class RadialMenu extends Screen { } } - private void drawIcons(GuiGraphics guiGraphics, double middleX, double middleY, + private void drawIcons(PoseStack ms, double middleX, double middleY, ArrayList modes, ArrayList buttons) { - PoseStack ms = guiGraphics.pose(); ms.pushPose(); //Draw buildmode icons @@ -306,7 +304,7 @@ public class RadialMenu extends Screen { final double x = (menuRegion.x1 + menuRegion.x2) * 0.5 * (ringOuterEdge * 0.55 + 0.45 * ringInnerEdge); final double y = (menuRegion.y1 + menuRegion.y2) * 0.5 * (ringOuterEdge * 0.55 + 0.45 * ringInnerEdge); - menuRegion.mode.icon.render(guiGraphics, (int) (middleX + x - 8), (int) (middleY + y - 8)); + menuRegion.mode.icon.render(ms, (int) (middleX + x - 8), (int) (middleY + y - 8)); } //Draw action icons @@ -315,28 +313,28 @@ public class RadialMenu extends Screen { final double x = (button.x1 + button.x2) / 2 + 0.01; final double y = (button.y1 + button.y2) / 2 + 0.01; - button.action.icon.render(guiGraphics, (int) (middleX + x - 8), (int) (middleY + y - 8)); + button.action.icon.render(ms, (int) (middleX + x - 8), (int) (middleY + y - 8)); } ms.popPose(); } - private void drawTexts(GuiGraphics guiGraphics, BuildModeEnum currentBuildMode, double middleX, double middleY, ArrayList modes, ArrayList buttons, OptionEnum[] options, int mouseX, int mouseY) { + private void drawTexts(PoseStack ms, BuildModeEnum currentBuildMode, double middleX, double middleY, ArrayList modes, ArrayList buttons, OptionEnum[] options, int mouseX, int mouseY) { //font.drawStringWithShadow("Actions", (int) (middleX - buttonDistance - 13) - font.getStringWidth("Actions") * 0.5f, (int) middleY - 38, 0xffffffff); //Draw option strings for (int i = 0; i < currentBuildMode.options.length; i++) { OptionEnum option = options[i]; - guiGraphics.drawString(font, I18n.get(option.name), (int) (middleX + buttonDistance - 9), (int) middleY - 37 + i * 39, optionTextColor); + font.draw(ms, I18n.get(option.name), (int) (middleX + buttonDistance - 9), (int) middleY - 37 + i * 39, optionTextColor); } String credits = "Effortless Building"; - guiGraphics.drawString(font, credits, width - font.width(credits) - 4, height - 10, watermarkTextColor); + font.draw(ms, credits, width - font.width(credits) - 4, height - 10, watermarkTextColor); //Draw power level info String powerLevelValue = minecraft.player.isCreative() ? "Creative" : String.valueOf(EffortlessBuildingClient.POWER_LEVEL.getPowerLevel()); String powerLevelText = I18n.get("key.effortlessbuilding.power_level") + ": " + powerLevelValue; - guiGraphics.drawString(font, powerLevelText, width - font.width(powerLevelText) - 4, height - 22, minecraft.player.isCreative() ? watermarkTextColor : ChatFormatting.DARK_PURPLE.getColor()); + font.draw(ms, powerLevelText, width - font.width(powerLevelText) - 4, height - 22, minecraft.player.isCreative() ? watermarkTextColor : ChatFormatting.DARK_PURPLE.getColor()); //if hover over power level info, show tooltip if (mouseX >= width - font.width(powerLevelText) - 14 && mouseX <= width && mouseY >= height - 24 && mouseY <= height) { @@ -359,7 +357,7 @@ public class RadialMenu extends Screen { tooltip.addAll(TooltipHelper.cutTextComponent(Components.translatable("key.effortlessbuilding.next_power_level_how"), ChatFormatting.GRAY, ChatFormatting.WHITE)); } - guiGraphics.renderComponentTooltip(font, tooltip, mouseX, mouseY); + renderComponentTooltip(ms, tooltip, mouseX, mouseY); } @@ -380,11 +378,11 @@ public class RadialMenu extends Screen { fixed_x -= font.width(text) / 2; } - guiGraphics.drawString(font, text, (int) middleX + fixed_x, (int) middleY + fixed_y, whiteTextColor); + font.draw(ms, text, (int) middleX + fixed_x, (int) middleY + fixed_y, whiteTextColor); //Draw description text = I18n.get(menuRegion.mode.getDescriptionKey()); - guiGraphics.drawString(font, text, (int) ((int) middleX - font.width(text) / 2f), (int) middleY + buildModeDescriptionHeight, descriptionTextColor); + font.draw(ms, text, (int) ((int) middleX - font.width(text) / 2f), (int) middleY + buildModeDescriptionHeight, descriptionTextColor); } } @@ -407,7 +405,7 @@ public class RadialMenu extends Screen { var keybind = findKeybind(button); if (keybind != null) tooltip.add(Lang.translateDirect("tooltip.keybind", keybind.withStyle(ChatFormatting.GRAY)).withStyle(ChatFormatting.DARK_GRAY)); - guiGraphics.renderComponentTooltip(font, tooltip, mouseX, mouseY); + renderComponentTooltip(ms, tooltip, mouseX, mouseY); } } } diff --git a/src/main/java/nl/requios/effortlessbuilding/gui/buildmodifier/ArrayEntry.java b/src/main/java/nl/requios/effortlessbuilding/gui/buildmodifier/ArrayEntry.java index 131eb28..51b79f9 100644 --- a/src/main/java/nl/requios/effortlessbuilding/gui/buildmodifier/ArrayEntry.java +++ b/src/main/java/nl/requios/effortlessbuilding/gui/buildmodifier/ArrayEntry.java @@ -1,8 +1,8 @@ package nl.requios.effortlessbuilding.gui.buildmodifier; +import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiGraphics; import net.minecraft.network.chat.Component; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @@ -59,25 +59,25 @@ public class ArrayEntry extends BaseModifierEntry { } @Override - public void render(GuiGraphics guiGraphics, int index, int y, int x, int width, int height, int mouseX, int mouseY, boolean p_230432_9_, float partialTicks) { - super.render(guiGraphics, index, y, x, width, height, mouseX, mouseY, p_230432_9_, partialTicks); + public void render(PoseStack ms, int index, int y, int x, int width, int height, int mouseX, int mouseY, boolean p_230432_9_, float partialTicks) { + super.render(ms, index, y, x, width, height, mouseX, mouseY, p_230432_9_, partialTicks); //draw offset inputs for (int i = 0; i < 3; i++) { offsetInputs.get(i).setX(left + 49 + 20 * i); offsetInputs.get(i).setY(top + 19); - offsetInputs.get(i).render(guiGraphics, mouseX, mouseY, partialTicks); + offsetInputs.get(i).render(ms, mouseX, mouseY, partialTicks); } //draw count input countInput.setX(left + 49); countInput.setY(top + 41); - countInput.render(guiGraphics, mouseX, mouseY, partialTicks); + countInput.render(ms, mouseX, mouseY, partialTicks); //draw reach label reachLabel.setX(right - 8 - getFont().width(reachLabel.text)); reachLabel.setY(top + 24); - reachLabel.render(guiGraphics, mouseX, mouseY, partialTicks); + reachLabel.render(ms, mouseX, mouseY, partialTicks); } @Override diff --git a/src/main/java/nl/requios/effortlessbuilding/gui/buildmodifier/BaseModifierEntry.java b/src/main/java/nl/requios/effortlessbuilding/gui/buildmodifier/BaseModifierEntry.java index 1adce87..1d29bcb 100644 --- a/src/main/java/nl/requios/effortlessbuilding/gui/buildmodifier/BaseModifierEntry.java +++ b/src/main/java/nl/requios/effortlessbuilding/gui/buildmodifier/BaseModifierEntry.java @@ -1,6 +1,6 @@ package nl.requios.effortlessbuilding.gui.buildmodifier; -import net.minecraft.client.gui.GuiGraphics; +import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.network.chat.Component; import nl.requios.effortlessbuilding.AllGuiTextures; import nl.requios.effortlessbuilding.buildmodifier.BaseModifier; @@ -80,39 +80,39 @@ public abstract class BaseModifierEntry extends Modifier } @Override - public void render(GuiGraphics guiGraphics, int index, int y, int x, int width, int height, int mouseX, int mouseY, boolean p_230432_9_, float partialTicks) { + public void render(PoseStack ms, int index, int y, int x, int width, int height, int mouseX, int mouseY, boolean p_230432_9_, float partialTicks) { left = x + width / 2 - BACKGROUND_WIDTH / 2; right = x + width / 2 + BACKGROUND_WIDTH / 2; top = y; bottom = y + BACKGROUND_HEIGHT; - background.render(guiGraphics, left, top); + background.render(ms, left, top); enableButton.setX(left + 4); enableButton.setY(top + 3); - enableButton.render(guiGraphics, mouseX, mouseY, partialTicks); + enableButton.render(ms, mouseX, mouseY, partialTicks); if (modifier.enabled) - AllGuiTextures.CHECKMARK.render(guiGraphics, left + 5, top + 3); + AllGuiTextures.CHECKMARK.render(ms, left + 5, top + 3); nameLabel.setX(left + 18); nameLabel.setY(top + 4); - nameLabel.render(guiGraphics, mouseX, mouseY, partialTicks); + nameLabel.render(ms, mouseX, mouseY, partialTicks); moveUpButton.visible = screen.canMoveUp(this); moveDownButton.visible = screen.canMoveDown(this); moveUpButton.setX(right - 31); moveUpButton.setY(top + 3); - moveUpButton.render(guiGraphics, mouseX, mouseY, partialTicks); + moveUpButton.render(ms, mouseX, mouseY, partialTicks); moveDownButton.setX(right - 22); moveDownButton.setY(top + 3); - moveDownButton.render(guiGraphics, mouseX, mouseY, partialTicks); + moveDownButton.render(ms, mouseX, mouseY, partialTicks); removeButton.setX(right - 13); removeButton.setY(top + 3); - removeButton.render(guiGraphics, mouseX, mouseY, partialTicks); + removeButton.render(ms, mouseX, mouseY, partialTicks); } public void onValueChanged() { diff --git a/src/main/java/nl/requios/effortlessbuilding/gui/buildmodifier/MirrorEntry.java b/src/main/java/nl/requios/effortlessbuilding/gui/buildmodifier/MirrorEntry.java index 3af092c..633d0cb 100644 --- a/src/main/java/nl/requios/effortlessbuilding/gui/buildmodifier/MirrorEntry.java +++ b/src/main/java/nl/requios/effortlessbuilding/gui/buildmodifier/MirrorEntry.java @@ -1,7 +1,7 @@ package nl.requios.effortlessbuilding.gui.buildmodifier; +import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiGraphics; import net.minecraft.network.chat.Component; import net.minecraft.world.phys.Vec3; import net.minecraftforge.api.distmarker.Dist; @@ -135,49 +135,49 @@ public class MirrorEntry extends BaseModifierEntry { } @Override - public void render(GuiGraphics guiGraphics, int index, int y, int x, int width, int height, int mouseX, int mouseY, boolean p_230432_9_, float partialTicks) { - super.render(guiGraphics, index, y, x, width, height, mouseX, mouseY, p_230432_9_, partialTicks); + public void render(PoseStack ms, int index, int y, int x, int width, int height, int mouseX, int mouseY, boolean p_230432_9_, float partialTicks) { + super.render(ms, index, y, x, width, height, mouseX, mouseY, p_230432_9_, partialTicks); //draw position inputs for (int i = 0; i < 3; i++) { ScrollInput input = positionInputs.get(i); input.setX(left + 49 + 38 * i); input.setY(top + 19); - input.render(guiGraphics, mouseX, mouseY, partialTicks); + input.render(ms, mouseX, mouseY, partialTicks); } //draw player position button playerPositionButton.setX(left + 163); playerPositionButton.setY(top + 19); - playerPositionButton.render(guiGraphics, mouseX, mouseY, partialTicks); + playerPositionButton.render(ms, mouseX, mouseY, partialTicks); //draw toggle offset button toggleOffsetButton.setX(left + 183); toggleOffsetButton.setY(top + 19); - toggleOffsetButton.render(guiGraphics, mouseX, mouseY, partialTicks); + toggleOffsetButton.render(ms, mouseX, mouseY, partialTicks); //draw axis buttons for (int i = 0; i < 3; i++) { IconButton button = axisButtons.get(i); button.setX(left + 49 + 18 * i); button.setY(top + 41); - button.render(guiGraphics, mouseX, mouseY, partialTicks); + button.render(ms, mouseX, mouseY, partialTicks); } //draw radius input radiusInput.setX(left + 134); radiusInput.setY(top + 41); - radiusInput.render(guiGraphics, mouseX, mouseY, partialTicks); + radiusInput.render(ms, mouseX, mouseY, partialTicks); //draw show lines button showLinesButton.setX(left + 163); showLinesButton.setY(top + 41); - showLinesButton.render(guiGraphics, mouseX, mouseY, partialTicks); + showLinesButton.render(ms, mouseX, mouseY, partialTicks); //draw show areas button showAreasButton.setX(left + 183); showAreasButton.setY(top + 41); - showAreasButton.render(guiGraphics, mouseX, mouseY, partialTicks); + showAreasButton.render(ms, mouseX, mouseY, partialTicks); } @Override diff --git a/src/main/java/nl/requios/effortlessbuilding/gui/buildmodifier/ModifiersScreen.java b/src/main/java/nl/requios/effortlessbuilding/gui/buildmodifier/ModifiersScreen.java index 4c7dc20..424150b 100644 --- a/src/main/java/nl/requios/effortlessbuilding/gui/buildmodifier/ModifiersScreen.java +++ b/src/main/java/nl/requios/effortlessbuilding/gui/buildmodifier/ModifiersScreen.java @@ -1,7 +1,7 @@ package nl.requios.effortlessbuilding.gui.buildmodifier; +import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiGraphics; import net.minecraft.network.chat.Component; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @@ -145,7 +145,7 @@ public class ModifiersScreen extends AbstractSimiScreen { } @Override - protected void renderWindow(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTicks) { + protected void renderWindow(PoseStack ms, int mouseX, int mouseY, float partialTicks) { } diff --git a/src/main/java/nl/requios/effortlessbuilding/gui/buildmodifier/ModifiersScreenList.java b/src/main/java/nl/requios/effortlessbuilding/gui/buildmodifier/ModifiersScreenList.java index e91efae..e055182 100644 --- a/src/main/java/nl/requios/effortlessbuilding/gui/buildmodifier/ModifiersScreenList.java +++ b/src/main/java/nl/requios/effortlessbuilding/gui/buildmodifier/ModifiersScreenList.java @@ -2,9 +2,9 @@ package nl.requios.effortlessbuilding.gui.buildmodifier; import com.mojang.blaze3d.platform.Window; import com.mojang.blaze3d.systems.RenderSystem; +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.ObjectSelectionList; import net.minecraft.client.gui.components.events.GuiEventListener; import net.minecraft.network.chat.Component; @@ -30,30 +30,30 @@ public class ModifiersScreenList extends ObjectSelectionList= this.y0 && j1 <= this.y1) { - renderItemForeground(guiGraphics, pMouseX, pMouseY, pPartialTick, i1, i, j1, j, k); + renderItemForeground(ms, pMouseX, pMouseY, pPartialTick, i1, i, j1, j, k); } } } - protected void renderItemForeground(GuiGraphics guiGraphics, int pMouseX, int pMouseY, float pPartialTick, int pIndex, int pLeft, int pTop, int pWidth, int pHeight) { + protected void renderItemForeground(PoseStack ms, int pMouseX, int pMouseY, float pPartialTick, int pIndex, int pLeft, int pTop, int pWidth, int pHeight) { Entry e = this.getEntry(pIndex); - e.renderForeground(guiGraphics, pIndex, pTop, pLeft, pWidth, pHeight, pMouseX, pMouseY, Objects.equals(this.getHovered(), e), pPartialTick); + e.renderForeground(ms, pIndex, pTop, pLeft, pWidth, pHeight, pMouseX, pMouseY, Objects.equals(this.getHovered(), e), pPartialTick); } @Override @@ -146,14 +146,12 @@ public class ModifiersScreenList extends ObjectSelectionList { } @Override - public void render(GuiGraphics guiGraphics, int index, int y, int x, int width, int height, int mouseX, int mouseY, boolean p_230432_9_, float partialTicks) { - super.render(guiGraphics, index, y, x, width, height, mouseX, mouseY, p_230432_9_, partialTicks); + public void render(PoseStack ms, int index, int y, int x, int width, int height, int mouseX, int mouseY, boolean p_230432_9_, float partialTicks) { + super.render(ms, index, y, x, width, height, mouseX, mouseY, p_230432_9_, partialTicks); //draw position inputs for (int i = 0; i < 3; i++) { ScrollInput input = positionInputs.get(i); input.setX(left + 49 + 38 * i); input.setY(top + 19); - input.render(guiGraphics, mouseX, mouseY, partialTicks); + input.render(ms, mouseX, mouseY, partialTicks); } //draw player position button playerPositionButton.setX(left + 163); playerPositionButton.setY(top + 19); - playerPositionButton.render(guiGraphics, mouseX, mouseY, partialTicks); + playerPositionButton.render(ms, mouseX, mouseY, partialTicks); //draw toggle offset button toggleOffsetButton.setX(left + 183); toggleOffsetButton.setY(top + 19); - toggleOffsetButton.render(guiGraphics, mouseX, mouseY, partialTicks); + toggleOffsetButton.render(ms, mouseX, mouseY, partialTicks); //draw slices input slicesInput.setX(left + 49); slicesInput.setY(top + 41); - slicesInput.render(guiGraphics, mouseX, mouseY, partialTicks); + slicesInput.render(ms, mouseX, mouseY, partialTicks); //draw alternate button alternateButton.setX(left + 78); alternateButton.setY(top + 41); - alternateButton.render(guiGraphics, mouseX, mouseY, partialTicks); + alternateButton.render(ms, mouseX, mouseY, partialTicks); //draw radius input radiusInput.setX(left + 134); radiusInput.setY(top + 41); - radiusInput.render(guiGraphics, mouseX, mouseY, partialTicks); + radiusInput.render(ms, mouseX, mouseY, partialTicks); //draw show lines button showLinesButton.setX(left + 163); showLinesButton.setY(top + 41); - showLinesButton.render(guiGraphics, mouseX, mouseY, partialTicks); + showLinesButton.render(ms, mouseX, mouseY, partialTicks); //draw show areas button showAreasButton.setX(left + 183); showAreasButton.setY(top + 41); - showAreasButton.render(guiGraphics, mouseX, mouseY, partialTicks); + showAreasButton.render(ms, mouseX, mouseY, partialTicks); } @Override diff --git a/src/main/java/nl/requios/effortlessbuilding/gui/elements/GuiCheckBoxFixed.java b/src/main/java/nl/requios/effortlessbuilding/gui/elements/GuiCheckBoxFixed.java index 3ed6b88..4655ac9 100644 --- a/src/main/java/nl/requios/effortlessbuilding/gui/elements/GuiCheckBoxFixed.java +++ b/src/main/java/nl/requios/effortlessbuilding/gui/elements/GuiCheckBoxFixed.java @@ -1,9 +1,9 @@ package nl.requios.effortlessbuilding.gui.elements; import com.mojang.blaze3d.systems.RenderSystem; +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.renderer.GameRenderer; import net.minecraft.network.chat.Component; @@ -29,11 +29,11 @@ public class GuiCheckBoxFixed extends Button { } @Override - public void renderWidget(GuiGraphics guiGraphics, int mouseX, int mouseY, float partial) { + public void renderWidget(PoseStack ms, int mouseX, int mouseY, float partial) { RenderSystem.setShader(GameRenderer::getPositionTexShader); RenderSystem.setShaderTexture(0, WIDGETS_LOCATION); //Is deprecated but still works - ScreenUtils.blitWithBorder(guiGraphics, this.getX(), this.getY(), 0, 46, this.boxWidth, this.height, 200, 20, 2, 3, 2, 2, 0); + ScreenUtils.blitWithBorder(ms, this.getX(), this.getY(), 0, 46, this.boxWidth, this.height, 200, 20, 2, 3, 2, 2, 0); int color = 14737632; if (packedFGColor != 0) { @@ -45,9 +45,9 @@ public class GuiCheckBoxFixed extends Button { Font font = Minecraft.getInstance().font; if (this.isChecked) - guiGraphics.drawCenteredString(font, "x", this.getX() + this.boxWidth / 2 + 1, this.getY() + 1, 14737632); + drawCenteredString(ms, font, "x", this.getX() + this.boxWidth / 2 + 1, this.getY() + 1, 14737632); - guiGraphics.drawString(font, getMessage(), this.getX() + this.boxWidth + 2, this.getY() + 2, color, false); + font.draw(ms, getMessage(), this.getX() + this.boxWidth + 2, this.getY() + 2, color); } @Override diff --git a/src/main/java/nl/requios/effortlessbuilding/gui/elements/GuiCollapsibleScrollEntry.java b/src/main/java/nl/requios/effortlessbuilding/gui/elements/GuiCollapsibleScrollEntry.java index 7a63add..d1511e7 100644 --- a/src/main/java/nl/requios/effortlessbuilding/gui/elements/GuiCollapsibleScrollEntry.java +++ b/src/main/java/nl/requios/effortlessbuilding/gui/elements/GuiCollapsibleScrollEntry.java @@ -1,8 +1,8 @@ package nl.requios.effortlessbuilding.gui.elements; +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.Renderable; import net.minecraft.client.gui.screens.Screen; import net.minecraftforge.api.distmarker.Dist; @@ -39,7 +39,7 @@ public abstract class GuiCollapsibleScrollEntry implements GuiScrollPane.IScroll } @Override - public void drawTooltip(GuiGraphics guiGraphics, Screen guiScreen, int mouseX, int mouseY) { + public void drawTooltip(PoseStack ms, Screen guiScreen, int mouseX, int mouseY) { } @Override diff --git a/src/main/java/nl/requios/effortlessbuilding/gui/elements/GuiIconButton.java b/src/main/java/nl/requios/effortlessbuilding/gui/elements/GuiIconButton.java index 9cf44ed..db7ab69 100644 --- a/src/main/java/nl/requios/effortlessbuilding/gui/elements/GuiIconButton.java +++ b/src/main/java/nl/requios/effortlessbuilding/gui/elements/GuiIconButton.java @@ -1,6 +1,7 @@ package nl.requios.effortlessbuilding.gui.elements; -import net.minecraft.client.gui.GuiGraphics; +import com.mojang.blaze3d.systems.RenderSystem; +import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.gui.components.Button; import net.minecraft.resources.ResourceLocation; @@ -50,7 +51,9 @@ public class GuiIconButton extends Button { } @Override - public void renderWidget(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTicks) { + public void renderWidget(PoseStack ms, int mouseX, int mouseY, float partialTicks) { + RenderSystem.setShaderTexture(0, this.resourceLocation); + int currentIconX = this.iconX; int currentIconY = this.iconY; @@ -60,14 +63,14 @@ public class GuiIconButton extends Button { } //Draws a textured rectangle at the current z-value. Used to be drawTexturedModalRect in Gui. - guiGraphics.blit(resourceLocation, this.getX(), this.getY(), currentIconX, currentIconY, this.iconWidth, this.iconHeight); + blit(ms, this.getX(), this.getY(), currentIconX, currentIconY, this.iconWidth, this.iconHeight); } - public void drawTooltip(GuiGraphics guiGraphics, Screen screen, int mouseX, int mouseY) { + public void drawTooltip(PoseStack ms, Screen screen, int mouseX, int mouseY) { boolean flag = mouseX >= getX() && mouseX < getX() + width && mouseY >= getY() && mouseY < getY() + height; if (flag) { - guiGraphics.renderComponentTooltip(screen.getMinecraft().font, tooltip, mouseX - 10, mouseY + 25); + screen.renderComponentTooltip(ms, tooltip, mouseX - 10, mouseY + 25); } } } diff --git a/src/main/java/nl/requios/effortlessbuilding/gui/elements/GuiNumberField.java b/src/main/java/nl/requios/effortlessbuilding/gui/elements/GuiNumberField.java index 986d2a6..365ad20 100644 --- a/src/main/java/nl/requios/effortlessbuilding/gui/elements/GuiNumberField.java +++ b/src/main/java/nl/requios/effortlessbuilding/gui/elements/GuiNumberField.java @@ -1,9 +1,9 @@ package nl.requios.effortlessbuilding.gui.elements; +import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.ChatFormatting; import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.client.gui.Font; -import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.Button; import net.minecraft.client.gui.components.EditBox; import net.minecraft.client.gui.components.Renderable; @@ -95,17 +95,17 @@ public class GuiNumberField { return result; } - public void drawNumberField(GuiGraphics graphics, int mouseX, int mouseY, float partialTicks) { + public void drawNumberField(PoseStack ms, int mouseX, int mouseY, float partialTicks) { textField.setY(y + 1); minusButton.setY(y - 1); plusButton.setY(y - 1); - textField.render(graphics, mouseX, mouseY, partialTicks); - minusButton.render(graphics, mouseX, mouseY, partialTicks); - plusButton.render(graphics, mouseX, mouseY, partialTicks); + textField.render(ms, mouseX, mouseY, partialTicks); + minusButton.render(ms, mouseX, mouseY, partialTicks); + plusButton.render(ms, mouseX, mouseY, partialTicks); } - public void drawTooltip(GuiGraphics graphics, Screen screen, int mouseX, int mouseY) { + public void drawTooltip(PoseStack ms, Screen screen, int mouseX, int mouseY) { boolean insideTextField = mouseX >= x + buttonWidth && mouseX < x + width - buttonWidth && mouseY >= y && mouseY < y + height; boolean insideMinusButton = mouseX >= x && mouseX < x + buttonWidth && mouseY >= y && mouseY < y + height; boolean insidePlusButton = mouseX >= x + width - buttonWidth && mouseX < x + width && mouseY >= y && mouseY < y + height; @@ -133,7 +133,7 @@ public class GuiNumberField { textLines.add(Component.literal("Hold ").append(Component.literal("ctrl ").withStyle(ChatFormatting.DARK_GREEN)).append("for ") .append(Component.literal("5").withStyle(ChatFormatting.RED))); } - graphics.renderComponentTooltip(screen.getMinecraft().font, textLines, mouseX - 10, mouseY + 25); + screen.renderComponentTooltip(ms, textLines, mouseX - 10, mouseY + 25); } diff --git a/src/main/java/nl/requios/effortlessbuilding/gui/elements/GuiScrollPane.java b/src/main/java/nl/requios/effortlessbuilding/gui/elements/GuiScrollPane.java index 30e5921..00c1fea 100644 --- a/src/main/java/nl/requios/effortlessbuilding/gui/elements/GuiScrollPane.java +++ b/src/main/java/nl/requios/effortlessbuilding/gui/elements/GuiScrollPane.java @@ -6,7 +6,6 @@ import com.mojang.blaze3d.systems.RenderSystem; import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; -import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.Renderable; import net.minecraft.client.gui.components.events.GuiEventListener; import net.minecraft.client.gui.screens.Screen; @@ -72,7 +71,7 @@ public class GuiScrollPane extends SlotGui { //Removed background @Override - public void render(GuiGraphics guiGraphics, int mouseXIn, int mouseYIn, float partialTicks) { + public void render(PoseStack guiGraphics, int mouseXIn, int mouseYIn, float partialTicks) { if (this.visible) { this.mouseX = mouseXIn; this.mouseY = mouseYIn; @@ -170,8 +169,8 @@ public class GuiScrollPane extends SlotGui { } @Override - protected void renderItem(GuiGraphics guiGraphics, int slotIndex, int xPos, int yPos, int heightIn, int mouseXIn, int mouseYIn, float partialTicks) { - this.getListEntry(slotIndex).drawEntry(guiGraphics, slotIndex, xPos, yPos, this.getRowWidth(), heightIn, mouseXIn, mouseYIn, + protected void renderItem(PoseStack ms, int slotIndex, int xPos, int yPos, int heightIn, int mouseXIn, int mouseYIn, float partialTicks) { + this.getListEntry(slotIndex).drawEntry(ms, slotIndex, xPos, yPos, this.getRowWidth(), heightIn, mouseXIn, mouseYIn, this.getSlotIndexFromScreenCoords(mouseXIn, mouseYIn) == slotIndex, partialTicks); } @@ -324,7 +323,7 @@ public class GuiScrollPane extends SlotGui { //Draw in center if it fits @Override - protected void renderList(GuiGraphics guiGraphics, int insideLeft, int insideTop, int mouseXIn, int mouseYIn, float partialTicks) { + protected void renderList(PoseStack guiGraphics, int insideLeft, int insideTop, int mouseXIn, int mouseYIn, float partialTicks) { int itemCount = this.getItemCount(); Tesselator tessellator = Tesselator.getInstance(); BufferBuilder bufferbuilder = tessellator.getBuilder(); @@ -405,7 +404,7 @@ public class GuiScrollPane extends SlotGui { entry.updateScreen(); } - public void drawTooltip(GuiGraphics guiGraphics, Screen guiScreen, int mouseX, int mouseY) { + public void drawTooltip(PoseStack guiGraphics, Screen guiScreen, int mouseX, int mouseY) { for (IScrollEntry entry : this.listEntries) entry.drawTooltip(guiGraphics, guiScreen, mouseX, mouseY); } @@ -436,7 +435,7 @@ public class GuiScrollPane extends SlotGui { void updateScreen(); - void drawTooltip(GuiGraphics guiGraphics, Screen guiScreen, int mouseX, int mouseY); + void drawTooltip(PoseStack guiGraphics, Screen guiScreen, int mouseX, int mouseY); boolean charTyped(char eventChar, int eventKey); @@ -446,7 +445,7 @@ public class GuiScrollPane extends SlotGui { void updatePosition(int slotIndex, int x, int y, float partialTicks); - void drawEntry(GuiGraphics guiGraphics, int slotIndex, int x, int y, int listWidth, int slotHeight, int mouseX, int mouseY, boolean isSelected, float partialTicks); + void drawEntry(PoseStack guiGraphics, int slotIndex, int x, int y, int listWidth, int slotHeight, int mouseX, int mouseY, boolean isSelected, float partialTicks); /** * Called when the mouse is clicked within this entry. Returning true means that something within this entry was diff --git a/src/main/java/nl/requios/effortlessbuilding/gui/elements/LabeledScrollInput.java b/src/main/java/nl/requios/effortlessbuilding/gui/elements/LabeledScrollInput.java index 44f1709..efc1376 100644 --- a/src/main/java/nl/requios/effortlessbuilding/gui/elements/LabeledScrollInput.java +++ b/src/main/java/nl/requios/effortlessbuilding/gui/elements/LabeledScrollInput.java @@ -1,8 +1,8 @@ package nl.requios.effortlessbuilding.gui.elements; +import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiGraphics; import net.minecraft.network.chat.Component; import nl.requios.effortlessbuilding.create.foundation.gui.widget.Label; import nl.requios.effortlessbuilding.create.foundation.gui.widget.ScrollInput; @@ -31,12 +31,12 @@ public class LabeledScrollInput extends ScrollInput { //TODO: Check if this works @Override - public void doRender(@NotNull GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTicks) { - super.doRender(guiGraphics, mouseX, mouseY, partialTicks); + public void doRender(@NotNull PoseStack ms, int mouseX, int mouseY, float partialTicks) { + super.doRender(ms, mouseX, mouseY, partialTicks); label.setX(getX() + width / 2 - Minecraft.getInstance().font.width(label.text) / 2); label.setY(getY() + height / 2 - Minecraft.getInstance().font.lineHeight / 2); - label.render(guiGraphics, mouseX, mouseY, partialTicks); + label.render(ms, mouseX, mouseY, partialTicks); } @Override diff --git a/src/main/java/nl/requios/effortlessbuilding/gui/elements/SlotGui.java b/src/main/java/nl/requios/effortlessbuilding/gui/elements/SlotGui.java index ec7b0f2..12e1913 100644 --- a/src/main/java/nl/requios/effortlessbuilding/gui/elements/SlotGui.java +++ b/src/main/java/nl/requios/effortlessbuilding/gui/elements/SlotGui.java @@ -3,11 +3,11 @@ package nl.requios.effortlessbuilding.gui.elements; import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.BufferBuilder; import com.mojang.blaze3d.vertex.DefaultVertexFormat; +import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.Tesselator; import com.mojang.blaze3d.vertex.VertexFormat; import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.Renderable; import net.minecraft.client.gui.components.events.AbstractContainerEventHandler; import net.minecraft.client.gui.components.events.GuiEventListener; @@ -76,7 +76,7 @@ public abstract class SlotGui extends AbstractContainerEventHandler implements R protected void updateItemPosition(int p_updateItemPosition_1_, int p_updateItemPosition_2_, int p_updateItemPosition_3_, float p_updateItemPosition_4_) { } - protected abstract void renderItem(GuiGraphics guiGraphics, int p_renderItem_1_, int p_renderItem_2_, int p_renderItem_3_, int p_renderItem_4_, int p_renderItem_5_, int p_renderItem_6_, float p_renderItem_7_); + protected abstract void renderItem(PoseStack ms, int p_renderItem_1_, int p_renderItem_2_, int p_renderItem_3_, int p_renderItem_4_, int p_renderItem_5_, int p_renderItem_6_, float p_renderItem_7_); protected void renderHeader(int p_renderHeader_1_, int p_renderHeader_2_, Tesselator p_renderHeader_3_) { } @@ -108,7 +108,7 @@ public abstract class SlotGui extends AbstractContainerEventHandler implements R return p_isMouseInList_3_ >= (double) this.y0 && p_isMouseInList_3_ <= (double) this.y1 && p_isMouseInList_1_ >= (double) this.x0 && p_isMouseInList_1_ <= (double) this.x1; } - public abstract void render(GuiGraphics guiGraphics, int p_render_1_, int p_render_2_, float p_render_3_); + public abstract void render(PoseStack guiGraphics, int p_render_1_, int p_render_2_, float p_render_3_); protected void updateScrollingState(double p_updateScrollingState_1_, double p_updateScrollingState_3_, int p_updateScrollingState_5_) { this.scrolling = p_updateScrollingState_5_ == 0 && p_updateScrollingState_1_ >= (double) this.getScrollbarPosition() && p_updateScrollingState_1_ < (double) (this.getScrollbarPosition() + 6); @@ -215,7 +215,7 @@ public abstract class SlotGui extends AbstractContainerEventHandler implements R return 220; } - protected void renderList(GuiGraphics guiGraphics, int p_renderList_1_, int p_renderList_2_, int p_renderList_3_, int p_renderList_4_, float p_renderList_5_) { + protected void renderList(PoseStack guiGraphics, int p_renderList_1_, int p_renderList_2_, int p_renderList_3_, int p_renderList_4_, float p_renderList_5_) { int i = this.getItemCount(); Tesselator tessellator = Tesselator.getInstance(); BufferBuilder bufferbuilder = tessellator.getBuilder(); diff --git a/src/main/java/nl/requios/effortlessbuilding/render/BlockPreviews.java b/src/main/java/nl/requios/effortlessbuilding/render/BlockPreviews.java index d285500..95100f9 100644 --- a/src/main/java/nl/requios/effortlessbuilding/render/BlockPreviews.java +++ b/src/main/java/nl/requios/effortlessbuilding/render/BlockPreviews.java @@ -146,10 +146,10 @@ public class BlockPreviews { if (EffortlessBuildingClient.BUILDER_CHAIN.getLookingAtNear() != null) return; AABB aabb = new AABB(pos); - if (player.level().isLoaded(pos)) { - var blockState = player.level().getBlockState(pos); + if (player.level.isLoaded(pos)) { + var blockState = player.level.getBlockState(pos); if (!blockState.isAir()) { - aabb = blockState.getShape(player.level(), pos).bounds().move(pos); + aabb = blockState.getShape(player.level, pos).bounds().move(pos); } } diff --git a/src/main/java/nl/requios/effortlessbuilding/render/RenderHandler.java b/src/main/java/nl/requios/effortlessbuilding/render/RenderHandler.java index f9944b1..27cd0a3 100644 --- a/src/main/java/nl/requios/effortlessbuilding/render/RenderHandler.java +++ b/src/main/java/nl/requios/effortlessbuilding/render/RenderHandler.java @@ -8,7 +8,6 @@ import com.mojang.blaze3d.vertex.VertexConsumer; 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.renderer.MultiBufferSource; import net.minecraft.network.chat.Component; import net.minecraft.world.item.ItemStack; @@ -49,9 +48,9 @@ public class RenderHandler { @SubscribeEvent public static void onRenderGuiEvent(RenderGuiEvent event) { - renderSubText(event.getGuiGraphics()); + renderSubText(event.getPoseStack()); - drawStacks(event.getGuiGraphics()); + drawStacks(event.getPoseStack()); } private static final ChatFormatting highlightColor = ChatFormatting.DARK_AQUA; @@ -64,7 +63,7 @@ public class RenderHandler { normalColor + "Left-click to " + highlightColor + "break, " + normalColor + "Right-click to " + highlightColor + "cancel"); - private static void renderSubText(GuiGraphics guiGraphics) { + private static void renderSubText(PoseStack ms) { var state = EffortlessBuildingClient.BUILDER_CHAIN.getBuildingState(); if (state == BuilderChain.BuildingState.IDLE) return; @@ -74,19 +73,18 @@ public class RenderHandler { int screenHeight = Minecraft.getInstance().getWindow().getGuiScaledHeight(); var font = Minecraft.getInstance().font; - PoseStack ms = guiGraphics.pose(); ms.pushPose(); ms.translate(screenWidth / 2.0, screenHeight - 54, 0.0D); RenderSystem.enableBlend(); RenderSystem.defaultBlendFunc(); int l = font.width(text); - guiGraphics.drawString(font, text, (int)((float)(-l / 2)), -4, 0xffffffff, true); + font.drawShadow(ms, text, (int)((float)(-l / 2)), -4, 0xffffffff); RenderSystem.disableBlend(); ms.popPose(); } //Draw item stacks at cursor, showing what will be used and what is missing - private static void drawStacks(GuiGraphics guiGraphics) { + private static void drawStacks(PoseStack ms) { var state = EffortlessBuildingClient.BUILDER_CHAIN.getBuildingState(); if (state != BuilderChain.BuildingState.PLACING) return; @@ -109,23 +107,22 @@ public class RenderHandler { int missing = EffortlessBuildingClient.ITEM_USAGE_TRACKER.getMissingCount(stack.getKey()); if (total - missing > 0) { - drawItemStack(guiGraphics, new ItemStack(stack.getKey(), total - missing), x + i * 20, y, false); + drawItemStack(ms, new ItemStack(stack.getKey(), total - missing), x + i * 20, y, false); i++; } if (missing > 0) { - drawItemStack(guiGraphics, new ItemStack(stack.getKey(), missing), x + i * 20, y, true); + drawItemStack(ms, new ItemStack(stack.getKey(), missing), x + i * 20, y, true); i++; } } } - private static void drawItemStack(GuiGraphics guiGraphics, ItemStack stack, int x, int y, boolean missing) { - guiGraphics.renderItem(stack, x, y); + private static void drawItemStack(PoseStack ms, ItemStack stack, int x, int y, boolean missing) { + Minecraft.getInstance().getItemRenderer().renderGuiItem(ms, stack, x, y); //draw count text, red if missing //from ItemRenderer#renderGuiItemDecorations - PoseStack ms = guiGraphics.pose(); ms.pushPose(); Font font = Minecraft.getInstance().font; String text = String.valueOf(stack.getCount()); diff --git a/src/main/java/nl/requios/effortlessbuilding/systems/BuilderChain.java b/src/main/java/nl/requios/effortlessbuilding/systems/BuilderChain.java index 5a2ca56..161d935 100644 --- a/src/main/java/nl/requios/effortlessbuilding/systems/BuilderChain.java +++ b/src/main/java/nl/requios/effortlessbuilding/systems/BuilderChain.java @@ -88,7 +88,7 @@ public class BuilderChain { player.swing(InteractionHand.MAIN_HAND); blocks.skipFirst = buildMode == BuildModeEnum.DISABLED; - long placeTime = player.level().getGameTime(); + long placeTime = player.level.getGameTime(); if (blocks.size() > 1) placeTime += ClientConfig.visuals.appearAnimationLength.get(); PacketHandler.INSTANCE.sendToServer(new ServerPlaceBlocksPacket(blocks, placeTime)); } @@ -112,7 +112,7 @@ public class BuilderChain { blocks.setStartPos(new BlockEntry(startPosForBreaking)); EffortlessBuildingClient.BUILD_MODIFIERS.findCoordinates(blocks, player); EffortlessBuildingClient.BUILDER_FILTER.filterOnCoordinates(blocks, player); - findExistingBlockStates(player.level()); + findExistingBlockStates(player.level); EffortlessBuildingClient.BUILDER_FILTER.filterOnExistingBlockStates(blocks, player); } @@ -231,7 +231,7 @@ public class BuilderChain { //Offset in direction of sidehit if not quickreplace and not replaceable boolean shouldOffsetStartPosition = EffortlessBuildingClient.BUILD_SETTINGS.shouldOffsetStartPosition(); - boolean replaceable = player.level().getBlockState(startPos).canBeReplaced(); + boolean replaceable = player.level.getBlockState(startPos).canBeReplaced(); boolean becomesDoubleSlab = SurvivalHelper.doesBecomeDoubleSlab(player, startPos); if (!shouldOffsetStartPosition && !replaceable && !becomesDoubleSlab) { startPos = startPos.relative(lookingAt.getDirection()); @@ -281,7 +281,7 @@ public class BuilderChain { } //Find new blockstate - blockEntry.setItemAndFindNewBlockState(itemStack, player.level(), originalDirection, clickedFace, relativeHitVec); + blockEntry.setItemAndFindNewBlockState(itemStack, player.level, originalDirection, clickedFace, relativeHitVec); //Filter on new blockstate if (EffortlessBuildingClient.BUILDER_FILTER.filterOnNewBlockState(blockEntry, player)) { @@ -320,9 +320,9 @@ public class BuilderChain { if (blocks.getLastBlockEntry() != null && blocks.getLastBlockEntry().newBlockState != null) { var lastBlockState = blocks.getLastBlockEntry().newBlockState; - SoundType soundType = lastBlockState.getBlock().getSoundType(lastBlockState, player.level(), blocks.lastPos, player); + SoundType soundType = lastBlockState.getBlock().getSoundType(lastBlockState, player.level, blocks.lastPos, player); SoundEvent soundEvent = buildingState == BuildingState.BREAKING ? soundType.getBreakSound() : soundType.getPlaceSound(); - player.level().playSound(player, player.blockPosition(), soundEvent, SoundSource.BLOCKS, 0.3f, 0.8f); + player.level.playSound(player, player.blockPosition(), soundEvent, SoundSource.BLOCKS, 0.3f, 0.8f); } } } diff --git a/src/main/java/nl/requios/effortlessbuilding/systems/BuilderFilter.java b/src/main/java/nl/requios/effortlessbuilding/systems/BuilderFilter.java index 3fa06d5..72ba371 100644 --- a/src/main/java/nl/requios/effortlessbuilding/systems/BuilderFilter.java +++ b/src/main/java/nl/requios/effortlessbuilding/systems/BuilderFilter.java @@ -12,7 +12,7 @@ import nl.requios.effortlessbuilding.utilities.PlaceChecker; @OnlyIn(Dist.CLIENT) public class BuilderFilter { public void filterOnCoordinates(BlockSet blocks, Player player) { - var world = player.level(); + var world = player.level; var iter = blocks.entrySet().iterator(); while (iter.hasNext()) { var pos = iter.next().getValue().blockPos; @@ -76,7 +76,7 @@ public class BuilderFilter { boolean remove = false; - if (placing && !PlaceChecker.shouldPlaceBlock(player.level(), blockEntry)) remove = true; + if (placing && !PlaceChecker.shouldPlaceBlock(player.level, blockEntry)) remove = true; return remove; } diff --git a/src/main/java/nl/requios/effortlessbuilding/systems/ServerBlockPlacer.java b/src/main/java/nl/requios/effortlessbuilding/systems/ServerBlockPlacer.java index 9e12779..99a935a 100644 --- a/src/main/java/nl/requios/effortlessbuilding/systems/ServerBlockPlacer.java +++ b/src/main/java/nl/requios/effortlessbuilding/systems/ServerBlockPlacer.java @@ -29,7 +29,7 @@ public class ServerBlockPlacer { //Iterator to prevent concurrent modification exception for (var iterator = delayedEntries.iterator(); iterator.hasNext(); ) { DelayedEntry entry = iterator.next(); - long gameTime = entry.player.level().getGameTime(); + long gameTime = entry.player.level.getGameTime(); if (gameTime >= entry.placeTime) { applyBlockSet(entry.player, entry.blocks); iterator.remove(); @@ -99,7 +99,7 @@ public class ServerBlockPlacer { private boolean applyBlockEntry(Player player, BlockEntry block) { - block.existingBlockState = player.level().getBlockState(block.blockPos); + block.existingBlockState = player.level.getBlockState(block.blockPos); boolean breaking = BlockUtilities.isNullOrAir(block.newBlockState); if (!validateBlockEntry(player, block, breaking)) return false; @@ -134,7 +134,7 @@ public class ServerBlockPlacer { if (!validateBlockEntry(player, tempBlockEntry, breaking)) return false; //Update newBlockState for future redo's - block.newBlockState = player.level().getBlockState(block.blockPos); + block.newBlockState = player.level.getBlockState(block.blockPos); boolean success; isPlacingOrBreakingBlocks = true; @@ -231,7 +231,7 @@ public class ServerBlockPlacer { private boolean validateBlockEntry(Player player, BlockEntry block, boolean breaking) { - if (!player.level().isLoaded(block.blockPos)) return false; + if (!player.level.isLoaded(block.blockPos)) return false; if (breaking && BlockUtilities.isNullOrAir(block.existingBlockState)) return false; diff --git a/src/main/java/nl/requios/effortlessbuilding/systems/UndoRedo.java b/src/main/java/nl/requios/effortlessbuilding/systems/UndoRedo.java index 24eac41..423a4fe 100644 --- a/src/main/java/nl/requios/effortlessbuilding/systems/UndoRedo.java +++ b/src/main/java/nl/requios/effortlessbuilding/systems/UndoRedo.java @@ -285,8 +285,8 @@ public class UndoRedo { //then anything it drops if (itemStack.isEmpty()) { //Cannot check drops on clientside because loot tables are server only - if (!player.level().isClientSide) { - List itemsDropped = Block.getDrops(blockState, (ServerLevel) player.level(), BlockPos.ZERO, null); + if (!player.level.isClientSide) { + List itemsDropped = Block.getDrops(blockState, (ServerLevel) player.level, BlockPos.ZERO, null); for (ItemStack itemStackDropped : itemsDropped) { if (itemStackDropped.getItem() instanceof BlockItem) { Block block = ((BlockItem) itemStackDropped.getItem()).getBlock(); diff --git a/src/main/java/nl/requios/effortlessbuilding/utilities/BlockPlacerHelper.java b/src/main/java/nl/requios/effortlessbuilding/utilities/BlockPlacerHelper.java index 8b108b8..605678a 100644 --- a/src/main/java/nl/requios/effortlessbuilding/utilities/BlockPlacerHelper.java +++ b/src/main/java/nl/requios/effortlessbuilding/utilities/BlockPlacerHelper.java @@ -27,7 +27,7 @@ public class BlockPlacerHelper { } } - boolean brokeBlock = BlockHelper.destroyBlockAs(player.level(), blockEntry.blockPos, player, usedTool, 0f, stack -> { + boolean brokeBlock = BlockHelper.destroyBlockAs(player.level, blockEntry.blockPos, player, usedTool, 0f, stack -> { if (!player.isCreative()) { ItemHandlerHelper.giveItemToPlayer(player, stack); } @@ -38,7 +38,7 @@ public class BlockPlacerHelper { //ForgeHooks::onPlaceItemIntoWorld, removed itemstack usage public static boolean placeBlock(Player player, BlockEntry blockEntry) { - Level level = player.level(); + Level level = player.level; var itemStack = new ItemStack(blockEntry.item); level.captureBlockSnapshots = true; diff --git a/src/main/java/nl/requios/effortlessbuilding/utilities/ClientBlockUtilities.java b/src/main/java/nl/requios/effortlessbuilding/utilities/ClientBlockUtilities.java index 820bd91..cd26011 100644 --- a/src/main/java/nl/requios/effortlessbuilding/utilities/ClientBlockUtilities.java +++ b/src/main/java/nl/requios/effortlessbuilding/utilities/ClientBlockUtilities.java @@ -43,13 +43,13 @@ public class ClientBlockUtilities { if (blockEntry == null || blockEntry.newBlockState == null) return; - SoundType soundType = blockEntry.newBlockState.getBlock().getSoundType(blockEntry.newBlockState, player.level(), blockEntry.blockPos, player); + SoundType soundType = blockEntry.newBlockState.getBlock().getSoundType(blockEntry.newBlockState, player.level, blockEntry.blockPos, player); SoundEvent soundEvent = breaking ? soundType.getBreakSound() : soundType.getPlaceSound(); - player.level().playSound(player, player.blockPosition(), soundEvent, SoundSource.BLOCKS, 0.6f, soundType.getPitch()); + player.level.playSound(player, player.blockPosition(), soundEvent, SoundSource.BLOCKS, 0.6f, soundType.getPitch()); } public static BlockHitResult getLookingAtFar(Player player) { - Level world = player.level(); + Level world = player.level; //base distance off of player ability (config) float raytraceRange = EffortlessBuildingClient.POWER_LEVEL.getPlacementReach(player); diff --git a/src/main/java/nl/requios/effortlessbuilding/utilities/PowerLevelCommand.java b/src/main/java/nl/requios/effortlessbuilding/utilities/PowerLevelCommand.java index e47e814..2ac7a9a 100644 --- a/src/main/java/nl/requios/effortlessbuilding/utilities/PowerLevelCommand.java +++ b/src/main/java/nl/requios/effortlessbuilding/utilities/PowerLevelCommand.java @@ -43,12 +43,12 @@ public class PowerLevelCommand { private static void logPowerLevel(CommandSourceStack source, Player player) { int powerLevel = EffortlessBuilding.SERVER_POWER_LEVEL.getPowerLevel(player); - source.sendSuccess(() -> Component.translatable("effortlessbuilding.commands.powerlevel", player.getDisplayName(), powerLevel), false); + source.sendSuccess(Component.translatable("effortlessbuilding.commands.powerlevel", player.getDisplayName(), powerLevel), false); } private static void setPowerLevel(CommandSourceStack source, Player player, int powerLevel) throws CommandSyntaxException { EffortlessBuilding.SERVER_POWER_LEVEL.setPowerLevel(player, powerLevel); EffortlessBuilding.SERVER_POWER_LEVEL.sendToClient(player); - source.sendSuccess(() -> Component.translatable("effortlessbuilding.commands.powerlevel.success", player.getDisplayName(), powerLevel), true); + source.sendSuccess(Component.translatable("effortlessbuilding.commands.powerlevel.success", player.getDisplayName(), powerLevel), true); } } diff --git a/src/main/java/nl/requios/effortlessbuilding/utilities/SurvivalHelper.java b/src/main/java/nl/requios/effortlessbuilding/utilities/SurvivalHelper.java index 6bfb9bc..0faff07 100644 --- a/src/main/java/nl/requios/effortlessbuilding/utilities/SurvivalHelper.java +++ b/src/main/java/nl/requios/effortlessbuilding/utilities/SurvivalHelper.java @@ -26,7 +26,7 @@ public class SurvivalHelper { public static boolean doesBecomeDoubleSlab(Player player, BlockPos pos) { - BlockState placedBlockState = player.level().getBlockState(pos); + BlockState placedBlockState = player.level.getBlockState(pos); ItemStack itemstack = player.getItemInHand(InteractionHand.MAIN_HAND); if (CompatHelper.isItemBlockProxy(itemstack)) diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index 4afac51..098ea3a 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -1,5 +1,5 @@ modLoader="javafml" -loaderVersion="[47,)" +loaderVersion="[45,)" license="GNU LESSER GENERAL PUBLIC LICENSE" issueTrackerURL="https://bitbucket.org/Requios/effortless-building/issues?status=new&status=open&status=submitted&is_spam=%21spam" showAsResourcePack=false @@ -19,20 +19,20 @@ Makes building easier by providing tools like mirrors, arrays, build modes and a [[dependencies.effortlessbuilding]] modId="forge" mandatory=true - versionRange="[47.1.3,)" + versionRange="[45.2.0,)" ordering="NONE" side="BOTH" [[dependencies.effortlessbuilding]] modId="minecraft" mandatory=true - versionRange="[1.20,1.21)" + versionRange="[1.19.4,1.20)" ordering="NONE" side="BOTH" -[[dependencies.effortlessbuilding]] - modId="flywheel" - mandatory=true - versionRange="[0.6.10,0.7)" - ordering="AFTER" - side="CLIENT" \ No newline at end of file +#[[dependencies.effortlessbuilding]] +# modId="flywheel" +# mandatory=true +# versionRange="[0.6.10,0.7)" +# ordering="AFTER" +# side="CLIENT" \ No newline at end of file diff --git a/src/main/resources/assets/effortlessbuilding/models/item/building_techniques_book.json b/src/main/resources/assets/effortlessbuilding/models/item/building_techniques_book.json index c7d4c0c..c7e5912 100644 --- a/src/main/resources/assets/effortlessbuilding/models/item/building_techniques_book.json +++ b/src/main/resources/assets/effortlessbuilding/models/item/building_techniques_book.json @@ -1,6 +1,6 @@ { "parent": "item/generated", "textures": { - "layer0": "effortlessbuilding:items/buildingtechniquesbook" + "layer0": "effortlessbuilding:item/buildingtechniquesbook" } } diff --git a/src/main/resources/assets/effortlessbuilding/models/item/diamond_randomizer_bag.json b/src/main/resources/assets/effortlessbuilding/models/item/diamond_randomizer_bag.json index 73c973c..b540bac 100644 --- a/src/main/resources/assets/effortlessbuilding/models/item/diamond_randomizer_bag.json +++ b/src/main/resources/assets/effortlessbuilding/models/item/diamond_randomizer_bag.json @@ -1,6 +1,6 @@ { "parent": "item/generated", "textures": { - "layer0": "effortlessbuilding:items/diamondrandomizerbag" + "layer0": "effortlessbuilding:item/diamondrandomizerbag" } } diff --git a/src/main/resources/assets/effortlessbuilding/models/item/elastic_hand.json b/src/main/resources/assets/effortlessbuilding/models/item/elastic_hand.json index 4fcb467..a7934de 100644 --- a/src/main/resources/assets/effortlessbuilding/models/item/elastic_hand.json +++ b/src/main/resources/assets/effortlessbuilding/models/item/elastic_hand.json @@ -1,6 +1,6 @@ { "parent": "item/generated", "textures": { - "layer0": "effortlessbuilding:items/elastichand" + "layer0": "effortlessbuilding:item/elastichand" } } diff --git a/src/main/resources/assets/effortlessbuilding/models/item/golden_randomizer_bag.json b/src/main/resources/assets/effortlessbuilding/models/item/golden_randomizer_bag.json index ca4e43f..974e7f2 100644 --- a/src/main/resources/assets/effortlessbuilding/models/item/golden_randomizer_bag.json +++ b/src/main/resources/assets/effortlessbuilding/models/item/golden_randomizer_bag.json @@ -1,6 +1,6 @@ { "parent": "item/generated", "textures": { - "layer0": "effortlessbuilding:items/goldenrandomizerbag" + "layer0": "effortlessbuilding:item/goldenrandomizerbag" } } diff --git a/src/main/resources/assets/effortlessbuilding/models/item/muscles.json b/src/main/resources/assets/effortlessbuilding/models/item/muscles.json index c44e1d6..b634759 100644 --- a/src/main/resources/assets/effortlessbuilding/models/item/muscles.json +++ b/src/main/resources/assets/effortlessbuilding/models/item/muscles.json @@ -1,6 +1,6 @@ { "parent": "item/generated", "textures": { - "layer0": "effortlessbuilding:items/muscles" + "layer0": "effortlessbuilding:item/muscles" } } diff --git a/src/main/resources/assets/effortlessbuilding/models/item/randomizer_bag.json b/src/main/resources/assets/effortlessbuilding/models/item/randomizer_bag.json index b4593bb..b4c7a64 100644 --- a/src/main/resources/assets/effortlessbuilding/models/item/randomizer_bag.json +++ b/src/main/resources/assets/effortlessbuilding/models/item/randomizer_bag.json @@ -1,6 +1,6 @@ { "parent": "item/generated", "textures": { - "layer0": "effortlessbuilding:items/randomizerbag" + "layer0": "effortlessbuilding:item/randomizerbag" } } diff --git a/src/main/resources/assets/effortlessbuilding/models/item/reach_upgrade1.json b/src/main/resources/assets/effortlessbuilding/models/item/reach_upgrade1.json index f2ab74e..cf545a8 100644 --- a/src/main/resources/assets/effortlessbuilding/models/item/reach_upgrade1.json +++ b/src/main/resources/assets/effortlessbuilding/models/item/reach_upgrade1.json @@ -1,6 +1,6 @@ { "parent": "item/generated", "textures": { - "layer0": "effortlessbuilding:items/reachupgrade1" + "layer0": "effortlessbuilding:item/reachupgrade1" } } diff --git a/src/main/resources/assets/effortlessbuilding/models/item/reach_upgrade2.json b/src/main/resources/assets/effortlessbuilding/models/item/reach_upgrade2.json index 5602a8e..36f8483 100644 --- a/src/main/resources/assets/effortlessbuilding/models/item/reach_upgrade2.json +++ b/src/main/resources/assets/effortlessbuilding/models/item/reach_upgrade2.json @@ -1,6 +1,6 @@ { "parent": "item/generated", "textures": { - "layer0": "effortlessbuilding:items/reachupgrade2" + "layer0": "effortlessbuilding:item/reachupgrade2" } } diff --git a/src/main/resources/assets/effortlessbuilding/models/item/reach_upgrade3.json b/src/main/resources/assets/effortlessbuilding/models/item/reach_upgrade3.json index b23361d..da36877 100644 --- a/src/main/resources/assets/effortlessbuilding/models/item/reach_upgrade3.json +++ b/src/main/resources/assets/effortlessbuilding/models/item/reach_upgrade3.json @@ -1,6 +1,6 @@ { "parent": "item/generated", "textures": { - "layer0": "effortlessbuilding:items/reachupgrade3" + "layer0": "effortlessbuilding:item/reachupgrade3" } } diff --git a/src/main/resources/assets/effortlessbuilding/textures/items/buildingtechniquesbook.png b/src/main/resources/assets/effortlessbuilding/textures/item/buildingtechniquesbook.png similarity index 100% rename from src/main/resources/assets/effortlessbuilding/textures/items/buildingtechniquesbook.png rename to src/main/resources/assets/effortlessbuilding/textures/item/buildingtechniquesbook.png diff --git a/src/main/resources/assets/effortlessbuilding/textures/items/diamondrandomizerbag.png b/src/main/resources/assets/effortlessbuilding/textures/item/diamondrandomizerbag.png similarity index 100% rename from src/main/resources/assets/effortlessbuilding/textures/items/diamondrandomizerbag.png rename to src/main/resources/assets/effortlessbuilding/textures/item/diamondrandomizerbag.png diff --git a/src/main/resources/assets/effortlessbuilding/textures/items/elastichand.png b/src/main/resources/assets/effortlessbuilding/textures/item/elastichand.png similarity index 100% rename from src/main/resources/assets/effortlessbuilding/textures/items/elastichand.png rename to src/main/resources/assets/effortlessbuilding/textures/item/elastichand.png diff --git a/src/main/resources/assets/effortlessbuilding/textures/items/goldenrandomizerbag.png b/src/main/resources/assets/effortlessbuilding/textures/item/goldenrandomizerbag.png similarity index 100% rename from src/main/resources/assets/effortlessbuilding/textures/items/goldenrandomizerbag.png rename to src/main/resources/assets/effortlessbuilding/textures/item/goldenrandomizerbag.png diff --git a/src/main/resources/assets/effortlessbuilding/textures/items/muscles.png b/src/main/resources/assets/effortlessbuilding/textures/item/muscles.png similarity index 100% rename from src/main/resources/assets/effortlessbuilding/textures/items/muscles.png rename to src/main/resources/assets/effortlessbuilding/textures/item/muscles.png diff --git a/src/main/resources/assets/effortlessbuilding/textures/items/randomizerbag.png b/src/main/resources/assets/effortlessbuilding/textures/item/randomizerbag.png similarity index 100% rename from src/main/resources/assets/effortlessbuilding/textures/items/randomizerbag.png rename to src/main/resources/assets/effortlessbuilding/textures/item/randomizerbag.png diff --git a/src/main/resources/assets/effortlessbuilding/textures/items/reachupgrade1.png b/src/main/resources/assets/effortlessbuilding/textures/item/reachupgrade1.png similarity index 100% rename from src/main/resources/assets/effortlessbuilding/textures/items/reachupgrade1.png rename to src/main/resources/assets/effortlessbuilding/textures/item/reachupgrade1.png diff --git a/src/main/resources/assets/effortlessbuilding/textures/items/reachupgrade2.png b/src/main/resources/assets/effortlessbuilding/textures/item/reachupgrade2.png similarity index 100% rename from src/main/resources/assets/effortlessbuilding/textures/items/reachupgrade2.png rename to src/main/resources/assets/effortlessbuilding/textures/item/reachupgrade2.png diff --git a/src/main/resources/assets/effortlessbuilding/textures/items/reachupgrade3.png b/src/main/resources/assets/effortlessbuilding/textures/item/reachupgrade3.png similarity index 100% rename from src/main/resources/assets/effortlessbuilding/textures/items/reachupgrade3.png rename to src/main/resources/assets/effortlessbuilding/textures/item/reachupgrade3.png diff --git a/src/main/resources/data/effortlessbuilding/loot_modifiers/building_techniques_book_loot_modifier.json b/src/main/resources/data/effortlessbuilding/loot_modifiers/building_techniques_book_loot_modifier.json index 0787e1d..af02842 100644 --- a/src/main/resources/data/effortlessbuilding/loot_modifiers/building_techniques_book_loot_modifier.json +++ b/src/main/resources/data/effortlessbuilding/loot_modifiers/building_techniques_book_loot_modifier.json @@ -2,7 +2,7 @@ "type": "effortlessbuilding:single_item_loot_modifier", "conditions": [ { - "condition": "minecraft:alternative", + "condition": "minecraft:any_of", "terms": [ { "condition": "forge:loot_table_id", diff --git a/src/main/resources/data/effortlessbuilding/loot_modifiers/elastic_hand_loot_modifier.json b/src/main/resources/data/effortlessbuilding/loot_modifiers/elastic_hand_loot_modifier.json index a93e016..3c750db 100644 --- a/src/main/resources/data/effortlessbuilding/loot_modifiers/elastic_hand_loot_modifier.json +++ b/src/main/resources/data/effortlessbuilding/loot_modifiers/elastic_hand_loot_modifier.json @@ -2,7 +2,7 @@ "type": "effortlessbuilding:single_item_loot_modifier", "conditions": [ { - "condition": "minecraft:alternative", + "condition": "minecraft:any_of", "terms": [ { "condition": "forge:loot_table_id", diff --git a/src/main/resources/data/effortlessbuilding/loot_modifiers/muscles_loot_modifier.json b/src/main/resources/data/effortlessbuilding/loot_modifiers/muscles_loot_modifier.json index e209bb2..0d95130 100644 --- a/src/main/resources/data/effortlessbuilding/loot_modifiers/muscles_loot_modifier.json +++ b/src/main/resources/data/effortlessbuilding/loot_modifiers/muscles_loot_modifier.json @@ -2,7 +2,7 @@ "type": "effortlessbuilding:single_item_loot_modifier", "conditions": [ { - "condition": "minecraft:alternative", + "condition": "minecraft:any_of", "terms": [ { "condition": "forge:loot_table_id", diff --git a/src/main/resources/pack.mcmeta b/src/main/resources/pack.mcmeta index 53e3a7e..8c311eb 100644 --- a/src/main/resources/pack.mcmeta +++ b/src/main/resources/pack.mcmeta @@ -1,6 +1,8 @@ { "pack": { "description": "Effortless Building resources", - "pack_format": 15 + "pack_format": 13, + "forge:client_resources_pack_format": 13, + "forge:server_data_pack_format": 12 } }