Try to implement player animator #2

This commit is contained in:
2026-01-07 11:22:45 +01:00
parent 8198170d41
commit b061fde066
@@ -1,8 +1,8 @@
package net.fretux.knockedback.client; package net.fretux.knockedback.client;
import dev.kosmx.playerAnim.api.layered.IAnimation; import dev.kosmx.playerAnim.api.layered.IAnimation;
import dev.kosmx.playerAnim.api.layered.KeyframeAnimationPlayer;
import dev.kosmx.playerAnim.api.layered.ModifierLayer; import dev.kosmx.playerAnim.api.layered.ModifierLayer;
import dev.kosmx.playerAnim.core.player.KeyframeAnimationPlayer;
import dev.kosmx.playerAnim.minecraftApi.PlayerAnimationAccess; import dev.kosmx.playerAnim.minecraftApi.PlayerAnimationAccess;
import dev.kosmx.playerAnim.minecraftApi.PlayerAnimationRegistry; import dev.kosmx.playerAnim.minecraftApi.PlayerAnimationRegistry;
import net.fretux.knockedback.KnockedBack; import net.fretux.knockedback.KnockedBack;
@@ -19,7 +19,8 @@ import java.util.UUID;
@Mod.EventBusSubscriber(modid = KnockedBack.MOD_ID, value = Dist.CLIENT, bus = Mod.EventBusSubscriber.Bus.FORGE) @Mod.EventBusSubscriber(modid = KnockedBack.MOD_ID, value = Dist.CLIENT, bus = Mod.EventBusSubscriber.Bus.FORGE)
public class PlayerAnimationHandler { public class PlayerAnimationHandler {
private static final ResourceLocation GRIP_ANIMATION_ID = new ResourceLocation(KnockedBack.MOD_ID, "animation.model.gripping"); private static final ResourceLocation GRIP_ANIMATION_ID =
ResourceLocation.fromNamespaceAndPath(KnockedBack.MOD_ID, "animation.model.gripping");
private static final Map<UUID, ModifierLayer<IAnimation>> layers = new HashMap<>(); private static final Map<UUID, ModifierLayer<IAnimation>> layers = new HashMap<>();
private static final Map<UUID, Boolean> activeStates = new HashMap<>(); private static final Map<UUID, Boolean> activeStates = new HashMap<>();
@@ -34,7 +35,7 @@ public class PlayerAnimationHandler {
activeStates.put(playerId, shouldGrip); activeStates.put(playerId, shouldGrip);
ModifierLayer<IAnimation> layer = layers.computeIfAbsent(playerId, id -> { ModifierLayer<IAnimation> layer = layers.computeIfAbsent(playerId, id -> {
ModifierLayer<IAnimation> newLayer = new ModifierLayer<>(); ModifierLayer<IAnimation> newLayer = new ModifierLayer<>();
PlayerAnimationAccess.getPlayerAnimLayer(player).addAnimLayer(newLayer); PlayerAnimationAccess.getPlayerAnimLayer(player).addAnimLayer(0, newLayer);
return newLayer; return newLayer;
}); });
if (shouldGrip) { if (shouldGrip) {
@@ -46,4 +47,4 @@ public class PlayerAnimationHandler {
layer.setAnimation(null); layer.setAnimation(null);
} }
} }
} }