Skip to content
This repository was archived by the owner on Nov 28, 2025. It is now read-only.

Commit 6e5c0f4

Browse files
committed
fix player hud on new versions
1 parent c08547a commit 6e5c0f4

File tree

11 files changed

+88
-312
lines changed

11 files changed

+88
-312
lines changed

1.20/src/main/java/io/github/axolotlclient/modules/hud/gui/hud/PlayerHud.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ public void tick() {
107107
yOffset -= ((1 / (1 + Math.exp(-pitch / 4))) - .5) * 20;
108108
}
109109
} else {
110-
yOffset *= .8;
110+
yOffset *= .8f;
111111
}
112112
}
113113

@@ -193,7 +193,7 @@ public void renderPlayer(boolean placeholder, double x, double y, float delta) {
193193
.getEntityVertexConsumers();
194194

195195
currentlyRendering = true;
196-
renderer.render(client.player, 0, 0, 0, 0, delta, nextStack, immediate, 15728880);
196+
renderer.render(client.player, 0, 0, 0, 0, delta, nextStack, immediate, 0xF000F0);
197197
immediate.draw();
198198
currentlyRendering = false;
199199
renderer.setRenderShadows(true);

1.21.3/src/main/java/io/github/axolotlclient/modules/hud/gui/hud/PlayerHud.java

Lines changed: 40 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,6 @@
2424

2525
import java.util.List;
2626

27-
import com.mojang.blaze3d.platform.Lighting;
28-
import com.mojang.blaze3d.vertex.PoseStack;
2927
import com.mojang.math.Axis;
3028
import io.github.axolotlclient.AxolotlClientConfig.api.options.Option;
3129
import io.github.axolotlclient.AxolotlClientConfig.impl.options.BooleanOption;
@@ -35,11 +33,10 @@
3533
import io.github.axolotlclient.util.events.impl.PlayerDirectionChangeEvent;
3634
import lombok.Getter;
3735
import net.minecraft.client.gui.GuiGraphics;
36+
import net.minecraft.client.gui.screens.inventory.InventoryScreen;
3837
import net.minecraft.client.player.LocalPlayer;
39-
import net.minecraft.client.renderer.entity.EntityRenderDispatcher;
4038
import net.minecraft.resources.ResourceLocation;
4139
import net.minecraft.util.Mth;
42-
import org.joml.Matrix4f;
4340
import org.joml.Quaternionf;
4441
import org.joml.Vector3f;
4542

@@ -154,42 +151,64 @@ public void renderPlayer(GuiGraphics graphics, boolean placeholder, double x, do
154151

155152
float lerpY = (lastYOffset + ((yOffset - lastYOffset) * delta));
156153

157-
PoseStack nextStack = new PoseStack();
158-
nextStack.translate(x, (y - lerpY), 1050);
159-
nextStack.translate(0, 0, 1000);
160154
float scale = getScale() * 40;
161-
nextStack.scale(scale, scale, scale);
162155

163156
Quaternionf quaternion = Axis.ZP.rotationDegrees(180.0F);
164157

165-
nextStack.mulPose(quaternion.get(new Matrix4f()));
166158
// Rotate to whatever is wanted. Also make sure to offset the yaw
167159
float deltaYaw = client.player.getYRot(delta);
168160
if (dynamicRotation.get()) {
169161
deltaYaw -= (lastYawOffset + ((yawOffset - lastYawOffset) * delta));
170162
}
171-
nextStack.mulPose(
172-
new Quaternionf().fromAxisAngleDeg(new Vector3f(0, 1, 0), deltaYaw + rotation.get().floatValue())
173-
.get(new Matrix4f()));
163+
Quaternionf quaternionf2 = new Quaternionf().fromAxisAngleDeg(new Vector3f(0, 1, 0), deltaYaw - 180 + rotation.get().floatValue());
164+
quaternion.mul(quaternionf2);
174165

175166
// Save these to set them back later
176167
float pastYaw = client.player.getYRot();
177168
float pastPrevYaw = client.player.yRotO;
178-
179-
Lighting.setupForEntityInInventory();
180-
EntityRenderDispatcher renderer = client.getEntityRenderDispatcher();
181-
renderer.overrideCameraOrientation(quaternion);
182-
renderer.setRenderShadow(false);
183-
184169
currentlyRendering = true;
185-
graphics.drawSpecial(v -> renderer.render(client.player, 0, 0, 0, delta, nextStack, v, 15728880));
170+
InventoryScreen.renderEntityInInventory(graphics, (float) x, (float) y - lerpY, scale, new Vector3f(), quaternion, quaternionf2, client.player);
186171
currentlyRendering = false;
187-
renderer.setRenderShadow(true);
188172

189173
client.player.setYRot(pastYaw);
190174
client.player.yRotO = pastPrevYaw;
175+
}
191176

192-
Lighting.setupFor3DItems();
177+
private void renderPlayer(
178+
GuiGraphics guiGraphics, double x, double y, float delta
179+
) {
180+
var entity = client.player;
181+
182+
float deltaYaw = entity.getYRot(delta);
183+
if (dynamicRotation.get()) {
184+
deltaYaw -= (lastYawOffset + ((yawOffset - lastYawOffset) * delta));
185+
}
186+
Quaternionf quaternionf = new Quaternionf().rotateZ((float) Math.PI);
187+
Quaternionf quaternionf2 = new Quaternionf().rotateX(20.0F * (float) (Math.PI / 180.0));
188+
//quaternionf2.rotateY(deltaYaw/40);
189+
quaternionf.mul(quaternionf2);
190+
float j = entity.yBodyRot;
191+
float k = entity.getYRot();
192+
float l = entity.getXRot();
193+
float m = entity.yHeadRotO;
194+
float n = entity.yHeadRot;
195+
float lerpY = (lastYOffset + ((yOffset - lastYOffset) * delta));
196+
deltaYaw /= 40;
197+
entity.yBodyRot = 180.0F + deltaYaw * 20.0F;
198+
entity.setYRot(180.0F + deltaYaw * 40.0F);
199+
entity.setXRot(20.0F);
200+
entity.yHeadRot = entity.getYRot();
201+
entity.yHeadRotO = entity.getYRot();
202+
float o = entity.getScale();
203+
Vector3f vector3f = new Vector3f(0.0F, yOffset * o, 0.0F);
204+
float scale = getScale() * 40;
205+
float p = scale / o;
206+
InventoryScreen.renderEntityInInventory(guiGraphics, (float) x, (float) y - lerpY, p, vector3f, quaternionf, quaternionf2, entity);
207+
entity.yBodyRot = j;
208+
entity.setYRot(k);
209+
entity.setXRot(l);
210+
entity.yHeadRotO = m;
211+
entity.yHeadRot = n;
193212
}
194213

195214
private boolean isPerformingAction() {

1.21/src/main/java/io/github/axolotlclient/modules/blur/MotionBlur.java

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public void init() {
7171

7272
public void onUpdate() {
7373
if ((shader == null || MinecraftClient.getInstance().getFramebuffer().textureWidth != lastWidth
74-
|| MinecraftClient.getInstance().getFramebuffer().textureHeight != lastHeight)
74+
|| MinecraftClient.getInstance().getFramebuffer().textureHeight != lastHeight)
7575
&& MinecraftClient.getInstance().getFramebuffer().textureWidth > 0
7676
&& MinecraftClient.getInstance().getFramebuffer().textureHeight > 0) {
7777
currentBlur = getBlur();
@@ -101,18 +101,19 @@ public void onUpdate() {
101101
private static class MotionBlurShader extends Resource {
102102

103103
public MotionBlurShader() {
104-
super(MinecraftClient.getInstance().getDefaultResourcePack(), () -> IOUtils.toInputStream(String.format("{" + " \"targets\": [" + " \"swap\","
105-
+ " \"previous\"" + " ]," + " \"passes\": [" + " {"
106-
+ " \"name\": \"motion_blur\"," + " \"intarget\": \"minecraft:main\","
107-
+ " \"outtarget\": \"swap\"," + " \"auxtargets\": [" + " {"
108-
+ " \"name\": \"PrevSampler\"," + " \"id\": \"previous\""
109-
+ " }" + " ]," + " \"uniforms\": [" + " {"
110-
+ " \"name\": \"BlendFactor\"," + " \"values\": [ %s ]"
111-
+ " }" + " ]" + " }," + " {"
112-
+ " \"name\": \"blit\"," + " \"intarget\": \"swap\","
113-
+ " \"outtarget\": \"previous\"" + " }," + " {"
114-
+ " \"name\": \"blit\"," + " \"intarget\": \"swap\","
115-
+ " \"outtarget\": \"minecraft:main\"" + " }" + " ]" + "}", getBlur()),
104+
super(MinecraftClient.getInstance().getDefaultResourcePack(), () -> IOUtils.toInputStream(String.format(
105+
"{" + " \"targets\": [" + " \"swap\","
106+
+ " \"previous\"" + " ]," + " \"passes\": [" + " {"
107+
+ " \"name\": \"motion_blur\"," + " \"intarget\": \"minecraft:main\","
108+
+ " \"outtarget\": \"swap\"," + " \"auxtargets\": [" + " {"
109+
+ " \"name\": \"PrevSampler\"," + " \"id\": \"previous\""
110+
+ " }" + " ]," + " \"uniforms\": [" + " {"
111+
+ " \"name\": \"BlendFactor\"," + " \"values\": [ %s ]"
112+
+ " }" + " ]" + " }," + " {"
113+
+ " \"name\": \"blit\"," + " \"intarget\": \"swap\","
114+
+ " \"outtarget\": \"previous\"" + " }," + " {"
115+
+ " \"name\": \"blit\"," + " \"intarget\": \"swap\","
116+
+ " \"outtarget\": \"minecraft:main\"" + " }" + " ]" + "}", getBlur()),
116117
"utf-8"));
117118
}
118119
}

1.21/src/main/java/io/github/axolotlclient/modules/hud/HudManager.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,6 @@ public static HudManager getInstance() {
7272
}
7373

7474
public void init() {
75-
//KeyBindingHelper.registerKeyBinding(key);
7675

7776
AxolotlClient.CONFIG.addCategory(hudCategory);
7877

1.21/src/main/java/io/github/axolotlclient/modules/hud/gui/hud/PlayerHud.java

Lines changed: 9 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -24,26 +24,19 @@
2424

2525
import java.util.List;
2626

27-
import com.mojang.blaze3d.lighting.DiffuseLighting;
28-
import com.mojang.blaze3d.systems.RenderSystem;
2927
import io.github.axolotlclient.AxolotlClientConfig.api.options.Option;
3028
import io.github.axolotlclient.AxolotlClientConfig.impl.options.BooleanOption;
3129
import io.github.axolotlclient.AxolotlClientConfig.impl.options.DoubleOption;
3230
import io.github.axolotlclient.modules.hud.gui.entry.BoxHudEntry;
3331
import io.github.axolotlclient.util.events.Events;
3432
import io.github.axolotlclient.util.events.impl.PlayerDirectionChangeEvent;
3533
import lombok.Getter;
36-
import net.minecraft.client.MinecraftClient;
3734
import net.minecraft.client.gui.GuiGraphics;
35+
import net.minecraft.client.gui.screen.ingame.InventoryScreen;
3836
import net.minecraft.client.network.ClientPlayerEntity;
39-
import net.minecraft.client.render.VertexConsumerProvider;
40-
import net.minecraft.client.render.entity.EntityRenderDispatcher;
41-
import net.minecraft.client.util.math.MatrixStack;
4237
import net.minecraft.util.Identifier;
4338
import net.minecraft.util.math.Axis;
4439
import net.minecraft.util.math.MathHelper;
45-
import org.joml.Matrix4f;
46-
import org.joml.Matrix4fStack;
4740
import org.joml.Quaternionf;
4841
import org.joml.Vector3f;
4942

@@ -129,15 +122,15 @@ public List<Option<?>> getConfigurationOptions() {
129122

130123
@Override
131124
public void renderComponent(GuiGraphics graphics, float delta) {
132-
renderPlayer(false, getTruePos().x() + 31 * getScale(), getTruePos().y() + 86 * getScale(), delta);
125+
renderPlayer(graphics, false, getTruePos().x() + 31 * getScale(), getTruePos().y() + 86 * getScale(), delta);
133126
}
134127

135128
@Override
136129
public void renderPlaceholderComponent(GuiGraphics graphics, float delta) {
137-
renderPlayer(true, getTruePos().x() + 31 * getScale(), getTruePos().y() + 86 * getScale(), 0); // If delta was delta, it would start jittering
130+
renderPlayer(graphics, true, getTruePos().x() + 31 * getScale(), getTruePos().y() + 86 * getScale(), 0); // If delta was delta, it would start jittering
138131
}
139132

140-
public void renderPlayer(boolean placeholder, double x, double y, float delta) {
133+
public void renderPlayer(GuiGraphics graphics, boolean placeholder, double x, double y, float delta) {
141134
if (client.player == null) {
142135
return;
143136
}
@@ -156,58 +149,34 @@ public void renderPlayer(boolean placeholder, double x, double y, float delta) {
156149

157150
float lerpY = (lastYOffset + ((yOffset - lastYOffset) * delta));
158151

159-
Matrix4fStack matrixStack = RenderSystem.getModelViewStack();
160-
matrixStack.pushMatrix();
161-
matrixStack.translate((float) x, (float) (y - lerpY), 1050);
162-
matrixStack.scale(1, 1, -1);
163-
164-
RenderSystem.applyModelViewMatrix();
165-
MatrixStack nextStack = new MatrixStack();
166-
nextStack.translate(0, 0, 1000);
167152
float scale = getScale() * 40;
168-
nextStack.scale(scale, scale, scale);
169153

170154
Quaternionf quaternion = Axis.Z_POSITIVE.rotationDegrees(180.0F);
171155

172-
nextStack.multiply(quaternion.get(new Matrix4f()));
173156
// Rotate to whatever is wanted. Also make sure to offset the yaw
174157
float deltaYaw = client.player.getYaw(delta);
175158
if (dynamicRotation.get()) {
176159
deltaYaw -= (lastYawOffset + ((yawOffset - lastYawOffset) * delta));
177160
}
178-
nextStack.multiply(new Quaternionf().fromAxisAngleDeg(new Vector3f(0, 1, 0), deltaYaw - 180 + rotation.get().floatValue()).get(new Matrix4f()));
161+
Quaternionf quaternionf2 = new Quaternionf().fromAxisAngleDeg(new Vector3f(0, 1, 0), deltaYaw - 180 + rotation.get().floatValue());
162+
quaternion.mul(quaternionf2);
179163

180164
// Save these to set them back later
181165
float pastYaw = client.player.getYaw();
182166
float pastPrevYaw = client.player.prevYaw;
183-
184-
DiffuseLighting.setupInventoryShaderLighting();
185-
EntityRenderDispatcher renderer = client.getEntityRenderDispatcher();
186-
renderer.setRotation(quaternion);
187-
renderer.setRenderShadows(false);
188-
189-
VertexConsumerProvider.Immediate immediate = MinecraftClient.getInstance().getBufferBuilders()
190-
.getEntityVertexConsumers();
191-
192167
currentlyRendering = true;
193-
renderer.render(client.player, 0, 0, 0, 0, delta, nextStack, immediate, 15728880);
194-
immediate.draw();
168+
InventoryScreen.drawEntity(graphics, (float) x, (float) y - lerpY, scale, new Vector3f(), quaternion, quaternionf2, client.player);
195169
currentlyRendering = false;
196-
renderer.setRenderShadows(true);
197-
matrixStack.popMatrix();
198170

199171
client.player.setYaw(pastYaw);
200172
client.player.prevYaw = pastPrevYaw;
201-
202-
RenderSystem.applyModelViewMatrix();
203-
DiffuseLighting.setup3DGuiLighting();
204173
}
205174

206175
private boolean isPerformingAction() {
207176
// inspired by tr7zw's mod
208177
ClientPlayerEntity player = client.player;
209178
return player.isSneaking() || player.isSprinting() || player.isFallFlying() || player.getAbilities().flying
210-
|| player.isSubmergedInWater() || player.isInSwimmingPose() || player.hasVehicle()
211-
|| player.isUsingItem() || player.handSwinging || player.hurtTime > 0 || player.isOnFire();
179+
|| player.isSubmergedInWater() || player.isInSwimmingPose() || player.hasVehicle()
180+
|| player.isUsingItem() || player.handSwinging || player.hurtTime > 0 || player.isOnFire();
212181
}
213182
}

1.21/src/main/resources/assets/minecraft/shaders/program/menu_blur.fsh

Lines changed: 0 additions & 36 deletions
This file was deleted.

0 commit comments

Comments
 (0)