From 6a7ea66409149cd45516acfb2aa239100588e150 Mon Sep 17 00:00:00 2001 From: coolGi Date: Sun, 15 Oct 2023 17:06:15 +1030 Subject: [PATCH 1/3] Feat: 1.20.1 --- build.gradle | 6 ++-- .../torohealth/ClientEventHandler.java | 2 +- .../torohealth/bars/HealthBarRenderer.java | 16 +++++---- .../torohealth/bars/ParticleRenderer.java | 8 +++-- .../torohealth/display/BarDisplay.java | 33 +++++++++---------- .../torohealth/display/EntityDisplay.java | 15 ++++----- .../net/torocraft/torohealth/display/Hud.java | 16 +++++---- .../torocraft/torohealth/util/RayTrace.java | 4 ++- 8 files changed, 54 insertions(+), 46 deletions(-) diff --git a/build.gradle b/build.gradle index 12878066..44a500aa 100644 --- a/build.gradle +++ b/build.gradle @@ -8,7 +8,7 @@ apply plugin: 'net.minecraftforge.gradle' apply plugin: 'eclipse' apply plugin: 'maven-publish' -version = '1.19-forge-2' +version = '1.20.1-forge-1' group = 'net.torocraft' archivesBaseName = 'torohealth' @@ -16,7 +16,7 @@ java.toolchain.languageVersion = JavaLanguageVersion.of(17) println('Java: ' + System.getProperty('java.version') + ' JVM: ' + System.getProperty('java.vm.version') + '(' + System.getProperty('java.vendor') + ') Arch: ' + System.getProperty('os.arch')) minecraft { - mappings channel: 'official', version: '1.19' + mappings channel: 'official', version: '1.20.1' runs { client { @@ -65,7 +65,7 @@ minecraft { sourceSets.main.resources { srcDir 'src/generated/resources' } dependencies { - minecraft 'net.minecraftforge:forge:1.19-41.0.100' + minecraft 'net.minecraftforge:forge:1.20.1-47.2.1' } jar { diff --git a/src/main/java/net/torocraft/torohealth/ClientEventHandler.java b/src/main/java/net/torocraft/torohealth/ClientEventHandler.java index 6877454f..f2300a91 100644 --- a/src/main/java/net/torocraft/torohealth/ClientEventHandler.java +++ b/src/main/java/net/torocraft/torohealth/ClientEventHandler.java @@ -48,7 +48,7 @@ private static void renderParticles(RenderLevelStageEvent event) { } private static void playerTick(PlayerTickEvent event) { - if (!event.player.level.isClientSide) { + if (!event.player.level().isClientSide) { return; } ToroHealthClient.HUD.setEntity( diff --git a/src/main/java/net/torocraft/torohealth/bars/HealthBarRenderer.java b/src/main/java/net/torocraft/torohealth/bars/HealthBarRenderer.java index 5d6be746..b117d614 100644 --- a/src/main/java/net/torocraft/torohealth/bars/HealthBarRenderer.java +++ b/src/main/java/net/torocraft/torohealth/bars/HealthBarRenderer.java @@ -6,10 +6,10 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.Tesselator; import com.mojang.blaze3d.vertex.VertexFormat; -import com.mojang.math.Matrix4f; -import com.mojang.math.Vector3f; import java.util.ArrayList; import java.util.List; + +import com.mojang.math.Axis; import net.minecraft.client.Camera; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.GameRenderer; @@ -23,6 +23,9 @@ import net.torocraft.torohealth.config.Config.Mode; import net.torocraft.torohealth.util.EntityUtil; import net.torocraft.torohealth.util.EntityUtil.Relation; +import org.joml.Matrix4f; +import org.joml.Quaternionf; +import org.joml.Vector3f; import org.lwjgl.opengl.GL11; public class HealthBarRenderer { @@ -110,8 +113,8 @@ public static void renderInWorld(float partialTick, PoseStack matrix, Camera cam matrix.pushPose(); matrix.translate(x - camX, (y + height) - camY, z - camZ); - matrix.mulPose(Vector3f.YP.rotationDegrees(-camera.getYRot())); - matrix.mulPose(Vector3f.XP.rotationDegrees(camera.getXRot())); + matrix.mulPose(Axis.YP.rotationDegrees(-camera.getYRot())); + matrix.mulPose(Axis.XP.rotationDegrees(camera.getXRot())); matrix.scale(-scaleToGui, -scaleToGui, scaleToGui); render(matrix, entity, 0, 0, FULL_SIZE, true); @@ -164,11 +167,12 @@ public static void drawDamageNumber(PoseStack matrix, int dmg, double x, double Minecraft minecraft = Minecraft.getInstance(); int sw = minecraft.font.width(s); int color = dmg < 0 ? ToroHealth.CONFIG.particle.healColor : ToroHealth.CONFIG.particle.damageColor; - minecraft.font.draw(matrix, s, (int) (x + (width / 2) - sw), (int) y + 5, color); +// minecraft.font.draw(matrix, s, (int) (x + (width / 2) - sw), (int) y + 5, color); + // FIXME } private static void drawBar(Matrix4f matrix4f, double x, double y, float width, float percent, - int color, int zOffset, boolean inWorld) { + int color, int zOffset, boolean inWorld) { float c = 0.00390625F; int u = 0; int v = 6 * 5 * 2 + 5; diff --git a/src/main/java/net/torocraft/torohealth/bars/ParticleRenderer.java b/src/main/java/net/torocraft/torohealth/bars/ParticleRenderer.java index 29fc32e1..fc896d48 100644 --- a/src/main/java/net/torocraft/torohealth/bars/ParticleRenderer.java +++ b/src/main/java/net/torocraft/torohealth/bars/ParticleRenderer.java @@ -2,13 +2,15 @@ import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.math.Vector3f; +import com.mojang.math.Axis; import net.minecraft.client.Camera; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.GameRenderer; import net.minecraft.util.Mth; import net.minecraft.world.phys.Vec3; import net.torocraft.torohealth.ToroHealth; +import org.joml.Quaternionf; +import org.joml.Vector3f; import org.lwjgl.opengl.GL11; public class ParticleRenderer { @@ -41,8 +43,8 @@ private static void renderParticle(PoseStack matrix, BarParticle particle, Camer matrix.pushPose(); matrix.translate(x - camX, y - camY, z - camZ); - matrix.mulPose(Vector3f.YP.rotationDegrees(-camera.getYRot())); - matrix.mulPose(Vector3f.XP.rotationDegrees(camera.getXRot())); + matrix.mulPose(Axis.YP.rotationDegrees(-camera.getYRot())); + matrix.mulPose(Axis.XP.rotationDegrees(camera.getXRot())); matrix.scale(-scaleToGui, -scaleToGui, scaleToGui); RenderSystem.setShader(GameRenderer::getPositionColorShader); diff --git a/src/main/java/net/torocraft/torohealth/display/BarDisplay.java b/src/main/java/net/torocraft/torohealth/display/BarDisplay.java index 6fcd9f06..ffe6d737 100644 --- a/src/main/java/net/torocraft/torohealth/display/BarDisplay.java +++ b/src/main/java/net/torocraft/torohealth/display/BarDisplay.java @@ -3,7 +3,8 @@ import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiComponent; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.renderer.GameRenderer; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; @@ -15,9 +16,9 @@ public class BarDisplay { private static final ResourceLocation ICON_TEXTURES = new ResourceLocation("textures/gui/icons.png"); private final Minecraft mc; - private final GuiComponent gui; + private final Screen gui; - public BarDisplay(Minecraft mc, GuiComponent gui) { + public BarDisplay(Minecraft mc, Screen gui) { this.mc = mc; this.gui = gui; } @@ -26,7 +27,7 @@ private String getEntityName(LivingEntity entity) { return entity.getDisplayName().getString(); } - public void draw(PoseStack matrix, LivingEntity entity) { + public void draw(GuiGraphics guiGraphics, LivingEntity entity) { int xOffset = 0; RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); @@ -34,40 +35,38 @@ public void draw(PoseStack matrix, LivingEntity entity) { RenderSystem.setShaderTexture(0, ICON_TEXTURES); RenderSystem.enableBlend(); - HealthBarRenderer.render(matrix, entity, 63, 14, 130, false); + HealthBarRenderer.render(guiGraphics.pose(), entity, 63, 14, 130, false); String name = getEntityName(entity); int healthMax = Mth.ceil(entity.getMaxHealth()); int healthCur = Math.min(Mth.ceil(entity.getHealth()), healthMax); String healthText = healthCur + "/" + healthMax; RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); - GuiComponent.drawString(matrix, mc.font, name, xOffset, (int) 2, 16777215); + guiGraphics.drawString(mc.font, name, xOffset, (int) 2, 16777215); - mc.font.drawShadow(matrix, name, xOffset, 2, 16777215); + guiGraphics.drawString(mc.font, name, xOffset, 2, 16777215); xOffset += mc.font.width(name) + 5; - renderHeartIcon(matrix, xOffset, (int) 1); + renderHeartIcon(guiGraphics, xOffset, (int) 1); xOffset += 10; - mc.font.drawShadow(matrix, healthText, xOffset, 2, 0xe0e0e0); + guiGraphics.drawString(mc.font, healthText, xOffset, 2, 0xe0e0e0); xOffset += mc.font.width(healthText) + 5; int armor = entity.getArmorValue();// getArmor(); if (armor > 0) { - renderArmorIcon(matrix, xOffset, (int) 1); + renderArmorIcon(guiGraphics, xOffset, (int) 1); xOffset += 10; - mc.font.drawShadow(matrix, entity.getArmorValue() + "", xOffset, 2, 0xe0e0e0); + guiGraphics.drawString(mc.font, entity.getArmorValue() + "", xOffset, 2, 0xe0e0e0); } } - private void renderArmorIcon(PoseStack matrix, int x, int y) { - RenderSystem.setShaderTexture(0, ICON_TEXTURES); - gui.blit(matrix, x, y, 34, 9, 9, 9); + private void renderArmorIcon(GuiGraphics matrix, int x, int y) { + matrix.blit(ICON_TEXTURES, x, y, 34, 9, 9, 9); } - private void renderHeartIcon(PoseStack matrix, int x, int y) { - RenderSystem.setShaderTexture(0, ICON_TEXTURES); - gui.blit(matrix, x, y, 16 + 36, 0, 9, 9); + private void renderHeartIcon(GuiGraphics matrix, int x, int y) { + matrix.blit(ICON_TEXTURES, x, y, 16 + 36, 0, 9, 9); } } diff --git a/src/main/java/net/torocraft/torohealth/display/EntityDisplay.java b/src/main/java/net/torocraft/torohealth/display/EntityDisplay.java index 8161ff3e..525218f7 100644 --- a/src/main/java/net/torocraft/torohealth/display/EntityDisplay.java +++ b/src/main/java/net/torocraft/torohealth/display/EntityDisplay.java @@ -3,8 +3,7 @@ import com.mojang.blaze3d.platform.Lighting; import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.math.Quaternion; -import com.mojang.math.Vector3f; +import com.mojang.math.Axis; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.entity.EntityRenderDispatcher; @@ -13,6 +12,8 @@ import net.minecraft.world.entity.animal.Chicken; import net.minecraft.world.entity.monster.Ghast; import net.minecraft.world.entity.npc.Villager; +import org.joml.Quaternionf; +import org.joml.Vector3f; public class EntityDisplay { @@ -82,10 +83,9 @@ public static void drawEntity(PoseStack matrixStack2, int x, int y, int size, fl matrixStack2.pushPose(); matrixStack2.translate(0.0D, 0.0D, 1000.0D); matrixStack2.scale((float) size, (float) size, (float) size); - Quaternion quaternion = Vector3f.ZP.rotationDegrees(180.0F); - Quaternion quaternion2 = Vector3f.XP.rotationDegrees(g * 20.0F); - quaternion.mul(quaternion2); - matrixStack2.mulPose(quaternion); + Quaternionf quaternion = Axis.ZP.rotationDegrees(180.0F); + Quaternionf quaternion2 = Axis.XP.rotationDegrees(g * 20.0F); + matrixStack2.mulPose(quaternion.mul(quaternion2)); float h = entity.yBodyRot; // bodyYaw; float i = entity.getYRot(); // getYaw(); float j = entity.getXRot(); // getPitch(); @@ -99,8 +99,7 @@ public static void drawEntity(PoseStack matrixStack2, int x, int y, int size, fl Lighting.setupForEntityInInventory(); EntityRenderDispatcher entityrenderdispatcher = Minecraft.getInstance().getEntityRenderDispatcher(); - quaternion2.conj(); - entityrenderdispatcher.overrideCameraOrientation(quaternion2); + entityrenderdispatcher.overrideCameraOrientation(quaternion2.conjugate()); entityrenderdispatcher.setRenderShadow(false); MultiBufferSource.BufferSource immediate = Minecraft.getInstance().renderBuffers().bufferSource(); diff --git a/src/main/java/net/torocraft/torohealth/display/Hud.java b/src/main/java/net/torocraft/torohealth/display/Hud.java index 0417d7fb..8b66ce9f 100644 --- a/src/main/java/net/torocraft/torohealth/display/Hud.java +++ b/src/main/java/net/torocraft/torohealth/display/Hud.java @@ -3,6 +3,7 @@ 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.Component; import net.minecraft.resources.ResourceLocation; @@ -29,7 +30,7 @@ public Hud() { barDisplay = new BarDisplay(Minecraft.getInstance(), this); } - public void draw(ForgeGui gui, PoseStack poseStack, float partialTick, int width, int height) { + public void draw(ForgeGui gui, GuiGraphics poseStack, float partialTick, int width, int height) { if (this.minecraft.options.renderDebug) { return; } @@ -39,6 +40,7 @@ public void draw(ForgeGui gui, PoseStack poseStack, float partialTick, int width } float x = determineX(); float y = determineY(); + // FIXME draw(poseStack, x, y, config.hud.scale); } @@ -101,7 +103,7 @@ public LivingEntity getEntity() { return entity; } - private void draw(PoseStack matrix, float x, float y, float scale) { + private void draw(GuiGraphics guiGraphics, float x, float y, float scale) { if (entity == null) { return; } @@ -110,11 +112,12 @@ private void draw(PoseStack matrix, float x, float y, float scale) { return; } + PoseStack matrix = guiGraphics.pose(); matrix.pushPose(); matrix.scale(scale, scale, scale); matrix.translate(x - 10, y - 10, 0); if (config.hud.showSkin) { - this.drawSkin(matrix); + this.drawSkin(guiGraphics); } matrix.translate(10, 10, 0); if (config.hud.showEntity) { @@ -122,15 +125,14 @@ private void draw(PoseStack matrix, float x, float y, float scale) { } matrix.translate(44, 0, 0); if (config.hud.showBar) { - barDisplay.draw(matrix, entity); + barDisplay.draw(guiGraphics, entity); } matrix.popPose(); } - private void drawSkin(PoseStack matrix) { - RenderSystem.setShaderTexture(0, BACKGROUND_TEXTURE); + private void drawSkin(GuiGraphics guiGraphics) { RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); int w = 160, h = 60; - blit(matrix, 0, 0, 0.0f, 0.0f, w, h, w, h); + guiGraphics.blit(BACKGROUND_TEXTURE, 0, 0, 0.0f, 0.0f, w, h, w, h); } } diff --git a/src/main/java/net/torocraft/torohealth/util/RayTrace.java b/src/main/java/net/torocraft/torohealth/util/RayTrace.java index f771d405..5b38968c 100644 --- a/src/main/java/net/torocraft/torohealth/util/RayTrace.java +++ b/src/main/java/net/torocraft/torohealth/util/RayTrace.java @@ -4,6 +4,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.core.Vec3i; import net.minecraft.util.Mth; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.LivingEntity; @@ -108,8 +109,9 @@ public BlockHitResult clip(ClipContext context) { return this.clipWithInteractionOverride(c.getFrom(), c.getTo(), pos, voxelshape, block); }, (c) -> { Vec3 vec3 = c.getFrom().subtract(c.getTo()); + Vec3 cto = c.getTo(); return BlockHitResult.miss(c.getTo(), Direction.getNearest(vec3.x, vec3.y, vec3.z), - new BlockPos(c.getTo())); + new BlockPos(new Vec3i((int) cto.x, (int) cto.y, (int) cto.z))); }); } From 300d9f41e2373c6852ff6387cba7a5ebc67590fe Mon Sep 17 00:00:00 2001 From: coolGi Date: Tue, 31 Oct 2023 18:55:11 +1030 Subject: [PATCH 2/3] Hacked fix for Damage Particles --- build.gradle | 1 + .../torohealth/ClientEventHandler.java | 6 +++-- .../torohealth/bars/HealthBarRenderer.java | 24 ++++++++++++------- .../torohealth/bars/ParticleRenderer.java | 9 +++---- .../torohealth/display/BarDisplay.java | 3 ++- .../net/torocraft/torohealth/display/Hud.java | 4 +++- .../resources/META-INF/accesstransformer.cfg | 2 ++ 7 files changed, 32 insertions(+), 17 deletions(-) create mode 100644 src/main/resources/META-INF/accesstransformer.cfg diff --git a/build.gradle b/build.gradle index 44a500aa..8bfebbfc 100644 --- a/build.gradle +++ b/build.gradle @@ -17,6 +17,7 @@ java.toolchain.languageVersion = JavaLanguageVersion.of(17) println('Java: ' + System.getProperty('java.version') + ' JVM: ' + System.getProperty('java.vm.version') + '(' + System.getProperty('java.vendor') + ') Arch: ' + System.getProperty('os.arch')) minecraft { mappings channel: 'official', version: '1.20.1' + accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg') runs { client { diff --git a/src/main/java/net/torocraft/torohealth/ClientEventHandler.java b/src/main/java/net/torocraft/torohealth/ClientEventHandler.java index f2300a91..7c8f4c33 100644 --- a/src/main/java/net/torocraft/torohealth/ClientEventHandler.java +++ b/src/main/java/net/torocraft/torohealth/ClientEventHandler.java @@ -4,6 +4,7 @@ import net.minecraft.client.Camera; import net.minecraft.client.Minecraft; import net.minecraft.client.model.EntityModel; + import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.world.entity.LivingEntity; import net.minecraftforge.client.event.RegisterGuiOverlaysEvent; import net.minecraftforge.client.event.RenderLevelStageEvent; @@ -42,8 +43,9 @@ private static void entityRender( private static void renderParticles(RenderLevelStageEvent event) { if (event.getStage() == RenderLevelStageEvent.Stage.AFTER_PARTICLES) { Camera camera = Minecraft.getInstance().gameRenderer.getMainCamera(); - ParticleRenderer.renderParticles(event.getPoseStack(), camera); - HealthBarRenderer.renderInWorld(event.getPartialTick(), event.getPoseStack(), camera); + MultiBufferSource bufferSource = event.getLevelRenderer().renderBuffers.bufferSource(); + ParticleRenderer.renderParticles(event.getPoseStack(), camera, bufferSource); + HealthBarRenderer.renderInWorld(event.getPartialTick(), event.getPoseStack(), bufferSource, camera); } } diff --git a/src/main/java/net/torocraft/torohealth/bars/HealthBarRenderer.java b/src/main/java/net/torocraft/torohealth/bars/HealthBarRenderer.java index b117d614..bcbd76d6 100644 --- a/src/main/java/net/torocraft/torohealth/bars/HealthBarRenderer.java +++ b/src/main/java/net/torocraft/torohealth/bars/HealthBarRenderer.java @@ -6,13 +6,17 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.Tesselator; import com.mojang.blaze3d.vertex.VertexFormat; + +import java.awt.*; import java.util.ArrayList; import java.util.List; import com.mojang.math.Axis; import net.minecraft.client.Camera; import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Font; import net.minecraft.client.renderer.GameRenderer; +import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; import net.minecraft.world.entity.LivingEntity; @@ -74,7 +78,7 @@ public static void prepareRenderInWorld(LivingEntity entity) { } - public static void renderInWorld(float partialTick, PoseStack matrix, Camera camera) { + public static void renderInWorld(float partialTick, PoseStack matrix, MultiBufferSource bufferSource, Camera camera) { Minecraft client = Minecraft.getInstance(); @@ -117,7 +121,7 @@ public static void renderInWorld(float partialTick, PoseStack matrix, Camera cam matrix.mulPose(Axis.XP.rotationDegrees(camera.getXRot())); matrix.scale(-scaleToGui, -scaleToGui, scaleToGui); - render(matrix, entity, 0, 0, FULL_SIZE, true); + render(matrix, entity, bufferSource, 0, 0, FULL_SIZE, true); matrix.popPose(); } @@ -127,7 +131,7 @@ public static void renderInWorld(float partialTick, PoseStack matrix, Camera cam renderedEntities.clear(); } - public static void render(PoseStack matrix, LivingEntity entity, double x, double y, + public static void render(PoseStack matrix, LivingEntity entity, MultiBufferSource bufferSource, double x, double y, float width, boolean inWorld) { Relation relation = EntityUtil.determineRelation(entity); @@ -150,15 +154,14 @@ public static void render(PoseStack matrix, LivingEntity entity, double x, doubl if (!inWorld) { if (ToroHealth.CONFIG.bar.damageNumberType.equals(Config.NumberType.CUMULATIVE)) { - drawDamageNumber(matrix, state.lastDmgCumulative, x, y, width); + drawDamageNumber(matrix, bufferSource, state.lastDmgCumulative, x, y, width); } else if (ToroHealth.CONFIG.bar.damageNumberType.equals(Config.NumberType.LAST)) { - drawDamageNumber(matrix, state.lastDmg, x, y, width); + drawDamageNumber(matrix, bufferSource, state.lastDmg, x, y, width); } } } - public static void drawDamageNumber(PoseStack matrix, int dmg, double x, double y, - float width) { + public static void drawDamageNumber(PoseStack matrix, MultiBufferSource bufferSource, int dmg, double x, double y, float width) { int i = Math.abs(Math.round(dmg)); if (i == 0) { return; @@ -167,8 +170,11 @@ public static void drawDamageNumber(PoseStack matrix, int dmg, double x, double Minecraft minecraft = Minecraft.getInstance(); int sw = minecraft.font.width(s); int color = dmg < 0 ? ToroHealth.CONFIG.particle.healColor : ToroHealth.CONFIG.particle.damageColor; -// minecraft.font.draw(matrix, s, (int) (x + (width / 2) - sw), (int) y + 5, color); - // FIXME + + minecraft.font.drawInBatch( + s, (float) (x + (width / 2) - sw), (float) y + 5, color, false, + matrix.last().pose(), bufferSource, + Font.DisplayMode.NORMAL, 0, 0); } private static void drawBar(Matrix4f matrix4f, double x, double y, float width, float percent, diff --git a/src/main/java/net/torocraft/torohealth/bars/ParticleRenderer.java b/src/main/java/net/torocraft/torohealth/bars/ParticleRenderer.java index fc896d48..934e9811 100644 --- a/src/main/java/net/torocraft/torohealth/bars/ParticleRenderer.java +++ b/src/main/java/net/torocraft/torohealth/bars/ParticleRenderer.java @@ -6,6 +6,7 @@ import net.minecraft.client.Camera; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.GameRenderer; +import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.util.Mth; import net.minecraft.world.phys.Vec3; import net.torocraft.torohealth.ToroHealth; @@ -15,13 +16,13 @@ public class ParticleRenderer { - public static void renderParticles(PoseStack matrix, Camera camera) { + public static void renderParticles(PoseStack matrix, Camera camera, MultiBufferSource bufferSource) { for (BarParticle p : BarStates.PARTICLES) { - renderParticle(matrix, p, camera); + renderParticle(matrix, p, camera, bufferSource); } } - private static void renderParticle(PoseStack matrix, BarParticle particle, Camera camera) { + private static void renderParticle(PoseStack matrix, BarParticle particle, Camera camera, MultiBufferSource bufferSource) { double distanceSquared = camera.getPosition().distanceToSqr(particle.x, particle.y, particle.z); if (distanceSquared > ToroHealth.CONFIG.particle.distanceSquared) { return; @@ -53,7 +54,7 @@ private static void renderParticle(PoseStack matrix, BarParticle particle, Camer RenderSystem.blendFuncSeparate(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, GL11.GL_ONE, GL11.GL_ZERO); - HealthBarRenderer.drawDamageNumber(matrix, particle.damage, 0, 0, 10); + HealthBarRenderer.drawDamageNumber(matrix, bufferSource, particle.damage, 0, 0, 10); RenderSystem.disableBlend(); diff --git a/src/main/java/net/torocraft/torohealth/display/BarDisplay.java b/src/main/java/net/torocraft/torohealth/display/BarDisplay.java index ffe6d737..c47e7b4d 100644 --- a/src/main/java/net/torocraft/torohealth/display/BarDisplay.java +++ b/src/main/java/net/torocraft/torohealth/display/BarDisplay.java @@ -6,6 +6,7 @@ import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.renderer.GameRenderer; +import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; import net.minecraft.world.entity.LivingEntity; @@ -35,7 +36,7 @@ public void draw(GuiGraphics guiGraphics, LivingEntity entity) { RenderSystem.setShaderTexture(0, ICON_TEXTURES); RenderSystem.enableBlend(); - HealthBarRenderer.render(guiGraphics.pose(), entity, 63, 14, 130, false); + HealthBarRenderer.render(guiGraphics.pose(), entity, guiGraphics.bufferSource(), 63, 14, 130, false); String name = getEntityName(entity); int healthMax = Mth.ceil(entity.getMaxHealth()); int healthCur = Math.min(Mth.ceil(entity.getHealth()), healthMax); diff --git a/src/main/java/net/torocraft/torohealth/display/Hud.java b/src/main/java/net/torocraft/torohealth/display/Hud.java index 8b66ce9f..604082d0 100644 --- a/src/main/java/net/torocraft/torohealth/display/Hud.java +++ b/src/main/java/net/torocraft/torohealth/display/Hud.java @@ -5,6 +5,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.LivingEntity; @@ -30,6 +31,7 @@ public Hud() { barDisplay = new BarDisplay(Minecraft.getInstance(), this); } + public void draw(ForgeGui gui, GuiGraphics poseStack, float partialTick, int width, int height) { if (this.minecraft.options.renderDebug) { return; @@ -40,7 +42,7 @@ public void draw(ForgeGui gui, GuiGraphics poseStack, float partialTick, int wid } float x = determineX(); float y = determineY(); - // FIXME + draw(poseStack, x, y, config.hud.scale); } diff --git a/src/main/resources/META-INF/accesstransformer.cfg b/src/main/resources/META-INF/accesstransformer.cfg new file mode 100644 index 00000000..a8195e6b --- /dev/null +++ b/src/main/resources/META-INF/accesstransformer.cfg @@ -0,0 +1,2 @@ + +public net.minecraft.client.renderer.LevelRenderer f_109464_ # renderBuffers From ed4c4ac5c4124937645706fc5b46ae94c93ad28a Mon Sep 17 00:00:00 2001 From: coolGi Date: Thu, 9 Nov 2023 18:09:26 +1030 Subject: [PATCH 3/3] Properly set mod versioning --- src/main/resources/META-INF/mods.toml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index d37f5f68..9aad5f6d 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -1,6 +1,6 @@ modLoader="javafml" -loaderVersion="[41,)" #mandatory This is typically bumped every Minecraft version by Forge. See our download page for lists of versions. +loaderVersion="*" #mandatory This is typically bumped every Minecraft version by Forge. See our download page for lists of versions. license="GPL3" issueTrackerURL="https://github.com/ToroCraft/ToroHealth/issues" @@ -18,13 +18,13 @@ description=''' [[dependencies.torohealth]] modId="forge" mandatory=true -versionRange="[41.0.94,)" +versionRange="*" ordering="NONE" side="CLIENT" [[dependencies.torohealth]] modId="minecraft" mandatory=true -versionRange="[1.19,)" +versionRange="[1.20,1.20.1,)" ordering="NONE" -side="CLIENT" \ No newline at end of file +side="CLIENT"