This commit is contained in:
2026-03-11 15:28:26 +01:00
parent 20a755064b
commit d0d2183c77
14 changed files with 89 additions and 80 deletions

View File

@@ -1,33 +0,0 @@
package dev.tggamesyt.szar.client;
import dev.tggamesyt.szar.Joint;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
import net.minecraft.item.ItemStack;
public class SmokeZoomHandler {
private static float smokeScale = 0.5f; // start scale
private static final float TARGET_SCALE = 1.05f; // max zoom
private static final float LERP_SPEED = 0.5f; // lerp speed
public static void register() {
ClientTickEvents.END_CLIENT_TICK.register(client -> {
if (client.player == null) return;
ItemStack stack = client.player.getActiveItem();
boolean usingSmoke = stack.getItem() instanceof Joint;
float target = usingSmoke ? TARGET_SCALE : 0.5f;
// lerp smokeScale toward target like spyglass
smokeScale = lerp(LERP_SPEED * client.getTickDelta(), smokeScale, target);
});
}
private static float lerp(float delta, float start, float end) {
return start + delta * (end - start);
}
public static float getSmokeScale() {
return smokeScale;
}
}

View File

@@ -381,7 +381,6 @@ public class SzarClient implements ClientModInitializer {
var effect = hasEffect ? client.player.getStatusEffect(Szar.DROG_EFFECT) : null;
int amplifier = effect != null ? Math.min(effect.getAmplifier(), 2) : 0;
float level = amplifier + 1f;
float time = client.player.age + tickDelta;
float speed = 0.015f + amplifier * 0.012f;
@@ -431,41 +430,14 @@ public class SzarClient implements ClientModInitializer {
scrambleMovement(client, chance);
});
HudRenderCallback.EVENT.register((drawContext, tickDelta) -> {
MinecraftClient client = MinecraftClient.getInstance();
if (client.player == null) return;
float scale = SmokeZoomHandler.getSmokeScale();
if (scale > 0.51f) { // only when smoking
client.inGameHud.spyglassScale = scale;
}
});
SmokeZoomHandler.register();
// In your mod initialization code
FabricModelPredicateProviderRegistry.register(Szar.WEED_JOINT_ITEM, new Identifier("held"),
(stack, world, entity, seed) -> {
return entity != null && entity.getMainHandStack() == stack ? 1.0f : 0.0f;
});
(stack, world, entity, seed) -> entity != null && entity.getMainHandStack() == stack ? 1.0f : 0.0f);
if (isDebugEnabled()) {
ClientCommandRegistrationCallback.EVENT.register(
(dispatcher, registryAccess) -> PanoramaClientCommand.register(dispatcher)
);
}
/*ClientTickEvents.END_CLIENT_TICK.register(client -> {
if (addedFeature) return; // only run once
MinecraftClient mc = MinecraftClient.getInstance();
if (mc.getEntityRenderDispatcher() == null) return;
for (EntityRenderer<?> renderer : mc.getEntityRenderDispatcher().renderers.values()) {
if (renderer instanceof PlayerEntityRenderer playerRenderer) {
playerRenderer.addFeature(new VideoHeadFeature(playerRenderer));
}
}
addedFeature = true; // prevent running again
});*/
}
private boolean isDebugEnabled() {

View File

@@ -48,7 +48,7 @@ public abstract class HeldItemRendererMixin {
-0.5F
);
matrices.multiply(RotationAxis.POSITIVE_X.rotationDegrees(80.0F));
matrices.multiply(RotationAxis.POSITIVE_X.rotationDegrees(95.0F));
matrices.translate(0.0F, equipProgress * -0.6F, 0.0F);
HeldItemRenderer self = (HeldItemRenderer)(Object)this;