diff --git a/libs/animator-sources.jar b/libs/animator-sources.jar index 655ca0d..e9d733a 100644 Binary files a/libs/animator-sources.jar and b/libs/animator-sources.jar differ diff --git a/libs/animator.jar b/libs/animator.jar index 5bebb92..fa36c13 100644 Binary files a/libs/animator.jar and b/libs/animator.jar differ diff --git a/src/main/java/mc/duzo/timeless/client/TimelessClient.java b/src/main/java/mc/duzo/timeless/client/TimelessClient.java index 80a561e..b7c0594 100644 --- a/src/main/java/mc/duzo/timeless/client/TimelessClient.java +++ b/src/main/java/mc/duzo/timeless/client/TimelessClient.java @@ -25,6 +25,7 @@ import mc.duzo.timeless.suit.client.animation.impl.ironman.mk5.MarkFiveAnimations; import mc.duzo.timeless.suit.client.animation.impl.ironman.mk5.MarkFiveCaseAnimation; import mc.duzo.timeless.suit.client.animation.impl.ironman.mk5.MarkFiveMaskAnimation; +import mc.duzo.timeless.suit.ironman.client.sentry.SentryAnimation; public class TimelessClient implements ClientModInitializer { @Override @@ -68,6 +69,8 @@ public static void init() { public static class IronMan { public static final Supplier MASK_OPEN = AnimationRegistry.instance().register(() -> new SuitAnimationHolder(new Identifier(Timeless.MOD_ID, "ironman_generic_mask_open"), GenericIronManAnimations.MASK_OPEN, new AnimationInfo(AnimationInfo.RenderType.TORSO_HEAD, null, AnimationInfo.Movement.ALLOW, AnimationInfo.Transform.TARGETED), false)); public static final Supplier MASK_CLOSE = AnimationRegistry.instance().register(() -> new SuitAnimationHolder(new Identifier(Timeless.MOD_ID, "ironman_generic_mask_close"), GenericIronManAnimations.MASK_CLOSE, new AnimationInfo(AnimationInfo.RenderType.TORSO_HEAD, null, AnimationInfo.Movement.ALLOW, AnimationInfo.Transform.TARGETED), false)); + public static final Supplier BACK_OPEN = AnimationRegistry.instance().register(() -> new SuitAnimationHolder(new Identifier(Timeless.MOD_ID, "ironman_generic_back_open"), SentryAnimation.SUIT_OPEN, new AnimationInfo(AnimationInfo.RenderType.ALL, AnimationInfo.Perspective.THIRD_PERSON_BACK, AnimationInfo.Movement.DISABLE, AnimationInfo.Transform.ALL), false)); + public static final Supplier BACK_CLOSE = AnimationRegistry.instance().register(() -> new SuitAnimationHolder(new Identifier(Timeless.MOD_ID, "ironman_generic_back_close"), SentryAnimation.SUIT_OPEN2, new AnimationInfo(AnimationInfo.RenderType.ALL, AnimationInfo.Perspective.THIRD_PERSON_BACK, AnimationInfo.Movement.DISABLE, AnimationInfo.Transform.ALL), false)); public static void init() { diff --git a/src/main/java/mc/duzo/timeless/suit/client/animation/SuitAnimationHolder.java b/src/main/java/mc/duzo/timeless/suit/client/animation/SuitAnimationHolder.java index 82812f6..974ca4e 100644 --- a/src/main/java/mc/duzo/timeless/suit/client/animation/SuitAnimationHolder.java +++ b/src/main/java/mc/duzo/timeless/suit/client/animation/SuitAnimationHolder.java @@ -3,9 +3,9 @@ import mc.duzo.animation.generic.AnimationHolder; import mc.duzo.animation.generic.AnimationInfo; -import net.minecraft.client.network.AbstractClientPlayerEntity; import net.minecraft.client.render.entity.animation.Animation; import net.minecraft.client.render.entity.model.EntityModel; +import net.minecraft.entity.LivingEntity; import net.minecraft.util.Identifier; import mc.duzo.timeless.suit.client.render.SuitModel; @@ -20,7 +20,7 @@ public SuitAnimationHolder(Identifier id, Animation anim, AnimationInfo info, bo } @Override - public void update(EntityModel model, float progress, AbstractClientPlayerEntity player) { + public void update(EntityModel model, float progress, LivingEntity player) { SuitAnimationHelper.updateAnimation(this.state, this.animation, progress, 1.0f, (SuitModel) model); this.model = (SuitModel) model; diff --git a/src/main/java/mc/duzo/timeless/suit/client/animation/SuitAnimationTracker.java b/src/main/java/mc/duzo/timeless/suit/client/animation/SuitAnimationTracker.java index 2d5f74f..116fd11 100644 --- a/src/main/java/mc/duzo/timeless/suit/client/animation/SuitAnimationTracker.java +++ b/src/main/java/mc/duzo/timeless/suit/client/animation/SuitAnimationTracker.java @@ -1,40 +1,17 @@ package mc.duzo.timeless.suit.client.animation; -import java.util.HashMap; -import java.util.UUID; - import mc.duzo.animation.generic.AnimationTracker; -import net.minecraft.client.network.AbstractClientPlayerEntity; import net.minecraft.util.Identifier; import mc.duzo.timeless.Timeless; import mc.duzo.timeless.registry.Register; public class SuitAnimationTracker extends AnimationTracker { - private static final HashMap ANIMATIONS = new HashMap<>(); - public SuitAnimationTracker() { super(new Identifier(Timeless.MOD_ID, "suit")); } - public static SuitAnimationHolder getAnimation(AbstractClientPlayerEntity entity) { - UUID uuid = entity.getUuid(); - - SuitAnimationHolder anim = ANIMATIONS.get(uuid); - - if (anim != null && anim.isFinished(entity)) { - ANIMATIONS.remove(uuid); - } - - return anim; - } - public static void addAnimation(UUID uuid, SuitAnimationHolder animation) { - ANIMATIONS.put(uuid, animation); - } - public static void clearAnimation(UUID uuid) { - ANIMATIONS.remove(uuid); - } public static SuitAnimationTracker getInstance() { return Register.Trackers.SUIT; diff --git a/src/main/java/mc/duzo/timeless/suit/client/animation/impl/ironman/mk5/MarkFiveCaseAnimation.java b/src/main/java/mc/duzo/timeless/suit/client/animation/impl/ironman/mk5/MarkFiveCaseAnimation.java index 0e9b062..40426b2 100644 --- a/src/main/java/mc/duzo/timeless/suit/client/animation/impl/ironman/mk5/MarkFiveCaseAnimation.java +++ b/src/main/java/mc/duzo/timeless/suit/client/animation/impl/ironman/mk5/MarkFiveCaseAnimation.java @@ -2,7 +2,7 @@ import mc.duzo.animation.generic.AnimationInfo; -import net.minecraft.client.network.AbstractClientPlayerEntity; +import net.minecraft.entity.LivingEntity; import net.minecraft.util.Identifier; import mc.duzo.timeless.Timeless; @@ -14,7 +14,7 @@ public MarkFiveCaseAnimation(boolean isPuttingOn) { } @Override - protected void onStart(AbstractClientPlayerEntity player) { + protected void onStart(LivingEntity player) { super.onStart(player); if (this.getModel() == null) return; @@ -22,7 +22,7 @@ protected void onStart(AbstractClientPlayerEntity player) { } @Override - protected void onFinished(AbstractClientPlayerEntity player) { + protected void onFinished(LivingEntity player) { super.onFinished(player); if (this.getModel() == null) return; diff --git a/src/main/java/mc/duzo/timeless/suit/client/animation/impl/ironman/mk5/MarkFiveMaskAnimation.java b/src/main/java/mc/duzo/timeless/suit/client/animation/impl/ironman/mk5/MarkFiveMaskAnimation.java index 543055a..e3fb21c 100644 --- a/src/main/java/mc/duzo/timeless/suit/client/animation/impl/ironman/mk5/MarkFiveMaskAnimation.java +++ b/src/main/java/mc/duzo/timeless/suit/client/animation/impl/ironman/mk5/MarkFiveMaskAnimation.java @@ -2,7 +2,7 @@ import mc.duzo.animation.generic.AnimationInfo; -import net.minecraft.client.network.AbstractClientPlayerEntity; +import net.minecraft.entity.LivingEntity; import net.minecraft.util.Identifier; import mc.duzo.timeless.Timeless; @@ -14,10 +14,9 @@ public MarkFiveMaskAnimation(boolean isPuttingOn) { } @Override - protected void onFinished(AbstractClientPlayerEntity player) { + protected void onFinished(LivingEntity player) { super.onFinished(player); if (this.getModel() == null) return; - } } diff --git a/src/main/java/mc/duzo/timeless/suit/ironman/IronManEntity.java b/src/main/java/mc/duzo/timeless/suit/ironman/IronManEntity.java index 9a14511..6c4d662 100644 --- a/src/main/java/mc/duzo/timeless/suit/ironman/IronManEntity.java +++ b/src/main/java/mc/duzo/timeless/suit/ironman/IronManEntity.java @@ -97,7 +97,7 @@ private void tryApply() { } } - private Optional findNearbyPlayer(float range) { + public Optional findNearbyPlayer(float range) { EntityHitResult ray = ProjectileUtil.getEntityCollision(this.getWorld(), this, this.getPos(), this.getPos().offset(this.getMovementDirection().getOpposite(), range).add(0, 1.5, 0), this.getBoundingBox().stretch(this.getVelocity()).expand(1.0), (entity -> (entity instanceof PlayerEntity)));; if (ray == null) return Optional.empty(); return Optional.of((PlayerEntity) ray.getEntity()); diff --git a/src/main/java/mc/duzo/timeless/suit/ironman/client/GenericIronManModel.java b/src/main/java/mc/duzo/timeless/suit/ironman/client/GenericIronManModel.java index 69831cc..7a26f63 100644 --- a/src/main/java/mc/duzo/timeless/suit/ironman/client/GenericIronManModel.java +++ b/src/main/java/mc/duzo/timeless/suit/ironman/client/GenericIronManModel.java @@ -15,6 +15,8 @@ import mc.duzo.timeless.power.impl.FlightPower; import mc.duzo.timeless.suit.client.animation.SuitAnimationHolder; import mc.duzo.timeless.suit.client.render.SuitModel; +import mc.duzo.timeless.suit.ironman.IronManEntity; +import mc.duzo.timeless.suit.ironman.client.sentry.SentryAnimation; public abstract class GenericIronManModel extends SuitModel { private final ModelPart root; @@ -24,6 +26,8 @@ public abstract class GenericIronManModel extends SuitModel { private final ModelPart rightArm; private final ModelPart body; private final ModelPart head; + protected SentryAnimation sentry; + protected GenericIronManModel(ModelPart root) { this.root = root; @@ -33,6 +37,8 @@ protected GenericIronManModel(ModelPart root) { this.leftArm = this.getChild("LeftArm").orElseThrow(); this.body = this.getChild("Body").orElseThrow(); this.head = this.getChild("Head").orElseThrow(); + + this.sentry = new SentryAnimation(this); } protected GenericIronManModel() { this(getTexturedModelData().createModel()); @@ -43,66 +49,256 @@ public static TexturedModelData getTexturedModelData() { ModelPartData modelPartData = modelData.getRoot(); ModelPartData bone = modelPartData.addChild("bone", ModelPartBuilder.create(), ModelTransform.pivot(0.0F, 24.0F, 0.0F)); - ModelPartData RightLeg = bone.addChild("RightLeg", ModelPartBuilder.create().uv(58, 0).cuboid(-2.0F, -0.25F, -2.0F, 4.0F, 8.0F, 4.0F, new Dilation(0.0F)) - .uv(50, 17).cuboid(-2.0F, 0.0F, -2.0F, 4.0F, 8.0F, 4.0F, new Dilation(0.25F)), ModelTransform.pivot(-1.9F, -12.0F, 0.0F)); + ModelPartData RightLeg = bone.addChild("RightLeg", ModelPartBuilder.create().uv(59, 1).cuboid(-2.0F, -0.25F, -2.0F, 4.0F, 8.0F, 3.0F, new Dilation(0.0F)) + .uv(118, 77).cuboid(-2.0F, 0.0F, -2.0F, 4.0F, 8.0F, 1.0F, new Dilation(0.25F)), ModelTransform.pivot(-1.9F, -12.0F, 0.0F)); + + ModelPartData leg6 = RightLeg.addChild("leg6", ModelPartBuilder.create().uv(114, 0).cuboid(0.0F, -4.0F, 0.0F, 2.0F, 8.0F, 0.0F, new Dilation(0.0F)), ModelTransform.pivot(-2.0F, 3.75F, 2.0F)); + + ModelPartData leg7 = RightLeg.addChild("leg7", ModelPartBuilder.create().uv(109, 0).cuboid(-2.0F, -4.0F, 0.0F, 2.0F, 8.0F, 0.0F, new Dilation(0.0F)), ModelTransform.pivot(2.0F, 3.75F, 2.0F)); + + ModelPartData leg8 = RightLeg.addChild("leg8", ModelPartBuilder.create().uv(118, -1).cuboid(0.0F, -4.0F, -0.5F, 0.0F, 8.0F, 1.0F, new Dilation(0.0F)), ModelTransform.pivot(2.0F, 3.75F, 1.5F)); + + ModelPartData leg9 = RightLeg.addChild("leg9", ModelPartBuilder.create().uv(121, -1).cuboid(-0.1F, -5.0F, 0.0F, 0.0F, 8.0F, 1.0F, new Dilation(0.0F)), ModelTransform.pivot(-1.9F, 4.75F, 1.0F)); + + ModelPartData leg10 = RightLeg.addChild("leg10", ModelPartBuilder.create().uv(111, 9).cuboid(-2.0F, 0.0F, -0.5F, 4.0F, 0.0F, 1.0F, new Dilation(0.0F)), ModelTransform.pivot(0.0F, -0.25F, 1.5F)); + + ModelPartData leglayer4 = RightLeg.addChild("leglayer4", ModelPartBuilder.create().uv(107, 77).cuboid(0.0F, -4.0F, -0.5F, 4.0F, 8.0F, 1.0F, new Dilation(0.25F)), ModelTransform.pivot(-2.0F, 4.0F, 1.5F)); + + ModelPartData bone7 = leglayer4.addChild("bone7", ModelPartBuilder.create().uv(107, 87).cuboid(-4.0F, -4.0F, -0.5F, 4.0F, 8.0F, 1.0F, new Dilation(0.25F)), ModelTransform.pivot(4.0F, 0.0F, 0.0F)); + + ModelPartData leglayer5 = RightLeg.addChild("leglayer5", ModelPartBuilder.create().uv(118, 100).mirrored().cuboid(-0.5F, -4.0F, -2.0F, 1.0F, 8.0F, 4.0F, new Dilation(0.25F)).mirrored(false), ModelTransform.pivot(1.5F, 4.0F, 0.0F)); + + ModelPartData bone8 = leglayer5.addChild("bone8", ModelPartBuilder.create().uv(96, 86).cuboid(-0.5F, -4.0F, -2.0F, 1.0F, 8.0F, 4.0F, new Dilation(0.25F)), ModelTransform.pivot(0.0F, 0.0F, 0.0F)); + + ModelPartData leglayer6 = RightLeg.addChild("leglayer6", ModelPartBuilder.create().uv(118, 87).mirrored().cuboid(-0.5F, -4.0F, 0.1F, 1.0F, 8.0F, 4.0F, new Dilation(0.25F)).mirrored(false), ModelTransform.pivot(-1.5F, 4.0F, -2.1F)); + + ModelPartData LeftFoot2 = RightLeg.addChild("LeftFoot2", ModelPartBuilder.create().uv(96, 63).cuboid(-0.1F, -4.0F, -2.0F, 4.0F, 4.0F, 1.0F, new Dilation(0.25F)) + .uv(112, 70).cuboid(-0.1F, -1.0F, -2.0F, 4.0F, 1.0F, 4.0F, new Dilation(0.25F)) + .uv(0, 74).cuboid(-0.1F, -4.0F, -2.0F, 4.0F, 4.0F, 1.0F, new Dilation(0.5F)), ModelTransform.pivot(-1.9F, 11.75F, 0.0F)); + + ModelPartData boot4 = LeftFoot2.addChild("boot4", ModelPartBuilder.create().uv(114, 63).cuboid(-4.0F, -2.0F, -0.5F, 4.0F, 4.0F, 1.0F, new Dilation(0.25F)), ModelTransform.pivot(3.9F, -2.0F, 1.5F)); + + ModelPartData boot5 = LeftFoot2.addChild("boot5", ModelPartBuilder.create().uv(107, 62).cuboid(2.9F, -4.0F, -1.0F, 1.0F, 4.0F, 2.0F, new Dilation(0.25F)), ModelTransform.pivot(0.0F, 0.0F, 0.0F)); + + ModelPartData boot6 = LeftFoot2.addChild("boot6", ModelPartBuilder.create().uv(107, 69).cuboid(-0.1F, -4.0F, -1.0F, 1.0F, 4.0F, 2.0F, new Dilation(0.25F)), ModelTransform.pivot(0.0F, 0.0F, 0.0F)); + + ModelPartData bootlayer4 = LeftFoot2.addChild("bootlayer4", ModelPartBuilder.create().uv(0, 65).cuboid(0.0F, -2.0F, -0.5F, 4.0F, 4.0F, 1.0F, new Dilation(0.5F)), ModelTransform.pivot(-0.1F, -2.0F, 1.5F)); + + ModelPartData bootlayer5 = LeftFoot2.addChild("bootlayer5", ModelPartBuilder.create().uv(11, 71).mirrored().cuboid(-2.1F, -4.0F, -2.0F, 1.0F, 4.0F, 4.0F, new Dilation(0.5F)).mirrored(false), ModelTransform.pivot(0.0F, 0.0F, 0.0F)); + + ModelPartData bootlayer6 = LeftFoot2.addChild("bootlayer6", ModelPartBuilder.create().uv(11, 62).mirrored().cuboid(4.9F, -4.0F, -2.0F, 1.0F, 4.0F, 4.0F, new Dilation(0.5F)).mirrored(false), ModelTransform.pivot(0.0F, 0.0F, 0.0F)); + + ModelPartData foot_left_beam2 = LeftFoot2.addChild("foot_left_beam2", ModelPartBuilder.create().uv(13, 47).cuboid(-2.0F, -1.25F, -2.0F, 4.0F, 1.0F, 4.0F, new Dilation(0.5F)), ModelTransform.pivot(1.9F, 0.25F, 0.0F)); + + ModelPartData LeftLeg = bone.addChild("LeftLeg", ModelPartBuilder.create().uv(59, 1).mirrored().cuboid(-2.0F, -0.25F, -2.0F, 4.0F, 8.0F, 3.0F, new Dilation(0.0F)).mirrored(false) + .uv(118, 77).mirrored().cuboid(-2.0F, 0.0F, -2.0F, 4.0F, 8.0F, 1.0F, new Dilation(0.25F)).mirrored(false), ModelTransform.pivot(1.9F, -12.0F, 0.0F)); + + ModelPartData leg = LeftLeg.addChild("leg", ModelPartBuilder.create().uv(114, 0).mirrored().cuboid(0.0F, -4.0F, 0.0F, 2.0F, 8.0F, 0.0F, new Dilation(0.0F)).mirrored(false), ModelTransform.pivot(-2.0F, 3.75F, 2.0F)); + + ModelPartData leg2 = LeftLeg.addChild("leg2", ModelPartBuilder.create().uv(109, 0).mirrored().cuboid(-2.0F, -4.0F, 0.0F, 2.0F, 8.0F, 0.0F, new Dilation(0.0F)).mirrored(false), ModelTransform.pivot(2.0F, 3.75F, 2.0F)); + + ModelPartData leg3 = LeftLeg.addChild("leg3", ModelPartBuilder.create().uv(118, -1).mirrored().cuboid(0.0F, -4.0F, -0.5F, 0.0F, 8.0F, 1.0F, new Dilation(0.0F)).mirrored(false), ModelTransform.pivot(2.0F, 3.75F, 1.5F)); + + ModelPartData leg4 = LeftLeg.addChild("leg4", ModelPartBuilder.create().uv(121, -1).mirrored().cuboid(-0.1F, -5.0F, 0.0F, 0.0F, 8.0F, 1.0F, new Dilation(0.0F)).mirrored(false), ModelTransform.pivot(-1.9F, 4.75F, 1.0F)); + + ModelPartData leg5 = LeftLeg.addChild("leg5", ModelPartBuilder.create().uv(111, 9).mirrored().cuboid(-2.0F, 0.0F, -0.5F, 4.0F, 0.0F, 1.0F, new Dilation(0.0F)).mirrored(false), ModelTransform.pivot(0.0F, -0.25F, 1.5F)); + + ModelPartData leglayer = LeftLeg.addChild("leglayer", ModelPartBuilder.create().uv(107, 77).mirrored().cuboid(-4.0F, -4.0F, -0.5F, 4.0F, 8.0F, 1.0F, new Dilation(0.25F)).mirrored(false), ModelTransform.pivot(2.0F, 4.0F, 1.5F)); - ModelPartData RightFoot = RightLeg.addChild("RightFoot", ModelPartBuilder.create().uv(75, 0).cuboid(-3.9F, -4.0F, -2.0F, 4.0F, 4.0F, 4.0F, new Dilation(0.25F)) - .uv(54, 34).cuboid(-3.9F, -4.0F, -2.0F, 4.0F, 4.0F, 4.0F, new Dilation(0.5F)), ModelTransform.pivot(1.9F, 11.75F, 0.0F)); + ModelPartData bone5 = leglayer.addChild("bone5", ModelPartBuilder.create().uv(107, 87).mirrored().cuboid(-4.0F, -4.0F, -0.5F, 4.0F, 8.0F, 1.0F, new Dilation(0.25F)).mirrored(false), ModelTransform.pivot(0.0F, 0.0F, 0.0F)); - ModelPartData foot_right_beam = RightFoot.addChild("foot_right_beam", ModelPartBuilder.create().uv(13, 47).cuboid(-2.0F, -1.25F, -2.0F, 4.0F, 1.0F, 4.0F, new Dilation(0.5F)), ModelTransform.pivot(-1.9F, 0.25F, 0.0F)); + ModelPartData leglayer2 = LeftLeg.addChild("leglayer2", ModelPartBuilder.create().uv(96, 74).mirrored().cuboid(-0.5F, -4.0F, -2.0F, 1.0F, 8.0F, 4.0F, new Dilation(0.25F)).mirrored(false), ModelTransform.pivot(1.5F, 4.0F, 0.0F)); - ModelPartData LeftLeg = bone.addChild("LeftLeg", ModelPartBuilder.create().uv(58, 0).mirrored().cuboid(-2.0F, -0.25F, -2.0F, 4.0F, 8.0F, 4.0F, new Dilation(0.0F)).mirrored(false) - .uv(50, 17).mirrored().cuboid(-2.0F, 0.0F, -2.0F, 4.0F, 8.0F, 4.0F, new Dilation(0.25F)).mirrored(false), ModelTransform.pivot(1.9F, -12.0F, 0.0F)); + ModelPartData bone6 = leglayer2.addChild("bone6", ModelPartBuilder.create().uv(96, 86).mirrored().cuboid(-0.5F, -4.0F, -2.0F, 1.0F, 8.0F, 4.0F, new Dilation(0.25F)).mirrored(false), ModelTransform.pivot(0.0F, 0.0F, 0.0F)); - ModelPartData LeftFoot = LeftLeg.addChild("LeftFoot", ModelPartBuilder.create().uv(75, 0).mirrored().cuboid(-0.1F, -4.0F, -2.0F, 4.0F, 4.0F, 4.0F, new Dilation(0.25F)).mirrored(false) - .uv(54, 34).mirrored().cuboid(-0.1F, -4.0F, -2.0F, 4.0F, 4.0F, 4.0F, new Dilation(0.5F)).mirrored(false), ModelTransform.pivot(-1.9F, 11.75F, 0.0F)); + ModelPartData leglayer3 = LeftLeg.addChild("leglayer3", ModelPartBuilder.create().uv(85, 74).mirrored().cuboid(-0.5F, -4.0F, 0.1F, 1.0F, 8.0F, 4.0F, new Dilation(0.25F)).mirrored(false), ModelTransform.pivot(-1.5F, 4.0F, -2.1F)); + + ModelPartData LeftFoot = LeftLeg.addChild("LeftFoot", ModelPartBuilder.create().uv(96, 63).mirrored().cuboid(-0.1F, -4.0F, -2.0F, 4.0F, 4.0F, 1.0F, new Dilation(0.25F)).mirrored(false) + .uv(112, 70).mirrored().cuboid(-0.1F, -1.0F, -2.0F, 4.0F, 1.0F, 4.0F, new Dilation(0.25F)).mirrored(false) + .uv(0, 74).mirrored().cuboid(-0.1F, -4.0F, -2.0F, 4.0F, 4.0F, 1.0F, new Dilation(0.5F)).mirrored(false), ModelTransform.pivot(-1.9F, 11.75F, 0.0F)); + + ModelPartData boot = LeftFoot.addChild("boot", ModelPartBuilder.create().uv(114, 63).mirrored().cuboid(-4.0F, -2.0F, -0.5F, 4.0F, 4.0F, 1.0F, new Dilation(0.25F)).mirrored(false), ModelTransform.pivot(3.9F, -2.0F, 1.5F)); + + ModelPartData boot2 = LeftFoot.addChild("boot2", ModelPartBuilder.create().uv(107, 62).mirrored().cuboid(2.9F, -4.0F, -1.0F, 1.0F, 4.0F, 2.0F, new Dilation(0.25F)).mirrored(false), ModelTransform.pivot(0.0F, 0.0F, 0.0F)); + + ModelPartData boot3 = LeftFoot.addChild("boot3", ModelPartBuilder.create().uv(107, 69).mirrored().cuboid(-0.1F, -4.0F, -1.0F, 1.0F, 4.0F, 2.0F, new Dilation(0.25F)).mirrored(false), ModelTransform.pivot(0.0F, 0.0F, 0.0F)); + + ModelPartData bootlayer = LeftFoot.addChild("bootlayer", ModelPartBuilder.create().uv(0, 65).mirrored().cuboid(-4.0F, -2.0F, -0.5F, 4.0F, 4.0F, 1.0F, new Dilation(0.5F)).mirrored(false), ModelTransform.pivot(3.9F, -2.0F, 1.5F)); + + ModelPartData bootlayer2 = LeftFoot.addChild("bootlayer2", ModelPartBuilder.create().uv(11, 71).mirrored().cuboid(2.9F, -4.0F, -2.0F, 1.0F, 4.0F, 4.0F, new Dilation(0.5F)).mirrored(false), ModelTransform.pivot(0.0F, 0.0F, 0.0F)); + + ModelPartData bootlayer3 = LeftFoot.addChild("bootlayer3", ModelPartBuilder.create().uv(11, 62).mirrored().cuboid(-0.1F, -4.0F, -2.0F, 1.0F, 4.0F, 4.0F, new Dilation(0.5F)).mirrored(false), ModelTransform.pivot(0.0F, 0.0F, 0.0F)); ModelPartData foot_left_beam = LeftFoot.addChild("foot_left_beam", ModelPartBuilder.create().uv(13, 47).mirrored().cuboid(-2.0F, -1.25F, -2.0F, 4.0F, 1.0F, 4.0F, new Dilation(0.5F)).mirrored(false), ModelTransform.pivot(1.9F, 0.25F, 0.0F)); - ModelPartData RightArm = bone.addChild("RightArm", ModelPartBuilder.create().uv(47, 47).mirrored().cuboid(-3.0F, -2.0F, -2.0F, 4.0F, 12.0F, 4.0F, new Dilation(0.0F)).mirrored(false) - .uv(30, 47).mirrored().cuboid(-3.0F, -2.0F, -2.0F, 4.0F, 12.0F, 4.0F, new Dilation(0.25F)).mirrored(false) - .uv(33, 17).mirrored().cuboid(-3.0F, -2.0F, -2.0F, 4.0F, 4.0F, 4.0F, new Dilation(0.75F)).mirrored(false), ModelTransform.pivot(-5.0F, -22.0F, 0.0F)); + ModelPartData RightArm = bone.addChild("RightArm", ModelPartBuilder.create().uv(59, 46).mirrored().cuboid(-1.0F, 10.0F, 1.0F, 4.0F, 0.0F, 1.0F, new Dilation(0.0F)).mirrored(false) + .uv(48, 48).mirrored().cuboid(-1.0F, -2.0F, -2.0F, 4.0F, 12.0F, 3.0F, new Dilation(0.0F)).mirrored(false) + .uv(33, 17).mirrored().cuboid(-1.0F, -2.0F, -2.0F, 4.0F, 4.0F, 4.0F, new Dilation(0.75F)).mirrored(false), ModelTransform.pivot(-7.0F, -22.0F, 0.0F)); + + ModelPartData arm4 = RightArm.addChild("arm4", ModelPartBuilder.create().uv(72, 48).mirrored().cuboid(-2.0F, -6.0F, 0.0F, 2.0F, 12.0F, 0.0F, new Dilation(0.0F)).mirrored(false), ModelTransform.pivot(3.0F, 4.0F, 2.0F)); + + ModelPartData arm7 = RightArm.addChild("arm7", ModelPartBuilder.create().uv(68, 48).mirrored().cuboid(0.0F, -6.0F, 0.0F, 2.0F, 12.0F, 0.0F, new Dilation(0.0F)).mirrored(false), ModelTransform.pivot(-1.0F, 4.0F, 2.0F)); + + ModelPartData arm8 = RightArm.addChild("arm8", ModelPartBuilder.create().uv(64, 48).mirrored().cuboid(0.0F, -6.0F, -0.5F, 0.0F, 12.0F, 1.0F, new Dilation(0.0F)).mirrored(false), ModelTransform.pivot(3.0F, 4.0F, 1.5F)); + + ModelPartData arm9 = RightArm.addChild("arm9", ModelPartBuilder.create().uv(59, 47).mirrored().cuboid(-2.0F, 0.0F, -0.5F, 4.0F, 0.0F, 1.0F, new Dilation(0.0F)).mirrored(false), ModelTransform.pivot(1.0F, -2.0F, 1.5F)); + + ModelPartData arm10 = RightArm.addChild("arm10", ModelPartBuilder.create().uv(64, 48).mirrored().cuboid(8.0F, -24.0F, 1.0F, 0.0F, 12.0F, 1.0F, new Dilation(0.0F)).mirrored(false), ModelTransform.pivot(-9.0F, 22.0F, 0.0F)); + + ModelPartData armlayer8 = RightArm.addChild("armlayer8", ModelPartBuilder.create().uv(2, 35).mirrored().cuboid(4.0F, -24.0F, -2.0F, 4.0F, 12.0F, 1.0F, new Dilation(0.25F)).mirrored(false), ModelTransform.pivot(-5.0F, 22.0F, 0.0F)); - ModelPartData LeftArmLayer_r1 = RightArm.addChild("LeftArmLayer_r1", ModelPartBuilder.create().uv(75, 20).mirrored().cuboid(-1.0F, -1.0F, -3.0F, 2.0F, 2.0F, 6.0F, new Dilation(0.25F)).mirrored(false), ModelTransform.of(-0.75F, 0.0F, 0.0F, 0.0F, 0.0F, 0.3927F)); + ModelPartData armlayer9 = RightArm.addChild("armlayer9", ModelPartBuilder.create().uv(89, 12).mirrored().cuboid(4.0F, -24.0F, -2.0F, 4.0F, 1.0F, 4.0F, new Dilation(0.25F)).mirrored(false), ModelTransform.pivot(-5.0F, 22.0F, 0.0F)); - ModelPartData right_beam = RightArm.addChild("right_beam", ModelPartBuilder.create().uv(13, 47).cuboid(-2.0F, -1.25F, -2.0F, 4.0F, 1.0F, 4.0F, new Dilation(0.25F)), ModelTransform.pivot(-1.0F, 10.25F, 0.0F)); + ModelPartData armlayer10 = RightArm.addChild("armlayer10", ModelPartBuilder.create().uv(106, 12).mirrored().cuboid(-2.0F, -0.5F, -2.0F, 4.0F, 1.0F, 4.0F, new Dilation(0.25F)).mirrored(false), ModelTransform.pivot(1.0F, -1.5F, 0.0F)); - ModelPartData rocket = RightArm.addChild("rocket", ModelPartBuilder.create().uv(25, 65).mirrored().cuboid(-1.5F, 0.0F, -4.025F, 3.0F, 2.0F, 4.0F, new Dilation(0.0F)).mirrored(false), ModelTransform.pivot(-0.85F, -2.725F, 2.25F)); + ModelPartData armlayer11 = RightArm.addChild("armlayer11", ModelPartBuilder.create().uv(89, 6).mirrored().cuboid(4.0F, -13.0F, -2.0F, 4.0F, 1.0F, 4.0F, new Dilation(0.25F)).mirrored(false), ModelTransform.pivot(-5.0F, 22.0F, 0.0F)); - ModelPartData LeftArm = bone.addChild("LeftArm", ModelPartBuilder.create().uv(47, 47).cuboid(-1.0F, -2.0F, -2.0F, 4.0F, 12.0F, 4.0F, new Dilation(0.0F)) - .uv(30, 47).cuboid(-1.0F, -2.0F, -2.0F, 4.0F, 12.0F, 4.0F, new Dilation(0.25F)) + ModelPartData armlayer12 = RightArm.addChild("armlayer12", ModelPartBuilder.create().uv(1, 101).mirrored().cuboid(4.0F, -24.0F, -2.0F, 1.0F, 12.0F, 4.0F, new Dilation(0.25F)).mirrored(false), ModelTransform.pivot(-5.0F, 22.0F, 0.0F)); + + ModelPartData armlayer13 = RightArm.addChild("armlayer13", ModelPartBuilder.create().uv(12, 101).mirrored().cuboid(7.0F, -24.0F, -2.0F, 1.0F, 12.0F, 4.0F, new Dilation(0.25F)).mirrored(false), ModelTransform.pivot(-8.0F, 22.0F, 0.0F)); + + ModelPartData armlayer14 = RightArm.addChild("armlayer14", ModelPartBuilder.create().uv(2, 50).mirrored().cuboid(-4.0F, -6.0F, -0.5F, 4.0F, 12.0F, 1.0F, new Dilation(0.25F)).mirrored(false), ModelTransform.pivot(3.0F, 4.0F, 1.5F)); + + ModelPartData left_beam2 = RightArm.addChild("left_beam2", ModelPartBuilder.create().uv(13, 47).mirrored().cuboid(-2.0F, -1.25F, -2.0F, 4.0F, 1.0F, 4.0F, new Dilation(0.25F)).mirrored(false), ModelTransform.pivot(1.0F, 10.25F, 0.0F)); + + ModelPartData shoulder6 = RightArm.addChild("shoulder6", ModelPartBuilder.create().uv(77, 69).mirrored().cuboid(-2.0F, -0.5F, -2.0F, 4.0F, 1.0F, 4.0F, new Dilation(0.75F)).mirrored(false), ModelTransform.pivot(1.0F, -1.5F, 0.0F)); + + ModelPartData shoulder7 = RightArm.addChild("shoulder7", ModelPartBuilder.create().uv(96, 17).mirrored().cuboid(-0.5F, -2.0F, -2.0F, 1.0F, 4.0F, 4.0F, new Dilation(0.75F)).mirrored(false), ModelTransform.pivot(2.5F, 0.0F, 0.0F)); + + ModelPartData shoulder8 = RightArm.addChild("shoulder8", ModelPartBuilder.create().uv(106, 17).mirrored().cuboid(-0.5F, -2.0F, -2.0F, 1.0F, 4.0F, 4.0F, new Dilation(0.75F)).mirrored(false), ModelTransform.pivot(-0.5F, 0.0F, 0.0F)); + + ModelPartData shoulder9 = RightArm.addChild("shoulder9", ModelPartBuilder.create().uv(86, 20).mirrored().cuboid(0.7F, -2.0F, -0.5F, 4.0F, 4.0F, 1.0F, new Dilation(0.75F)).mirrored(false), ModelTransform.pivot(-1.7F, 0.0F, 1.5F)); + + ModelPartData bone4 = shoulder9.addChild("bone4", ModelPartBuilder.create().uv(117, 20).mirrored().cuboid(-2.0F, -2.0F, -0.5F, 4.0F, 4.0F, 1.0F, new Dilation(0.75F)).mirrored(false), ModelTransform.pivot(2.7F, 0.0F, 0.0F)); + + ModelPartData rocket3 = RightArm.addChild("rocket3", ModelPartBuilder.create().uv(25, 65).mirrored().cuboid(-1.5F, 0.0F, -4.025F, 3.0F, 2.0F, 4.0F, new Dilation(0.0F)).mirrored(false), ModelTransform.pivot(0.85F, -2.725F, 2.25F)); + + ModelPartData fastening2 = RightArm.addChild("fastening2", ModelPartBuilder.create(), ModelTransform.pivot(0.75F, 0.0F, -3.2F)); + + ModelPartData LeftArmLayer_r1 = fastening2.addChild("LeftArmLayer_r1", ModelPartBuilder.create().uv(75, 20).mirrored().cuboid(-1.0F, -1.0F, -3.0F, 2.0F, 2.0F, 6.0F, new Dilation(0.25F)).mirrored(false), ModelTransform.of(0.5F, 0.0F, 3.2F, 0.0F, 0.0F, 0.3927F)); + + ModelPartData LeftArm = bone.addChild("LeftArm", ModelPartBuilder.create().uv(59, 46).cuboid(-1.0F, 10.0F, 1.0F, 4.0F, 0.0F, 1.0F, new Dilation(0.0F)) + .uv(48, 48).cuboid(-1.0F, -2.0F, -2.0F, 4.0F, 12.0F, 3.0F, new Dilation(0.0F)) .uv(33, 17).cuboid(-1.0F, -2.0F, -2.0F, 4.0F, 4.0F, 4.0F, new Dilation(0.75F)), ModelTransform.pivot(5.0F, -22.0F, 0.0F)); - ModelPartData LeftArmLayer_r2 = LeftArm.addChild("LeftArmLayer_r2", ModelPartBuilder.create().uv(75, 20).cuboid(-1.0F, -1.0F, -3.0F, 2.0F, 2.0F, 6.0F, new Dilation(0.25F)), ModelTransform.of(0.75F, 0.0F, 0.0F, 0.0F, 0.0F, -0.3927F)); + ModelPartData arm = LeftArm.addChild("arm", ModelPartBuilder.create().uv(72, 48).cuboid(-2.0F, -6.0F, 0.0F, 2.0F, 12.0F, 0.0F, new Dilation(0.0F)), ModelTransform.pivot(3.0F, 4.0F, 2.0F)); + + ModelPartData arm2 = LeftArm.addChild("arm2", ModelPartBuilder.create().uv(68, 48).cuboid(0.0F, -6.0F, 0.0F, 2.0F, 12.0F, 0.0F, new Dilation(0.0F)), ModelTransform.pivot(-1.0F, 4.0F, 2.0F)); + + ModelPartData arm3 = LeftArm.addChild("arm3", ModelPartBuilder.create().uv(64, 48).cuboid(0.0F, -6.0F, -0.5F, 0.0F, 12.0F, 1.0F, new Dilation(0.0F)), ModelTransform.pivot(3.0F, 4.0F, 1.5F)); + + ModelPartData arm5 = LeftArm.addChild("arm5", ModelPartBuilder.create().uv(59, 47).cuboid(-2.0F, 0.0F, -0.5F, 4.0F, 0.0F, 1.0F, new Dilation(0.0F)), ModelTransform.pivot(1.0F, -2.0F, 1.5F)); + + ModelPartData arm6 = LeftArm.addChild("arm6", ModelPartBuilder.create().uv(64, 48).cuboid(8.0F, -24.0F, 1.0F, 0.0F, 12.0F, 1.0F, new Dilation(0.0F)), ModelTransform.pivot(-9.0F, 22.0F, 0.0F)); + + ModelPartData armlayer = LeftArm.addChild("armlayer", ModelPartBuilder.create().uv(2, 35).cuboid(4.0F, -24.0F, -2.0F, 4.0F, 12.0F, 1.0F, new Dilation(0.25F)), ModelTransform.pivot(-5.0F, 22.0F, 0.0F)); + + ModelPartData armlayer2 = LeftArm.addChild("armlayer2", ModelPartBuilder.create().uv(89, 12).cuboid(4.0F, -24.0F, -2.0F, 4.0F, 1.0F, 4.0F, new Dilation(0.25F)), ModelTransform.pivot(-5.0F, 22.0F, 0.0F)); + + ModelPartData armlayer3 = LeftArm.addChild("armlayer3", ModelPartBuilder.create().uv(106, 12).cuboid(-2.0F, -0.5F, -2.0F, 4.0F, 1.0F, 4.0F, new Dilation(0.25F)), ModelTransform.pivot(1.0F, -1.5F, 0.0F)); + + ModelPartData armlayer4 = LeftArm.addChild("armlayer4", ModelPartBuilder.create().uv(89, 6).cuboid(4.0F, -13.0F, -2.0F, 4.0F, 1.0F, 4.0F, new Dilation(0.25F)), ModelTransform.pivot(-5.0F, 22.0F, 0.0F)); + + ModelPartData armlayer5 = LeftArm.addChild("armlayer5", ModelPartBuilder.create().uv(1, 101).cuboid(7.0F, -24.0F, -2.0F, 1.0F, 12.0F, 4.0F, new Dilation(0.25F)), ModelTransform.pivot(-5.0F, 22.0F, 0.0F)); + + ModelPartData armlayer6 = LeftArm.addChild("armlayer6", ModelPartBuilder.create().uv(12, 101).cuboid(7.0F, -24.0F, -2.0F, 1.0F, 12.0F, 4.0F, new Dilation(0.25F)), ModelTransform.pivot(-5.0F, 22.0F, 0.0F)); + + ModelPartData armlayer7 = LeftArm.addChild("armlayer7", ModelPartBuilder.create().uv(2, 50).cuboid(0.0F, -6.0F, -0.5F, 4.0F, 12.0F, 1.0F, new Dilation(0.25F)), ModelTransform.pivot(-1.0F, 4.0F, 1.5F)); ModelPartData left_beam = LeftArm.addChild("left_beam", ModelPartBuilder.create().uv(13, 47).cuboid(-2.0F, -1.25F, -2.0F, 4.0F, 1.0F, 4.0F, new Dilation(0.25F)), ModelTransform.pivot(1.0F, 10.25F, 0.0F)); + ModelPartData shoulder2 = LeftArm.addChild("shoulder2", ModelPartBuilder.create().uv(77, 69).cuboid(-2.0F, -0.5F, -2.0F, 4.0F, 1.0F, 4.0F, new Dilation(0.75F)), ModelTransform.pivot(1.0F, -1.5F, 0.0F)); + + ModelPartData shoulder3 = LeftArm.addChild("shoulder3", ModelPartBuilder.create().uv(96, 17).cuboid(-0.5F, -2.0F, -2.0F, 1.0F, 4.0F, 4.0F, new Dilation(0.75F)), ModelTransform.pivot(2.5F, 0.0F, 0.0F)); + + ModelPartData shoulder4 = LeftArm.addChild("shoulder4", ModelPartBuilder.create().uv(106, 17).cuboid(-0.5F, -2.0F, -2.0F, 1.0F, 4.0F, 4.0F, new Dilation(0.75F)), ModelTransform.pivot(-0.5F, 0.0F, 0.0F)); + + ModelPartData shoulder5 = LeftArm.addChild("shoulder5", ModelPartBuilder.create().uv(86, 20).cuboid(-4.8F, -2.0F, -0.5F, 4.0F, 4.0F, 1.0F, new Dilation(0.75F)), ModelTransform.pivot(3.8F, 0.0F, 1.5F)); + + ModelPartData bone3 = shoulder5.addChild("bone3", ModelPartBuilder.create().uv(117, 20).cuboid(-2.0F, -2.0F, -0.5F, 4.0F, 4.0F, 1.0F, new Dilation(0.75F)), ModelTransform.pivot(-2.8F, 0.0F, 0.0F)); + ModelPartData rocket2 = LeftArm.addChild("rocket2", ModelPartBuilder.create().uv(25, 65).cuboid(-1.5F, 0.0F, -4.025F, 3.0F, 2.0F, 4.0F, new Dilation(0.0F)), ModelTransform.pivot(0.85F, -2.725F, 2.25F)); - ModelPartData Body = bone.addChild("Body", ModelPartBuilder.create().uv(33, 0).cuboid(-4.0F, 0.0F, -2.0F, 8.0F, 12.0F, 4.0F, new Dilation(0.0F)) + ModelPartData fastening = LeftArm.addChild("fastening", ModelPartBuilder.create(), ModelTransform.pivot(0.75F, 0.0F, -3.2F)); + + ModelPartData LeftArmLayer_r2 = fastening.addChild("LeftArmLayer_r2", ModelPartBuilder.create().uv(75, 20).cuboid(-1.0F, -1.0F, -3.0F, 2.0F, 2.0F, 6.0F, new Dilation(0.25F)), ModelTransform.of(0.0F, 0.0F, 3.2F, 0.0F, 0.0F, -0.3927F)); + + ModelPartData Body = bone.addChild("Body", ModelPartBuilder.create().uv(34, 1).cuboid(-4.0F, 0.0F, -2.0F, 8.0F, 12.0F, 3.0F, new Dilation(0.0F)) .uv(29, 30).cuboid(-4.0F, 0.0F, -2.0F, 8.0F, 12.0F, 4.0F, new Dilation(0.275F)) .uv(60, 60).cuboid(-3.5F, 0.5F, -2.0F, 7.0F, 5.0F, 4.0F, new Dilation(0.975F)), ModelTransform.pivot(0.0F, -24.0F, 0.0F)); - ModelPartData BodyLayer_r1 = Body.addChild("BodyLayer_r1", ModelPartBuilder.create().uv(40, 65).cuboid(-6.0F, 0.0F, -2.0F, 7.0F, 4.0F, 2.0F, new Dilation(0.0F)), ModelTransform.of(2.5F, 0.25F, 3.0F, 0.3491F, 0.0F, 0.0F)); + ModelPartData BodyLayer_r1 = Body.addChild("BodyLayer_r1", ModelPartBuilder.create().uv(60, 70).cuboid(-4.5F, 0.0F, 0.0F, 9.0F, 5.0F, 2.0F, new Dilation(0.0F)), ModelTransform.of(0.0F, 0.25F, -3.0F, -0.1745F, 0.0F, 0.0F)); + + ModelPartData body3 = Body.addChild("body3", ModelPartBuilder.create().uv(96, 30).cuboid(0.0F, -6.0F, 0.0F, 3.0F, 12.0F, 0.0F, new Dilation(0.0F)), ModelTransform.pivot(-4.0F, 6.0F, 2.0F)); + + ModelPartData bone12 = body3.addChild("bone12", ModelPartBuilder.create().uv(108, 30).cuboid(-0.5F, -6.0F, 0.0F, 1.0F, 12.0F, 0.0F, new Dilation(0.0F)), ModelTransform.pivot(3.5F, 0.0F, 0.0F)); + + ModelPartData body2 = Body.addChild("body2", ModelPartBuilder.create().uv(86, 30).cuboid(-3.0F, -6.0F, 0.0F, 3.0F, 12.0F, 0.0F, new Dilation(0.0F)), ModelTransform.pivot(4.0F, 6.0F, 2.0F)); + + ModelPartData bone11 = body2.addChild("bone11", ModelPartBuilder.create().uv(112, 30).cuboid(-0.5F, -6.0F, 0.0F, 1.0F, 12.0F, 0.0F, new Dilation(0.0F)), ModelTransform.pivot(-3.5F, 0.0F, 0.0F)); + + ModelPartData body4 = Body.addChild("body4", ModelPartBuilder.create().uv(104, 29).cuboid(0.0F, -6.0F, -0.5F, 0.0F, 12.0F, 1.0F, new Dilation(0.0F)), ModelTransform.pivot(-4.0F, 6.0F, 1.5F)); + + ModelPartData body5 = Body.addChild("body5", ModelPartBuilder.create().uv(104, 29).cuboid(8.0F, -24.0F, 0.0F, 0.0F, 12.0F, 1.0F, new Dilation(0.0F)), ModelTransform.pivot(-4.0F, 24.0F, 1.0F)); + + ModelPartData body6 = Body.addChild("body6", ModelPartBuilder.create().uv(84, 45).cuboid(-4.0F, 0.0F, -0.5F, 8.0F, 0.0F, 1.0F, new Dilation(0.0F)), ModelTransform.pivot(0.0F, 12.0F, 1.5F)); + + ModelPartData body7 = Body.addChild("body7", ModelPartBuilder.create().uv(84, 43).cuboid(-8.0F, -12.0F, 0.0F, 8.0F, 0.0F, 1.0F, new Dilation(0.0F)), ModelTransform.pivot(4.0F, 12.0F, 1.0F)); + + ModelPartData bodylayer = Body.addChild("bodylayer", ModelPartBuilder.create().uv(77, 48).cuboid(-4.0F, 0.0F, -0.5F, 8.0F, 12.0F, 1.0F, new Dilation(0.275F)), ModelTransform.pivot(0.0F, 0.0F, 1.5F)); - ModelPartData BodyLayer_r2 = Body.addChild("BodyLayer_r2", ModelPartBuilder.create().uv(60, 70).cuboid(-4.5F, 0.0F, 0.0F, 9.0F, 5.0F, 2.0F, new Dilation(0.0F)), ModelTransform.of(0.0F, 0.25F, -3.0F, -0.1745F, 0.0F, 0.0F)); + ModelPartData bodylayer2 = Body.addChild("bodylayer2", ModelPartBuilder.create().uv(77, 48).mirrored().cuboid(-4.0F, 0.0F, -0.5F, 8.0F, 12.0F, 1.0F, new Dilation(0.275F)).mirrored(false), ModelTransform.pivot(0.0F, 0.0F, 1.5F)); ModelPartData powerthing = Body.addChild("powerthing", ModelPartBuilder.create().uv(18, 34).cuboid(-2.0F, -2.0F, 0.25F, 4.0F, 4.0F, 1.0F, new Dilation(0.275F)), ModelTransform.pivot(0.0F, 2.8F, -2.35F)); - ModelPartData Head = bone.addChild("Head", ModelPartBuilder.create().uv(0, 17).cuboid(-4.0F, -8.0F, -4.0F, 8.0F, 8.0F, 8.0F, new Dilation(0.0F)) - .uv(36, 79).cuboid(-4.0F, -8.0F, -2.0F, 8.0F, 8.0F, 6.0F, new Dilation(0.5F)), ModelTransform.pivot(0.0F, -24.0F, 0.0F)); + ModelPartData bodylayerlayer = Body.addChild("bodylayerlayer", ModelPartBuilder.create().uv(97, 49).cuboid(-7.5F, -2.5F, -0.5F, 7.0F, 5.0F, 1.0F, new Dilation(0.975F)), ModelTransform.pivot(4.0F, 3.0F, 1.5F)); + + ModelPartData bodylayerlayer2 = Body.addChild("bodylayerlayer2", ModelPartBuilder.create().uv(112, 49).cuboid(0.5F, -2.5F, -0.5F, 7.0F, 5.0F, 1.0F, new Dilation(0.975F)), ModelTransform.pivot(-4.0F, 3.0F, 1.5F)); + + ModelPartData backthing = Body.addChild("backthing", ModelPartBuilder.create(), ModelTransform.pivot(0.0F, 2.4714F, 2.7443F)); + + ModelPartData BodyLayer_r2 = backthing.addChild("BodyLayer_r2", ModelPartBuilder.create().uv(40, 65).cuboid(-6.0F, 0.0F, -2.0F, 7.0F, 4.0F, 2.0F, new Dilation(0.0F)), ModelTransform.of(2.5F, -2.2214F, 0.2557F, 0.3491F, 0.0F, 0.0F)); + + ModelPartData Head = bone.addChild("Head", ModelPartBuilder.create().uv(3, 20).cuboid(-4.0F, -8.0F, -4.0F, 8.0F, 8.0F, 5.0F, new Dilation(0.0F)), ModelTransform.pivot(0.0F, -24.0F, 0.0F)); + + ModelPartData head2 = Head.addChild("head2", ModelPartBuilder.create().uv(0, 16).mirrored().cuboid(-1.0F, -4.0F, 4.0F, 4.0F, 8.0F, 0.0F, new Dilation(0.0F)).mirrored(false), ModelTransform.pivot(-3.0F, -4.0F, 0.0F)); + + ModelPartData head3 = Head.addChild("head3", ModelPartBuilder.create().uv(0, 16).cuboid(-3.0F, -4.0F, 4.0F, 4.0F, 8.0F, 0.0F, new Dilation(0.0F)), ModelTransform.pivot(3.0F, -4.0F, 0.0F)); + + ModelPartData head4 = Head.addChild("head4", ModelPartBuilder.create().uv(4, 3).cuboid(4.0F, -4.0F, 1.0F, 0.0F, 8.0F, 3.0F, new Dilation(0.0F)), ModelTransform.pivot(0.0F, -4.0F, 0.0F)); + + ModelPartData head5 = Head.addChild("head5", ModelPartBuilder.create().uv(0, 3).cuboid(0.0F, -1.0F, 0.0F, 4.0F, 0.0F, 3.0F, new Dilation(0.0F)), ModelTransform.pivot(0.0F, -7.0F, 1.0F)); + + ModelPartData head6 = Head.addChild("head6", ModelPartBuilder.create().uv(5, 3).cuboid(0.0F, 4.0F, 1.0F, 4.0F, 0.0F, 3.0F, new Dilation(0.0F)), ModelTransform.pivot(0.0F, -4.0F, 0.0F)); + + ModelPartData head7 = Head.addChild("head7", ModelPartBuilder.create().uv(15, 3).cuboid(-4.0F, -4.0F, 1.0F, 0.0F, 8.0F, 3.0F, new Dilation(0.0F)), ModelTransform.pivot(0.0F, -4.0F, 0.0F)); + + ModelPartData head8 = Head.addChild("head8", ModelPartBuilder.create().uv(5, 3).mirrored().cuboid(-4.0F, 4.0F, 1.0F, 4.0F, 0.0F, 3.0F, new Dilation(0.0F)).mirrored(false), ModelTransform.pivot(0.0F, -4.0F, 0.0F)); + + ModelPartData head9 = Head.addChild("head9", ModelPartBuilder.create().uv(15, 3).cuboid(-4.0F, -1.0F, 0.0F, 4.0F, 0.0F, 3.0F, new Dilation(0.0F)), ModelTransform.pivot(0.0F, -7.0F, 1.0F)); ModelPartData bone2 = Head.addChild("bone2", ModelPartBuilder.create().uv(6, 95).cuboid(-2.5F, -1.0F, -2.0F, 5.0F, 2.0F, 2.0F, new Dilation(0.0F)), ModelTransform.pivot(0.0F, -0.75F, -2.5F)); ModelPartData helmet = Head.addChild("helmet", ModelPartBuilder.create().uv(7, 86).cuboid(-4.0F, -3.0F, -3.25F, 8.0F, 8.0F, 1.0F, new Dilation(0.5F)) .uv(75, 29).cuboid(-3.0F, -2.0F, -3.5F, 6.0F, 7.0F, 1.0F, new Dilation(0.0F)), ModelTransform.pivot(0.0F, -5.0F, -0.5F)); + + ModelPartData hatlayer1 = Head.addChild("hatlayer1", ModelPartBuilder.create().uv(62, 84).cuboid(-4.0F, -4.0F, -0.5F, 8.0F, 8.0F, 1.0F, new Dilation(0.5F)), ModelTransform.pivot(0.0F, -4.0F, 3.5F)); + + ModelPartData hatlayer2 = Head.addChild("hatlayer2", ModelPartBuilder.create().uv(66, 94).cuboid(-4.0F, -0.5F, -3.0F, 8.0F, 1.0F, 6.0F, new Dilation(0.5F)), ModelTransform.pivot(0.0F, -7.5F, 1.0F)); + + ModelPartData hatlayer3 = Head.addChild("hatlayer3", ModelPartBuilder.create().uv(36, 79).cuboid(-0.5F, -4.0F, -3.0F, 1.0F, 8.0F, 6.0F, new Dilation(0.5F)), ModelTransform.pivot(-3.5F, -4.0F, 1.0F)); + + ModelPartData hatlayer4 = Head.addChild("hatlayer4", ModelPartBuilder.create().uv(43, 79).cuboid(-0.5F, -4.0F, -3.0F, 1.0F, 8.0F, 6.0F, new Dilation(0.5F)), ModelTransform.pivot(3.5F, -4.0F, 1.0F)); return TexturedModelData.of(modelData, 128, 128); } - @Override public void render(LivingEntity entity, float tickDelta, MatrixStack matrices, VertexConsumer vertexConsumers, int light, float r, float g, float b, float alpha) { matrices.push(); + if (entity instanceof IronManEntity) { + this.sentry.update((IronManEntity) entity); + } + if (entity instanceof AbstractClientPlayerEntity player) { SuitAnimationHolder anim = this.getAnimation(player).orElse(null); if (anim == null || anim.getInfo().transform() == AnimationInfo.Transform.TARGETED) { @@ -151,6 +347,8 @@ private void rotateParts(AbstractClientPlayerEntity entity) { this.leftLeg.pivotZ += this.body.pitch * 3f * 3.2f; this.leftLeg.pivotX -= this.body.roll * 3f * 3.2f; } + + @Override public void renderArm(boolean isRight, AbstractClientPlayerEntity player, int i, MatrixStack matrices, VertexConsumer buffer, int light, int i1, int i2, int i3, int i4) { if (isRight) this.renderRightArm(player, i, matrices, buffer, light, i1, i2, i3, i4); @@ -204,4 +402,14 @@ public void copyTo(BipedEntityModel model) { model.rightArm.copyTransform(this.rightArm); model.rightLeg.copyTransform(this.rightLeg); } + + @Override + public void setAngles(LivingEntity entity, float limbAngle, float limbDistance, float animationProgress, float headYaw, float headPitch) { + super.setAngles(entity, limbAngle, limbDistance, animationProgress, headYaw, headPitch); + + SuitAnimationHolder anim = this.sentry.getAnimation().orElse(null); + if (anim != null) { + anim.update(this, animationProgress, entity); + } + } } diff --git a/src/main/java/mc/duzo/timeless/suit/ironman/client/sentry/SentryAnimation.java b/src/main/java/mc/duzo/timeless/suit/ironman/client/sentry/SentryAnimation.java new file mode 100644 index 0000000..fca8447 --- /dev/null +++ b/src/main/java/mc/duzo/timeless/suit/ironman/client/sentry/SentryAnimation.java @@ -0,0 +1,2008 @@ +package mc.duzo.timeless.suit.ironman.client.sentry; + +import java.util.Optional; + +import net.minecraft.client.render.entity.animation.Animation; +import net.minecraft.client.render.entity.animation.AnimationHelper; +import net.minecraft.client.render.entity.animation.Keyframe; +import net.minecraft.client.render.entity.animation.Transformation; +import net.minecraft.entity.player.PlayerEntity; + +import mc.duzo.timeless.client.TimelessClient; +import mc.duzo.timeless.power.PowerRegistry; +import mc.duzo.timeless.suit.client.animation.SuitAnimationHolder; +import mc.duzo.timeless.suit.client.animation.SuitAnimationTracker; +import mc.duzo.timeless.suit.client.render.SuitModel; +import mc.duzo.timeless.suit.ironman.IronManEntity; +import mc.duzo.timeless.util.CachableResult; +import mc.duzo.timeless.util.time.TimeUnit; + +public class SentryAnimation { + private final SuitModel parent; + private CachableResult nearbyPlayer; + private IronManEntity cached; + private boolean wasOpen; + + public SentryAnimation(SuitModel parent) { + this.parent = parent; + } + + public void update(IronManEntity entity) { + if (this.nearbyPlayer == null) { + this.nearbyPlayer = new CachableResult<>(() -> entity.findNearbyPlayer(2f).orElse(null), TimeUnit.TICKS, 10L); + } + + if (this.cached != entity) { + this.cached = entity; + this.nearbyPlayer.invalidate(); + } + + SuitAnimationHolder anim = this.getAnimation().orElse(null); + + if (anim != null) { + return; + } + + boolean open = this.shouldOpenBack(entity); + + if (open != wasOpen) { + System.out.println(open); + + SuitAnimationTracker.getInstance().add(this.cached.getUuid(), (open) ? TimelessClient.ClientRegister.Animations.Suits.IronMan.BACK_OPEN.get() : TimelessClient.ClientRegister.Animations.Suits.IronMan.BACK_CLOSE.get()); + wasOpen = open; + } + } + + public Optional getAnimation() { + if (this.cached == null) return Optional.empty(); + + return Optional.ofNullable(SuitAnimationTracker.getInstance().get(this.cached)); + } + + private boolean shouldOpenBack(IronManEntity source) { + return this.parent.getSuit().toServer().hasPower(PowerRegistry.SENTRY) && this.cached.findNearbyPlayer(2f).isPresent(); + } + + public static final Animation SUIT_OPEN = Animation.Builder.create(1.7916767f) + .addBoneAnimation("hatlayer1", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.16766666f, AnimationHelper.createTranslationalVector(0f, -4.33f, -0.67f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0f, -3.2f, -4f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("hatlayer1", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createRotationalVector(-90f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("hatlayer1", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.3433333f, AnimationHelper.createScalingVector(1f, 0.3f, 1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("hatlayer2", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.75f, AnimationHelper.createTranslationalVector(0f, 0f, -4f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("hatlayer2", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.75f, AnimationHelper.createScalingVector(1f, 1f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("hatlayer3", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createTranslationalVector(-0.1f, 0f, -3f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("hatlayer4", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createTranslationalVector(0.2f, 0f, -3f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("head6", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0.75f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createTranslationalVector(0f, -0.1f, -3f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("head5", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createTranslationalVector(0f, 0.1f, -2.5f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("head5", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("head4", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0.1f, 0f, -3f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("head4", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(1f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("head3", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(1f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createTranslationalVector(-2.9f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.25f, AnimationHelper.createTranslationalVector(-2.9f, 0f, -2f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(-2.8f, 0f, -2f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("head3", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createRotationalVector(0f, 90f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("head2", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0.45f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createTranslationalVector(2.9f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(2.8f, 0f, -2f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("head2", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createRotationalVector(0f, -90f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("head7", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(-0.1f, 0f, -3f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("head9", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createTranslationalVector(0f, 0.1f, -2.5f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("head9", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("head8", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0.75f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createTranslationalVector(0f, -0.1f, -3f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0.2f, 0f, -3f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createRotationalVector(0f, 90f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm3", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0.1f, 0f, -1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm3", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(1f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm2", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(-0.1f, 0f, -3f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm2", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createRotationalVector(0f, -90f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm2", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm5", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0.75f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createTranslationalVector(0f, 0.1f, -1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm5", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm5", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("rocket2", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, -0.7f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("armlayer7", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.25f, AnimationHelper.createTranslationalVector(-1.65f, 0f, -1.5f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0.6f, 0f, -3.5f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("armlayer7", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createRotationalVector(0f, -90f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("armlayer7", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("armlayer3", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.75f, AnimationHelper.createTranslationalVector(0f, 0.1f, -1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("armlayer6", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.7083434f, AnimationHelper.createTranslationalVector(0.2f, 0f, -1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("fastening", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.4583433f, AnimationHelper.createRotationalVector(0f, 0f, -360f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("fastening", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.4583433f, AnimationHelper.createScalingVector(1f, 1f, 0.2f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("shoulder2", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.25f, AnimationHelper.createTranslationalVector(0f, 0.1f, -1.4f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("shoulder3", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.25f, AnimationHelper.createTranslationalVector(0.1f, 0f, -1.4f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("shoulder4", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.25f, AnimationHelper.createTranslationalVector(-0.1f, 0f, -1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("shoulder5", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.25f, AnimationHelper.createTranslationalVector(0.45f, 0f, -2.15f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(-1.1f, 0f, -4.3f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("shoulder5", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createRotationalVector(0f, 90f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bone3", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.6766666f, AnimationHelper.createTranslationalVector(1f, 0f, 0.1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bone3", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm4", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0.2f, 0f, -3f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm4", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createRotationalVector(0f, 90f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm4", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm7", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(-0.1f, 0f, -3f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm7", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createRotationalVector(0f, -90f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm7", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm8", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0.1f, 0f, -1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm8", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(1f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm9", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0.75f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createTranslationalVector(0f, 0.1f, -1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm9", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm9", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("armlayer10", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.75f, AnimationHelper.createTranslationalVector(0f, 0.1f, -1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("armlayer13", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.7083434f, AnimationHelper.createTranslationalVector(0.2f, 0f, -1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("armlayer14", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.25f, AnimationHelper.createTranslationalVector(1.65f, 0f, -1.5f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(-0.5f, 0f, -3.5f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("armlayer14", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createRotationalVector(0f, 90f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("armlayer14", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("shoulder6", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.25f, AnimationHelper.createTranslationalVector(0f, 0.1f, -1.4f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("shoulder7", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.25f, AnimationHelper.createTranslationalVector(0.1f, 0f, -1.4f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("shoulder8", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.25f, AnimationHelper.createTranslationalVector(-0.1f, 0f, -1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("shoulder9", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.25f, AnimationHelper.createTranslationalVector(0.45f, 0f, -2.15f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(1.1f, 0f, -4.3f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("shoulder9", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createRotationalVector(0f, -90f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bone4", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createTranslationalVector(-1f, 0f, 0.1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bone4", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("rocket3", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, -0.7f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("fastening2", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.4583433f, AnimationHelper.createRotationalVector(0f, 0f, -360f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("fastening2", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.4583433f, AnimationHelper.createScalingVector(1f, 1f, 0.2f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bodylayer", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(4f, 0f, -0.25f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createTranslationalVector(4f, 0f, -0.5f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bodylayer", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createRotationalVector(0f, 90f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bodylayer", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createScalingVector(0.7f, 1f, 1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("body6", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, -0.1f, -1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("body5", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0.1f, 0f, -1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("body4", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(-0.1f, 0f, -1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("body2", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0.1f, 0f, -4f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("body2", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createRotationalVector(0f, 90f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("body3", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(-0.2f, 0f, -4f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("body3", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createRotationalVector(0f, -90f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bone11", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(1f, 0f, 0.1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bone12", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(-1f, 0f, 0.1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bodylayer2", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(-4f, 0f, -0.25f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createTranslationalVector(-4f, 0f, -0.5f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bodylayer2", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createRotationalVector(0f, -90f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bodylayer2", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(1f, AnimationHelper.createScalingVector(0.7f, 1f, 1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bodylayerlayer2", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.3433333f, AnimationHelper.createTranslationalVector(-0.6f, 0f, -1.69f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.75f, AnimationHelper.createTranslationalVector(-0.9f, 0f, -3.8f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.4167667f, AnimationHelper.createTranslationalVector(0.9f, 0f, -3.8f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bodylayerlayer2", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.75f, AnimationHelper.createRotationalVector(0f, -90f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bodylayerlayer2", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.75f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bodylayerlayer", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.3433333f, AnimationHelper.createTranslationalVector(0.6f, 0f, -1.69f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.75f, AnimationHelper.createTranslationalVector(-0.9f, 0f, -3.8f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bodylayerlayer", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.75f, AnimationHelper.createRotationalVector(0f, 90f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bodylayerlayer", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.75f, AnimationHelper.createScalingVector(0.8f, 1f, 1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("backthing", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.3433333f, AnimationHelper.createTranslationalVector(0f, 0f, -2f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("backthing", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.0834333f, AnimationHelper.createRotationalVector(-20f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("backthing", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.2916767f, AnimationHelper.createScalingVector(1f, 1f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.3433333f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.375f, AnimationHelper.createScalingVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("LeftFoot", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("boot3", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, -0.8f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leg5", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0.1f, -1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leg4", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(-0.1f, 0f, -1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leg3", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0.1f, 0f, -1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leg2", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0.2f, 0f, -3f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leg2", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createRotationalVector(0f, 90f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leg2", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leg", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(-0.2f, 0f, -3f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leg", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createRotationalVector(0f, -90f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("boot2", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, -0.9f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("boot", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(1.8f, 0f, -1.7f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createTranslationalVector(-0.4f, 0f, -3.4f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0.3f, 0f, -3.4f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("boot", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createRotationalVector(0f, 90f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("boot", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0f, AnimationHelper.createScalingVector(0.7f, 1f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bootlayer3", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.75f, AnimationHelper.createTranslationalVector(0f, 0f, -0.5f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bootlayer3", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.75f, AnimationHelper.createRotationalVector(0f, 0f, -0.5f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bootlayer3", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.75f, AnimationHelper.createScalingVector(1f, 1f, 0.8f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bootlayer2", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.75f, AnimationHelper.createTranslationalVector(0f, 0f, -0.5f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bootlayer2", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.75f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bootlayer2", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.75f, AnimationHelper.createScalingVector(1f, 1f, 0.8f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bootlayer", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(1.8f, 0f, -2f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.9167666f, AnimationHelper.createTranslationalVector(-0.4f, 0f, -3f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bootlayer", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.9167666f, AnimationHelper.createRotationalVector(0f, 90f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bootlayer", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0.5f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.9167666f, AnimationHelper.createScalingVector(0.6f, 1f, 1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leglayer3", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leglayer3", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leglayer3", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.75f, AnimationHelper.createScalingVector(1f, 1f, 0.7f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leglayer2", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.75f, AnimationHelper.createTranslationalVector(0.1f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leglayer", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.375f, AnimationHelper.createTranslationalVector(1.8f, 0f, -1.7f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.75f, AnimationHelper.createTranslationalVector(-0.4f, 0f, -3.4f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leglayer", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.75f, AnimationHelper.createRotationalVector(0f, 90f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bone5", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.25f, AnimationHelper.createTranslationalVector(1.2f, 0f, 0.1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bone6", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0.25f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.75f, AnimationHelper.createTranslationalVector(0.1f, 0f, -1.2f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bone6", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0.25f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leg6", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(-0.2f, 0f, -3f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leg6", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createRotationalVector(0f, -90f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leg7", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0.2f, 0f, -3f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leg7", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createRotationalVector(0f, 90f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leg7", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leg8", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0.1f, 0f, -1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leg9", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(-0.1f, 0f, -1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leg10", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0.1f, -1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leglayer4", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.375f, AnimationHelper.createTranslationalVector(-2.2f, 0f, -1.7f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.75f, AnimationHelper.createTranslationalVector(0.4f, 0f, -3.4f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leglayer4", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.75f, AnimationHelper.createRotationalVector(0f, -90f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bone7", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.25f, AnimationHelper.createTranslationalVector(-0.8f, 0f, 0.1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leglayer5", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.75f, AnimationHelper.createTranslationalVector(0.1f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bone8", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0.25f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.75f, AnimationHelper.createTranslationalVector(0.1f, 0f, -1.2f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bone8", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0.25f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leglayer6", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leglayer6", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leglayer6", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.75f, AnimationHelper.createScalingVector(1f, 1f, 0.7f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("LeftFoot2", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("boot4", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(1.8f, 0f, -1.7f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createTranslationalVector(-0.4f, 0f, -3.4f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0.3f, 0f, -3.4f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("boot4", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createRotationalVector(0f, 90f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("boot4", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0f, AnimationHelper.createScalingVector(0.7f, 1f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("boot5", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, -0.9f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("boot6", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, -0.8f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bootlayer4", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(-2.2f, 0f, -2f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.9167666f, AnimationHelper.createTranslationalVector(0.4f, 0f, -3f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bootlayer4", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.9167666f, AnimationHelper.createRotationalVector(0f, -90f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bootlayer4", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0.5f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.9167666f, AnimationHelper.createScalingVector(0.6f, 1f, 1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bootlayer5", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.75f, AnimationHelper.createTranslationalVector(0f, 0f, -0.5f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bootlayer5", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.75f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bootlayer5", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.75f, AnimationHelper.createScalingVector(1f, 1f, 0.8f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bootlayer6", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.75f, AnimationHelper.createTranslationalVector(0f, 0f, -0.5f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bootlayer6", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.75f, AnimationHelper.createRotationalVector(0f, 0f, -0.5f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bootlayer6", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.75f, AnimationHelper.createScalingVector(1f, 1f, 0.8f), + Transformation.Interpolations.LINEAR))).build(); + public static final Animation SUIT_OPEN2 = Animation.Builder.create(1.7916767f) + .addBoneAnimation("hatlayer1", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1f, AnimationHelper.createTranslationalVector(0f, -3.2f, -4f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.3433333f, AnimationHelper.createTranslationalVector(0f, -4.33f, -0.67f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("hatlayer1", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(1f, AnimationHelper.createRotationalVector(-90f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("hatlayer1", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0.16766674f, AnimationHelper.createScalingVector(1f, 0.3f, 1f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("hatlayer2", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0.75f, AnimationHelper.createTranslationalVector(0f, 0f, -4f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("hatlayer2", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0.75f, AnimationHelper.createScalingVector(1f, 1f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("hatlayer3", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(-0.1f, 0f, -3f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("hatlayer4", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0.2f, 0f, -3f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("head6", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0f, -0.1f, -3f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.75f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("head5", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0f, 0.1f, -2.5f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("head5", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(1.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("head4", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0.1f, 0f, -3f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("head4", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("head3", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(-2.8f, 0f, -2f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.25f, AnimationHelper.createTranslationalVector(-2.9f, 0f, -2f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(-2.9f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createTranslationalVector(1f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("head3", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0.5f, AnimationHelper.createRotationalVector(0f, 90f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("head2", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(2.8f, 0f, -2f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(2.9f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createTranslationalVector(0.45f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("head2", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0.5f, AnimationHelper.createRotationalVector(0f, -90f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("head7", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(-0.1f, 0f, -3f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("head9", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0f, 0.1f, -2.5f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("head9", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(1.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("head8", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0f, -0.1f, -3f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.75f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0.2f, 0f, -3f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0.5f, AnimationHelper.createRotationalVector(0f, 90f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0.5f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm3", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0.1f, 0f, -1f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm3", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm2", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(-0.1f, 0f, -3f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm2", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0.5f, AnimationHelper.createRotationalVector(0f, -90f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm2", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(1.5f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm5", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0f, 0.1f, -1f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.75f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm5", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(1.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm5", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(1.5f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("rocket2", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, -0.7f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("armlayer7", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1f, AnimationHelper.createTranslationalVector(0.6f, 0f, -3.5f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.25f, AnimationHelper.createTranslationalVector(-1.65f, 0f, -1.5f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("armlayer7", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(1f, AnimationHelper.createRotationalVector(0f, -90f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("armlayer7", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(1.5f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("armlayer3", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0.75f, AnimationHelper.createTranslationalVector(0f, 0.1f, -1f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("armlayer6", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0.7916766f, AnimationHelper.createTranslationalVector(0.2f, 0f, -1f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("fastening", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(1.0416767f, AnimationHelper.createRotationalVector(0f, 0f, -360f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("fastening", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(1.0416767f, AnimationHelper.createScalingVector(1f, 1f, 0.2f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("shoulder2", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1.25f, AnimationHelper.createTranslationalVector(0f, 0.1f, -1.4f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("shoulder3", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1.25f, AnimationHelper.createTranslationalVector(0.1f, 0f, -1.4f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("shoulder4", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1.25f, AnimationHelper.createTranslationalVector(-0.1f, 0f, -1f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("shoulder5", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1f, AnimationHelper.createTranslationalVector(-1.1f, 0f, -4.3f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.25f, AnimationHelper.createTranslationalVector(0.45f, 0f, -2.15f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("shoulder5", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(1f, AnimationHelper.createRotationalVector(0f, 90f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bone3", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0.8343334f, AnimationHelper.createTranslationalVector(1f, 0f, 0.1f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bone3", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(1f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm4", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0.2f, 0f, -3f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm4", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0.5f, AnimationHelper.createRotationalVector(0f, 90f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm4", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0.5f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm7", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(-0.1f, 0f, -3f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm7", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0.5f, AnimationHelper.createRotationalVector(0f, -90f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm7", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(1.5f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm8", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0.1f, 0f, -1f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm8", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm9", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0f, 0.1f, -1f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.75f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm9", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(1.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("arm9", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(1.5f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("armlayer10", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0.75f, AnimationHelper.createTranslationalVector(0f, 0.1f, -1f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("armlayer13", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0.7916766f, AnimationHelper.createTranslationalVector(0.2f, 0f, -1f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("armlayer14", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1f, AnimationHelper.createTranslationalVector(-0.5f, 0f, -3.5f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.25f, AnimationHelper.createTranslationalVector(1.65f, 0f, -1.5f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("armlayer14", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(1f, AnimationHelper.createRotationalVector(0f, 90f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("armlayer14", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(1.5f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("shoulder6", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1.25f, AnimationHelper.createTranslationalVector(0f, 0.1f, -1.4f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("shoulder7", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1.25f, AnimationHelper.createTranslationalVector(0.1f, 0f, -1.4f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("shoulder8", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1.25f, AnimationHelper.createTranslationalVector(-0.1f, 0f, -1f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("shoulder9", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1f, AnimationHelper.createTranslationalVector(1.1f, 0f, -4.3f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.25f, AnimationHelper.createTranslationalVector(0.45f, 0f, -2.15f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("shoulder9", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(1f, AnimationHelper.createRotationalVector(0f, -90f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bone4", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(-1f, 0f, 0.1f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bone4", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(1f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("rocket3", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, -0.7f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("fastening2", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(1.0416767f, AnimationHelper.createRotationalVector(0f, 0f, -360f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("fastening2", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(1.0416767f, AnimationHelper.createScalingVector(1f, 1f, 0.2f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bodylayer", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(4f, 0f, -0.5f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createTranslationalVector(4f, 0f, -0.25f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bodylayer", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0.5f, AnimationHelper.createRotationalVector(0f, 90f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bodylayer", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0.5f, AnimationHelper.createScalingVector(0.7f, 1f, 1f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("body6", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, -0.1f, -1f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("body5", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0.1f, 0f, -1f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("body4", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(-0.1f, 0f, -1f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("body2", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0.1f, 0f, -4f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("body2", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0.5f, AnimationHelper.createRotationalVector(0f, 90f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("body3", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(-0.2f, 0f, -4f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("body3", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0.5f, AnimationHelper.createRotationalVector(0f, -90f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bone11", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(1f, 0f, 0.1f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bone12", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(-1f, 0f, 0.1f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bodylayer2", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(-4f, 0f, -0.5f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createTranslationalVector(-4f, 0f, -0.25f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bodylayer2", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0.5f, AnimationHelper.createRotationalVector(0f, -90f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bodylayer2", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0.5f, AnimationHelper.createScalingVector(0.7f, 1f, 1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bodylayerlayer2", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0.08343326f, AnimationHelper.createTranslationalVector(0.9f, 0f, -3.8f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.75f, AnimationHelper.createTranslationalVector(-0.9f, 0f, -3.8f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.1676667f, AnimationHelper.createTranslationalVector(-0.6f, 0f, -1.69f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bodylayerlayer2", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0.75f, AnimationHelper.createRotationalVector(0f, -90f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bodylayerlayer2", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0.75f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bodylayerlayer", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0.75f, AnimationHelper.createTranslationalVector(-0.9f, 0f, -3.8f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.1676667f, AnimationHelper.createTranslationalVector(0.6f, 0f, -1.69f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bodylayerlayer", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0.75f, AnimationHelper.createRotationalVector(0f, 90f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bodylayerlayer", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0.75f, AnimationHelper.createScalingVector(0.8f, 1f, 1f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("backthing", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1.1676667f, AnimationHelper.createTranslationalVector(0f, 0f, -2f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("backthing", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0.41676674f, AnimationHelper.createRotationalVector(-20f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("backthing", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(1.125f, AnimationHelper.createScalingVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.1676667f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.2083433f, AnimationHelper.createScalingVector(1f, 1f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("LeftFoot", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("boot3", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, -0.8f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leg5", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0.1f, -1f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leg4", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(-0.1f, 0f, -1f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leg3", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0.1f, 0f, -1f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leg2", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0.2f, 0f, -3f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leg2", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0.5f, AnimationHelper.createRotationalVector(0f, 90f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leg2", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0.5f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leg", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(-0.2f, 0f, -3f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leg", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0.5f, AnimationHelper.createRotationalVector(0f, -90f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("boot2", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, -0.9f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("boot", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0.3f, 0f, -3.4f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(-0.4f, 0f, -3.4f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createTranslationalVector(1.8f, 0f, -1.7f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("boot", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0.5f, AnimationHelper.createRotationalVector(0f, 90f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("boot", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(1.5f, AnimationHelper.createScalingVector(0.7f, 1f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bootlayer3", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0.75f, AnimationHelper.createTranslationalVector(0f, 0f, -0.5f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bootlayer3", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0.75f, AnimationHelper.createRotationalVector(0f, 0f, -0.5f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bootlayer3", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0.75f, AnimationHelper.createScalingVector(1f, 1f, 0.8f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bootlayer2", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0.75f, AnimationHelper.createTranslationalVector(0f, 0f, -0.5f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bootlayer2", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0.75f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bootlayer2", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0.75f, AnimationHelper.createScalingVector(1f, 1f, 0.8f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bootlayer", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0.5834334f, AnimationHelper.createTranslationalVector(-0.4f, 0f, -3f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createTranslationalVector(1.8f, 0f, -2f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bootlayer", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0.5834334f, AnimationHelper.createRotationalVector(0f, 90f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bootlayer", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0.5834334f, AnimationHelper.createScalingVector(0.6f, 1f, 1f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leglayer3", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leglayer3", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(1.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leglayer3", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0.75f, AnimationHelper.createScalingVector(1f, 1f, 0.7f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leglayer2", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0.75f, AnimationHelper.createTranslationalVector(0.1f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leglayer", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0.75f, AnimationHelper.createTranslationalVector(-0.4f, 0f, -3.4f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.125f, AnimationHelper.createTranslationalVector(1.8f, 0f, -1.7f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leglayer", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0.75f, AnimationHelper.createRotationalVector(0f, 90f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bone5", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0.25f, AnimationHelper.createTranslationalVector(1.2f, 0f, 0.1f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bone6", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0.75f, AnimationHelper.createTranslationalVector(0.1f, 0f, -1.2f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.25f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bone6", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(1.25f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leg6", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(-0.2f, 0f, -3f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leg6", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0.5f, AnimationHelper.createRotationalVector(0f, -90f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leg7", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0.2f, 0f, -3f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leg7", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0.5f, AnimationHelper.createRotationalVector(0f, 90f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leg7", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0.5f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leg8", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0.1f, 0f, -1f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leg9", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(-0.1f, 0f, -1f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leg10", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0.1f, -1f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leglayer4", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0.75f, AnimationHelper.createTranslationalVector(0.4f, 0f, -3.4f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.125f, AnimationHelper.createTranslationalVector(-2.2f, 0f, -1.7f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leglayer4", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0.75f, AnimationHelper.createRotationalVector(0f, -90f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bone7", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0.25f, AnimationHelper.createTranslationalVector(-0.8f, 0f, 0.1f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leglayer5", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0.75f, AnimationHelper.createTranslationalVector(0.1f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bone8", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0.75f, AnimationHelper.createTranslationalVector(0.1f, 0f, -1.2f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.25f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bone8", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(1.25f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leglayer6", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leglayer6", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(1.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("leglayer6", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0.75f, AnimationHelper.createScalingVector(1f, 1f, 0.7f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("LeftFoot2", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("boot4", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0.3f, 0f, -3.4f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(-0.4f, 0f, -3.4f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createTranslationalVector(1.8f, 0f, -1.7f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("boot4", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0.5f, AnimationHelper.createRotationalVector(0f, 90f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("boot4", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(1.5f, AnimationHelper.createScalingVector(0.7f, 1f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("boot5", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, -0.9f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("boot6", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0f, AnimationHelper.createTranslationalVector(0f, 0f, -0.8f), + Transformation.Interpolations.LINEAR), + new Keyframe(0.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bootlayer4", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0.5834334f, AnimationHelper.createTranslationalVector(0.4f, 0f, -3f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createTranslationalVector(-2.2f, 0f, -2f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bootlayer4", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0.5834334f, AnimationHelper.createRotationalVector(0f, -90f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bootlayer4", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0.5834334f, AnimationHelper.createScalingVector(0.6f, 1f, 1f), + Transformation.Interpolations.LINEAR), + new Keyframe(1f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bootlayer5", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0.75f, AnimationHelper.createTranslationalVector(0f, 0f, -0.5f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bootlayer5", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0.75f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bootlayer5", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0.75f, AnimationHelper.createScalingVector(1f, 1f, 0.8f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bootlayer6", + new Transformation(Transformation.Targets.TRANSLATE, + new Keyframe(0.75f, AnimationHelper.createTranslationalVector(0f, 0f, -0.5f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createTranslationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bootlayer6", + new Transformation(Transformation.Targets.ROTATE, + new Keyframe(0.75f, AnimationHelper.createRotationalVector(0f, 0f, -0.5f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createRotationalVector(0f, 0f, 0f), + Transformation.Interpolations.LINEAR))) + .addBoneAnimation("bootlayer6", + new Transformation(Transformation.Targets.SCALE, + new Keyframe(0.75f, AnimationHelper.createScalingVector(1f, 1f, 0.8f), + Transformation.Interpolations.LINEAR), + new Keyframe(1.5f, AnimationHelper.createScalingVector(1f, 1f, 1f), + Transformation.Interpolations.LINEAR))).build(); +} diff --git a/src/main/java/mc/duzo/timeless/util/CachableResult.java b/src/main/java/mc/duzo/timeless/util/CachableResult.java new file mode 100644 index 0000000..f7ecb01 --- /dev/null +++ b/src/main/java/mc/duzo/timeless/util/CachableResult.java @@ -0,0 +1,40 @@ +package mc.duzo.timeless.util; + +import java.util.function.Supplier; + +import mc.duzo.timeless.util.time.Scheduler; +import mc.duzo.timeless.util.time.TimeUnit; + +public class CachableResult { + private final Supplier getter; + private T value; + private boolean dirty; + + public CachableResult(Supplier getter, TimeUnit unit, long time) { + this.getter = getter; + + Scheduler.runTaskTimer(this::invalidate, unit, time); + this.invalidate(); + } + + private void update() { + this.value = this.getter.get(); + } + public void invalidate() { + this.dirty = true; + } + private void validate() { + if (this.dirty) { + System.out.println("Validating"); + + this.update(); + this.dirty = false; + } + } + + public T get() { + this.validate(); + + return this.value; + } +} diff --git a/src/main/java/mc/duzo/timeless/util/time/Scheduler.java b/src/main/java/mc/duzo/timeless/util/time/Scheduler.java index bce7a99..ad5baa6 100644 --- a/src/main/java/mc/duzo/timeless/util/time/Scheduler.java +++ b/src/main/java/mc/duzo/timeless/util/time/Scheduler.java @@ -4,6 +4,7 @@ import java.util.List; import java.util.concurrent.ExecutorService; +import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents; import net.fabricmc.fabric.api.event.lifecycle.v1.ServerTickEvents; import net.minecraft.util.Util; @@ -19,6 +20,7 @@ public class Scheduler { private Scheduler() { ServerTickEvents.END_SERVER_TICK.register(server -> this.tasks.removeIf(Task::tryTick)); + ClientTickEvents.END_CLIENT_TICK.register(client -> this.tasks.removeIf(Task::tryTick)); } public static void init() { diff --git a/src/main/resources/assets/timeless/textures/suit/iron_man_mark_seven.png b/src/main/resources/assets/timeless/textures/suit/iron_man_mark_seven.png index c4317c0..6bfe6a3 100644 Binary files a/src/main/resources/assets/timeless/textures/suit/iron_man_mark_seven.png and b/src/main/resources/assets/timeless/textures/suit/iron_man_mark_seven.png differ diff --git a/src/main/resources/assets/timeless/textures/suit/iron_man_mark_three.png b/src/main/resources/assets/timeless/textures/suit/iron_man_mark_three.png index 5b76880..6bfe6a3 100644 Binary files a/src/main/resources/assets/timeless/textures/suit/iron_man_mark_three.png and b/src/main/resources/assets/timeless/textures/suit/iron_man_mark_three.png differ diff --git a/src/main/resources/assets/timeless/textures/suit/iron_man_mark_two.png b/src/main/resources/assets/timeless/textures/suit/iron_man_mark_two.png index 2bf4e58..03469ba 100644 Binary files a/src/main/resources/assets/timeless/textures/suit/iron_man_mark_two.png and b/src/main/resources/assets/timeless/textures/suit/iron_man_mark_two.png differ