package net.minecraft.client.animation.definitions; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.animation.AnimationChannel; import net.minecraft.client.animation.AnimationDefinition; import net.minecraft.client.animation.Keyframe; import net.minecraft.client.animation.KeyframeAnimations; import net.minecraft.client.animation.AnimationChannel.Interpolations; import net.minecraft.client.animation.AnimationChannel.Targets; import net.minecraft.client.animation.AnimationDefinition.Builder; @Environment(EnvType.CLIENT) public class BreezeAnimation { public static final AnimationDefinition IDLE = Builder.withLength(2.0F) .looping() .addAnimation( "wind_top", new AnimationChannel( Targets.POSITION, new Keyframe(0.0F, KeyframeAnimations.posVec(0.5F, 0.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.25F, KeyframeAnimations.posVec(0.5F, 0.0F, -0.5F), Interpolations.LINEAR), new Keyframe(0.75F, KeyframeAnimations.posVec(-0.5F, 0.0F, -0.5F), Interpolations.LINEAR), new Keyframe(1.25F, KeyframeAnimations.posVec(-0.5F, 0.0F, 0.5F), Interpolations.LINEAR), new Keyframe(1.75F, KeyframeAnimations.posVec(0.5F, 0.0F, 0.5F), Interpolations.LINEAR), new Keyframe(2.0F, KeyframeAnimations.posVec(0.5F, 0.0F, 0.0F), Interpolations.LINEAR) ) ) .addAnimation( "wind_mid", new AnimationChannel( Targets.POSITION, new Keyframe(0.0F, KeyframeAnimations.posVec(0.5F, 0.0F, -0.5F), Interpolations.LINEAR), new Keyframe(0.5F, KeyframeAnimations.posVec(-0.5F, 0.0F, -0.5F), Interpolations.LINEAR), new Keyframe(1.0F, KeyframeAnimations.posVec(-0.5F, 0.0F, 0.5F), Interpolations.LINEAR), new Keyframe(1.5F, KeyframeAnimations.posVec(0.5F, 0.0F, 0.5F), Interpolations.LINEAR), new Keyframe(2.0F, KeyframeAnimations.posVec(0.5F, 0.0F, -0.5F), Interpolations.LINEAR) ) ) .addAnimation( "head", new AnimationChannel( Targets.POSITION, new Keyframe(0.0F, KeyframeAnimations.posVec(0.0F, 0.0F, 0.0F), Interpolations.CATMULLROM), new Keyframe(1.0F, KeyframeAnimations.posVec(0.0F, 1.0F, 0.0F), Interpolations.CATMULLROM), new Keyframe(2.0F, KeyframeAnimations.posVec(0.0F, 0.0F, 0.0F), Interpolations.CATMULLROM) ) ) .addAnimation( "rods", new AnimationChannel( Targets.ROTATION, new Keyframe(0.0F, KeyframeAnimations.degreeVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR), new Keyframe(2.0F, KeyframeAnimations.degreeVec(0.0F, 1080.0F, 0.0F), Interpolations.LINEAR) ) ) .addAnimation( "rods", new AnimationChannel( Targets.POSITION, new Keyframe(0.0F, KeyframeAnimations.posVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR), new Keyframe(1.0F, KeyframeAnimations.posVec(0.0F, -1.0F, 0.0F), Interpolations.LINEAR), new Keyframe(2.0F, KeyframeAnimations.posVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR) ) ) .build(); public static final AnimationDefinition SHOOT = Builder.withLength(1.125F) .addAnimation( "head", new AnimationChannel( Targets.ROTATION, new Keyframe(0.0F, KeyframeAnimations.degreeVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.25F, KeyframeAnimations.degreeVec(-12.5F, 0.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.75F, KeyframeAnimations.degreeVec(-12.5F, 0.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.9167F, KeyframeAnimations.degreeVec(5.0F, 0.0F, 0.0F), Interpolations.LINEAR), new Keyframe(1.125F, KeyframeAnimations.degreeVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR) ) ) .addAnimation( "head", new AnimationChannel( Targets.POSITION, new Keyframe(0.0F, KeyframeAnimations.posVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.25F, KeyframeAnimations.posVec(0.0F, -2.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.7917F, KeyframeAnimations.posVec(0.0F, -1.0F, 2.0F), Interpolations.LINEAR), new Keyframe(0.9583F, KeyframeAnimations.posVec(0.0F, -1.0F, 0.0F), Interpolations.LINEAR), new Keyframe(1.125F, KeyframeAnimations.posVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR) ) ) .addAnimation( "wind_bottom", new AnimationChannel(Targets.ROTATION, new Keyframe(0.0F, KeyframeAnimations.degreeVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR)) ) .addAnimation( "wind_mid", new AnimationChannel( Targets.ROTATION, new Keyframe(0.0F, KeyframeAnimations.degreeVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.25F, KeyframeAnimations.degreeVec(12.5F, 0.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.75F, KeyframeAnimations.degreeVec(12.5F, 0.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.9167F, KeyframeAnimations.degreeVec(-10.0F, 0.0F, 0.0F), Interpolations.LINEAR), new Keyframe(1.125F, KeyframeAnimations.degreeVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR) ) ) .addAnimation( "wind_mid", new AnimationChannel( Targets.POSITION, new Keyframe(0.0F, KeyframeAnimations.posVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.25F, KeyframeAnimations.posVec(0.0F, 0.0F, 5.0F), Interpolations.LINEAR), new Keyframe(0.75F, KeyframeAnimations.posVec(0.0F, 0.0F, 6.0F), Interpolations.LINEAR), new Keyframe(0.9167F, KeyframeAnimations.posVec(0.0F, 0.0F, -2.0F), Interpolations.LINEAR), new Keyframe(1.125F, KeyframeAnimations.posVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR) ) ) .addAnimation( "wind_top", new AnimationChannel( Targets.ROTATION, new Keyframe(0.0F, KeyframeAnimations.degreeVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.25F, KeyframeAnimations.degreeVec(15.0F, 0.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.75F, KeyframeAnimations.degreeVec(15.0F, 0.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.9167F, KeyframeAnimations.degreeVec(-10.0F, 0.0F, 0.0F), Interpolations.LINEAR), new Keyframe(1.125F, KeyframeAnimations.degreeVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR) ) ) .addAnimation( "wind_top", new AnimationChannel( Targets.POSITION, new Keyframe(0.0F, KeyframeAnimations.posVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.25F, KeyframeAnimations.posVec(0.0F, 0.0F, 3.0F), Interpolations.LINEAR), new Keyframe(0.8333F, KeyframeAnimations.posVec(0.0F, 0.0F, 4.0F), Interpolations.LINEAR), new Keyframe(0.9583F, KeyframeAnimations.posVec(0.0F, 0.0F, -2.0F), Interpolations.LINEAR), new Keyframe(1.125F, KeyframeAnimations.posVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR) ) ) .addAnimation( "body", new AnimationChannel( Targets.ROTATION, new Keyframe(0.0F, KeyframeAnimations.degreeVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.25F, KeyframeAnimations.degreeVec(12.5F, 0.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.75F, KeyframeAnimations.degreeVec(12.5F, 0.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.9167F, KeyframeAnimations.degreeVec(-2.5F, 0.0F, 0.0F), Interpolations.LINEAR), new Keyframe(1.125F, KeyframeAnimations.degreeVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR) ) ) .addAnimation( "body", new AnimationChannel( Targets.POSITION, new Keyframe(0.0F, KeyframeAnimations.posVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.25F, KeyframeAnimations.posVec(0.0F, 3.0F, 5.0F), Interpolations.LINEAR), new Keyframe(0.8333F, KeyframeAnimations.posVec(0.0F, 3.0F, 6.0F), Interpolations.LINEAR), new Keyframe(0.9583F, KeyframeAnimations.posVec(0.0F, 3.0F, -1.0F), Interpolations.LINEAR), new Keyframe(1.125F, KeyframeAnimations.posVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR) ) ) .addAnimation( "rods", new AnimationChannel( Targets.ROTATION, new Keyframe(0.0F, KeyframeAnimations.degreeVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR), new Keyframe(1.0F, KeyframeAnimations.degreeVec(0.0F, 360.0F, 0.0F), Interpolations.LINEAR) ) ) .build(); public static final AnimationDefinition JUMP = Builder.withLength(0.5F) .addAnimation( "body", new AnimationChannel( Targets.POSITION, new Keyframe(0.0F, KeyframeAnimations.posVec(0.0F, -10.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.125F, KeyframeAnimations.posVec(0.0F, 11.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.5F, KeyframeAnimations.posVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR) ) ) .addAnimation( "head", new AnimationChannel( Targets.ROTATION, new Keyframe(0.0F, KeyframeAnimations.degreeVec(22.5F, 0.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.2083F, KeyframeAnimations.degreeVec(-19.25F, 0.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.5F, KeyframeAnimations.degreeVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR) ) ) .addAnimation( "wind_body", new AnimationChannel( Targets.SCALE, new Keyframe(0.0F, KeyframeAnimations.scaleVec(1.0, 1.0, 1.0), Interpolations.LINEAR), new Keyframe(0.125F, KeyframeAnimations.scaleVec(1.0, 1.3F, 1.0), Interpolations.LINEAR), new Keyframe(0.5F, KeyframeAnimations.scaleVec(1.0, 1.0, 1.0), Interpolations.LINEAR) ) ) .addAnimation( "wind_bottom", new AnimationChannel( Targets.ROTATION, new Keyframe(0.0F, KeyframeAnimations.degreeVec(0.0F, 90.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.5F, KeyframeAnimations.degreeVec(0.0F, 360.0F, 0.0F), Interpolations.LINEAR) ) ) .addAnimation( "wind_bottom", new AnimationChannel( Targets.SCALE, new Keyframe(0.0F, KeyframeAnimations.scaleVec(1.0, 1.0, 1.0), Interpolations.LINEAR), new Keyframe(0.125F, KeyframeAnimations.scaleVec(1.0, 1.1F, 1.0), Interpolations.LINEAR), new Keyframe(0.5F, KeyframeAnimations.scaleVec(1.0, 1.0, 1.0), Interpolations.LINEAR) ) ) .addAnimation( "wind_mid", new AnimationChannel( Targets.ROTATION, new Keyframe(0.0F, KeyframeAnimations.degreeVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.5F, KeyframeAnimations.degreeVec(0.0F, 180.0F, 0.0F), Interpolations.LINEAR) ) ) .addAnimation( "wind_mid", new AnimationChannel( Targets.POSITION, new Keyframe(0.0F, KeyframeAnimations.posVec(0.0F, -6.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.125F, KeyframeAnimations.posVec(0.0F, 2.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.5F, KeyframeAnimations.posVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR) ) ) .addAnimation( "wind_top", new AnimationChannel( Targets.ROTATION, new Keyframe(0.0F, KeyframeAnimations.degreeVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.5F, KeyframeAnimations.degreeVec(0.0F, 90.0F, 0.0F), Interpolations.LINEAR) ) ) .addAnimation( "wind_top", new AnimationChannel( Targets.POSITION, new Keyframe(0.0F, KeyframeAnimations.posVec(0.0F, -5.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.125F, KeyframeAnimations.posVec(0.0F, 2.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.5F, KeyframeAnimations.posVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR) ) ) .addAnimation( "rods", new AnimationChannel( Targets.ROTATION, new Keyframe(0.0F, KeyframeAnimations.degreeVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.5F, KeyframeAnimations.degreeVec(0.0F, 360.0F, 0.0F), Interpolations.LINEAR) ) ) .build(); public static final AnimationDefinition INHALE = Builder.withLength(2.0F) .addAnimation( "body", new AnimationChannel( Targets.POSITION, new Keyframe(0.0F, KeyframeAnimations.posVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.5F, KeyframeAnimations.posVec(0.0F, -10.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.625F, KeyframeAnimations.posVec(0.0F, -10.0F, 0.0F), Interpolations.LINEAR) ) ) .addAnimation( "head", new AnimationChannel( Targets.ROTATION, new Keyframe(0.0F, KeyframeAnimations.degreeVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.5F, KeyframeAnimations.degreeVec(22.5F, 0.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.625F, KeyframeAnimations.degreeVec(22.5F, 0.0F, 0.0F), Interpolations.LINEAR) ) ) .addAnimation( "wind_body", new AnimationChannel( Targets.SCALE, new Keyframe(0.0F, KeyframeAnimations.scaleVec(1.0, 1.0, 1.0), Interpolations.LINEAR), new Keyframe(0.5F, KeyframeAnimations.scaleVec(1.0, 1.0, 1.0), Interpolations.LINEAR), new Keyframe(0.625F, KeyframeAnimations.scaleVec(1.0, 1.0, 1.0), Interpolations.LINEAR) ) ) .addAnimation( "wind_bottom", new AnimationChannel( Targets.ROTATION, new Keyframe(0.0F, KeyframeAnimations.degreeVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.625F, KeyframeAnimations.degreeVec(0.0F, 90.0F, 0.0F), Interpolations.LINEAR) ) ) .addAnimation( "wind_bottom", new AnimationChannel( Targets.SCALE, new Keyframe(0.0F, KeyframeAnimations.scaleVec(1.0, 1.0, 1.0), Interpolations.LINEAR), new Keyframe(0.5F, KeyframeAnimations.scaleVec(1.0, 1.0, 1.0), Interpolations.LINEAR), new Keyframe(0.625F, KeyframeAnimations.scaleVec(1.0, 1.0, 1.0), Interpolations.LINEAR) ) ) .addAnimation( "wind_mid", new AnimationChannel( Targets.ROTATION, new Keyframe(0.0F, KeyframeAnimations.degreeVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.625F, KeyframeAnimations.degreeVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR) ) ) .addAnimation( "wind_mid", new AnimationChannel( Targets.POSITION, new Keyframe(0.0F, KeyframeAnimations.posVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.5F, KeyframeAnimations.posVec(0.0F, -6.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.625F, KeyframeAnimations.posVec(0.0F, -6.0F, 0.0F), Interpolations.LINEAR) ) ) .addAnimation( "wind_top", new AnimationChannel( Targets.ROTATION, new Keyframe(0.0F, KeyframeAnimations.degreeVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.625F, KeyframeAnimations.degreeVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR) ) ) .addAnimation( "wind_top", new AnimationChannel( Targets.POSITION, new Keyframe(0.0F, KeyframeAnimations.posVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.5F, KeyframeAnimations.posVec(0.0F, -5.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.625F, KeyframeAnimations.posVec(0.0F, -5.0F, 0.0F), Interpolations.LINEAR) ) ) .addAnimation( "rods", new AnimationChannel( Targets.ROTATION, new Keyframe(0.0F, KeyframeAnimations.degreeVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.625F, KeyframeAnimations.degreeVec(0.0F, 360.0F, 0.0F), Interpolations.LINEAR) ) ) .build(); public static final AnimationDefinition SLIDE = Builder.withLength(0.2F) .addAnimation( "body", new AnimationChannel( Targets.POSITION, new Keyframe(0.0F, KeyframeAnimations.posVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.2F, KeyframeAnimations.posVec(0.0F, 0.0F, -6.0F), Interpolations.LINEAR) ) ) .addAnimation( "wind_mid", new AnimationChannel( Targets.POSITION, new Keyframe(0.0F, KeyframeAnimations.posVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.2F, KeyframeAnimations.posVec(0.0F, 0.0F, -3.0F), Interpolations.LINEAR) ) ) .addAnimation( "wind_top", new AnimationChannel( Targets.POSITION, new Keyframe(0.0F, KeyframeAnimations.posVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR), new Keyframe(0.2F, KeyframeAnimations.posVec(0.0F, 0.0F, -2.0F), Interpolations.LINEAR) ) ) .build(); public static final AnimationDefinition SLIDE_BACK = Builder.withLength(0.1F) .addAnimation( "body", new AnimationChannel( Targets.POSITION, new Keyframe(0.0F, KeyframeAnimations.posVec(0.0F, 0.0F, -6.0F), Interpolations.LINEAR), new Keyframe(0.1F, KeyframeAnimations.posVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR) ) ) .addAnimation( "wind_mid", new AnimationChannel( Targets.POSITION, new Keyframe(0.0F, KeyframeAnimations.posVec(0.0F, 0.0F, -3.0F), Interpolations.LINEAR), new Keyframe(0.1F, KeyframeAnimations.posVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR) ) ) .addAnimation( "wind_top", new AnimationChannel( Targets.POSITION, new Keyframe(0.0F, KeyframeAnimations.posVec(0.0F, 0.0F, -2.0F), Interpolations.LINEAR), new Keyframe(0.1F, KeyframeAnimations.posVec(0.0F, 0.0F, 0.0F), Interpolations.LINEAR) ) ) .build(); }