1
0
Fork 0
mirror of https://github.com/TheClashFruit/CreatePissAndShit.git synced 2024-09-19 09:26:46 +00:00

fix: some hud fixes

This commit is contained in:
TheClashFruit 2024-07-28 21:16:42 +02:00
parent cf636aca69
commit 8fa0840784
Signed by: TheClashFruit
GPG key ID: 09BB24C34C2F3204
6 changed files with 42 additions and 23 deletions

View file

@ -61,8 +61,5 @@ public class PissAndShit implements ModInitializer {
);
}
});
// Register Packets
PissSyncPacket.register();
}
}

View file

@ -1,6 +1,6 @@
package me.theclashfruit.pissnshit.client;
import me.theclashfruit.pissnshit.client.gui.ProofOfConceptHudOverlay;
import me.theclashfruit.pissnshit.client.gui.PissAndShitHudOverlay;
import me.theclashfruit.pissnshit.network.PissSyncPacket;
import me.theclashfruit.pissnshit.registry.Fluids;
import me.theclashfruit.pissnshit.util.PissManager;
@ -15,8 +15,6 @@ import net.minecraft.client.MinecraftClient;
import net.minecraft.client.render.RenderLayer;
import net.minecraft.util.Identifier;
import static me.theclashfruit.pissnshit.PissAndShit.LOGGER;
public class PissAndShitClient implements ClientModInitializer {
@Override
public void onInitializeClient() {
@ -28,9 +26,8 @@ public class PissAndShitClient implements ClientModInitializer {
BlockRenderLayerMap.INSTANCE.putFluids(RenderLayer.getTranslucent(), Fluids.STILL_PISS, Fluids.FLOWING_PISS);
// will be transferred to a mixin to InGameHud.java
MinecraftClient client = MinecraftClient.getInstance();
ProofOfConceptHudOverlay hudOverlay = new ProofOfConceptHudOverlay(client);
MinecraftClient client = MinecraftClient.getInstance();
PissAndShitHudOverlay hudOverlay = new PissAndShitHudOverlay(client);
HudRenderCallback.EVENT.register((matrices, tickDelta) -> {
if (client.player != null) {
@ -38,16 +35,7 @@ public class PissAndShitClient implements ClientModInitializer {
}
});
ClientPlayNetworking.registerGlobalReceiver(PissSyncPacket.ID, (c, handler, buf, responseSender) -> {
PissSyncPacket.SyncPacket packet = PissSyncPacket.SyncPacket.decode(buf);
c.execute(() -> {
if (c.player != null) {
PissManager pissManager = ((PlayerEntityUtil) c.player).getPissManager();
pissManager.setPissLevel(packet.pissLevel());
}
});
});
// Register Packets
PissSyncPacket.register();
}
}

View file

@ -9,7 +9,7 @@ import net.minecraft.util.Identifier;
import static me.theclashfruit.pissnshit.PissAndShit.MOD_ID;
public class ProofOfConceptHudOverlay implements Drawable {
public class PissAndShitHudOverlay implements Drawable {
private static final Identifier ICONS = new Identifier(MOD_ID, "textures/gui/icons.png");
private final MinecraftClient client;
@ -17,7 +17,7 @@ public class ProofOfConceptHudOverlay implements Drawable {
private final int randFirst;
private final int randSecond;
public ProofOfConceptHudOverlay(MinecraftClient client) {
public PissAndShitHudOverlay(MinecraftClient client) {
this.client = client;
this.randFirst = (int) (Math.random() * 100);
@ -33,6 +33,9 @@ public class ProofOfConceptHudOverlay implements Drawable {
assert this.client.player != null;
if (client.player.isCreative() || client.player.isSpectator())
return;
int pissLevel = ((PlayerEntityUtil) this.client.player).getPissManager().getPissLevel();
int fullPissIcons = pissLevel / 10;
int remainingPissLevel = pissLevel - (fullPissIcons * 10);

View file

@ -0,0 +1,15 @@
package me.theclashfruit.pissnshit.mixin;
import net.minecraft.client.gui.hud.InGameHud;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
@Mixin(InGameHud.class)
public class InGameHudMixin {
@Inject(method = "getHeartRows", at = @At(value = "HEAD"), cancellable = true)
private void getHeartRows(int heartCount, CallbackInfoReturnable<Integer> cir) {
cir.setReturnValue((int) Math.ceil((double) heartCount / 10.0D) + 2);
}
}

View file

@ -1,6 +1,9 @@
package me.theclashfruit.pissnshit.network;
import io.netty.buffer.Unpooled;
import me.theclashfruit.pissnshit.util.PissManager;
import me.theclashfruit.pissnshit.util.PlayerEntityUtil;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking;
import net.minecraft.network.PacketByteBuf;
import net.minecraft.server.network.ServerPlayerEntity;
@ -11,7 +14,19 @@ import static me.theclashfruit.pissnshit.PissAndShit.MOD_ID;
public class PissSyncPacket {
public static final Identifier ID = new Identifier(MOD_ID, "piss_sync");
public static void register() {}
public static void register() {
ClientPlayNetworking.registerGlobalReceiver(PissSyncPacket.ID, (c, handler, buf, responseSender) -> {
PissSyncPacket.SyncPacket packet = PissSyncPacket.SyncPacket.decode(buf);
c.execute(() -> {
if (c.player != null) {
PissManager pissManager = ((PlayerEntityUtil) c.player).getPissManager();
pissManager.setPissLevel(packet.pissLevel());
}
});
});
}
public static void sendToClient(ServerPlayerEntity player, int pissLevel) {
PacketByteBuf buf = new PacketByteBuf(Unpooled.buffer());

View file

@ -7,6 +7,7 @@
"PlayerEntityMixin"
],
"client": [
"InGameHudMixin"
],
"injectors": {
"defaultRequire": 1