Skip to content

Commit 5a22408

Browse files
committed
No Render Improve
1 parent 64c4f18 commit 5a22408

11 files changed

Lines changed: 276 additions & 13 deletions

File tree

‎.github/workflows/dev_build.yml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ jobs:
1818
uses: marvinpinto/action-automatic-releases@latest
1919
with:
2020
repo_token: '${{ secrets.GITHUB_TOKEN }}'
21-
automatic_release_tag: "1.21.3_1.0.9.2"
21+
automatic_release_tag: "1.21.3_1.0.9.3"
2222
prerelease: true
23-
title: "1.21.3 | 1.0.9.2"
23+
title: "1.21.3 | 1.0.9.3"
2424
files: |
2525
./build/libs/*.jar

‎gradle.properties‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ yarn_mappings=1.21.3+build.2
66
loader_version=0.16.9
77

88
# Mod Properties
9-
mod_version=1.21.3_1.0.9.2
9+
mod_version=1.21.3_1.0.9.3
1010
maven_group=nekiplay.meteorplus
1111
archives_base_name=meteor-plus
1212

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package nekiplay.main.events.hud;
2+
import nekiplay.main.events.Cancellable;
3+
import net.minecraft.client.gui.DrawContext;
4+
import net.minecraft.entity.player.PlayerEntity;
5+
6+
public class RenderArmorBarEvent extends Cancellable {
7+
private static final RenderArmorBarEvent INSTANCE = new RenderArmorBarEvent();
8+
private DrawContext context;
9+
private PlayerEntity player;
10+
private int i;
11+
private int j;
12+
private int k;
13+
private int x;
14+
public static RenderArmorBarEvent get(DrawContext context, PlayerEntity player, int i, int j, int k, int x) {
15+
INSTANCE.context = context;
16+
INSTANCE.player = player;
17+
INSTANCE.i = i;
18+
INSTANCE.j = j;
19+
INSTANCE.k = k;
20+
INSTANCE.x = x;
21+
return INSTANCE;
22+
}
23+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package nekiplay.main.events.hud;
2+
import nekiplay.main.events.Cancellable;
3+
import net.minecraft.client.gui.DrawContext;
4+
5+
public class RenderExperienceBarEvent extends Cancellable {
6+
private static final RenderExperienceBarEvent INSTANCE = new RenderExperienceBarEvent();
7+
private DrawContext context;
8+
private int x;
9+
public static RenderExperienceBarEvent get(DrawContext context, int x) {
10+
INSTANCE.context = context;
11+
INSTANCE.x = x;
12+
return INSTANCE;
13+
}
14+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package nekiplay.main.events.hud;
2+
import nekiplay.main.events.Cancellable;
3+
import net.minecraft.client.gui.DrawContext;
4+
import net.minecraft.client.render.RenderTickCounter;
5+
import net.minecraft.entity.player.PlayerEntity;
6+
7+
public class RenderExperienceLevelEvent extends Cancellable {
8+
private static final RenderExperienceLevelEvent INSTANCE = new RenderExperienceLevelEvent();
9+
private DrawContext context;
10+
private RenderTickCounter tickCounter;
11+
public static RenderExperienceLevelEvent get(DrawContext context, RenderTickCounter tickCounter) {
12+
INSTANCE.context = context;
13+
INSTANCE.tickCounter = tickCounter;
14+
return INSTANCE;
15+
}
16+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package nekiplay.main.events.hud;
2+
import nekiplay.main.events.Cancellable;
3+
import net.minecraft.client.gui.DrawContext;
4+
import net.minecraft.client.render.RenderTickCounter;
5+
import net.minecraft.entity.player.PlayerEntity;
6+
7+
public class RenderFoodBarEvent extends Cancellable {
8+
private static final RenderFoodBarEvent INSTANCE = new RenderFoodBarEvent();
9+
private DrawContext context;
10+
private PlayerEntity player;
11+
private int top;
12+
private int right;
13+
public static RenderFoodBarEvent get(DrawContext context, PlayerEntity player, int top, int right) {
14+
INSTANCE.context = context;
15+
INSTANCE.player = player;
16+
INSTANCE.top = top;
17+
INSTANCE.right = right;
18+
return INSTANCE;
19+
}
20+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package nekiplay.main.events.hud;
2+
import nekiplay.main.events.Cancellable;
3+
import net.minecraft.client.gui.DrawContext;
4+
import net.minecraft.entity.player.PlayerEntity;
5+
6+
public class RenderHealthBarEvent extends Cancellable {
7+
private static final RenderHealthBarEvent INSTANCE = new RenderHealthBarEvent();
8+
private DrawContext context;
9+
private PlayerEntity player;
10+
private int x;
11+
private int y;
12+
private int lines;
13+
private int regeneratingHeartIndex;
14+
private float maxHealth;
15+
private int lastHealth;
16+
private int health;
17+
private int absorption;
18+
private boolean blinking;
19+
public static RenderHealthBarEvent get(DrawContext context, PlayerEntity player, int x, int y, int lines, int regeneratingHeartIndex, float maxHealth, int lastHealth, int health, int absorption, boolean blinking) {
20+
INSTANCE.context = context;
21+
INSTANCE.player = player;
22+
INSTANCE.x = x;
23+
INSTANCE.y = y;
24+
INSTANCE.lines = lines;
25+
INSTANCE.regeneratingHeartIndex = regeneratingHeartIndex;
26+
INSTANCE.maxHealth = maxHealth;
27+
INSTANCE.lastHealth = lastHealth;
28+
INSTANCE.health = health;
29+
INSTANCE.absorption = absorption;
30+
INSTANCE.blinking = blinking;
31+
return INSTANCE;
32+
}
33+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package nekiplay.main.events.hud;
2+
import nekiplay.main.events.Cancellable;
3+
import net.minecraft.client.gui.DrawContext;
4+
import net.minecraft.entity.player.PlayerEntity;
5+
6+
public class RenderMountHealthBarEvent extends Cancellable {
7+
private static final RenderMountHealthBarEvent INSTANCE = new RenderMountHealthBarEvent();
8+
private DrawContext context;
9+
public static RenderMountHealthBarEvent get(DrawContext context) {
10+
INSTANCE.context = context;
11+
return INSTANCE;
12+
}
13+
}

‎src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/NoRenderMixin.java‎

Lines changed: 89 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@
55
import meteordevelopment.meteorclient.systems.modules.Module;
66
import meteordevelopment.meteorclient.systems.modules.render.NoRender;
77
import meteordevelopment.orbit.EventHandler;
8-
import nekiplay.main.events.hud.DebugDrawTextEvent;
8+
import nekiplay.main.events.hud.*;
99
import org.spongepowered.asm.mixin.Mixin;
10+
import org.spongepowered.asm.mixin.Shadow;
1011
import org.spongepowered.asm.mixin.Unique;
1112
import java.util.List;
1213

@@ -17,44 +18,123 @@ public NoRenderMixin(Category category, String name, String description) {
1718
}
1819

1920
@Unique
20-
private final NoRender noRender = (NoRender)(Object) this;
21-
@Unique
22-
private final SettingGroup noRenderMeteorPlusSetting = noRender.settings.createGroup("F3");
21+
private final SettingGroup noRenderMeteorPlusSetting = settings.createGroup("F3");
22+
23+
@Shadow
24+
private final SettingGroup sgHUD = settings.getGroup("HUD");
2325

2426

2527
@Unique
2628
private final Setting<Boolean> noPosition = noRenderMeteorPlusSetting.add(new BoolSetting.Builder()
27-
.name("remove-position")
29+
.name("position")
2830
.defaultValue(false)
2931
.build()
3032
);
3133
@Unique
3234
private final Setting<Boolean> noPositionBlock = noRenderMeteorPlusSetting.add(new BoolSetting.Builder()
33-
.name("remove-position-block")
35+
.name("position-block")
3436
.defaultValue(false)
3537
.build()
3638
);
3739
@Unique
3840
private final Setting<Boolean> noPositionChunk = noRenderMeteorPlusSetting.add(new BoolSetting.Builder()
39-
.name("remove-position-chunk")
41+
.name("position-chunk")
4042
.defaultValue(false)
4143
.build()
4244
);
4345

4446
@Unique
4547
private final Setting<Boolean> noTargetBlockPosition = noRenderMeteorPlusSetting.add(new BoolSetting.Builder()
46-
.name("remove-target-block-position")
48+
.name("target-block-position")
4749
.defaultValue(false)
4850
.build()
4951
);
5052

5153
@Unique
5254
private final Setting<Boolean> noTargetFluidPosition = noRenderMeteorPlusSetting.add(new BoolSetting.Builder()
53-
.name("remove-target-fluid-position")
55+
.name("target-fluid-position")
5456
.defaultValue(false)
5557
.build()
5658
);
5759

60+
@Unique
61+
private final Setting<Boolean> experienceBar = sgHUD.add(new BoolSetting.Builder()
62+
.name("experience-bar")
63+
.defaultValue(false)
64+
.build()
65+
);
66+
@Unique
67+
private final Setting<Boolean> experienceLevel = sgHUD.add(new BoolSetting.Builder()
68+
.name("experience-level")
69+
.defaultValue(false)
70+
.build()
71+
);
72+
@Unique
73+
private final Setting<Boolean> healthBar = sgHUD.add(new BoolSetting.Builder()
74+
.name("health-bar")
75+
.defaultValue(false)
76+
.build()
77+
);
78+
@Unique
79+
private final Setting<Boolean> mountHealthBar = sgHUD.add(new BoolSetting.Builder()
80+
.name("mount-health-bar")
81+
.defaultValue(false)
82+
.build()
83+
);
84+
@Unique
85+
private final Setting<Boolean> foodBar = sgHUD.add(new BoolSetting.Builder()
86+
.name("food-bar")
87+
.defaultValue(false)
88+
.build()
89+
);
90+
@Unique
91+
private final Setting<Boolean> armorBar = sgHUD.add(new BoolSetting.Builder()
92+
.name("armor-bar")
93+
.defaultValue(false)
94+
.build()
95+
);
96+
@Unique
97+
@EventHandler
98+
private void onMountHealthBarRender(RenderMountHealthBarEvent event) {
99+
if (mountHealthBar.get()) {
100+
event.setCancelled(true);
101+
}
102+
}
103+
@Unique
104+
@EventHandler
105+
private void onArmorBarRender(RenderArmorBarEvent event) {
106+
if (armorBar.get()) {
107+
event.setCancelled(true);
108+
}
109+
}
110+
@Unique
111+
@EventHandler
112+
private void onFoodBarRender(RenderFoodBarEvent event) {
113+
if (foodBar.get()) {
114+
event.setCancelled(true);
115+
}
116+
}
117+
@Unique
118+
@EventHandler
119+
private void onHealthBarRender(RenderHealthBarEvent event) {
120+
if (healthBar.get()) {
121+
event.setCancelled(true);
122+
}
123+
}
124+
@Unique
125+
@EventHandler
126+
private void onExperienceBarRender(RenderExperienceBarEvent event) {
127+
if (experienceBar.get()) {
128+
event.setCancelled(true);
129+
}
130+
}
131+
@Unique
132+
@EventHandler
133+
private void onExperienceLevelRender(RenderExperienceLevelEvent event) {
134+
if (experienceLevel.get()) {
135+
event.setCancelled(true);
136+
}
137+
}
58138

59139
@Unique
60140
@EventHandler
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
2+
package nekiplay.meteorplus.mixin.minecraft.hud;
3+
import meteordevelopment.meteorclient.MeteorClient;
4+
import nekiplay.main.events.hud.*;
5+
import net.minecraft.client.gui.DrawContext;
6+
import net.minecraft.client.gui.hud.InGameHud;
7+
import net.minecraft.client.render.RenderTickCounter;
8+
import net.minecraft.entity.player.PlayerEntity;
9+
import org.spongepowered.asm.mixin.Mixin;
10+
import org.spongepowered.asm.mixin.injection.At;
11+
import org.spongepowered.asm.mixin.injection.Inject;
12+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
13+
@Mixin(InGameHud.class)
14+
public class InGameHudMixin {
15+
@Inject(method = "renderHealthBar", at = @At("HEAD"), cancellable = true)
16+
private void onRenderHealthBar(DrawContext context, PlayerEntity player, int x, int y, int lines, int regeneratingHeartIndex, float maxHealth, int lastHealth, int health, int absorption, boolean blinking, CallbackInfo ci) {
17+
RenderHealthBarEvent healthBarRenderEvent = RenderHealthBarEvent.get(context, player, x, y, lines, regeneratingHeartIndex, maxHealth, lastHealth, health, absorption, blinking);
18+
MeteorClient.EVENT_BUS.post(healthBarRenderEvent);
19+
if (healthBarRenderEvent.isCancelled()) {
20+
ci.cancel();
21+
}
22+
}
23+
@Inject(method = "renderExperienceBar", at = @At("HEAD"), cancellable = true)
24+
private void onRenderExperienceBar(DrawContext context, int x, CallbackInfo ci) {
25+
RenderExperienceBarEvent renderExperienceBarEvent = RenderExperienceBarEvent.get(context, x);
26+
MeteorClient.EVENT_BUS.post(renderExperienceBarEvent);
27+
if (renderExperienceBarEvent.isCancelled()) {
28+
ci.cancel();
29+
}
30+
}
31+
@Inject(method = "renderExperienceLevel", at = @At("HEAD"), cancellable = true)
32+
private void onRenderExperienceBar(DrawContext context, RenderTickCounter tickCounter, CallbackInfo ci) {
33+
RenderExperienceLevelEvent renderExperienceLevelEvent = RenderExperienceLevelEvent.get(context, tickCounter);
34+
MeteorClient.EVENT_BUS.post(renderExperienceLevelEvent);
35+
if (renderExperienceLevelEvent.isCancelled()) {
36+
ci.cancel();
37+
}
38+
}
39+
@Inject(method = "renderFood", at = @At("HEAD"), cancellable = true)
40+
private void onRenderFoodBar(DrawContext context, PlayerEntity player, int top, int right, CallbackInfo ci) {
41+
RenderFoodBarEvent renderFoodBarEvent = RenderFoodBarEvent.get(context, player, top, right);
42+
MeteorClient.EVENT_BUS.post(renderFoodBarEvent);
43+
if (renderFoodBarEvent.isCancelled()) {
44+
ci.cancel();
45+
}
46+
}
47+
@Inject(method = "renderArmor", at = @At("HEAD"), cancellable = true)
48+
private static void onRenderArmor(DrawContext context, PlayerEntity player, int i, int j, int k, int x, CallbackInfo ci) {
49+
RenderArmorBarEvent renderArmorBarEvent = RenderArmorBarEvent.get(context, player, i, j, k, x);
50+
MeteorClient.EVENT_BUS.post(renderArmorBarEvent);
51+
if (renderArmorBarEvent.isCancelled()) {
52+
ci.cancel();
53+
}
54+
}
55+
@Inject(method = "renderMountHealth", at = @At("HEAD"), cancellable = true)
56+
private void onRenderMountHealth(DrawContext context, CallbackInfo ci) {
57+
RenderMountHealthBarEvent renderMountHealthBarEvent = RenderMountHealthBarEvent.get(context);
58+
MeteorClient.EVENT_BUS.post(renderMountHealthBarEvent);
59+
if (renderMountHealthBarEvent.isCancelled()) {
60+
ci.cancel();
61+
}
62+
}
63+
}

0 commit comments

Comments
 (0)