Skip to content

Commit 10b15f4

Browse files
committed
Backport to 1.16
1 parent f24e9df commit 10b15f4

File tree

7 files changed

+64
-43
lines changed

7 files changed

+64
-43
lines changed

build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ plugins {
22
id 'fabric-loom' version '1.1-SNAPSHOT'
33
}
44

5-
sourceCompatibility = JavaVersion.VERSION_17
6-
targetCompatibility = JavaVersion.VERSION_17
5+
sourceCompatibility = JavaVersion.VERSION_1_8
6+
targetCompatibility = JavaVersion.VERSION_1_8
77

88
archivesBaseName = project.archives_base_name
99
version = "${project.mod_version}-${project.minecraft_version}"
@@ -29,7 +29,7 @@ processResources {
2929
}
3030

3131
tasks.withType(JavaCompile).configureEach {
32-
it.options.release = 17
32+
it.options.release = 8
3333
}
3434

3535
java {

gradle.properties

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22
org.gradle.jvmargs=-Xmx1G
33

44
# Fabric Properties
5-
minecraft_version=1.19.3
6-
yarn_mappings=1.19.3+build.5
5+
minecraft_version=1.16
6+
yarn_mappings=1.16+build.4
77
loader_version=0.14.19
88

99
# Mod Properties
1010
mod_version = 1.1.0
1111
archives_base_name = PlayerHealthIndicators
1212

1313
# Dependencies
14-
fabric_version=0.76.1+1.19.3
14+
fabric_version=0.42.0+1.16
Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
package me.andrew.healthindicators;
22

33
import net.fabricmc.api.ModInitializer;
4-
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
54
import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper;
6-
import net.minecraft.client.option.KeyBinding;
5+
import net.minecraft.client.MinecraftClient;
6+
import net.minecraft.client.options.KeyBinding;
77
import net.minecraft.client.util.InputUtil;
8-
import net.minecraft.text.Text;
8+
import net.minecraft.text.LiteralText;
99

1010
public class HealthIndicatorsMod implements ModInitializer {
1111
public static final String MOD_ID = "healthindicators";
@@ -36,35 +36,35 @@ public class HealthIndicatorsMod implements ModInitializer {
3636
@Override
3737
public void onInitialize() {
3838
Config.load();
39+
}
3940

40-
ClientTickEvents.END_CLIENT_TICK.register(client -> {
41-
while (RENDERING_ENABLED_KEY_BINDING.wasPressed()) {
42-
Config.setRenderingEnabled(!Config.getRenderingEnabled());
43-
if (client.player != null) {
44-
client.player.sendMessage(Text.literal((Config.getRenderingEnabled() ? "Enabled" : "Disabled") + " Health Indicators"), true);
45-
}
41+
public static void onTick(MinecraftClient client) {
42+
while (RENDERING_ENABLED_KEY_BINDING.wasPressed()) {
43+
Config.setRenderingEnabled(!Config.getRenderingEnabled());
44+
if (client.player != null) {
45+
client.player.sendMessage(new LiteralText((Config.getRenderingEnabled() ? "Enabled" : "Disabled") + " Health Indicators"), true);
4646
}
47+
}
4748

48-
while (HEART_STACKING_ENABLED_KEY_BINDING.wasPressed()) {
49-
Config.setHeartStackingEnabled(!Config.getHeartStackingEnabled());
50-
if (client.player != null) {
51-
client.player.sendMessage(Text.literal((Config.getHeartStackingEnabled() ? "Enabled" : "Disabled") + " Heart Stacking"), true);
52-
}
49+
while (HEART_STACKING_ENABLED_KEY_BINDING.wasPressed()) {
50+
Config.setHeartStackingEnabled(!Config.getHeartStackingEnabled());
51+
if (client.player != null) {
52+
client.player.sendMessage(new LiteralText((Config.getHeartStackingEnabled() ? "Enabled" : "Disabled") + " Heart Stacking"), true);
5353
}
54+
}
5455

55-
while (INCREASE_HEART_OFFSET_KEY_BINDING.wasPressed()) {
56-
Config.setHeartOffset(Config.getHeartOffset() + 1);
57-
if (client.player != null) {
58-
client.player.sendMessage(Text.literal("Set heart offset to " + Config.getHeartOffset()), true);
59-
}
56+
while (INCREASE_HEART_OFFSET_KEY_BINDING.wasPressed()) {
57+
Config.setHeartOffset(Config.getHeartOffset() + 1);
58+
if (client.player != null) {
59+
client.player.sendMessage(new LiteralText("Set heart offset to " + Config.getHeartOffset()), true);
6060
}
61+
}
6162

62-
while (DECREASE_HEART_OFFSET_KEY_BINDING.wasPressed()) {
63-
Config.setHeartOffset(Config.getHeartOffset() - 1);
64-
if (client.player != null) {
65-
client.player.sendMessage(Text.literal("Set heart offset to " + Config.getHeartOffset()), true);
66-
}
63+
while (DECREASE_HEART_OFFSET_KEY_BINDING.wasPressed()) {
64+
Config.setHeartOffset(Config.getHeartOffset() - 1);
65+
if (client.player != null) {
66+
client.player.sendMessage(new LiteralText("Set heart offset to " + Config.getHeartOffset()), true);
6767
}
68-
});
68+
}
6969
}
7070
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package me.andrew.healthindicators.mixin;
2+
3+
import me.andrew.healthindicators.HealthIndicatorsMod;
4+
import net.minecraft.client.MinecraftClient;
5+
import org.spongepowered.asm.mixin.Mixin;
6+
import org.spongepowered.asm.mixin.injection.At;
7+
import org.spongepowered.asm.mixin.injection.Inject;
8+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
9+
10+
@Mixin(MinecraftClient.class)
11+
public abstract class MinecraftClientMixin {
12+
@Inject(
13+
method = "tick",
14+
at = @At("HEAD")
15+
)
16+
private void inject_tick(CallbackInfo ci) {
17+
HealthIndicatorsMod.onTick((MinecraftClient)(Object) this);
18+
}
19+
}

src/main/java/me/andrew/healthindicators/mixin/PlayerEntityRendererMixin.java

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,23 +7,23 @@
77
import net.minecraft.client.gui.DrawableHelper;
88
import net.minecraft.client.network.AbstractClientPlayerEntity;
99
import net.minecraft.client.render.*;
10-
import net.minecraft.client.render.entity.EntityRendererFactory;
10+
import net.minecraft.client.render.entity.EntityRenderDispatcher;
1111
import net.minecraft.client.render.entity.LivingEntityRenderer;
1212
import net.minecraft.client.render.entity.PlayerEntityRenderer;
1313
import net.minecraft.client.render.entity.model.PlayerEntityModel;
1414
import net.minecraft.client.util.math.MatrixStack;
1515
import net.minecraft.entity.Entity;
1616
import net.minecraft.util.math.MathHelper;
17-
import org.joml.Matrix4f;
17+
import net.minecraft.util.math.Matrix4f;
1818
import org.spongepowered.asm.mixin.Mixin;
1919
import org.spongepowered.asm.mixin.injection.At;
2020
import org.spongepowered.asm.mixin.injection.Inject;
2121
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
2222

2323
@Mixin(PlayerEntityRenderer.class)
2424
public abstract class PlayerEntityRendererMixin extends LivingEntityRenderer<AbstractClientPlayerEntity, PlayerEntityModel<AbstractClientPlayerEntity>> {
25-
public PlayerEntityRendererMixin(EntityRendererFactory.Context ctx, PlayerEntityModel<AbstractClientPlayerEntity> model, float shadowRadius) {
26-
super(ctx, model, shadowRadius);
25+
public PlayerEntityRendererMixin(EntityRenderDispatcher dispatcher, PlayerEntityModel<AbstractClientPlayerEntity> model, float shadowRadius) {
26+
super(dispatcher, model, shadowRadius);
2727
}
2828

2929
@Inject(
@@ -57,12 +57,12 @@ public void renderHealth(AbstractClientPlayerEntity abstractClientPlayerEntity,
5757
Tessellator tessellator = Tessellator.getInstance();
5858
BufferBuilder vertexConsumer = tessellator.getBuffer();
5959

60-
vertexConsumer.begin(VertexFormat.DrawMode.QUADS, VertexFormats.POSITION_TEXTURE);
61-
RenderSystem.setShader(GameRenderer::getPositionTexProgram);
62-
RenderSystem.setShaderTexture(0, DrawableHelper.GUI_ICONS_TEXTURE);
60+
vertexConsumer.begin(7, VertexFormats.POSITION_TEXTURE);
61+
MinecraftClient.getInstance().getTextureManager().bindTexture(DrawableHelper.GUI_ICONS_TEXTURE);
62+
RenderSystem.enableBlend();
6363
RenderSystem.enableDepthTest();
6464

65-
Matrix4f model = matrixStack.peek().getPositionMatrix();
65+
Matrix4f model = matrixStack.peek().getModel();
6666

6767
int healthRed = MathHelper.ceil(abstractClientPlayerEntity.getHealth());
6868
int maxHealth = MathHelper.ceil(abstractClientPlayerEntity.getMaxHealth());
@@ -115,7 +115,8 @@ public void renderHealth(AbstractClientPlayerEntity abstractClientPlayerEntity,
115115
}
116116

117117
private static boolean shouldRenderHeartsForEntity(Entity entity) {
118-
if (entity instanceof AbstractClientPlayerEntity abstractClientPlayerEntity) {
118+
if (entity instanceof AbstractClientPlayerEntity) {
119+
AbstractClientPlayerEntity abstractClientPlayerEntity = (AbstractClientPlayerEntity) entity;
119120
return !abstractClientPlayerEntity.isMainPlayer() && !abstractClientPlayerEntity.isInvisibleTo(MinecraftClient.getInstance().player);
120121
}
121122

src/main/resources/fabric.mod.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
"depends": {
2525
"fabricloader": ">=0.11.3",
2626
"fabric": "*",
27-
"minecraft": "1.19.x",
28-
"java": ">=17"
27+
"minecraft": "1.16.x",
28+
"java": ">=8"
2929
}
3030
}

src/main/resources/healthindicators.mixins.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@
22
"required": true,
33
"minVersion": "0.8",
44
"package": "me.andrew.healthindicators.mixin",
5-
"compatibilityLevel": "JAVA_17",
5+
"compatibilityLevel": "JAVA_8",
66
"client": [
7+
"MinecraftClientMixin",
78
"PlayerEntityRendererMixin"
89
],
910
"injectors": {

0 commit comments

Comments
 (0)