diff --git a/src/main/java/com/hbm/config/ClientConfig.java b/src/main/java/com/hbm/config/ClientConfig.java index 1c852c7c8..8f040e5e5 100644 --- a/src/main/java/com/hbm/config/ClientConfig.java +++ b/src/main/java/com/hbm/config/ClientConfig.java @@ -25,9 +25,12 @@ public class ClientConfig { public static ConfigWrapper GEIGER_OFFSET_HORIZONTAL = new ConfigWrapper(0); public static ConfigWrapper GEIGER_OFFSET_VERTICAL = new ConfigWrapper(0); + public static ConfigWrapper GUN_ANIMS_LEGACY = new ConfigWrapper(false); + private static void initDefaults() { configMap.put("GEIGER_OFFSET_HORIZONTAL", GEIGER_OFFSET_HORIZONTAL); configMap.put("GEIGER_OFFSET_VERTICAL", GEIGER_OFFSET_VERTICAL); + configMap.put("GUN_ANIMS_LEGACY", GUN_ANIMS_LEGACY); } public static void initConfig() { diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index e62e9633a..d4c0631c7 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -45,6 +45,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_am180, 1), new Object[] { "BBR", "GMS", 'B', DURA.lightBarrel(), 'R', DURA.lightReceiver(), 'M', GUNMETAL.mechanism(), 'G', WOOD.grip(), 'S', WOOD.stock() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_liberator, 1), new Object[] { "BB ", "BBM", "G G", 'B', DURA.lightBarrel(), 'M', GUNMETAL.mechanism(), 'G', WOOD.grip() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_congolake, 1), new Object[] { "BM ", "BRS", "G ", 'B', DURA.heavyBarrel(), 'M', GUNMETAL.mechanism(), 'R', DURA.lightReceiver(), 'S', WOOD.stock(), 'G', WOOD.grip() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_flamer, 1), new Object[] { " MG", "BBR", " GM", 'M', GUNMETAL.mechanism(), 'G', DURA.grip(), 'B', DURA.heavyBarrel(), 'R', DURA.heavyReceiver() }); //SEDNA Ammo CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.STONE, 6), new Object[] { "C", "P", "G", 'C', KEY_COBBLESTONE, 'P', Items.paper, 'G', Items.gunpowder }); diff --git a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseMK4.java b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseMK4.java index f83eeb76d..4f4704bb9 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseMK4.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseMK4.java @@ -165,12 +165,15 @@ public class EntityBulletBaseMK4 extends EntityThrowableInterp { if(mop.typeOfHit == mop.typeOfHit.ENTITY) { Entity entity = mop.entityHit; - if(!entity.isEntityAlive()) return; + + if(entity instanceof EntityLivingBase && ((EntityLivingBase) entity).getHealth() <= 0) { + return; + } DamageSource damageCalc = this.config.getDamage(this, getThrower(), false); if(!(entity instanceof EntityLivingBase)) { - entity.attackEntityFrom(damageCalc, this.damage); + EntityDamageUtil.attackEntityFromIgnoreIFrame(entity, damageCalc, this.damage); return; } diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/EntityProcessorCross.java b/src/main/java/com/hbm/explosion/vanillant/standard/EntityProcessorCross.java index 15b1a06b8..a463e016c 100644 --- a/src/main/java/com/hbm/explosion/vanillant/standard/EntityProcessorCross.java +++ b/src/main/java/com/hbm/explosion/vanillant/standard/EntityProcessorCross.java @@ -2,6 +2,7 @@ package com.hbm.explosion.vanillant.standard; import java.util.HashMap; import java.util.List; +import java.util.Map.Entry; import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.explosion.vanillant.interfaces.ICustomDamageHandler; @@ -59,6 +60,8 @@ public class EntityProcessorCross implements IEntityProcessor { ForgeDirection dir = ForgeDirection.getOrientation(i); nodes[i] = Vec3.createVectorHelper(x + dir.offsetX * nodeDist, y + dir.offsetY * nodeDist, z + dir.offsetZ * nodeDist); } + + HashMap damageMap = new HashMap(); for(int index = 0; index < list.size(); ++index) { @@ -89,7 +92,8 @@ public class EntityProcessorCross implements IEntityProcessor { double knockback = (1.0D - distanceScaled) * density; - entity.attackEntityFrom(setExplosionSource(explosion.compat), calculateDamage(distanceScaled, density, knockback, size)); + float dmg = calculateDamage(distanceScaled, density, knockback, size); + if(!damageMap.containsKey(entity) || damageMap.get(entity) < dmg) damageMap.put(entity, dmg); double enchKnockback = EnchantmentProtection.func_92092_a(entity, knockback); entity.motionX += deltaX * enchKnockback; @@ -99,14 +103,22 @@ public class EntityProcessorCross implements IEntityProcessor { if(entity instanceof EntityPlayer) { affectedPlayers.put((EntityPlayer) entity, Vec3.createVectorHelper(deltaX * knockback, deltaY * knockback, deltaZ * knockback)); } - - if(damage != null) { - damage.handleAttack(explosion, entity, distanceScaled); - } } } } + for(Entry entry : damageMap.entrySet()) { + + Entity entity = entry.getKey(); + entity.attackEntityFrom(setExplosionSource(explosion.compat), entry.getValue()); + System.out.println(entity + " " + entry.getValue()); + + if(damage != null) { + double distanceScaled = entity.getDistance(x, y, z) / size; + damage.handleAttack(explosion, entity, distanceScaled); + } + } + return affectedPlayers; } diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/ExplosionEffectWeapon.java b/src/main/java/com/hbm/explosion/vanillant/standard/ExplosionEffectWeapon.java new file mode 100644 index 000000000..1443bb3c0 --- /dev/null +++ b/src/main/java/com/hbm/explosion/vanillant/standard/ExplosionEffectWeapon.java @@ -0,0 +1,28 @@ +package com.hbm.explosion.vanillant.standard; + +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.interfaces.IExplosionSFX; +import com.hbm.particle.helper.ExplosionSmallCreator; + +import net.minecraft.world.World; + +public class ExplosionEffectWeapon implements IExplosionSFX { + + int cloudCount; + float cloudScale; + float cloudSpeedMult; + + public ExplosionEffectWeapon(int cloudCount, float cloudScale, float cloudSpeedMult) { + this.cloudCount = cloudCount; + this.cloudScale = cloudScale; + this.cloudSpeedMult = cloudSpeedMult; + } + + @Override + public void doEffect(ExplosionVNT explosion, World world, double x, double y, double z, float size) { + if(world.isRemote) return; + + world.playSoundEffect(x, y, z, "random.explode", 4.0F, (1.0F + (world.rand.nextFloat() - world.rand.nextFloat()) * 0.2F) * 0.9F); + ExplosionSmallCreator.composeEffect(world, x, y, z, cloudCount, cloudScale, cloudSpeedMult); + } +} diff --git a/src/main/java/com/hbm/inventory/material/Mats.java b/src/main/java/com/hbm/inventory/material/Mats.java index 11864a70c..797295ffc 100644 --- a/src/main/java/com/hbm/inventory/material/Mats.java +++ b/src/main/java/com/hbm/inventory/material/Mats.java @@ -136,7 +136,7 @@ public class Mats { public static final NTMMaterial MAT_STEEL = makeSmeltable(_AS + 0, STEEL, 0xAFAFAF, 0x0F0F0F, 0x4A4A4A).setShapes(DUSTTINY, BOLT, WIRE, INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK, HEAVY_COMPONENT, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, GRIP).m(); public static final NTMMaterial MAT_MINGRADE = makeSmeltable(_AS + 1, MINGRADE, 0xFFBA7D, 0xAF1700, 0xE44C0F).setShapes(WIRE, INGOT, DUST, BLOCK).m(); public static final NTMMaterial MAT_ALLOY = makeSmeltable(_AS + 2, ALLOY, 0xFF8330, 0x700000, 0xFF7318).setShapes(WIRE, INGOT, DUST, DENSEWIRE, PLATE, CASTPLATE, BLOCK, HEAVY_COMPONENT).m(); - public static final NTMMaterial MAT_DURA = makeSmeltable(_AS + 3, DURA, 0x183039, 0x030B0B, 0x376373).setShapes(BOLT, INGOT, DUST, PIPE, BLOCK, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, GRIP).m(); + public static final NTMMaterial MAT_DURA = makeSmeltable(_AS + 3, DURA, 0x183039, 0x030B0B, 0x376373).setShapes(BOLT, INGOT, DUST, PIPE, BLOCK, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER, GRIP).m(); public static final NTMMaterial MAT_DESH = makeSmeltable(_AS + 12, DESH, 0xFF6D6D, 0x720000, 0xF22929).setShapes(INGOT, DUST, CASTPLATE, BLOCK, HEAVY_COMPONENT).m(); public static final NTMMaterial MAT_STAR = makeSmeltable(_AS + 5, STAR, 0xCCCCEA, 0x11111A, 0xA5A5D3).setShapes(INGOT, DUST, DENSEWIRE, BLOCK).m(); public static final NTMMaterial MAT_FERRO = makeSmeltable(_AS + 7, FERRO, 0xB7B7C9, 0x101022, 0x6B6B8B).setShapes(INGOT).m(); diff --git a/src/main/java/com/hbm/items/weapon/sedna/ItemGunBaseNT.java b/src/main/java/com/hbm/items/weapon/sedna/ItemGunBaseNT.java index 1d1aff580..918a2276e 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/ItemGunBaseNT.java +++ b/src/main/java/com/hbm/items/weapon/sedna/ItemGunBaseNT.java @@ -1,5 +1,6 @@ package com.hbm.items.weapon.sedna; +import java.util.concurrent.ConcurrentHashMap; import java.util.function.BiConsumer; import com.hbm.handler.CasingEjector; @@ -14,6 +15,7 @@ import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.packet.toclient.GunAnimationPacket; import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.render.util.RenderScreenOverlay; +import com.hbm.sound.AudioWrapper; import com.hbm.util.EnumUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; @@ -56,6 +58,8 @@ public class ItemGunBaseNT extends Item implements IKeybindReceiver, IEquipRecei public static final String KEY_RELOAD = "reload_"; public static final String KEY_LASTANIM = "lastanim_"; public static final String KEY_ANIMTIMER = "animtimer_"; + + public static ConcurrentHashMap loopedSounds = new ConcurrentHashMap(); public static float prevAimingProgress; public static float aimingProgress; @@ -157,6 +161,11 @@ public class ItemGunBaseNT extends Item implements IKeybindReceiver, IEquipRecei for(int i = 0; i < confNo; i++) if(configs[i].getSmokeHandler(stack) != null) { configs[i].getSmokeHandler(stack).accept(stack, ctx[i]); } + + for(int i = 0; i < confNo; i++) { + BiConsumer orchestra = configs[i].getOrchestra(stack); + if(orchestra != null) orchestra.accept(stack, ctx[i]); + } } return; } diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java index 6857b4618..6d25b5142 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java @@ -78,7 +78,7 @@ public class GunFactoryClient { ((ItemGunBaseNT) ModItems.gun_am180) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_liberator) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_congolake) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); - ((ItemGunBaseNT) ModItems.gun_flamer) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_flamer) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO_NOCOUNTER); ((ItemGunBaseNT) ModItems.gun_light_revolver_dani).getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY_MIRROR, LegoClient.HUD_COMPONENT_AMMO_MIRROR); ((ItemGunBaseNT) ModItems.gun_light_revolver_dani).getConfig(null, 1).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/Lego.java b/src/main/java/com/hbm/items/weapon/sedna/factory/Lego.java index 7a2e2b362..632048996 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/Lego.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/Lego.java @@ -8,7 +8,7 @@ import java.util.function.BiFunction; import com.hbm.entity.projectile.EntityBulletBaseMK4; import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.explosion.vanillant.standard.EntityProcessorCrossSmooth; -import com.hbm.explosion.vanillant.standard.ExplosionEffectStandard; +import com.hbm.explosion.vanillant.standard.ExplosionEffectWeapon; import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; import com.hbm.items.weapon.sedna.BulletConfig; import com.hbm.items.weapon.sedna.GunConfig; @@ -197,7 +197,7 @@ public class Lego { ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, range); vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, bullet.damage)); vnt.setPlayerProcessor(new PlayerProcessorStandard()); - vnt.setSFX(new ExplosionEffectStandard()); + vnt.setSFX(new ExplosionEffectWeapon(10, 2.5F, 1F)); vnt.explode(); } diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java b/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java index f9f1f349e..9c2f2b657 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java @@ -21,7 +21,8 @@ public class LegoClient { public static HUDComponentDurabilityBar HUD_COMPONENT_DURABILITY = new HUDComponentDurabilityBar(); public static HUDComponentDurabilityBar HUD_COMPONENT_DURABILITY_MIRROR = new HUDComponentDurabilityBar(true); public static HUDComponentAmmoCounter HUD_COMPONENT_AMMO = new HUDComponentAmmoCounter(0); - public static HUDComponentAmmoCounter HUD_COMPONENT_AMMO_MIRROR = new HUDComponentAmmoCounter(0, true); + public static HUDComponentAmmoCounter HUD_COMPONENT_AMMO_MIRROR = new HUDComponentAmmoCounter(0).mirror(); + public static HUDComponentAmmoCounter HUD_COMPONENT_AMMO_NOCOUNTER = new HUDComponentAmmoCounter(0).noCounter(); public static BiConsumer RENDER_STANDARD_BULLET = (bullet, interp) -> { double length = bullet.prevVelocity + (bullet.velocity - bullet.prevVelocity) * interp; diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java b/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java index 195c9c28e..d2f167c8e 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java @@ -2,13 +2,16 @@ package com.hbm.items.weapon.sedna.factory; import java.util.function.BiConsumer; +import com.hbm.config.ClientConfig; import com.hbm.items.weapon.sedna.ItemGunBaseNT; import com.hbm.items.weapon.sedna.Receiver; import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; import com.hbm.items.weapon.sedna.mags.IMagazine; +import com.hbm.main.MainRegistry; import com.hbm.particle.SpentCasing; import com.hbm.particle.helper.CasingCreator; import com.hbm.render.anim.HbmAnimations.AnimType; +import com.hbm.sound.AudioWrapper; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -20,6 +23,7 @@ public class Orchestras { public static BiConsumer DEBUG_ORCHESTRA = (stack, ctx) -> { EntityPlayer player = ctx.player; + if(player.worldObj.isRemote) return; AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); @@ -51,6 +55,7 @@ public class Orchestras { public static BiConsumer ORCHESTRA_PEPPERBOX = (stack, ctx) -> { EntityPlayer player = ctx.player; + if(player.worldObj.isRemote) return; AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); @@ -76,6 +81,7 @@ public class Orchestras { public static BiConsumer ORCHESTRA_ATLAS = (stack, ctx) -> { EntityPlayer player = ctx.player; + if(player.worldObj.isRemote) return; AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); @@ -103,6 +109,7 @@ public class Orchestras { public static BiConsumer ORCHESTRA_DANI = (stack, ctx) -> { EntityPlayer player = ctx.player; + if(player.worldObj.isRemote) return; AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); @@ -130,6 +137,7 @@ public class Orchestras { public static BiConsumer ORCHESTRA_HENRY = (stack, ctx) -> { EntityPlayer player = ctx.player; + if(player.worldObj.isRemote) return; AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); boolean aiming = ItemGunBaseNT.getIsAiming(stack); @@ -166,6 +174,7 @@ public class Orchestras { public static BiConsumer ORCHESTRA_GREASEGUN = (stack, ctx) -> { EntityPlayer player = ctx.player; + if(player.worldObj.isRemote) return; AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); boolean aiming = ItemGunBaseNT.getIsAiming(stack); @@ -201,6 +210,7 @@ public class Orchestras { public static BiConsumer ORCHESTRA_MARESLEG = (stack, ctx) -> { EntityPlayer player = ctx.player; + if(player.worldObj.isRemote) return; AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); boolean aiming = ItemGunBaseNT.getIsAiming(stack); @@ -235,6 +245,7 @@ public class Orchestras { public static BiConsumer ORCHESTRA_FLAREGUN = (stack, ctx) -> { EntityPlayer player = ctx.player; + if(player.worldObj.isRemote) return; AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); boolean aiming = ItemGunBaseNT.getIsAiming(stack); @@ -263,6 +274,7 @@ public class Orchestras { public static BiConsumer ORCHESTRA_NOPIP = (stack, ctx) -> { EntityPlayer player = ctx.player; + if(player.worldObj.isRemote) return; AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); @@ -294,6 +306,7 @@ public class Orchestras { public static BiConsumer ORCHESTRA_CARBIBE = (stack, ctx) -> { EntityPlayer player = ctx.player; + if(player.worldObj.isRemote) return; AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); boolean aiming = ItemGunBaseNT.getIsAiming(stack); @@ -327,37 +340,66 @@ public class Orchestras { public static BiConsumer ORCHESTRA_AM180 = (stack, ctx) -> { EntityPlayer player = ctx.player; + if(player.worldObj.isRemote) return; AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); boolean aiming = ItemGunBaseNT.getIsAiming(stack); - if(type == AnimType.CYCLE) { - if(timer == 0) { - SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack); - CasingCreator.composeEffect(player.worldObj, player, 0.4375, aiming ? 0 : -0.125, aiming ? 0 : -0.25D, 0, -0.06, 0, 0.01, casing.getName()); + if(ClientConfig.GUN_ANIMS_LEGACY.get()) { + if(type == AnimType.CYCLE) { + if(timer == 0) { + SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack); + CasingCreator.composeEffect(player.worldObj, player, 0.4375, aiming ? 0 : -0.125, aiming ? 0 : -0.25D, 0, -0.06, 0, 0.01, casing.getName()); + } + } + if(type == AnimType.CYCLE_DRY) { + if(timer == 0) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.dryFireClick", 1F, 1F); + if(timer == 6) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.pistolCock", 1F, 0.9F); + } + if(type == AnimType.RELOAD) { + if(timer == 2) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.magRemove", 1F, 1F); + if(timer == 20) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.impact", 0.25F, 1F); + if(timer == 32) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.magInsert", 1F, 1F); + if(timer == 40) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.pistolCock", 1F, 0.9F); + } + if(type == AnimType.JAMMED) { + if(timer == 15) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.pistolCock", 1F, 0.8F); + } + if(type == AnimType.INSPECT) { + if(timer == 2) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.magRemove", 1F, 1F); + if(timer == 35) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.magInsert", 1F, 1F); + } + } else { + if(type == AnimType.CYCLE) { + if(timer == 0) { + SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack); + CasingCreator.composeEffect(player.worldObj, player, 0.4375, aiming ? 0 : -0.125, aiming ? 0 : -0.25D, 0, -0.06, 0, 0.01, casing.getName()); + } + } + if(type == AnimType.CYCLE_DRY) { + if(timer == 0) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.dryFireClick", 1F, 1F); + if(timer == 6) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.pistolCock", 1F, 0.9F); + } + if(type == AnimType.RELOAD) { + if(timer == 6) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.magRemove", 1F, 1F); + if(timer == 26) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.impact", 0.25F, 1F); + if(timer == 48) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.magInsert", 1F, 1F); + if(timer == 54) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.pistolCock", 1F, 0.9F); + } + if(type == AnimType.JAMMED) { + if(timer == 6) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.pistolCock", 1F, 0.8F); + if(timer == 20) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.pistolCock", 1F, 1.0F); + } + if(type == AnimType.INSPECT) { + if(timer == 6) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.magRemove", 1F, 1F); + if(timer == 53) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.magInsert", 1F, 1F); } - } - if(type == AnimType.CYCLE_DRY) { - if(timer == 0) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.dryFireClick", 1F, 1F); - if(timer == 6) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.pistolCock", 1F, 0.9F); - } - if(type == AnimType.RELOAD) { - if(timer == 2) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.magRemove", 1F, 1F); - if(timer == 20) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.impact", 0.25F, 1F); - if(timer == 32) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.magInsert", 1F, 1F); - if(timer == 40) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.pistolCock", 1F, 0.9F); - } - if(type == AnimType.JAMMED) { - if(timer == 15) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.pistolCock", 1F, 0.8F); - } - if(type == AnimType.INSPECT) { - if(timer == 2) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.magRemove", 1F, 1F); - if(timer == 35) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.magInsert", 1F, 1F); } }; public static BiConsumer ORCHESTRA_LIBERATOR = (stack, ctx) -> { EntityPlayer player = ctx.player; + if(player.worldObj.isRemote) return; AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); @@ -400,6 +442,7 @@ public class Orchestras { public static BiConsumer ORCHESTRA_CONGOLAKE = (stack, ctx) -> { EntityPlayer player = ctx.player; + if(player.worldObj.isRemote) return; AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); boolean aiming = ItemGunBaseNT.getIsAiming(stack); @@ -424,6 +467,40 @@ public class Orchestras { EntityPlayer player = ctx.player; AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); - boolean aiming = ItemGunBaseNT.getIsAiming(stack); + + if(type == AnimType.CYCLE && player.worldObj.isRemote) { + AudioWrapper runningAudio = ItemGunBaseNT.loopedSounds.get(player); + + if(timer < 5) { + //start sound + if(runningAudio == null || !runningAudio.isPlaying()) { + AudioWrapper audio = MainRegistry.proxy.getLoopedSound("hbm:weapon.fire.flameLoop", (float) player.posX, (float) player.posY, (float) player.posZ, 1F, 15F, 1F, 10); + ItemGunBaseNT.loopedSounds.put(player, audio); + audio.startSound(); + } + //keepalive + if(runningAudio != null && runningAudio.isPlaying()) { + runningAudio.keepAlive(); + runningAudio.updatePosition((float) player.posX, (float) player.posY, (float) player.posZ); + } + } else { + //stop sound due to timeout + if(runningAudio != null && runningAudio.isPlaying()) runningAudio.stopSound(); + } + } + //stop sound due to state change + if(type != AnimType.CYCLE && player.worldObj.isRemote) { + AudioWrapper runningAudio = ItemGunBaseNT.loopedSounds.get(player); + if(runningAudio != null && runningAudio.isPlaying()) runningAudio.stopSound(); + } + if(player.worldObj.isRemote) return; + + if(type == AnimType.RELOAD) { + if(timer == 15) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.openLatch", 1F, 1F); + if(timer == 35) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.impact", 0.5F, 1F); + if(timer == 60) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.revolverClose", 1F, 0.75F); + if(timer == 70) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.insertCanister", 1F, 1F); + if(timer == 85) player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.pressureValve", 1F, 1F); + } }; } diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory22lr.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory22lr.java index 94e90441f..6855837d1 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory22lr.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory22lr.java @@ -3,6 +3,7 @@ package com.hbm.items.weapon.sedna.factory; import java.util.function.BiConsumer; import java.util.function.BiFunction; +import com.hbm.config.ClientConfig; import com.hbm.items.ModItems; import com.hbm.items.weapon.sedna.BulletConfig; import com.hbm.items.weapon.sedna.Crosshair; @@ -13,6 +14,7 @@ import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; import com.hbm.items.weapon.sedna.mags.MagazineFullReload; import com.hbm.lib.RefStrings; +import com.hbm.main.ResourceManager; import com.hbm.particle.SpentCasing; import com.hbm.particle.SpentCasing.CasingType; import com.hbm.render.anim.BusAnimation; @@ -43,7 +45,7 @@ public class XFactory22lr { ModItems.gun_am180 = new ItemGunBaseNT(new GunConfig() .dura(177 * 25).draw(15).inspect(38).crosshair(Crosshair.L_CIRCLE).smoke(LAMBDA_SMOKE) .rec(new Receiver(0) - .dmg(5F).delay(1).dry(10).auto(true).spread(0.02F).reload(53).jam(55).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) + .dmg(5F).delay(1).dry(10).auto(true).spread(0.02F).reload(66).jam(30).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) .mag(new MagazineFullReload(0, 177).addConfigs(p22_sp, p22_fmj, p22_jhp, p22_ap)) .offset(1, -0.0625 * 1.5, -0.1875D) .canFire(Lego.LAMBDA_STANDARD_CAN_FIRE).fire(Lego.LAMBDA_STANDARD_FIRE).recoil(Lego.LAMBDA_STANDARD_RECOIL)) @@ -57,27 +59,39 @@ public class XFactory22lr { }; @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_AM180_ANIMS = (stack, type) -> { - switch(type) { - case EQUIP: return new BusAnimation() - .addBus("EQUIP", new BusAnimationSequence().addPos(45, 0, 0, 0).addPos(0, 0, 0, 500, IType.SIN_FULL)); - case CYCLE: return new BusAnimation() - .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, ItemGunBaseNT.getIsAiming(stack) ? -0.125 : -0.25, 15, IType.SIN_DOWN).addPos(0, 0, 0, 35, IType.SIN_FULL)); - case CYCLE_DRY: return new BusAnimation() - .addBus("BOLT", new BusAnimationSequence().addPos(0, 0, 0, 550).addPos(0, 0, -1.5, 100, IType.SIN_UP).addPos(0, 0, 0, 100, IType.SIN_UP)) - .addBus("TURN", new BusAnimationSequence().addPos(0, 0, 0, 300).addPos(0, 0, 15, 250, IType.SIN_FULL).addPos(0, 0, 15, 400).addPos(0, 0, 0, 250, IType.SIN_FULL)); - case RELOAD: - return new BusAnimation() - .addBus("MAGTURN", new BusAnimationSequence().addPos(15, 0, 0, 250, IType.SIN_FULL).addPos(15, 0, 0, 250).addPos(15, 0, 70, 300, IType.SIN_FULL).addPos(15, 0, 0, 0).addPos(15, 0, 0, 750).addPos(0, 0, 0, 250, IType.SIN_FULL)) - .addBus("MAG", new BusAnimationSequence().addPos(0, 0, 0, 250).addPos(2, 0, -4, 250, IType.SIN_FULL).addPos(-10, 2, -4, 300, IType.SIN_UP).addPos(3, -6, -4, 0).addPos(2, 0, -4, 500, IType.SIN_FULL).addPos(0, 0, 0, 250, IType.SIN_FULL)) - .addBus("BOLT", new BusAnimationSequence().addPos(0, 0, 0, 2250).addPos(0, 0, -1.5, 100, IType.SIN_UP).addPos(0, 0, 0, 100, IType.SIN_UP)) - .addBus("TURN", new BusAnimationSequence().addPos(0, 0, 0, 2000).addPos(0, 0, 15, 250, IType.SIN_FULL).addPos(0, 0, 15, 400).addPos(0, 0, 0, 250, IType.SIN_FULL)); - case JAMMED: return new BusAnimation() - .addBus("BOLT", new BusAnimationSequence().addPos(0, 0, 0, 750).addPos(0, 0, -1.5, 100, IType.SIN_UP).addPos(0, 0, 0, 100, IType.SIN_UP)) - .addBus("TURN", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, 0, 45, 250, IType.SIN_FULL).addPos(0, 0, 45, 400).addPos(0, 0, 0, 250, IType.SIN_FULL)); - case INSPECT: return new BusAnimation() - .addBus("MAGTURN", new BusAnimationSequence().addPos(15, 0, 0, 250, IType.SIN_FULL).addPos(15, 0, 0, 1400).addPos(0, 0, 0, 250, IType.SIN_FULL)) - .addBus("MAG", new BusAnimationSequence().addPos(0, 0, 0, 200).addPos(4, -1, -4, 200, IType.SIN_FULL).addPos(4, -1.5, -4, 50).addPos(4, 0, -4, 100).addPos(4, 6, -4, 250, IType.SIN_DOWN).addPos(4, 0, -4, 150, IType.SIN_UP).addPos(4, -1, -4, 100, IType.SIN_DOWN).addPos(4, -1, -4, 250).addPos(0, 0, 0, 250, IType.SIN_FULL)) - .addBus("MAGSPIN", new BusAnimationSequence().addPos(0, 0, 0, 600).addPos(-400, 0, 0, 500, IType.SIN_FULL).addPos(-400, 0, 0, 250).addPos(-360, 0, 0, 250)); + if(ClientConfig.GUN_ANIMS_LEGACY.get()) { + switch(type) { + case EQUIP: return new BusAnimation() + .addBus("EQUIP", new BusAnimationSequence().addPos(45, 0, 0, 0).addPos(0, 0, 0, 500, IType.SIN_FULL)); + case CYCLE: return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, ItemGunBaseNT.getIsAiming(stack) ? -0.125 : -0.25, 15, IType.SIN_DOWN).addPos(0, 0, 0, 35, IType.SIN_FULL)); + case CYCLE_DRY: return new BusAnimation() + .addBus("BOLT", new BusAnimationSequence().addPos(0, 0, 0, 550).addPos(0, 0, -1.5, 100, IType.SIN_UP).addPos(0, 0, 0, 100, IType.SIN_UP)) + .addBus("TURN", new BusAnimationSequence().addPos(0, 0, 0, 300).addPos(0, 0, 15, 250, IType.SIN_FULL).addPos(0, 0, 15, 400).addPos(0, 0, 0, 250, IType.SIN_FULL)); + case RELOAD: + return new BusAnimation() + .addBus("MAGTURN", new BusAnimationSequence().addPos(15, 0, 0, 250, IType.SIN_FULL).addPos(15, 0, 0, 250).addPos(15, 0, 70, 300, IType.SIN_FULL).addPos(15, 0, 0, 0).addPos(15, 0, 0, 750).addPos(0, 0, 0, 250, IType.SIN_FULL)) + .addBus("MAG", new BusAnimationSequence().addPos(0, 0, 0, 250).addPos(2, 0, -4, 250, IType.SIN_FULL).addPos(-10, 2, -4, 300, IType.SIN_UP).addPos(3, -6, -4, 0).addPos(2, 0, -4, 500, IType.SIN_FULL).addPos(0, 0, 0, 250, IType.SIN_FULL)) + .addBus("BOLT", new BusAnimationSequence().addPos(0, 0, 0, 2250).addPos(0, 0, -1.5, 100, IType.SIN_UP).addPos(0, 0, 0, 100, IType.SIN_UP)) + .addBus("TURN", new BusAnimationSequence().addPos(0, 0, 0, 2000).addPos(0, 0, 15, 250, IType.SIN_FULL).addPos(0, 0, 15, 400).addPos(0, 0, 0, 250, IType.SIN_FULL)); + case JAMMED: return new BusAnimation() + .addBus("BOLT", new BusAnimationSequence().addPos(0, 0, 0, 750).addPos(0, 0, -1.5, 100, IType.SIN_UP).addPos(0, 0, 0, 100, IType.SIN_UP)) + .addBus("TURN", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, 0, 45, 250, IType.SIN_FULL).addPos(0, 0, 45, 400).addPos(0, 0, 0, 250, IType.SIN_FULL)); + case INSPECT: return new BusAnimation() + .addBus("MAGTURN", new BusAnimationSequence().addPos(15, 0, 0, 250, IType.SIN_FULL).addPos(15, 0, 0, 1400).addPos(0, 0, 0, 250, IType.SIN_FULL)) + .addBus("MAG", new BusAnimationSequence().addPos(0, 0, 0, 200).addPos(4, -1, -4, 200, IType.SIN_FULL).addPos(4, -1.5, -4, 50).addPos(4, 0, -4, 100).addPos(4, 6, -4, 250, IType.SIN_DOWN).addPos(4, 0, -4, 150, IType.SIN_UP).addPos(4, -1, -4, 100, IType.SIN_DOWN).addPos(4, -1, -4, 250).addPos(0, 0, 0, 250, IType.SIN_FULL)) + .addBus("MAGSPIN", new BusAnimationSequence().addPos(0, 0, 0, 600).addPos(-400, 0, 0, 500, IType.SIN_FULL).addPos(-400, 0, 0, 250).addPos(-360, 0, 0, 250)); + } + } else { + switch(type) { + case EQUIP: return new BusAnimation() + .addBus("EQUIP", new BusAnimationSequence().addPos(45, 0, 0, 0).addPos(0, 0, 0, 500, IType.SIN_FULL)); + case CYCLE: return ResourceManager.am180_anim.get("Fire"); + case CYCLE_DRY: return ResourceManager.am180_anim.get("FireDry"); + case RELOAD: return ResourceManager.am180_anim.get("Reload"); + case JAMMED: return ResourceManager.am180_anim.get("Jammed"); + case INSPECT: return ResourceManager.am180_anim.get("Inspect"); + } } return null; diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryFlamer.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryFlamer.java index 379d99546..9dfdd0b16 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryFlamer.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryFlamer.java @@ -11,30 +11,39 @@ import com.hbm.items.weapon.sedna.Receiver; import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; import com.hbm.items.weapon.sedna.mags.MagazineFullReload; import com.hbm.lib.RefStrings; -import com.hbm.particle.helper.FlameCreator; +import com.hbm.main.MainRegistry; +import com.hbm.main.ResourceManager; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.BusAnimationKeyframe.IType; import com.hbm.render.anim.HbmAnimations.AnimType; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; public class XFactoryFlamer { public static BulletConfig flame_diesel; public static void init() { - flame_diesel = new BulletConfig().setItem(EnumAmmo.FLAME_DIESEL).setLife(100).setVel(1F).setGrav(0.02D).setReloadCount(200) + flame_diesel = new BulletConfig().setItem(EnumAmmo.FLAME_DIESEL).setLife(100).setVel(1F).setGrav(0.02D).setReloadCount(300) .setOnUpdate((bullet) -> { - if(!bullet.worldObj.isRemote) FlameCreator.composeEffect(bullet.worldObj, bullet.posX, bullet.posY - 0.25, bullet.posZ); + if(bullet.worldObj.isRemote && MainRegistry.proxy.me().getDistanceToEntity(bullet) < 100) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "flamethrower"); + data.setDouble("posX", bullet.posX); + data.setDouble("posY", bullet.posY - 0.125); + data.setDouble("posZ", bullet.posZ); + MainRegistry.proxy.effectNT(data); + } }); ModItems.gun_flamer = new ItemGunBaseNT(new GunConfig() - .dura(20_000).draw(4).inspect(23).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) + .dura(20_000).draw(10).inspect(17).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) .rec(new Receiver(0) - .dmg(10F).delay(1).auto(true).reload(55).jam(0) - .mag(new MagazineFullReload(0, 200).addConfigs(flame_diesel)) - .offset(0.75, -0.0625, -0.3125D) + .dmg(10F).delay(1).auto(true).reload(90).jam(0) + .mag(new MagazineFullReload(0, 300).addConfigs(flame_diesel)) + .offset(0.75, -0.0625, -0.25D) .canFire(Lego.LAMBDA_STANDARD_CAN_FIRE).fire(Lego.LAMBDA_STANDARD_FIRE).recoil(Lego.LAMBDA_STANDARD_RECOIL)) .setupStandardConfiguration() .anim(LAMBDA_FLAMER_ANIMS).orchestra(Orchestras.ORCHESTRA_FLAMER) @@ -44,9 +53,10 @@ public class XFactoryFlamer { @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_FLAMER_ANIMS = (stack, type) -> { switch(type) { case EQUIP: return new BusAnimation() - .addBus("EQUIP", new BusAnimationSequence().addPos(-90, 0, 0, 0).addPos(0, 0, 0, 500, IType.SIN_DOWN)); - case RELOAD: return new BusAnimation(); - case INSPECT: return new BusAnimation(); + .addBus("EQUIP", new BusAnimationSequence().addPos(-45, 0, 0, 0).addPos(0, 0, 0, 500, IType.SIN_DOWN)); + case RELOAD: return ResourceManager.flamethrower_anim.get("Reload"); + case INSPECT: return new BusAnimation() + .addBus("ROTATE", new BusAnimationSequence().addPos(0, 0, 45, 250, IType.SIN_FULL).addPos(0, 0, 45, 350).addPos(0, 0, -15, 150, IType.SIN_FULL).addPos(0, 0, 0, 100, IType.SIN_FULL)); case JAMMED: return new BusAnimation(); } diff --git a/src/main/java/com/hbm/items/weapon/sedna/hud/HUDComponentAmmoCounter.java b/src/main/java/com/hbm/items/weapon/sedna/hud/HUDComponentAmmoCounter.java index ba61b9baa..0ecf3156d 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/hud/HUDComponentAmmoCounter.java +++ b/src/main/java/com/hbm/items/weapon/sedna/hud/HUDComponentAmmoCounter.java @@ -5,6 +5,7 @@ import org.lwjgl.opengl.GL12; import com.hbm.items.weapon.sedna.ItemGunBaseNT; import com.hbm.items.weapon.sedna.mags.IMagazine; +import com.hbm.lib.RefStrings; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.ScaledResolution; @@ -12,27 +13,35 @@ import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.entity.RenderItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; public class HUDComponentAmmoCounter implements IHUDComponent { - + + private static final ResourceLocation misc = new ResourceLocation(RefStrings.MODID + ":textures/misc/overlay_misc.png"); protected static final RenderItem itemRenderer = RenderItem.getInstance(); protected int receiver; protected boolean mirrored; + protected boolean noCounter; public HUDComponentAmmoCounter(int receiver) { - this(receiver, false); + this.receiver = receiver; } - public HUDComponentAmmoCounter(int receiver, boolean mirror) { - this.receiver = receiver; - this.mirrored = mirror; + public HUDComponentAmmoCounter mirror() { + this.mirrored = true; + return this; + } + + public HUDComponentAmmoCounter noCounter() { + this.noCounter = true; + return this; } @Override public int getComponentHeight(EntityPlayer player, ItemStack stack){ - return 22; + return 24; } @Override @@ -41,12 +50,12 @@ public class HUDComponentAmmoCounter implements IHUDComponent { ScaledResolution resolution = event.resolution; Minecraft mc = Minecraft.getMinecraft(); - int pX = resolution.getScaledWidth() / 2 + (mirrored ? -(62 + 36 + 52) : (62 + 36)); - int pZ = resolution.getScaledHeight() - bottomOffset - 21; + int pX = resolution.getScaledWidth() / 2 + (mirrored ? -(62 + 36 + 52) : (62 + 36)) + (noCounter ? 14 : 0); + int pZ = resolution.getScaledHeight() - bottomOffset - 23; ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); IMagazine mag = gun.getConfig(stack, gunIndex).getReceivers(stack)[this.receiver].getMagazine(stack); - mc.fontRenderer.drawString(mag.reportAmmoStateForHUD(stack), pX + 17, pZ + 6, 0xFFFFFF); + if(!noCounter) mc.fontRenderer.drawString(mag.reportAmmoStateForHUD(stack), pX + 17, pZ + 6, 0xFFFFFF); GL11.glDisable(GL11.GL_BLEND); GL11.glEnable(GL12.GL_RESCALE_NORMAL); @@ -55,5 +64,6 @@ public class HUDComponentAmmoCounter implements IHUDComponent { RenderHelper.disableStandardItemLighting(); GL11.glEnable(GL11.GL_ALPHA_TEST); GL11.glDisable(GL12.GL_RESCALE_NORMAL); + mc.renderEngine.bindTexture(misc); } } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index b34266158..4732f0370 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -980,14 +980,6 @@ public class ClientProxy extends ServerProxy { } } - public static HashMap particleCreators = new HashMap(); - - static { - particleCreators.put("explosionLarge", new ExplosionCreator()); - particleCreators.put("casingNT", new CasingCreator()); - particleCreators.put("flamethrower", new FlameCreator()); - } - //mk3, only use this one @Override public void effectNT(NBTTagCompound data) { @@ -1006,8 +998,8 @@ public class ClientProxy extends ServerProxy { double y = data.getDouble("posY"); double z = data.getDouble("posZ"); - if(particleCreators.containsKey(type)) { - particleCreators.get(type).makeParticle(world, player, man, rand, x, y, z, data); + if(ParticleCreators.particleCreators.containsKey(type)) { + ParticleCreators.particleCreators.get(type).makeParticle(world, player, man, rand, x, y, z, data); return; } diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 47b5f9133..93b254c8b 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -868,6 +868,8 @@ public class ResourceManager { public static final HashMap supershotty_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/supershotty.json")); public static final HashMap benelli_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/benelli.json")); public static final HashMap congolake_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/congolake.json")); + public static final HashMap am180_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/am180.json")); + public static final HashMap flamethrower_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/flamethrower.json")); public static final IModelCustom lance = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lance.obj")); diff --git a/src/main/java/com/hbm/particle/EntityFXRotating.java b/src/main/java/com/hbm/particle/EntityFXRotating.java index 16dcfd7b4..0c05cd9ca 100644 --- a/src/main/java/com/hbm/particle/EntityFXRotating.java +++ b/src/main/java/com/hbm/particle/EntityFXRotating.java @@ -4,6 +4,7 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.particle.EntityFX; import net.minecraft.client.renderer.Tessellator; +import net.minecraft.util.Vec3; import net.minecraft.world.World; @SideOnly(Side.CLIENT) @@ -41,6 +42,11 @@ public class EntityFXRotating extends EntityFX { double nX = ((y2 - y1) * (z3 - z1)) - ((z2 - z1) * (y3 - y1)); double nY = ((z2 - z1) * (x3 - x1)) - ((x2 - x1) * (z3 - z1)); double nZ = ((x2 - x1) * (y3 - y1)) - ((y2 - y1) * (x3 - x1)); + + Vec3 vec = Vec3.createVectorHelper(nX, nY, nZ).normalize(); + nX = vec.xCoord; + nY = vec.yCoord; + nZ = vec.zCoord; double cosTh = Math.cos(rotation * Math.PI / 180D); double sinTh = Math.sin(rotation * Math.PI / 180D); diff --git a/src/main/java/com/hbm/particle/ParticleExplosionSmall.java b/src/main/java/com/hbm/particle/ParticleExplosionSmall.java new file mode 100644 index 000000000..18c7158bd --- /dev/null +++ b/src/main/java/com/hbm/particle/ParticleExplosionSmall.java @@ -0,0 +1,80 @@ +package com.hbm.particle; + +import java.awt.Color; + +import com.hbm.main.ModEventHandlerClient; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +@SideOnly(Side.CLIENT) +public class ParticleExplosionSmall extends EntityFXRotating { + + public float hue; + + public ParticleExplosionSmall(World world, double x, double y, double z, float scale, float speedMult) { + super(world, x, y, z); + particleIcon = ModEventHandlerClient.particleBase; + this.particleMaxAge = 25 + rand.nextInt(10); + this.particleScale = scale * 0.9F + rand.nextFloat() * 0.2F; + + this.motionX = world.rand.nextGaussian() * speedMult; + this.motionZ = world.rand.nextGaussian() * speedMult; + + this.particleGravity = rand.nextFloat() * -0.01F; + + this.hue = 20F + rand.nextFloat() * 20F; + Color color = Color.getHSBColor(hue / 255F, 1F, 1F); + this.particleRed = color.getRed() / 255F; + this.particleGreen = color.getGreen() / 255F; + this.particleBlue = color.getBlue() / 255F; + + this.noClip = true; + } + + @Override + public void onUpdate() { + this.prevPosX = this.posX; + this.prevPosY = this.posY; + this.prevPosZ = this.posZ; + + this.particleAge++; + + if(this.particleAge >= this.particleMaxAge) { + this.setDead(); + } + + this.motionY -= particleGravity; + this.prevRotationPitch = this.rotationPitch; + + float ageScaled = (float) this.particleAge / (float) this.particleMaxAge; + this.rotationPitch += (1 - ageScaled) * 5 * ((this.getEntityId() % 2) - 0.5); + + this.motionX *= 0.65D; + this.motionZ *= 0.65D; + + this.moveEntity(this.motionX, this.motionY, this.motionZ); + } + + @Override + public void renderParticle(Tessellator tess, float interp, float sX, float sY, float sZ, float dX, float dZ) { + + double ageScaled = (double) (this.particleAge + interp) / (double) this.particleMaxAge; + + Color color = Color.getHSBColor(hue / 255F, Math.max(1F - (float) ageScaled * 2F, 0), MathHelper.clamp_float(1.25F - (float) ageScaled * 2F, hue * 0.01F - 0.1F, 1F)); + this.particleRed = color.getRed() / 255F; + this.particleGreen = color.getGreen() / 255F; + this.particleBlue = color.getBlue() / 255F; + + this.particleAlpha = (float) Math.pow(1 - Math.min(ageScaled, 1), 0.25); + + tess.setColorRGBA_F(this.particleRed, this.particleGreen, this.particleBlue, this.particleAlpha * 0.5F); + tess.setNormal(0.0F, 1.0F, 0.0F); + + double scale = (0.25 + 1 - Math.pow(1 - ageScaled, 4) + (this.particleAge + interp) * 0.02) * this.particleScale; + renderParticleRotated(tess, interp, sX, sY, sZ, dX, dZ, scale); + } +} diff --git a/src/main/java/com/hbm/particle/ParticleFlamethrower.java b/src/main/java/com/hbm/particle/ParticleFlamethrower.java index 3cadf6f22..cc11601ba 100644 --- a/src/main/java/com/hbm/particle/ParticleFlamethrower.java +++ b/src/main/java/com/hbm/particle/ParticleFlamethrower.java @@ -62,7 +62,7 @@ public class ParticleFlamethrower extends EntityFXRotating { tess.setNormal(0.0F, 1.0F, 0.0F); tess.setBrightness(240); - double scale = (ageScaled * 0.75 + 0.5) * particleScale; + double scale = (ageScaled * 1.25 + 0.25) * particleScale; renderParticleRotated(tess, interp, sX, sY, sZ, dX, dZ, scale); } diff --git a/src/main/java/com/hbm/particle/helper/ExplosionSmallCreator.java b/src/main/java/com/hbm/particle/helper/ExplosionSmallCreator.java new file mode 100644 index 000000000..b271f80f6 --- /dev/null +++ b/src/main/java/com/hbm/particle/helper/ExplosionSmallCreator.java @@ -0,0 +1,61 @@ +package com.hbm.particle.helper; + +import java.util.Random; + +import com.hbm.particle.ParticleExplosionSmall; + +import cpw.mods.fml.relauncher.ReflectionHelper; +import net.minecraft.block.Block; +import net.minecraft.client.Minecraft; +import net.minecraft.client.particle.EntityBlockDustFX; +import net.minecraft.client.particle.EntityFX; +import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class ExplosionSmallCreator implements IParticleCreator { + + public static void composeEffect(World world, double x, double y, double z, int cloudCount, float cloudScale, float cloudSpeedMult) { + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "explosionSmall"); + data.setInteger("cloudCount", cloudCount); + data.setFloat("cloudScale", cloudScale); + data.setFloat("cloudSpeedMult", cloudSpeedMult); + data.setInteger("debris", 15); + IParticleCreator.sendPacket(world, x, y, z, 150, data); + } + + @Override + public void makeParticle(World world, EntityPlayer player, TextureManager texman, Random rand, double x, double y, double z, NBTTagCompound data) { + + int cloudCount = data.getInteger("cloudCount"); + float cloudScale = data.getFloat("cloudScale"); + float cloudSpeedMult = data.getFloat("cloudSpeedMult"); + int debris = data.getInteger("debris"); + + for(int i = 0; i < cloudCount; i++) { + ParticleExplosionSmall particle = new ParticleExplosionSmall(world, x, y, z, cloudScale, cloudSpeedMult); + Minecraft.getMinecraft().effectRenderer.addEffect(particle); + } + + Block b = Blocks.air; + int meta = 0; + + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + b = world.getBlock((int) Math.floor(x) + dir.offsetX, (int) Math.floor(y) + dir.offsetY, (int) Math.floor(z) + dir.offsetZ); + meta = world.getBlockMetadata((int) Math.floor(x) + dir.offsetX, (int) Math.floor(y) + dir.offsetY, (int) Math.floor(z) + dir.offsetZ); + if(b != Blocks.air) break; + } + + if(b != Blocks.air) for(int i = 0; i < debris; i++) { + EntityBlockDustFX fx = new EntityBlockDustFX(world, x, y + 0.1, z, world.rand.nextGaussian() * 0.2, 0.5F + world.rand.nextDouble() * 0.7, world.rand.nextGaussian() * 0.2, b, meta); + fx.multipleParticleScaleBy(2); + ReflectionHelper.setPrivateValue(EntityFX.class, fx, 50 + rand.nextInt(20), "particleMaxAge", "field_70547_e"); + Minecraft.getMinecraft().effectRenderer.addEffect(fx); + } + } +} diff --git a/src/main/java/com/hbm/particle/helper/ParticleCreators.java b/src/main/java/com/hbm/particle/helper/ParticleCreators.java new file mode 100644 index 000000000..84df3293b --- /dev/null +++ b/src/main/java/com/hbm/particle/helper/ParticleCreators.java @@ -0,0 +1,15 @@ +package com.hbm.particle.helper; + +import java.util.HashMap; + +public class ParticleCreators { + + public static HashMap particleCreators = new HashMap(); + + static { + particleCreators.put("explosionLarge", new ExplosionCreator()); + particleCreators.put("casingNT", new CasingCreator()); + particleCreators.put("flamethrower", new FlameCreator()); + particleCreators.put("explosionSmall", new ExplosionSmallCreator()); + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAm180.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAm180.java index 599f58f83..7f4ae8d3c 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAm180.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAm180.java @@ -50,12 +50,18 @@ public class ItemRenderAm180 extends ItemRenderWeaponBase { GL11.glTranslated(0, 0, recoil[2]); + HbmAnimations.applyRelevantTransformation("Gun"); ResourceManager.am180.renderPart("Gun"); ResourceManager.am180.renderPart("Silencer"); + + GL11.glPushMatrix(); + HbmAnimations.applyRelevantTransformation("Trigger"); ResourceManager.am180.renderPart("Trigger"); + GL11.glPopMatrix(); GL11.glPushMatrix(); GL11.glTranslated(0, 0, bolt[2]); + HbmAnimations.applyRelevantTransformation("Bolt"); ResourceManager.am180.renderPart("Bolt"); GL11.glPopMatrix(); @@ -70,6 +76,8 @@ public class ItemRenderAm180 extends ItemRenderWeaponBase { GL11.glTranslated(0, 2.3125, 1.5); GL11.glRotated(magSpin[0], 1, 0, 0); GL11.glTranslated(0, -2.3125, -1.5); + + HbmAnimations.applyRelevantTransformation("Mag"); GL11.glPushMatrix(); int mag = gun.getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getAmount(stack); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFlamer.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFlamer.java index e2e1b3b0f..31b63e608 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFlamer.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFlamer.java @@ -34,16 +34,31 @@ public class ItemRenderFlamer extends ItemRenderWeaponBase { GL11.glScaled(scale, scale, scale); double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); + double[] rotate = HbmAnimations.getRelevantTransformation("ROTATE"); - GL11.glTranslated(0, -1, -3); - GL11.glRotated(equip[0], 1, 0, 0); - GL11.glTranslated(0, 1, 3); + GL11.glTranslated(0, 2, -6); + GL11.glRotated(-equip[0], 1, 0, 0); + GL11.glTranslated(0, -2, 6); + + GL11.glTranslated(0, 1, 0); + GL11.glRotated(rotate[2], 0, 0, 1); + GL11.glTranslated(0, -1, 0); GL11.glShadeModel(GL11.GL_SMOOTH); - ResourceManager.flamethrower.renderPart("Gun"); - ResourceManager.flamethrower.renderPart("Tank"); GL11.glPushMatrix(); + HbmAnimations.applyRelevantTransformation("Gun"); + ResourceManager.flamethrower.renderPart("Gun"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + HbmAnimations.applyRelevantTransformation("Tank"); + ResourceManager.flamethrower.renderPart("Tank"); + GL11.glPopMatrix(); + + + GL11.glPushMatrix(); + HbmAnimations.applyRelevantTransformation("Gauge"); GL11.glTranslated(1.25, 1.25, 0); IMagazine mag = gun.getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack); GL11.glRotated(-135 + (mag.getAmount(stack) * 270D / mag.getCapacity(stack)), 0, 0, 1); @@ -57,7 +72,9 @@ public class ItemRenderFlamer extends ItemRenderWeaponBase { @Override public void setupThirdPerson(ItemStack stack) { super.setupThirdPerson(stack); - GL11.glTranslated(0, 1, 3); + double scale = 1.75D; + GL11.glScaled(scale, scale, scale); + GL11.glTranslated(0, -3, 4); } diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderWeaponBase.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderWeaponBase.java index 7212aa842..926ac4295 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderWeaponBase.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderWeaponBase.java @@ -213,7 +213,7 @@ public abstract class ItemRenderWeaponBase implements IItemRenderer { GL11.glRotatef(15.0F, 0.0F, 0.0F, 1.0F); GL11.glRotatef(12.5F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(10.0F, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(15.0F, 1.0F, 0.0F, 0.0F); GL11.glTranslated(3.5, 0, 0); diff --git a/src/main/resources/assets/hbm/models/weapons/animations/am180.json b/src/main/resources/assets/hbm/models/weapons/animations/am180.json new file mode 100644 index 000000000..696b981a7 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/animations/am180.json @@ -0,0 +1 @@ +{"anim": {"Fire": {"Gun": {"location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 11.111111442248026, 0.0, "AUTO_CLAMPED"], [0.049645546823740005, 33.333333333333336, "BEZIER", "AUTO", 22.22222089767456, 0.049645546823740005, "AUTO_CLAMPED", 61.111108462015785, 0.049645546823740005, "AUTO_CLAMPED"], [-0.0984705239534378, 83.33333333333334, "BEZIER", "AUTO", 88.88889153798421, -0.0984705239534378, "AUTO_CLAMPED", 155.5555502573649, -0.0984705239534378, "AUTO_CLAMPED"], [0.0, 116.66666666666667, "BEZIER", "AUTO", 194.44444974263507, 0.0, "AUTO_CLAMPED", 272.2222328186035, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 11.111111442248026, -0.0, "AUTO_CLAMPED"], [-0.11763561517000198, 33.333333333333336, "BEZIER", "AUTO", 22.22222089767456, -0.06207846477627754, "AUTO_CLAMPED", 61.111108462015785, -0.25652849674224854, "AUTO_CLAMPED"], [-0.35466307401657104, 83.33333333333334, "BEZIER", "AUTO", 88.88889153798421, -0.35466307401657104, "AUTO_CLAMPED", 155.5555502573649, -0.35466307401657104, "AUTO_CLAMPED"], [-0.0, 116.66666666666667, "BEZIER", "AUTO", 194.44444974263507, -0.0, "AUTO_CLAMPED", 272.2222328186035, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 11.111111442248026, 0.0, "AUTO_CLAMPED"], [0.137577086687088, 33.333333333333336, "BEZIER", "AUTO", 22.22222089767456, 0.137577086687088, "AUTO_CLAMPED", 61.111108462015785, 0.137577086687088, "AUTO_CLAMPED"], [0.027738595381379128, 83.33333333333334, "BEZIER", "AUTO", 88.88889153798421, 0.04755187779664993, "AUTO_CLAMPED", 155.5555502573649, 0.0, "AUTO_CLAMPED"], [0.0, 116.66666666666667, "BEZIER", "AUTO", 194.44444974263507, 0.0, "AUTO_CLAMPED", 272.2222328186035, 0.0, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 11.111111442248026, 0.0, "AUTO_CLAMPED"], [-1.5968555392666686, 33.333333333333336, "BEZIER", "AUTO", 22.22222089767456, -1.5968555392666686, "AUTO_CLAMPED", 61.111108462015785, -1.5968555392666686, "AUTO_CLAMPED"], [-0.2641522033845276, 83.33333333333334, "BEZIER", "AUTO", 88.88889153798421, -0.4528323639051482, "AUTO_CLAMPED", 155.5555502573649, 0.0, "AUTO_CLAMPED"], [0.0, 116.66666666666667, "BEZIER", "AUTO", 194.44444974263507, 0.0, "AUTO_CLAMPED", 272.2222328186035, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 11.111111442248026, -0.0, "AUTO_CLAMPED"], [0.8132398352613003, 33.333333333333336, "BEZIER", "AUTO", 22.22222089767456, 0.8132398352613003, "AUTO_CLAMPED", 61.111108462015785, 0.8132398352613003, "AUTO_CLAMPED"], [-2.1020325519800904, 83.33333333333334, "BEZIER", "AUTO", 88.88889153798421, -2.1020325519800904, "AUTO_CLAMPED", 155.5555502573649, -2.1020325519800904, "AUTO_CLAMPED"], [-0.0, 116.66666666666667, "BEZIER", "AUTO", 194.44444974263507, -0.0, "AUTO_CLAMPED", 272.2222328186035, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 11.111111442248026, 0.0, "AUTO_CLAMPED"], [0.11745385395824333, 33.333333333333336, "BEZIER", "AUTO", 22.22222089767456, 0.11745385395824333, "AUTO_CLAMPED", 61.111108462015785, 0.11745385395824333, "AUTO_CLAMPED"], [0.07823202625797401, 83.33333333333334, "BEZIER", "AUTO", 88.88889153798421, 0.10131339657798917, "AUTO_CLAMPED", 155.5555502573649, 0.045918111145006095, "AUTO_CLAMPED"], [0.0, 116.66666666666667, "BEZIER", "AUTO", 194.44444974263507, 0.0, "AUTO_CLAMPED", 272.2222328186035, 0.0, "AUTO_CLAMPED"]]}}, "Trigger": {"location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 16.666666666666668, 0.0, "AUTO_CLAMPED"]], "z": [[-1.5625001192092896, 0.0, "BEZIER", "AUTO", 16.666666666666668, -1.5625001192092896, "AUTO_CLAMPED"]], "y": [[1.111669898033142, 0.0, "BEZIER", "AUTO", 16.666666666666668, 1.111669898033142, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 5.555555721124013, 0.0, "AUTO_CLAMPED"], [29.4423193041891, 16.666666666666668, "BEZIER", "AUTO", 11.11111044883728, 29.4423193041891, "AUTO_CLAMPED", 38.888891537984215, 29.4423193041891, "AUTO_CLAMPED"], [29.4423193041891, 66.66666666666666, "BEZIER", "AUTO", 61.111108462015785, 29.4423193041891, "AUTO_CLAMPED", 133.33333333333334, 29.4423193041891, "AUTO_CLAMPED"], [0.0, 150.0, "BEZIER", "AUTO", 183.33333333333331, 0.0, "AUTO_CLAMPED", 283.3333333333333, 0.0, "AUTO_CLAMPED"]]}}}, "FireDry": {"Bolt": {"location": {"x": [[0.4437499940395355, 0.0, "BEZIER", "AUTO", 933.3333333333334, 0.4437499940395355, "AUTO_CLAMPED"]], "z": [[-1.8655332326889038, 0.0, "BEZIER", "AUTO", 122.22222487131755, -1.8655332326889038, "AUTO_CLAMPED"], [-1.8655332326889038, 366.66666666666663, "BEZIER", "EASE_IN", 244.44443384806314, -1.8655332326889038, "AUTO_CLAMPED", 405.55556615193683, -1.8655332326889038, "AUTO_CLAMPED"], [-3.3269410133361816, 116.66666666666669, "BEZIER", "AUTO", 444.44443384806317, -3.3269410133361816, "AUTO_CLAMPED", 516.6666666666666, -3.3269410133361816, "AUTO_CLAMPED"], [-3.3269410133361816, 100.00000000000006, "EXPO", "EASE_IN", 550.0, -3.3269410133361816, "AUTO_CLAMPED"], [-1.8655332326889038, 83.33333333333326, "BEZIER", "AUTO", 694.444465637207, -1.8655332326889038, "AUTO_CLAMPED"]], "y": [[1.8304203748703003, 0.0, "BEZIER", "AUTO", 933.3333333333334, 1.8304203748703003, "AUTO_CLAMPED"]]}}, "Gun": {"location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 33.333333333333336, 0.0, "AUTO_CLAMPED"], [0.0, 100.0, "BEZIER", "AUTO", 66.66666666666667, 0.0, "AUTO_CLAMPED", 177.77776718139648, 0.0, "AUTO_CLAMPED"], [0.378823459148407, 233.33333333333331, "BEZIER", "AUTO", 255.55556615193686, 0.378823459148407, "AUTO_CLAMPED", 377.7777671813965, 0.378823459148407, "AUTO_CLAMPED"], [0.3284962773323059, 133.33333333333337, "BEZIER", "AUTO", 422.2222328186035, 0.378823459148407, "AUTO_CLAMPED", 505.5555661519369, 0.28446000814437866, "AUTO_CLAMPED"], [0.0780496671795845, 116.66666666666669, "BEZIER", "AUTO", 544.444465637207, 0.12340082228183746, "AUTO_CLAMPED", 605.555534362793, 0.052134718745946884, "AUTO_CLAMPED"], [0.052134718745946884, 66.66666666666663, "BEZIER", "AUTO", 627.7777989705403, 0.052134718745946884, "AUTO_CLAMPED", 677.7777989705404, 0.052134718745946884, "AUTO_CLAMPED"], [0.06624312698841095, 83.33333333333326, "BEZIER", "AUTO", 705.555534362793, 0.06624312698841095, "AUTO_CLAMPED", 794.444465637207, 0.06624312698841095, "AUTO_CLAMPED"], [0.0, 183.33333333333337, "BEZIER", "AUTO", 855.555534362793, 0.0, "AUTO_CLAMPED", 977.7777989705404, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 33.333333333333336, -0.0, "AUTO_CLAMPED"], [-0.0, 100.0, "BEZIER", "AUTO", 66.66666666666667, -0.0, "AUTO_CLAMPED", 177.77776718139648, -0.0, "AUTO_CLAMPED"], [0.3215503692626953, 233.33333333333331, "BEZIER", "AUTO", 255.55556615193686, 0.3215503692626953, "AUTO_CLAMPED", 377.7777671813965, 0.3215503692626953, "AUTO_CLAMPED"], [0.27883198857307434, 133.33333333333337, "BEZIER", "AUTO", 422.2222328186035, 0.3215503692626953, "AUTO_CLAMPED", 505.5555661519369, 0.2414534091949463, "AUTO_CLAMPED"], [-0.044656865298748016, 116.66666666666669, "BEZIER", "AUTO", 544.444465637207, -0.010165050625801086, "AUTO_CLAMPED", 605.555534362793, -0.06436647474765778, "AUTO_CLAMPED"], [-0.06436647474765778, 66.66666666666663, "BEZIER", "AUTO", 627.7777989705403, -0.06436647474765778, "AUTO_CLAMPED", 677.7777989705404, -0.06436647474765778, "AUTO_CLAMPED"], [0.21741850674152374, 83.33333333333326, "BEZIER", "AUTO", 705.555534362793, 0.21741850674152374, "AUTO_CLAMPED", 794.444465637207, 0.21741850674152374, "AUTO_CLAMPED"], [-0.0, 183.33333333333337, "BEZIER", "AUTO", 855.555534362793, -0.0, "AUTO_CLAMPED", 977.7777989705404, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 33.333333333333336, 0.0, "AUTO_CLAMPED"], [0.0, 100.0, "BEZIER", "AUTO", 66.66666666666667, 0.0, "AUTO_CLAMPED", 177.77776718139648, 0.0, "AUTO_CLAMPED"], [-0.03033590316772461, 233.33333333333331, "BEZIER", "AUTO", 255.55556615193686, -0.03033590316772461, "AUTO_CLAMPED", 377.7777671813965, -0.03033590316772461, "AUTO_CLAMPED"], [-0.013926569372415543, 133.33333333333337, "BEZIER", "AUTO", 422.2222328186035, -0.022176561877131462, "AUTO_CLAMPED", 505.5555661519369, -0.006707826163619757, "AUTO_CLAMPED"], [0.000580325722694397, 116.66666666666669, "BEZIER", "AUTO", 544.444465637207, 0.000580325722694397, "AUTO_CLAMPED", 605.555534362793, 0.000580325722694397, "AUTO_CLAMPED"], [-0.08202043920755386, 66.66666666666663, "BEZIER", "AUTO", 627.7777989705403, -0.08202043920755386, "AUTO_CLAMPED", 677.7777989705404, -0.08202043920755386, "AUTO_CLAMPED"], [0.007577709853649139, 83.33333333333326, "BEZIER", "AUTO", 705.555534362793, 0.007577709853649139, "AUTO_CLAMPED", 794.444465637207, 0.007577709853649139, "AUTO_CLAMPED"], [0.0, 183.33333333333337, "BEZIER", "AUTO", 855.555534362793, 0.0, "AUTO_CLAMPED", 977.7777989705404, 0.0, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 44.444445768992104, 0.0, "AUTO_CLAMPED"], [0.0, 133.33333333333334, "BEZIER", "AUTO", 88.88888359069824, 0.0, "AUTO_CLAMPED", 200.0, 0.0, "AUTO_CLAMPED"], [-9.762812852427766, 199.99999999999997, "BEZIER", "AUTO", 266.6666666666667, -9.762812852427766, "AUTO_CLAMPED", 377.7777671813965, -9.762812852427766, "AUTO_CLAMPED"], [-8.46581115546112, 133.33333333333337, "BEZIER", "AUTO", 422.2222328186035, -8.46581115546112, "AUTO_CLAMPED", 505.5555661519369, -8.46581115546112, "AUTO_CLAMPED"], [-9.922516335601005, 116.66666666666669, "BEZIER", "AUTO", 544.444465637207, -9.922516335601005, "AUTO_CLAMPED", 605.555534362793, -9.922516335601005, "AUTO_CLAMPED"], [-5.976405705364225, 66.66666666666663, "BEZIER", "AUTO", 627.7777989705403, -7.419544849151995, "AUTO_CLAMPED", 677.7777989705404, -4.172482309238042, "AUTO_CLAMPED"], [-3.5616000082690333, 83.33333333333326, "BEZIER", "AUTO", 705.555534362793, -4.02454510757062, "AUTO_CLAMPED", 794.444465637207, -2.5431206190508133, "AUTO_CLAMPED"], [0.0, 183.33333333333337, "BEZIER", "AUTO", 855.555534362793, 0.0, "AUTO_CLAMPED", 977.7777989705404, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 44.444445768992104, -0.0, "AUTO_CLAMPED"], [-0.0, 133.33333333333334, "BEZIER", "AUTO", 88.88888359069824, -0.0, "AUTO_CLAMPED", 200.0, -0.0, "AUTO_CLAMPED"], [12.070624489948354, 199.99999999999997, "BEZIER", "AUTO", 266.6666666666667, 12.070624489948354, "AUTO_CLAMPED", 377.7777671813965, 12.070624489948354, "AUTO_CLAMPED"], [10.467026700197236, 133.33333333333337, "BEZIER", "AUTO", 422.2222328186035, 11.083953291694883, "AUTO_CLAMPED", 505.5555661519369, 9.927215505749972, "AUTO_CLAMPED"], [8.542568821353722, 116.66666666666669, "BEZIER", "AUTO", 544.444465637207, 9.67049003919035, "AUTO_CLAMPED", 605.555534362793, 7.8980422891937, "AUTO_CLAMPED"], [6.156128899881594, 66.66666666666663, "BEZIER", "AUTO", 627.7777989705403, 6.969043500744525, "AUTO_CLAMPED", 677.7777989705404, 5.139985862246341, "AUTO_CLAMPED"], [3.4902371246036825, 83.33333333333326, "BEZIER", "AUTO", 705.555534362793, 4.305224474436301, "AUTO_CLAMPED", 794.444465637207, 1.6972648695945567, "AUTO_CLAMPED"], [-0.0, 183.33333333333337, "BEZIER", "AUTO", 855.555534362793, -0.0, "AUTO_CLAMPED", 977.7777989705404, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 44.444445768992104, 0.0, "AUTO_CLAMPED"], [0.0, 133.33333333333334, "BEZIER", "AUTO", 88.88888359069824, 0.0, "AUTO_CLAMPED", 200.0, 0.0, "AUTO_CLAMPED"], [6.133171353420711, 199.99999999999997, "BEZIER", "AUTO", 266.6666666666667, 6.133171353420711, "AUTO_CLAMPED", 377.7777671813965, 6.133171353420711, "AUTO_CLAMPED"], [5.3183716203468565, 133.33333333333337, "BEZIER", "AUTO", 422.2222328186035, 6.133171353420711, "AUTO_CLAMPED", 505.5555661519369, 4.60542196062894, "AUTO_CLAMPED"], [2.264997877368833, 116.66666666666669, "BEZIER", "AUTO", 544.444465637207, 2.684597955867284, "AUTO_CLAMPED", 605.555534362793, 2.0252264344330624, "AUTO_CLAMPED"], [2.0252264344330624, 66.66666666666663, "BEZIER", "AUTO", 627.7777989705403, 2.147129516305334, "AUTO_CLAMPED", 677.7777989705404, 1.8728476888144283, "AUTO_CLAMPED"], [0.9566294649628159, 83.33333333333326, "BEZIER", "AUTO", 705.555534362793, 1.339521972427503, "AUTO_CLAMPED", 794.444465637207, 0.11426602324569855, "AUTO_CLAMPED"], [0.0, 183.33333333333337, "BEZIER", "AUTO", 855.555534362793, 0.0, "AUTO_CLAMPED", 977.7777989705404, 0.0, "AUTO_CLAMPED"]]}}, "Trigger": {"location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 16.666666666666668, 0.0, "AUTO_CLAMPED"]], "z": [[-1.5625001192092896, 0.0, "BEZIER", "AUTO", 16.666666666666668, -1.5625001192092896, "AUTO_CLAMPED"]], "y": [[1.111669898033142, 0.0, "BEZIER", "AUTO", 16.666666666666668, 1.111669898033142, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 5.555555721124013, 0.0, "AUTO_CLAMPED"], [29.4423193041891, 16.666666666666668, "BEZIER", "AUTO", 11.11111044883728, 29.4423193041891, "AUTO_CLAMPED", 38.888891537984215, 29.4423193041891, "AUTO_CLAMPED"], [29.4423193041891, 66.66666666666666, "BEZIER", "AUTO", 61.111108462015785, 29.4423193041891, "AUTO_CLAMPED", 133.33333333333334, 29.4423193041891, "AUTO_CLAMPED"], [0.0, 150.0, "BEZIER", "AUTO", 183.33333333333331, 0.0, "AUTO_CLAMPED", 283.3333333333333, 0.0, "AUTO_CLAMPED"]]}}}, "Inspect": {"Gun": {"location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 55.555554231007896, 0.0, "AUTO_CLAMPED"], [0.07114996761083603, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, 0.07114996761083603, "AUTO_CLAMPED", 211.11111640930176, 0.07114996761083603, "AUTO_CLAMPED"], [0.06900998950004578, 133.33333333333334, "BEZIER", "AUTO", 255.55555025736493, 0.07114996761083603, "AUTO_CLAMPED", 355.55556615193683, 0.06633501499891281, "AUTO_CLAMPED"], [0.04820222035050392, 166.66666666666669, "BEZIER", "AUTO", 411.1111005147298, 0.04820222035050392, "AUTO_CLAMPED", 527.7777671813965, 0.04820222035050392, "AUTO_CLAMPED"], [0.05328037589788437, 183.33333333333331, "BEZIER", "AUTO", 588.8888676961262, 0.05328037589788437, "AUTO_CLAMPED", 1138.888931274414, 0.05328037589788437, "AUTO_CLAMPED"], [0.05328037589788437, 1466.6666666666665, "BEZIER", "AUTO", 1627.7777353922527, 0.05328037589788437, "AUTO_CLAMPED", 2166.6666666666665, 0.05328037589788437, "AUTO_CLAMPED"], [0.0, 150.0, "BEZIER", "AUTO", 2216.666666666667, 0.0, "AUTO_CLAMPED", 2400.0, 0.0, "AUTO_CLAMPED"], [0.0, 400.0, "BEZIER", "AUTO", 2533.333333333333, 0.0, "AUTO_CLAMPED", 2694.4445292154946, 0.0, "AUTO_CLAMPED"], [-0.005077464040368795, 83.33333333333348, "BEZIER", "AUTO", 2722.222137451172, -0.005077464040368795, "AUTO_CLAMPED", 2811.1111958821616, -0.005077464040368795, "AUTO_CLAMPED"], [0.03527374938130379, 183.33333333333303, "BEZIER", "AUTO", 2872.222137451172, 0.03527374938130379, "AUTO_CLAMPED", 2977.777862548828, 0.03527374938130379, "AUTO_CLAMPED"], [-0.020133668556809425, 133.33333333333348, "BEZIER", "AUTO", 3022.222137451172, -0.020133668556809425, "AUTO_CLAMPED", 3166.6666666666665, -0.020133668556809425, "AUTO_CLAMPED"], [0.0, 300.0, "BEZIER", "AUTO", 3266.6666666666665, 0.0, "AUTO_CLAMPED", 3466.666666666667, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 55.555554231007896, -0.0, "AUTO_CLAMPED"], [0.10114581137895584, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, 0.10114581137895584, "AUTO_CLAMPED", 211.11111640930176, 0.10114581137895584, "AUTO_CLAMPED"], [-0.1629212200641632, 133.33333333333334, "BEZIER", "AUTO", 255.55555025736493, -0.1629212200641632, "AUTO_CLAMPED", 355.55556615193683, -0.1629212200641632, "AUTO_CLAMPED"], [-0.004916742444038391, 166.66666666666669, "BEZIER", "AUTO", 411.1111005147298, -0.027451736852526665, "AUTO_CLAMPED", 527.7777671813965, 0.019871752709150314, "AUTO_CLAMPED"], [0.019871752709150314, 183.33333333333331, "BEZIER", "AUTO", 588.8888676961262, 0.019871752709150314, "AUTO_CLAMPED", 1138.888931274414, 0.019871752709150314, "AUTO_CLAMPED"], [0.019871752709150314, 1466.6666666666665, "BEZIER", "AUTO", 1627.7777353922527, 0.019871752709150314, "AUTO_CLAMPED", 2166.6666666666665, 0.019871752709150314, "AUTO_CLAMPED"], [-0.0, 150.0, "BEZIER", "AUTO", 2216.666666666667, -0.0, "AUTO_CLAMPED", 2400.0, -0.0, "AUTO_CLAMPED"], [-0.0, 400.0, "BEZIER", "AUTO", 2533.333333333333, -0.0, "AUTO_CLAMPED", 2694.4445292154946, -0.0, "AUTO_CLAMPED"], [0.01262839324772358, 83.33333333333348, "BEZIER", "AUTO", 2722.222137451172, 0.0035094833001494408, "AUTO_CLAMPED", 2811.1111958821616, 0.03268999606370926, "AUTO_CLAMPED"], [0.07990105450153351, 183.33333333333303, "BEZIER", "AUTO", 2872.222137451172, 0.07990105450153351, "AUTO_CLAMPED", 2977.777862548828, 0.07990105450153351, "AUTO_CLAMPED"], [0.07229746878147125, 133.33333333333348, "BEZIER", "AUTO", 3022.222137451172, 0.07987289875745773, "AUTO_CLAMPED", 3166.6666666666665, 0.05525274574756622, "AUTO_CLAMPED"], [-0.0, 300.0, "BEZIER", "AUTO", 3266.6666666666665, -0.0, "AUTO_CLAMPED", 3466.666666666667, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 55.555554231007896, 0.0, "AUTO_CLAMPED"], [-0.29975396394729614, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, -0.12830781936645508, "AUTO_CLAMPED", 211.11111640930176, -0.43691086769104004, "AUTO_CLAMPED"], [-0.6016762852668762, 133.33333333333334, "BEZIER", "AUTO", 255.55555025736493, -0.6016762852668762, "AUTO_CLAMPED", 355.55556615193683, -0.6016762852668762, "AUTO_CLAMPED"], [-0.2427852749824524, 166.66666666666669, "BEZIER", "AUTO", 411.1111005147298, -0.2427852749824524, "AUTO_CLAMPED", 527.7777671813965, -0.2427852749824524, "AUTO_CLAMPED"], [-0.5669558644294739, 183.33333333333331, "BEZIER", "AUTO", 588.8888676961262, -0.5669558644294739, "AUTO_CLAMPED", 1138.888931274414, -0.5669558644294739, "AUTO_CLAMPED"], [-0.5669558644294739, 1466.6666666666665, "BEZIER", "AUTO", 1627.7777353922527, -0.5669558644294739, "AUTO_CLAMPED", 2227.777862548828, -0.5669558644294739, "AUTO_CLAMPED"], [0.0, 333.3333333333335, "BEZIER", "AUTO", 2338.8888041178384, 0.0, "AUTO_CLAMPED", 2522.222137451172, 0.0, "AUTO_CLAMPED"], [0.0, 216.66666666666652, "BEZIER", "AUTO", 2594.4445292154946, 0.0, "AUTO_CLAMPED", 2694.4445292154946, 0.0, "AUTO_CLAMPED"], [0.13483214378356934, 83.33333333333348, "BEZIER", "AUTO", 2722.222137451172, 0.0764673575758934, "AUTO_CLAMPED", 2811.1111958821616, 0.2632346749305725, "AUTO_CLAMPED"], [0.3040197491645813, 183.33333333333303, "BEZIER", "AUTO", 2872.222137451172, 0.3040197491645813, "AUTO_CLAMPED", 2977.777862548828, 0.3040197491645813, "AUTO_CLAMPED"], [-0.47273141145706177, 133.33333333333348, "BEZIER", "AUTO", 3022.222137451172, -0.47273141145706177, "AUTO_CLAMPED", 3166.6666666666665, -0.47273141145706177, "AUTO_CLAMPED"], [0.0, 300.0, "BEZIER", "AUTO", 3266.6666666666665, 0.0, "AUTO_CLAMPED", 3466.666666666667, 0.0, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 55.555554231007896, 0.0, "AUTO_CLAMPED"], [2.9641926033154022, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, 2.9641926033154022, "AUTO_CLAMPED", 211.11111640930176, 2.9641926033154022, "AUTO_CLAMPED"], [2.9641926033154022, 133.33333333333334, "BEZIER", "AUTO", 255.55555025736493, 2.9641926033154022, "AUTO_CLAMPED", 355.55556615193683, 2.9641926033154022, "AUTO_CLAMPED"], [-1.8676834254716639, 166.66666666666669, "BEZIER", "AUTO", 411.1111005147298, -1.8676834254716639, "AUTO_CLAMPED", 527.7777671813965, -1.8676834254716639, "AUTO_CLAMPED"], [0.692141648494032, 183.33333333333331, "BEZIER", "AUTO", 588.8888676961262, 0.692141648494032, "AUTO_CLAMPED", 1138.888931274414, 0.692141648494032, "AUTO_CLAMPED"], [0.692141648494032, 1466.6666666666665, "BEZIER", "AUTO", 1627.7777353922527, 0.692141648494032, "AUTO_CLAMPED", 2183.333333333333, 0.692141648494032, "AUTO_CLAMPED"], [0.0, 200.0, "BEZIER", "AUTO", 2250.0, 0.692141648494032, "AUTO_CLAMPED", 2433.333333333333, -1.2112479248851957, "AUTO_CLAMPED"], [-7.739051707015083, 350.0, "BEZIER", "AUTO", 2550.0, -7.739051707015083, "AUTO_CLAMPED", 2722.222137451172, -7.739051707015083, "AUTO_CLAMPED"], [-7.646921846621719, 166.66666666666697, "BEZIER", "AUTO", 2777.777862548828, -7.646921846621719, "AUTO_CLAMPED", 2866.6666666666665, -7.646921846621719, "AUTO_CLAMPED"], [-7.646921846621719, 99.99999999999955, "BEZIER", "AUTO", 2900.0, -7.646921846621719, "AUTO_CLAMPED", 2977.777862548828, -7.646921846621719, "AUTO_CLAMPED"], [-7.646921846621719, 133.33333333333348, "BEZIER", "AUTO", 3022.222137451172, -7.646921846621719, "AUTO_CLAMPED", 3166.6666666666665, -7.646921846621719, "AUTO_CLAMPED"], [0.0, 300.0, "BEZIER", "AUTO", 3266.6666666666665, 0.0, "AUTO_CLAMPED", 3466.666666666667, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 55.555554231007896, -0.0, "AUTO_CLAMPED"], [-0.97928136045834, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, -0.97928136045834, "AUTO_CLAMPED", 211.11111640930176, -0.97928136045834, "AUTO_CLAMPED"], [-0.97928136045834, 133.33333333333334, "BEZIER", "AUTO", 255.55555025736493, -0.97928136045834, "AUTO_CLAMPED", 355.55556615193683, -0.97928136045834, "AUTO_CLAMPED"], [-0.8304706416290971, 166.66666666666669, "BEZIER", "AUTO", 411.1111005147298, -0.8304706416290971, "AUTO_CLAMPED", 527.7777671813965, -0.8304706416290971, "AUTO_CLAMPED"], [-0.8304706416290971, 183.33333333333331, "BEZIER", "AUTO", 588.8888676961262, -0.8304706416290971, "AUTO_CLAMPED", 1138.888931274414, -0.8304706416290971, "AUTO_CLAMPED"], [-0.8304706416290971, 1466.6666666666665, "BEZIER", "AUTO", 1627.7777353922527, -0.8304706416290971, "AUTO_CLAMPED", 2250.0, -0.8304706416290971, "AUTO_CLAMPED"], [-0.0, 400.0, "BEZIER", "AUTO", 2383.3333333333335, -0.0, "AUTO_CLAMPED", 2622.222137451172, -0.0, "AUTO_CLAMPED"], [-8.823071883961452, 316.66666666666697, "BEZIER", "AUTO", 2727.777862548828, -8.823071883961452, "AUTO_CLAMPED", 2866.6666666666665, -8.823071883961452, "AUTO_CLAMPED"], [-8.823071883961452, 99.99999999999955, "BEZIER", "AUTO", 2900.0, -8.823071883961452, "AUTO_CLAMPED", 2977.777862548828, -8.823071883961452, "AUTO_CLAMPED"], [-8.823071883961452, 133.33333333333348, "BEZIER", "AUTO", 3022.222137451172, -8.823071883961452, "AUTO_CLAMPED", 3166.6666666666665, -8.823071883961452, "AUTO_CLAMPED"], [-0.0, 300.0, "BEZIER", "AUTO", 3266.6666666666665, -0.0, "AUTO_CLAMPED", 3466.666666666667, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 55.555554231007896, 0.0, "AUTO_CLAMPED"], [0.35034732308023736, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, 0.35034732308023736, "AUTO_CLAMPED", 211.11111640930176, 0.35034732308023736, "AUTO_CLAMPED"], [0.35034732308023736, 133.33333333333334, "BEZIER", "AUTO", 255.55555025736493, 0.35034732308023736, "AUTO_CLAMPED", 355.55556615193683, 0.35034732308023736, "AUTO_CLAMPED"], [0.007649265755435478, 166.66666666666669, "BEZIER", "AUTO", 411.1111005147298, 0.007649265755435478, "AUTO_CLAMPED", 527.7777671813965, 0.007649265755435478, "AUTO_CLAMPED"], [0.007649265755435478, 183.33333333333331, "BEZIER", "AUTO", 588.8888676961262, 0.007649265755435478, "AUTO_CLAMPED", 1138.888931274414, 0.007649265755435478, "AUTO_CLAMPED"], [0.007649265755435478, 1466.6666666666665, "BEZIER", "AUTO", 1627.7777353922527, 0.007649265755435478, "AUTO_CLAMPED", 2250.0, 0.007649265755435478, "AUTO_CLAMPED"], [0.0, 400.0, "BEZIER", "AUTO", 2383.3333333333335, 0.0, "AUTO_CLAMPED", 2622.222137451172, 0.0, "AUTO_CLAMPED"], [1.1941439572647203, 316.66666666666697, "BEZIER", "AUTO", 2727.777862548828, 1.1941439572647203, "AUTO_CLAMPED", 2866.6666666666665, 1.1941439572647203, "AUTO_CLAMPED"], [1.1941439572647203, 99.99999999999955, "BEZIER", "AUTO", 2900.0, 1.1941439572647203, "AUTO_CLAMPED", 2977.777862548828, 1.1941439572647203, "AUTO_CLAMPED"], [1.1941439572647203, 133.33333333333348, "BEZIER", "AUTO", 3022.222137451172, 1.1941439572647203, "AUTO_CLAMPED", 3166.6666666666665, 1.1941439572647203, "AUTO_CLAMPED"], [0.0, 300.0, "BEZIER", "AUTO", 3266.6666666666665, 0.0, "AUTO_CLAMPED", 3466.666666666667, 0.0, "AUTO_CLAMPED"]]}}, "Mag": {"location": {"x": [[1.6590982809816524e-08, 0.0, "BEZIER", "AUTO", 55.555554231007896, 1.6590982809816524e-08, "AUTO_CLAMPED"], [1.6590982809816524e-08, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, 1.6590982809816524e-08, "AUTO_CLAMPED", 277.7777671813965, 1.6590982809816524e-08, "AUTO_CLAMPED"], [-0.00021278602071106434, 333.33333333333337, "BEZIER", "AUTO", 388.88889948527014, 1.658918336033821e-08, "AUTO_CLAMPED", 555.555534362793, -0.0003191873256582767, "AUTO_CLAMPED"], [-0.11996961385011673, 166.66666666666663, "BEZIER", "AUTO", 611.1111323038737, -0.11996961385011673, "AUTO_CLAMPED", 794.444465637207, -0.11996961385011673, "AUTO_CLAMPED"], [5.424437999725342, 383.33333333333337, "BEZIER", "AUTO", 922.2222010294596, 5.351675987243652, "AUTO_CLAMPED", 1083.3333333333333, 5.443419456481934, "AUTO_CLAMPED"], [5.443419456481934, 100.0, "BEZIER", "AUTO", 1116.6666666666667, 5.43773889541626, "AUTO_CLAMPED", 1266.6666666666665, 5.463301658630371, "AUTO_CLAMPED"], [5.622357368469238, 350.0, "BEZIER", "AUTO", 1383.3333333333333, 5.622357368469238, "AUTO_CLAMPED", 1594.4444020589192, 5.622357368469238, "AUTO_CLAMPED"], [5.575819969177246, 283.33333333333326, "BACK", "AUTO", 1688.888931274414, 5.588100433349609, "AUTO_CLAMPED", 14.701579093933105], [5.515981674194336, 316.66666666666674, "BEZIER", "AUTO", 2283.333333333333, 5.412052154541016, "AUTO_CLAMPED"], [-0.003756664227694273, 550.0, "BEZIER", "AUTO", 2466.666666666667, -0.0037566630635410547, "AUTO_CLAMPED", 2688.8888041178384, -0.0037566644605249166, "AUTO_CLAMPED"], [-0.0037566644605249166, 116.66666666666652, "BEZIER", "AUTO", 2727.777862548828, -0.0037566644605249166, "AUTO_CLAMPED", 2838.8888041178384, -0.0037566644605249166, "AUTO_CLAMPED"], [1.6590982809816524e-08, 216.66666666666697, "BEZIER", "AUTO", 2911.1111958821616, 1.6590982809816524e-08, "AUTO_CLAMPED", 3055.5554707845054, 1.6590982809816524e-08, "AUTO_CLAMPED"]], "z": [[1.5, 0.0, "BEZIER", "AUTO", 55.555554231007896, 1.5, "AUTO_CLAMPED"], [1.5, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, 1.5, "AUTO_CLAMPED", 277.7777671813965, 1.5, "AUTO_CLAMPED"], [1.6245688199996948, 333.33333333333337, "BEZIER", "AUTO", 388.88889948527014, 1.6245688199996948, "AUTO_CLAMPED", 555.555534362793, 1.6245688199996948, "AUTO_CLAMPED"], [1.6012111902236938, 166.66666666666663, "BEZIER", "AUTO", 611.1111323038737, 1.6012111902236938, "AUTO_CLAMPED", 794.444465637207, 1.6012111902236938, "AUTO_CLAMPED"], [2.137399435043335, 383.33333333333337, "BEZIER", "AUTO", 922.2222010294596, 2.016054153442383, "AUTO_CLAMPED", 1083.3333333333333, 2.1690547466278076, "AUTO_CLAMPED"], [2.213783025741577, 100.0, "BEZIER", "AUTO", 1116.6666666666667, 2.180736780166626, "AUTO_CLAMPED", 1266.6666666666665, 2.3294453620910645, "AUTO_CLAMPED"], [2.7068216800689697, 350.0, "BEZIER", "AUTO", 1383.3333333333333, 2.7068216800689697, "AUTO_CLAMPED", 1594.4444020589192, 2.7068216800689697, "AUTO_CLAMPED"], [2.5465469360351562, 283.33333333333326, "BACK", "AUTO", 1688.888931274414, 2.596926212310791, "AUTO_CLAMPED", 6.601579666137695], [2.3682148456573486, 316.66666666666674, "BEZIER", "AUTO", 2283.333333333333, 2.124948024749756, "AUTO_CLAMPED"], [1.4047539234161377, 550.0, "BEZIER", "AUTO", 2466.666666666667, 1.4047539234161377, "AUTO_CLAMPED", 2688.8888041178384, 1.4047539234161377, "AUTO_CLAMPED"], [1.634982943534851, 116.66666666666652, "BEZIER", "AUTO", 2727.777862548828, 1.634982943534851, "AUTO_CLAMPED", 2838.8888041178384, 1.634982943534851, "AUTO_CLAMPED"], [1.5, 216.66666666666697, "BEZIER", "AUTO", 2911.1111958821616, 1.5, "AUTO_CLAMPED", 3055.5554707845054, 1.5, "AUTO_CLAMPED"]], "y": [[2.3913047313690186, 0.0, "BEZIER", "AUTO", 55.555554231007896, 2.3913047313690186, "AUTO_CLAMPED"], [2.3913047313690186, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, 2.3913047313690186, "AUTO_CLAMPED", 277.7777671813965, 2.3913047313690186, "AUTO_CLAMPED"], [3.190911054611206, 333.33333333333337, "BEZIER", "AUTO", 388.88889948527014, 2.6377265453338623, "AUTO_CLAMPED", 555.555534362793, 3.467503309249878, "AUTO_CLAMPED"], [3.820786476135254, 166.66666666666663, "BEZIER", "AUTO", 611.1111323038737, 3.820786476135254, "AUTO_CLAMPED", 794.444465637207, 3.820786476135254, "AUTO_CLAMPED"], [2.135780096054077, 383.33333333333337, "BEZIER", "AUTO", 922.2222010294596, 3.0386812686920166, "AUTO_CLAMPED", 1083.3333333333333, 1.9002406597137451, "AUTO_CLAMPED"], [1.6564807891845703, 100.0, "BEZIER", "AUTO", 1116.6666666666667, 1.6564807891845703, "AUTO_CLAMPED", 1266.6666666666665, 1.6564807891845703, "AUTO_CLAMPED"], [9.165933609008789, 350.0, "BEZIER", "AUTO", 1383.3333333333333, 9.165933609008789, "AUTO_CLAMPED", 1594.4444020589192, 9.165933609008789, "AUTO_CLAMPED"], [2.7490081787109375, 283.33333333333326, "BACK", "AUTO", 1688.888931274414, 3.3798696994781494, "AUTO_CLAMPED", 9.001579284667969], [1.6357232332229614, 499.9999999999998, "BEZIER", "AUTO", 2405.5554707845054, 1.6357232332229614, "AUTO_CLAMPED"], [3.1212010383605957, 366.66666666666697, "BEZIER", "AUTO", 2527.777862548828, 3.1212010383605957, "AUTO_CLAMPED", 2688.8888041178384, 3.1212010383605957, "AUTO_CLAMPED"], [2.9346296787261963, 116.66666666666652, "BEZIER", "AUTO", 2727.777862548828, 3.0464632511138916, "AUTO_CLAMPED", 2838.8888041178384, 2.7269389629364014, "AUTO_CLAMPED"], [2.3913047313690186, 216.66666666666697, "BEZIER", "AUTO", 2911.1111958821616, 2.3913047313690186, "AUTO_CLAMPED", 3055.5554707845054, 2.3913047313690186, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 55.555554231007896, 0.0, "AUTO_CLAMPED"], [0.0, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, 0.0, "AUTO_CLAMPED", 277.7777671813965, 0.0, "AUTO_CLAMPED"], [19.9088334682391, 333.33333333333337, "BEZIER", "AUTO", 388.88889948527014, 19.9088334682391, "AUTO_CLAMPED", 555.555534362793, 19.9088334682391, "AUTO_CLAMPED"], [19.9088334682391, 166.66666666666663, "BEZIER", "AUTO", 611.1111323038737, 19.9088334682391, "AUTO_CLAMPED", 794.444465637207, 19.9088334682391, "AUTO_CLAMPED"], [17.756861134368812, 383.33333333333337, "BEZIER", "AUTO", 922.2222010294596, 17.756861134368812, "AUTO_CLAMPED", 1083.3333333333333, 17.756861134368812, "AUTO_CLAMPED"], [27.787557421139063, 100.0, "BEZIER", "AUTO", 1116.6666666666667, 27.787557421139063, "AUTO_CLAMPED", 1361.111068725586, 27.787557421139063, "AUTO_CLAMPED"], [-346.42714006153335, 633.3333333333333, "BACK", "AUTO", 1572.2222646077473, -337.1036586368992, "AUTO_CLAMPED", 1.7015800476074219], [-351.08888077385046, 316.66666666666674, "BEZIER", "AUTO", 2283.333333333333, -351.08888077385046, "AUTO_CLAMPED"], [-344.7845342076587, 550.0, "BEZIER", "AUTO", 2466.666666666667, -344.7845342076587, "AUTO_CLAMPED", 2688.8888041178384, -344.7845342076587, "AUTO_CLAMPED"], [-344.7845342076587, 116.66666666666652, "BEZIER", "AUTO", 2727.777862548828, -344.7845342076587, "AUTO_CLAMPED", 2838.8888041178384, -344.7845342076587, "AUTO_CLAMPED"], [-360.00001001791264, 216.66666666666697, "BEZIER", "AUTO", 2911.1111958821616, -360.00001001791264, "AUTO_CLAMPED", 3055.5554707845054, -360.00001001791264, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 55.555554231007896, -0.0, "AUTO_CLAMPED"], [-0.0, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, -0.0, "AUTO_CLAMPED", 277.7777671813965, -0.0, "AUTO_CLAMPED"], [0.06078959074761263, 333.33333333333337, "BEZIER", "AUTO", 388.88889948527014, 0.06078959074761263, "AUTO_CLAMPED", 555.555534362793, 0.06078959074761263, "AUTO_CLAMPED"], [0.06078959074761263, 166.66666666666663, "BEZIER", "AUTO", 611.1111323038737, 0.06078959074761263, "AUTO_CLAMPED", 794.444465637207, 0.06078959074761263, "AUTO_CLAMPED"], [12.226716510597948, 383.33333333333337, "BEZIER", "AUTO", 922.2222010294596, 12.226716510597948, "AUTO_CLAMPED", 1083.3333333333333, 12.226716510597948, "AUTO_CLAMPED"], [7.483050240507481, 100.0, "BEZIER", "AUTO", 1116.6666666666667, 9.542523029995575, "AUTO_CLAMPED", 1361.111068725586, -5.560278564615314, "AUTO_CLAMPED"], [-5.560278991502137, 633.3333333333333, "BACK", "AUTO", 1572.2222646077473, -5.560278991502137, "AUTO_CLAMPED", 9.001579284667969], [1.8954325630787217, 316.66666666666674, "BEZIER", "AUTO", 2283.333333333333, 1.8954325630787217, "AUTO_CLAMPED"], [1.877165435586934, 550.0, "BEZIER", "AUTO", 2466.666666666667, 1.877165435586934, "AUTO_CLAMPED", 2688.8888041178384, 1.877165435586934, "AUTO_CLAMPED"], [1.877165435586934, 116.66666666666652, "BEZIER", "AUTO", 2727.777862548828, 1.877165435586934, "AUTO_CLAMPED", 2838.8888041178384, 1.877165435586934, "AUTO_CLAMPED"], [-0.0, 216.66666666666697, "BEZIER", "AUTO", 2911.1111958821616, -0.0, "AUTO_CLAMPED", 3055.5554707845054, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 55.555554231007896, 0.0, "AUTO_CLAMPED"], [0.0, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, 0.0, "AUTO_CLAMPED", 277.7777671813965, 0.0, "AUTO_CLAMPED"], [0.35444556998437726, 333.33333333333337, "BEZIER", "AUTO", 388.88889948527014, 0.35444556998437726, "AUTO_CLAMPED", 555.555534362793, 0.35444556998437726, "AUTO_CLAMPED"], [0.35444556998437726, 166.66666666666663, "BEZIER", "AUTO", 611.1111323038737, 0.35444556998437726, "AUTO_CLAMPED", 794.444465637207, 0.35444556998437726, "AUTO_CLAMPED"], [1.9508375635219841, 383.33333333333337, "BEZIER", "AUTO", 922.2222010294596, 1.9508375635219841, "AUTO_CLAMPED", 1083.3333333333333, 1.9508375635219841, "AUTO_CLAMPED"], [-0.5366209624963392, 100.0, "BEZIER", "AUTO", 1116.6666666666667, -0.12644982674495836, "AUTO_CLAMPED", 1361.111068725586, -3.134371675684736, "AUTO_CLAMPED"], [-3.134371462241324, 633.3333333333333, "BACK", "AUTO", 1572.2222646077473, -3.134371462241324, "AUTO_CLAMPED", 6.901579856872559], [-0.4163264435344581, 316.66666666666674, "BEZIER", "AUTO", 2283.333333333333, -0.3268274065907398, "AUTO_CLAMPED"], [-0.3268274065907398, 550.0, "BEZIER", "AUTO", 2466.666666666667, -0.3268274065907398, "AUTO_CLAMPED", 2688.8888041178384, -0.3268274065907398, "AUTO_CLAMPED"], [-0.3268274065907398, 116.66666666666652, "BEZIER", "AUTO", 2727.777862548828, -0.3268274065907398, "AUTO_CLAMPED", 2838.8888041178384, -0.3268274065907398, "AUTO_CLAMPED"], [0.0, 216.66666666666697, "BEZIER", "AUTO", 2911.1111958821616, 0.0, "AUTO_CLAMPED", 3055.5554707845054, 0.0, "AUTO_CLAMPED"]]}}}, "Jammed": {"Bolt": {"location": {"x": [[0.4437499940395355, 0.0, "BEZIER", "AUTO", 305.55556615193683, 0.4437499940395355, "AUTO_CLAMPED"]], "z": [[-1.8655332326889038, 0.0, "BEZIER", "AUTO", 122.22222487131755, -1.8655332326889038, "AUTO_CLAMPED"], [-1.8655332326889038, 366.66666666666663, "BEZIER", "EASE_IN", 244.44443384806314, -1.8655332326889038, "AUTO_CLAMPED", 405.55556615193683, -1.8655332326889038, "AUTO_CLAMPED"], [-3.3269410133361816, 116.66666666666669, "BEZIER", "AUTO", 444.44443384806317, -3.3269410133361816, "AUTO_CLAMPED", 516.6666666666666, -3.3269410133361816, "AUTO_CLAMPED"], [-3.3269410133361816, 100.00000000000006, "EXPO", "EASE_IN", 550.0, -3.3269410133361816, "AUTO_CLAMPED"], [-2.962660312652588, 49.999999999999886, "EXPO", "AUTO"], [-3.3269410133361816, 466.66666666666674, "EXPO", "EASE_IN"], [-1.8655332326889038, 83.33333333333326, "BEZIER", "AUTO", 1211.111068725586, -1.8655332326889038, "AUTO_CLAMPED"]], "y": [[1.8304203748703003, 0.0, "BEZIER", "AUTO", 305.55556615193683, 1.8304203748703003, "AUTO_CLAMPED"]]}}, "Gun": {"location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 33.333333333333336, 0.0, "AUTO_CLAMPED"], [0.0, 100.0, "BEZIER", "AUTO", 66.66666666666667, 0.0, "AUTO_CLAMPED", 177.77776718139648, 0.0, "AUTO_CLAMPED"], [0.378823459148407, 233.33333333333331, "BEZIER", "AUTO", 255.55556615193686, 0.378823459148407, "AUTO_CLAMPED", 377.7777671813965, 0.378823459148407, "AUTO_CLAMPED"], [0.3284962773323059, 133.33333333333337, "BEZIER", "AUTO", 422.2222328186035, 0.378823459148407, "AUTO_CLAMPED", 505.5555661519369, 0.28446000814437866, "AUTO_CLAMPED"], [0.0780496671795845, 116.66666666666669, "BEZIER", "AUTO", 544.444465637207, 0.09820573776960373, "AUTO_CLAMPED", 633.3333333333333, 0.052134718745946884, "AUTO_CLAMPED"], [0.052134718745946884, 149.9999999999999, "BEZIER", "AUTO", 683.3333333333334, 0.052134718745946884, "AUTO_CLAMPED", 866.6666666666667, 0.052134718745946884, "AUTO_CLAMPED"], [0.0780496671795845, 400.0, "BEZIER", "AUTO", 1000.0, 0.0780496671795845, "AUTO_CLAMPED", 1161.111068725586, 0.0780496671795845, "AUTO_CLAMPED"], [-0.02280152216553688, 83.33333333333326, "BEZIER", "AUTO", 1188.888931274414, -0.02280152216553688, "AUTO_CLAMPED", 1244.4444020589192, -0.02280152216553688, "AUTO_CLAMPED"], [0.06624312698841095, 83.33333333333348, "BEZIER", "AUTO", 1272.2222646077475, 0.06624312698841095, "AUTO_CLAMPED", 1355.5555979410808, 0.06624312698841095, "AUTO_CLAMPED"], [0.0, 166.66666666666652, "BEZIER", "AUTO", 1411.111068725586, 0.0, "AUTO_CLAMPED", 1522.2222646077475, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 33.333333333333336, -0.0, "AUTO_CLAMPED"], [-0.0, 100.0, "BEZIER", "AUTO", 66.66666666666667, -0.0, "AUTO_CLAMPED", 177.77776718139648, -0.0, "AUTO_CLAMPED"], [0.3215503692626953, 233.33333333333331, "BEZIER", "AUTO", 255.55556615193686, 0.3215503692626953, "AUTO_CLAMPED", 377.7777671813965, 0.3215503692626953, "AUTO_CLAMPED"], [0.27883198857307434, 133.33333333333337, "BEZIER", "AUTO", 422.2222328186035, 0.3215503692626953, "AUTO_CLAMPED", 505.5555661519369, 0.2414534091949463, "AUTO_CLAMPED"], [-0.044656865298748016, 116.66666666666669, "BEZIER", "AUTO", 544.444465637207, -0.029327169060707092, "AUTO_CLAMPED", 633.3333333333333, -0.06436647474765778, "AUTO_CLAMPED"], [-0.06436647474765778, 149.9999999999999, "BEZIER", "AUTO", 683.3333333333334, -0.06436647474765778, "AUTO_CLAMPED", 866.6666666666667, -0.06436647474765778, "AUTO_CLAMPED"], [-0.044656865298748016, 400.0, "BEZIER", "AUTO", 1000.0, -0.06436647474765778, "AUTO_CLAMPED", 1161.111068725586, -0.04055069759488106, "AUTO_CLAMPED"], [0.3886209726333618, 83.33333333333326, "BEZIER", "AUTO", 1188.888931274414, 0.3886209726333618, "AUTO_CLAMPED", 1244.4444020589192, 0.3886209726333618, "AUTO_CLAMPED"], [0.21741850674152374, 83.33333333333348, "BEZIER", "AUTO", 1272.2222646077475, 0.2926041781902313, "AUTO_CLAMPED", 1355.5555979410808, 0.06704716384410858, "AUTO_CLAMPED"], [-0.0, 166.66666666666652, "BEZIER", "AUTO", 1411.111068725586, -0.0, "AUTO_CLAMPED", 1522.2222646077475, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 33.333333333333336, 0.0, "AUTO_CLAMPED"], [0.0, 100.0, "BEZIER", "AUTO", 66.66666666666667, 0.0, "AUTO_CLAMPED", 177.77776718139648, 0.0, "AUTO_CLAMPED"], [-0.03033590316772461, 233.33333333333331, "BEZIER", "AUTO", 255.55556615193686, -0.03033590316772461, "AUTO_CLAMPED", 377.7777671813965, -0.03033590316772461, "AUTO_CLAMPED"], [-0.013926569372415543, 133.33333333333337, "BEZIER", "AUTO", 422.2222328186035, -0.022176561877131462, "AUTO_CLAMPED", 505.5555661519369, -0.006707826163619757, "AUTO_CLAMPED"], [0.000580325722694397, 116.66666666666669, "BEZIER", "AUTO", 544.444465637207, 0.000580325722694397, "AUTO_CLAMPED", 633.3333333333333, 0.000580325722694397, "AUTO_CLAMPED"], [-0.08202043920755386, 149.9999999999999, "BEZIER", "AUTO", 683.3333333333334, -0.08202043920755386, "AUTO_CLAMPED", 866.6666666666667, -0.08202043920755386, "AUTO_CLAMPED"], [0.000580325722694397, 400.0, "BEZIER", "AUTO", 1000.0, 0.000580325722694397, "AUTO_CLAMPED", 1161.111068725586, 0.000580325722694397, "AUTO_CLAMPED"], [-0.027275841683149338, 83.33333333333326, "BEZIER", "AUTO", 1188.888931274414, -0.027275841683149338, "AUTO_CLAMPED", 1244.4444020589192, -0.027275841683149338, "AUTO_CLAMPED"], [0.007577709853649139, 83.33333333333348, "BEZIER", "AUTO", 1272.2222646077475, 0.007577709853649139, "AUTO_CLAMPED", 1355.5555979410808, 0.007577709853649139, "AUTO_CLAMPED"], [0.0, 166.66666666666652, "BEZIER", "AUTO", 1411.111068725586, 0.0, "AUTO_CLAMPED", 1522.2222646077475, 0.0, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 44.444445768992104, 0.0, "AUTO_CLAMPED"], [0.0, 133.33333333333334, "BEZIER", "AUTO", 88.88888359069824, 0.0, "AUTO_CLAMPED", 200.0, 0.0, "AUTO_CLAMPED"], [-9.762812852427766, 199.99999999999997, "BEZIER", "AUTO", 266.6666666666667, -9.762812852427766, "AUTO_CLAMPED", 377.7777671813965, -9.762812852427766, "AUTO_CLAMPED"], [-8.46581115546112, 133.33333333333337, "BEZIER", "AUTO", 422.2222328186035, -8.46581115546112, "AUTO_CLAMPED", 505.5555661519369, -8.46581115546112, "AUTO_CLAMPED"], [-9.922516335601005, 116.66666666666669, "BEZIER", "AUTO", 544.444465637207, -9.922516335601005, "AUTO_CLAMPED", 633.3333333333333, -9.922516335601005, "AUTO_CLAMPED"], [-5.976405705364225, 149.9999999999999, "BEZIER", "AUTO", 683.3333333333334, -5.976405705364225, "AUTO_CLAMPED", 866.6666666666667, -5.976405705364225, "AUTO_CLAMPED"], [-9.922516335601005, 400.0, "BEZIER", "AUTO", 1000.0, -9.922516335601005, "AUTO_CLAMPED", 1161.111068725586, -9.922516335601005, "AUTO_CLAMPED"], [-1.247449955198673, 83.33333333333326, "BEZIER", "AUTO", 1188.888931274414, -1.247449955198673, "AUTO_CLAMPED", 1244.4444020589192, -1.247449955198673, "AUTO_CLAMPED"], [-3.5616000082690333, 83.33333333333348, "BEZIER", "AUTO", 1272.2222646077475, -3.5616000082690333, "AUTO_CLAMPED", 1355.5555979410808, -3.5616000082690333, "AUTO_CLAMPED"], [0.0, 166.66666666666652, "BEZIER", "AUTO", 1411.111068725586, 0.0, "AUTO_CLAMPED", 1522.2222646077475, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 44.444445768992104, -0.0, "AUTO_CLAMPED"], [-0.0, 133.33333333333334, "BEZIER", "AUTO", 88.88888359069824, -0.0, "AUTO_CLAMPED", 200.0, -0.0, "AUTO_CLAMPED"], [12.070624489948354, 199.99999999999997, "BEZIER", "AUTO", 266.6666666666667, 12.070624489948354, "AUTO_CLAMPED", 377.7777671813965, 12.070624489948354, "AUTO_CLAMPED"], [10.467026700197236, 133.33333333333337, "BEZIER", "AUTO", 422.2222328186035, 11.19349074296167, "AUTO_CLAMPED", 505.5555661519369, 9.831370876221769, "AUTO_CLAMPED"], [8.542568821353722, 116.66666666666669, "BEZIER", "AUTO", 544.444465637207, 9.311070970912292, "AUTO_CLAMPED", 633.3333333333333, 7.55449487299946, "AUTO_CLAMPED"], [6.156128899881594, 149.9999999999999, "BEZIER", "AUTO", 683.3333333333334, 6.156128899881594, "AUTO_CLAMPED", 866.6666666666667, 6.156128899881594, "AUTO_CLAMPED"], [8.542568821353722, 400.0, "BEZIER", "AUTO", 1000.0, 8.542568821353722, "AUTO_CLAMPED", 1161.111068725586, 8.542568821353722, "AUTO_CLAMPED"], [6.806507196613024, 83.33333333333326, "BEZIER", "AUTO", 1188.888931274414, 7.8036123625973355, "AUTO_CLAMPED", 1244.4444020589192, 5.80940160374189, "AUTO_CLAMPED"], [3.4902371246036825, 83.33333333333348, "BEZIER", "AUTO", 1272.2222646077475, 4.554145169208715, "AUTO_CLAMPED", 1355.5555979410808, 1.3624208219502054, "AUTO_CLAMPED"], [-0.0, 166.66666666666652, "BEZIER", "AUTO", 1411.111068725586, -0.0, "AUTO_CLAMPED", 1522.2222646077475, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 44.444445768992104, 0.0, "AUTO_CLAMPED"], [0.0, 133.33333333333334, "BEZIER", "AUTO", 88.88888359069824, 0.0, "AUTO_CLAMPED", 200.0, 0.0, "AUTO_CLAMPED"], [6.133171353420711, 199.99999999999997, "BEZIER", "AUTO", 266.6666666666667, 6.133171353420711, "AUTO_CLAMPED", 377.7777671813965, 6.133171353420711, "AUTO_CLAMPED"], [5.3183716203468565, 133.33333333333337, "BEZIER", "AUTO", 422.2222328186035, 6.133171353420711, "AUTO_CLAMPED", 505.5555661519369, 4.60542196062894, "AUTO_CLAMPED"], [2.264997877368833, 116.66666666666669, "BEZIER", "AUTO", 544.444465637207, 2.451486801145922, "AUTO_CLAMPED", 633.3333333333333, 2.0252264344330624, "AUTO_CLAMPED"], [2.0252264344330624, 149.9999999999999, "BEZIER", "AUTO", 683.3333333333334, 2.0252264344330624, "AUTO_CLAMPED", 866.6666666666667, 2.0252264344330624, "AUTO_CLAMPED"], [2.264997877368833, 400.0, "BEZIER", "AUTO", 1000.0, 2.0252264344330624, "AUTO_CLAMPED", 1161.111068725586, 2.3149502524203096, "AUTO_CLAMPED"], [4.3664396179857174, 83.33333333333326, "BEZIER", "AUTO", 1188.888931274414, 4.3664396179857174, "AUTO_CLAMPED", 1244.4444020589192, 4.3664396179857174, "AUTO_CLAMPED"], [0.9566294649628159, 83.33333333333348, "BEZIER", "AUTO", 1272.2222646077475, 1.4349441974442239, "AUTO_CLAMPED", 1355.5555979410808, 0.0, "AUTO_CLAMPED"], [0.0, 166.66666666666652, "BEZIER", "AUTO", 1411.111068725586, 0.0, "AUTO_CLAMPED", 1522.2222646077475, 0.0, "AUTO_CLAMPED"]]}}}, "Reload": {"Bolt": {"location": {"x": [[0.4437499940395355, 0.0, "BEZIER", "AUTO", 933.3333333333334, 0.4437499940395355, "AUTO_CLAMPED"]], "z": [[-1.8655332326889038, 0.0, "BEZIER", "AUTO", 916.6666666666666, -1.8655332326889038, "AUTO_CLAMPED"], [-1.8655332326889038, 2750.0, "BEZIER", "EASE_IN", 1833.3333333333333, -1.8655332326889038, "AUTO_CLAMPED", 2788.8888041178384, -1.8655332326889038, "AUTO_CLAMPED"], [-3.3269410133361816, 116.66666666666652, "BEZIER", "AUTO", 2827.777862548828, -3.3269410133361816, "AUTO_CLAMPED", 2900.0, -3.3269410133361816, "AUTO_CLAMPED"], [-3.3269410133361816, 100.00000000000045, "EXPO", "EASE_IN", 2933.333333333333, -3.3269410133361816, "AUTO_CLAMPED"], [-1.8655332326889038, 83.33333333333303, "BEZIER", "AUTO", 3077.777862548828, -1.8655332326889038, "AUTO_CLAMPED"]], "y": [[1.8304203748703003, 0.0, "BEZIER", "AUTO", 933.3333333333334, 1.8304203748703003, "AUTO_CLAMPED"]]}}, "Gun": {"location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 55.555554231007896, 0.0, "AUTO_CLAMPED"], [0.07114996761083603, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, 0.07114996761083603, "AUTO_CLAMPED", 205.5555502573649, 0.07114996761083603, "AUTO_CLAMPED"], [0.06900998950004578, 116.66666666666666, "BEZIER", "AUTO", 244.4444497426351, 0.07114996761083603, "AUTO_CLAMPED", 344.44443384806317, 0.0656471699476242, "AUTO_CLAMPED"], [0.04820222035050392, 183.33333333333337, "BEZIER", "AUTO", 405.55556615193683, 0.04820222035050392, "AUTO_CLAMPED", 561.1111323038737, 0.04820222035050392, "AUTO_CLAMPED"], [0.05328037589788437, 283.3333333333333, "BEZIER", "AUTO", 655.555534362793, 0.05328037589788437, "AUTO_CLAMPED", 894.444465637207, 0.05328037589788437, "AUTO_CLAMPED"], [-0.06346340477466583, 433.33333333333326, "BEZIER", "AUTO", 1038.8888676961262, -0.06346340477466583, "AUTO_CLAMPED", 1538.888931274414, -0.06346340477466583, "AUTO_CLAMPED"], [0.17794586718082428, 1066.6666666666667, "BEZIER", "AUTO", 1894.4444020589192, -0.06346340477466583, "AUTO_CLAMPED", 2305.5554707845054, 0.21566607058048248, "AUTO_CLAMPED"], [0.3289692997932434, 166.66666666666652, "BEZIER", "AUTO", 2361.111195882161, 0.3043280839920044, "AUTO_CLAMPED", 2461.1111958821616, 0.3486822843551636, "AUTO_CLAMPED"], [0.3486822843551636, 133.33333333333348, "BEZIER", "AUTO", 2505.5554707845054, 0.34406736493110657, "AUTO_CLAMPED", 2611.111195882161, 0.35502779483795166, "AUTO_CLAMPED"], [0.378823459148407, 183.33333333333348, "BEZIER", "AUTO", 2672.222137451172, 0.378823459148407, "AUTO_CLAMPED", 2777.777862548828, 0.378823459148407, "AUTO_CLAMPED"], [0.3284962773323059, 133.33333333333303, "BEZIER", "AUTO", 2822.222137451172, 0.378823459148407, "AUTO_CLAMPED", 2905.5554707845054, 0.28446000814437866, "AUTO_CLAMPED"], [0.0780496671795845, 116.66666666666697, "BEZIER", "AUTO", 2944.4445292154946, 0.12340082228183746, "AUTO_CLAMPED", 3005.5554707845054, 0.052134718745946884, "AUTO_CLAMPED"], [0.052134718745946884, 66.66666666666652, "BEZIER", "AUTO", 3027.777862548828, 0.052134718745946884, "AUTO_CLAMPED", 3077.777862548828, 0.052134718745946884, "AUTO_CLAMPED"], [0.06624312698841095, 83.33333333333348, "BEZIER", "AUTO", 3105.555470784505, 0.06624312698841095, "AUTO_CLAMPED", 3194.4445292154946, 0.06624312698841095, "AUTO_CLAMPED"], [0.0, 183.33333333333303, "BEZIER", "AUTO", 3255.5554707845054, 0.0, "AUTO_CLAMPED", 3377.777862548828, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 55.555554231007896, -0.0, "AUTO_CLAMPED"], [0.10114581137895584, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, 0.10114581137895584, "AUTO_CLAMPED", 205.5555502573649, 0.10114581137895584, "AUTO_CLAMPED"], [-0.1629212200641632, 116.66666666666666, "BEZIER", "AUTO", 244.4444497426351, -0.1629212200641632, "AUTO_CLAMPED", 344.44443384806317, -0.1629212200641632, "AUTO_CLAMPED"], [-0.004916742444038391, 183.33333333333337, "BEZIER", "AUTO", 405.55556615193683, -0.020956357941031456, "AUTO_CLAMPED", 561.1111323038737, 0.019871752709150314, "AUTO_CLAMPED"], [0.019871752709150314, 283.3333333333333, "BEZIER", "AUTO", 655.555534362793, 0.019871752709150314, "AUTO_CLAMPED", 894.444465637207, 0.019871752709150314, "AUTO_CLAMPED"], [-0.05724658444523811, 433.33333333333326, "BEZIER", "AUTO", 1038.8888676961262, -0.05724658444523811, "AUTO_CLAMPED", 1538.888931274414, -0.05724658444523811, "AUTO_CLAMPED"], [0.06616419553756714, 1066.6666666666667, "BEZIER", "AUTO", 1894.4444020589192, -0.057246580719947815, "AUTO_CLAMPED", 2305.5554707845054, 0.08544713258743286, "AUTO_CLAMPED"], [0.35016486048698425, 166.66666666666652, "BEZIER", "AUTO", 2361.111195882161, 0.35016486048698425, "AUTO_CLAMPED", 2461.1111958821616, 0.35016486048698425, "AUTO_CLAMPED"], [0.22380617260932922, 133.33333333333348, "BEZIER", "AUTO", 2505.5554707845054, 0.22380617260932922, "AUTO_CLAMPED", 2611.111195882161, 0.22380617260932922, "AUTO_CLAMPED"], [0.3215503692626953, 183.33333333333348, "BEZIER", "AUTO", 2672.222137451172, 0.3215503692626953, "AUTO_CLAMPED", 2777.777862548828, 0.3215503692626953, "AUTO_CLAMPED"], [0.27883198857307434, 133.33333333333303, "BEZIER", "AUTO", 2822.222137451172, 0.3215503692626953, "AUTO_CLAMPED", 2905.5554707845054, 0.2414534091949463, "AUTO_CLAMPED"], [-0.044656865298748016, 116.66666666666697, "BEZIER", "AUTO", 2944.4445292154946, -0.010165050625801086, "AUTO_CLAMPED", 3005.5554707845054, -0.06436647474765778, "AUTO_CLAMPED"], [-0.06436647474765778, 66.66666666666652, "BEZIER", "AUTO", 3027.777862548828, -0.06436647474765778, "AUTO_CLAMPED", 3077.777862548828, -0.06436647474765778, "AUTO_CLAMPED"], [0.21741850674152374, 83.33333333333348, "BEZIER", "AUTO", 3105.555470784505, 0.21741850674152374, "AUTO_CLAMPED", 3194.4445292154946, 0.21741850674152374, "AUTO_CLAMPED"], [-0.0, 183.33333333333303, "BEZIER", "AUTO", 3255.5554707845054, -0.0, "AUTO_CLAMPED", 3377.777862548828, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 55.555554231007896, 0.0, "AUTO_CLAMPED"], [-0.29975396394729614, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, -0.11118181049823761, "AUTO_CLAMPED", 205.5555502573649, -0.431754469871521, "AUTO_CLAMPED"], [-0.6016762852668762, 116.66666666666666, "BEZIER", "AUTO", 244.4444497426351, -0.6016762852668762, "AUTO_CLAMPED", 344.44443384806317, -0.6016762852668762, "AUTO_CLAMPED"], [-0.2427852749824524, 183.33333333333337, "BEZIER", "AUTO", 405.55556615193683, -0.2427852749824524, "AUTO_CLAMPED", 561.1111323038737, -0.2427852749824524, "AUTO_CLAMPED"], [-0.5669558644294739, 283.3333333333333, "BEZIER", "AUTO", 655.555534362793, -0.4411567151546478, "AUTO_CLAMPED", 894.444465637207, -0.7593545913696289, "AUTO_CLAMPED"], [-0.7819992303848267, 433.33333333333326, "BEZIER", "AUTO", 1038.8888676961262, -0.7819992303848267, "AUTO_CLAMPED", 1538.888931274414, -0.7819992303848267, "AUTO_CLAMPED"], [-0.31888678669929504, 1066.6666666666667, "BEZIER", "AUTO", 1894.4444020589192, -0.4946317672729492, "AUTO_CLAMPED", 2305.5554707845054, -0.2914266288280487, "AUTO_CLAMPED"], [-0.2666915953159332, 166.66666666666652, "BEZIER", "AUTO", 2361.111195882161, -0.2666915953159332, "AUTO_CLAMPED", 2461.1111958821616, -0.2666915953159332, "AUTO_CLAMPED"], [-1.1831088066101074, 133.33333333333348, "BEZIER", "AUTO", 2505.5554707845054, -1.1831088066101074, "AUTO_CLAMPED", 2611.111195882161, -1.1831088066101074, "AUTO_CLAMPED"], [-0.03033590316772461, 183.33333333333348, "BEZIER", "AUTO", 2672.222137451172, -0.05289873480796814, "AUTO_CLAMPED", 2777.777862548828, -0.013926569372415543, "AUTO_CLAMPED"], [-0.013926569372415543, 133.33333333333303, "BEZIER", "AUTO", 2822.222137451172, -0.018347715958952904, "AUTO_CLAMPED", 2905.5554707845054, -0.010058065876364708, "AUTO_CLAMPED"], [0.000580325722694397, 116.66666666666697, "BEZIER", "AUTO", 2944.4445292154946, 0.000580325722694397, "AUTO_CLAMPED", 3005.5554707845054, 0.000580325722694397, "AUTO_CLAMPED"], [-0.08202043920755386, 66.66666666666652, "BEZIER", "AUTO", 3027.777862548828, -0.08202043920755386, "AUTO_CLAMPED", 3077.777862548828, -0.08202043920755386, "AUTO_CLAMPED"], [0.007577709853649139, 83.33333333333348, "BEZIER", "AUTO", 3105.555470784505, 0.007577709853649139, "AUTO_CLAMPED", 3194.4445292154946, 0.007577709853649139, "AUTO_CLAMPED"], [0.0, 183.33333333333303, "BEZIER", "AUTO", 3255.5554707845054, 0.0, "AUTO_CLAMPED", 3377.777862548828, 0.0, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 55.555554231007896, 0.0, "AUTO_CLAMPED"], [2.9641926033154022, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, 2.9641926033154022, "AUTO_CLAMPED", 205.5555502573649, 2.9641926033154022, "AUTO_CLAMPED"], [2.9641926033154022, 116.66666666666666, "BEZIER", "AUTO", 244.4444497426351, 2.9641926033154022, "AUTO_CLAMPED", 344.44443384806317, 2.9641926033154022, "AUTO_CLAMPED"], [-1.8676834254716639, 183.33333333333337, "BEZIER", "AUTO", 405.55556615193683, -1.8676834254716639, "AUTO_CLAMPED", 527.7777671813965, -1.8676834254716639, "AUTO_CLAMPED"], [0.692141648494032, 183.33333333333331, "BEZIER", "AUTO", 588.8888676961262, -0.02622915371246545, "AUTO_CLAMPED", 877.7777989705403, 3.3697056300941135, "AUTO_CLAMPED"], [3.3697056300941135, 683.3333333333333, "BEZIER", "AUTO", 1105.5555979410808, 3.3697056300941135, "AUTO_CLAMPED", 1638.8889312744138, 3.3697056300941135, "AUTO_CLAMPED"], [-4.827653264332706, 916.6666666666667, "BEZIER", "AUTO", 1944.4444020589194, 3.3697058435375253, "AUTO_CLAMPED", 2305.5554707845054, -6.318082076612705, "AUTO_CLAMPED"], [-9.225060960015261, 166.66666666666652, "BEZIER", "AUTO", 2361.111195882161, -9.225060960015261, "AUTO_CLAMPED", 2461.1111958821616, -9.225060960015261, "AUTO_CLAMPED"], [-5.332826008177896, 133.33333333333348, "BEZIER", "AUTO", 2505.5554707845054, -5.332826008177896, "AUTO_CLAMPED", 2611.111195882161, -5.332826008177896, "AUTO_CLAMPED"], [-9.762812852427766, 183.33333333333348, "BEZIER", "AUTO", 2672.222137451172, -9.762812852427766, "AUTO_CLAMPED", 2777.777862548828, -9.762812852427766, "AUTO_CLAMPED"], [-8.46581115546112, 133.33333333333303, "BEZIER", "AUTO", 2822.222137451172, -8.46581115546112, "AUTO_CLAMPED", 2905.5554707845054, -8.46581115546112, "AUTO_CLAMPED"], [-9.922516335601005, 116.66666666666697, "BEZIER", "AUTO", 2944.4445292154946, -9.922516335601005, "AUTO_CLAMPED", 3005.5554707845054, -9.922516335601005, "AUTO_CLAMPED"], [-5.976405705364225, 66.66666666666652, "BEZIER", "AUTO", 3027.777862548828, -7.419543141604702, "AUTO_CLAMPED", 3077.777862548828, -4.172483589898511, "AUTO_CLAMPED"], [-3.5616000082690333, 83.33333333333348, "BEZIER", "AUTO", 3105.555470784505, -4.024545961344266, "AUTO_CLAMPED", 3194.4445292154946, -2.543118911503521, "AUTO_CLAMPED"], [0.0, 183.33333333333303, "BEZIER", "AUTO", 3255.5554707845054, 0.0, "AUTO_CLAMPED", 3377.777862548828, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 55.555554231007896, -0.0, "AUTO_CLAMPED"], [-0.97928136045834, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, -0.97928136045834, "AUTO_CLAMPED", 205.5555502573649, -0.97928136045834, "AUTO_CLAMPED"], [-0.97928136045834, 116.66666666666666, "BEZIER", "AUTO", 244.4444497426351, -0.97928136045834, "AUTO_CLAMPED", 344.44443384806317, -0.97928136045834, "AUTO_CLAMPED"], [-0.8304706416290971, 183.33333333333337, "BEZIER", "AUTO", 405.55556615193683, -0.8304706416290971, "AUTO_CLAMPED", 527.7777671813965, -0.8304706416290971, "AUTO_CLAMPED"], [-0.8304706416290971, 183.33333333333331, "BEZIER", "AUTO", 588.8888676961262, -0.8304706416290971, "AUTO_CLAMPED", 877.7777989705403, -0.8304706416290971, "AUTO_CLAMPED"], [13.812658261344582, 683.3333333333333, "BEZIER", "AUTO", 1105.5555979410808, 13.812658261344582, "AUTO_CLAMPED", 1638.8889312744138, 13.812658261344582, "AUTO_CLAMPED"], [3.3376227374586827, 916.6666666666667, "BEZIER", "AUTO", 1944.4444020589194, 3.3376227374586827, "AUTO_CLAMPED", 2305.5554707845054, 3.3376227374586827, "AUTO_CLAMPED"], [5.674417428948574, 166.66666666666652, "BEZIER", "AUTO", 2361.111195882161, 5.674417428948574, "AUTO_CLAMPED", 2461.1111958821616, 5.674417428948574, "AUTO_CLAMPED"], [3.6080137050002086, 133.33333333333348, "BEZIER", "AUTO", 2505.5554707845054, 3.6080137050002086, "AUTO_CLAMPED", 2611.111195882161, 3.6080137050002086, "AUTO_CLAMPED"], [12.070624489948354, 183.33333333333348, "BEZIER", "AUTO", 2672.222137451172, 12.070624489948354, "AUTO_CLAMPED", 2777.777862548828, 12.070624489948354, "AUTO_CLAMPED"], [10.467026700197236, 133.33333333333303, "BEZIER", "AUTO", 2822.222137451172, 11.08395414546853, "AUTO_CLAMPED", 2905.5554707845054, 9.927215505749972, "AUTO_CLAMPED"], [8.542568821353722, 116.66666666666697, "BEZIER", "AUTO", 2944.4445292154946, 9.67049003919035, "AUTO_CLAMPED", 3005.5554707845054, 7.8980422891937, "AUTO_CLAMPED"], [6.156128899881594, 66.66666666666652, "BEZIER", "AUTO", 3027.777862548828, 6.969043500744525, "AUTO_CLAMPED", 3077.777862548828, 5.139985862246341, "AUTO_CLAMPED"], [3.4902371246036825, 83.33333333333348, "BEZIER", "AUTO", 3105.555470784505, 4.305224474436301, "AUTO_CLAMPED", 3194.4445292154946, 1.697264656151145, "AUTO_CLAMPED"], [-0.0, 183.33333333333303, "BEZIER", "AUTO", 3255.5554707845054, -0.0, "AUTO_CLAMPED", 3377.777862548828, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 55.555554231007896, 0.0, "AUTO_CLAMPED"], [0.35034732308023736, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, 0.35034732308023736, "AUTO_CLAMPED", 205.5555502573649, 0.35034732308023736, "AUTO_CLAMPED"], [0.35034732308023736, 116.66666666666666, "BEZIER", "AUTO", 244.4444497426351, 0.35034732308023736, "AUTO_CLAMPED", 344.44443384806317, 0.35034732308023736, "AUTO_CLAMPED"], [0.007649265755435478, 183.33333333333337, "BEZIER", "AUTO", 405.55556615193683, 0.007649265755435478, "AUTO_CLAMPED", 527.7777671813965, 0.007649265755435478, "AUTO_CLAMPED"], [0.007649265755435478, 183.33333333333331, "BEZIER", "AUTO", 588.8888676961262, 0.007649265755435478, "AUTO_CLAMPED", 877.7777989705403, 0.007649265755435478, "AUTO_CLAMPED"], [0.22848543578639705, 683.3333333333333, "BEZIER", "AUTO", 1105.5555979410808, 0.0800165065601324, "AUTO_CLAMPED", 1638.8889312744138, 0.42765108394132434, "AUTO_CLAMPED"], [0.7637636524610204, 916.6666666666667, "BEZIER", "AUTO", 1944.4444020589194, 0.7637636524610204, "AUTO_CLAMPED", 2305.5554707845054, 0.7637636524610204, "AUTO_CLAMPED"], [0.04634753594369751, 166.66666666666652, "BEZIER", "AUTO", 2361.111195882161, 0.04634753594369751, "AUTO_CLAMPED", 2461.1111958821616, 0.04634753594369751, "AUTO_CLAMPED"], [0.6907170204435554, 133.33333333333348, "BEZIER", "AUTO", 2505.5554707845054, 0.0463475292735909, "AUTO_CLAMPED", 2611.111195882161, 1.576725050791937, "AUTO_CLAMPED"], [6.133171353420711, 183.33333333333348, "BEZIER", "AUTO", 2672.222137451172, 6.133171353420711, "AUTO_CLAMPED", 2777.777862548828, 6.133171353420711, "AUTO_CLAMPED"], [5.3183716203468565, 133.33333333333303, "BEZIER", "AUTO", 2822.222137451172, 6.133171353420711, "AUTO_CLAMPED", 2905.5554707845054, 4.60542196062894, "AUTO_CLAMPED"], [2.264997877368833, 116.66666666666697, "BEZIER", "AUTO", 2944.4445292154946, 2.684597955867284, "AUTO_CLAMPED", 3005.5554707845054, 2.0252264344330624, "AUTO_CLAMPED"], [2.0252264344330624, 66.66666666666652, "BEZIER", "AUTO", 3027.777862548828, 2.147129516305334, "AUTO_CLAMPED", 3077.777862548828, 1.8728476888144283, "AUTO_CLAMPED"], [0.9566294649628159, 83.33333333333348, "BEZIER", "AUTO", 3105.555470784505, 1.339521972427503, "AUTO_CLAMPED", 3194.4445292154946, 0.11426586316313989, "AUTO_CLAMPED"], [0.0, 183.33333333333303, "BEZIER", "AUTO", 3255.5554707845054, 0.0, "AUTO_CLAMPED", 3377.777862548828, 0.0, "AUTO_CLAMPED"]]}}, "Mag": {"location": {"x": [[1.6590982809816524e-08, 0.0, "BEZIER", "AUTO", 55.555554231007896, 1.6590982809816524e-08, "AUTO_CLAMPED"], [1.6590982809816524e-08, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, 1.6590982809816524e-08, "AUTO_CLAMPED", 250.0, 1.6590982809816524e-08, "AUTO_CLAMPED"], [-0.00021278602071106434, 250.00000000000003, "BEZIER", "AUTO", 333.3333333333333, 1.658918336033821e-08, "AUTO_CLAMPED", 461.1111005147298, -0.00032628074404783547, "AUTO_CLAMPED"], [-0.08896885067224503, 133.33333333333331, "BEZIER", "AUTO", 505.5555661519369, -0.08896885067224503, "AUTO_CLAMPED", 594.444465637207, -0.08896885067224503, "AUTO_CLAMPED"], [0.49737149477005005, 133.33333333333337, "BEZIER", "AUTO", 638.8888676961263, -0.07979017496109009, "AUTO_CLAMPED", 744.444465637207, 1.2909687757492065, "AUTO_CLAMPED"], [4.048333168029785, 183.33333333333337, "BEZIER", "AUTO", 805.555534362793, 3.1584081649780273, "AUTO_CLAMPED", 911.1111323038737, 4.69555139541626, "AUTO_CLAMPED"], [6.1233038902282715, 133.33333333333326, "BEZIER", "EASE_IN", 955.555534362793, 4.825736999511719, "AUTO_CLAMPED", 1100.0, 9.042829513549805, "AUTO_CLAMPED"], [17.87222671508789, 300.0, "CONSTANT", "AUTO", 1200.0, 17.87222671508789, "AUTO_CLAMPED"], [4.58225154876709, 216.66666666666652, "BEZIER", "AUTO", 1650.0, 2.1092658042907715, "AUTO_CLAMPED"], [2.1092658042907715, 400.0000000000002, "BEZIER", "AUTO", 1783.3333333333333, 2.669361114501953, "AUTO_CLAMPED", 2000.0, 1.7592062950134277, "AUTO_CLAMPED"], [0.5067520141601562, 249.99999999999977, "BEZIER", "AUTO", 2083.3333333333335, 0.9715721607208252, "AUTO_CLAMPED", 2227.777862548828, 0.165883868932724, "AUTO_CLAMPED"], [-0.001381576294079423, 183.33333333333348, "BEZIER", "AUTO", 2288.8888041178384, -0.001381576294079423, "AUTO_CLAMPED", 2400.0, -0.001381576294079423, "AUTO_CLAMPED"], [1.6590982809816524e-08, 150.0, "BEZIER", "AUTO", 2450.0, 1.6590982809816524e-08, "AUTO_CLAMPED", 2550.0, 1.6590982809816524e-08, "AUTO_CLAMPED"]], "z": [[1.5, 0.0, "BEZIER", "AUTO", 55.555554231007896, 1.5, "AUTO_CLAMPED"], [1.5, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, 1.5, "AUTO_CLAMPED", 250.0, 1.5, "AUTO_CLAMPED"], [1.6245688199996948, 250.00000000000003, "BEZIER", "AUTO", 333.3333333333333, 1.6245688199996948, "AUTO_CLAMPED", 461.1111005147298, 1.6245688199996948, "AUTO_CLAMPED"], [1.6176480054855347, 133.33333333333331, "BEZIER", "AUTO", 505.5555661519369, 1.6193782091140747, "AUTO_CLAMPED", 594.444465637207, 1.6159178018569946, "AUTO_CLAMPED"], [1.6000792980194092, 133.33333333333337, "BEZIER", "AUTO", 638.8888676961263, 1.6176480054855347, "AUTO_CLAMPED", 744.444465637207, 1.5759223699569702, "AUTO_CLAMPED"], [-1.4766695499420166, 183.33333333333337, "BEZIER", "AUTO", 805.555534362793, -1.4766695499420166, "AUTO_CLAMPED", 911.1111323038737, -1.4766695499420166, "AUTO_CLAMPED"], [-1.1554278135299683, 133.33333333333326, "BEZIER", "EASE_IN", 955.555534362793, -1.4023916721343994, "AUTO_CLAMPED", 1100.0, -0.5997589826583862, "AUTO_CLAMPED"], [0.8301324844360352, 300.0, "CONSTANT", "AUTO", 1200.0, 0.8301324844360352, "AUTO_CLAMPED"], [-2.845935821533203, 216.66666666666652, "BEZIER", "AUTO", 1650.0, -2.845935821533203, "AUTO_CLAMPED"], [-2.06758451461792, 400.0000000000002, "BEZIER", "AUTO", 1783.3333333333333, -2.845935821533203, "AUTO_CLAMPED", 2000.0, -1.5811150074005127, "AUTO_CLAMPED"], [1.2230087518692017, 249.99999999999977, "BEZIER", "AUTO", 2083.3333333333335, 0.7558850049972534, "AUTO_CLAMPED", 2227.777862548828, 1.5655661821365356, "AUTO_CLAMPED"], [1.5655661821365356, 183.33333333333348, "BEZIER", "AUTO", 2288.8888041178384, 1.5655661821365356, "AUTO_CLAMPED", 2400.0, 1.5655661821365356, "AUTO_CLAMPED"], [1.5, 150.0, "BEZIER", "AUTO", 2450.0, 1.5, "AUTO_CLAMPED", 2550.0, 1.5, "AUTO_CLAMPED"]], "y": [[2.3913047313690186, 0.0, "BEZIER", "AUTO", 55.555554231007896, 2.3913047313690186, "AUTO_CLAMPED"], [2.3913047313690186, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, 2.3913047313690186, "AUTO_CLAMPED", 250.0, 2.3913047313690186, "AUTO_CLAMPED"], [3.190911054611206, 250.00000000000003, "BEZIER", "AUTO", 333.3333333333333, 2.795443058013916, "AUTO_CLAMPED", 461.1111005147298, 3.401827335357666, "AUTO_CLAMPED"], [3.736901044845581, 133.33333333333331, "BEZIER", "AUTO", 505.5555661519369, 3.6102774143218994, "AUTO_CLAMPED", 594.444465637207, 3.8635246753692627, "AUTO_CLAMPED"], [3.9083218574523926, 133.33333333333337, "BEZIER", "AUTO", 638.8888676961263, 3.9083218574523926, "AUTO_CLAMPED", 777.7777989705403, 3.9083218574523926, "AUTO_CLAMPED"], [2.154109477996826, 283.33333333333326, "BEZIER", "AUTO", 938.4711583455404, 0.7801735401153564, "ALIGNED", 1088.4118398030598, 8.086616516113281, "ALIGNED"], [-8.979971885681152, 333.33333333333337, "CONSTANT", "AUTO", 1262.9019419352214, -4.779057025909424, "ALIGNED"], [-4.248352527618408, 216.66666666666652, "BEZIER", "AUTO", 1650.0, 0.3588838577270508, "AUTO_CLAMPED"], [2.7332305908203125, 400.0000000000002, "BEZIER", "AUTO", 1783.3333333333333, 2.5646088123321533, "AUTO_CLAMPED", 2000.0, 2.8386192321777344, "AUTO_CLAMPED"], [2.8386192321777344, 249.99999999999977, "BEZIER", "AUTO", 2083.3333333333335, 2.8386192321777344, "AUTO_CLAMPED", 2227.777862548828, 2.8386192321777344, "AUTO_CLAMPED"], [2.8217806816101074, 183.33333333333348, "BEZIER", "AUTO", 2288.8888041178384, 2.8386192321777344, "AUTO_CLAMPED", 2400.0, 2.8080036640167236, "AUTO_CLAMPED"], [2.3913047313690186, 150.0, "BEZIER", "AUTO", 2450.0, 2.3913047313690186, "AUTO_CLAMPED", 2550.0, 2.3913047313690186, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 55.555554231007896, 0.0, "AUTO_CLAMPED"], [0.0, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, 0.0, "AUTO_CLAMPED", 250.0, 0.0, "AUTO_CLAMPED"], [19.9088334682391, 250.00000000000003, "BEZIER", "AUTO", 333.3333333333333, 19.9088334682391, "AUTO_CLAMPED", 450.0, 19.9088334682391, "AUTO_CLAMPED"], [19.9088334682391, 99.99999999999994, "BEZIER", "AUTO", 483.3333333333333, 19.9088334682391, "AUTO_CLAMPED", 588.8888676961262, 19.9088334682391, "AUTO_CLAMPED"], [19.65956571447948, 216.66666666666663, "BEZIER", "AUTO", 661.1111323038737, 19.9088334682391, "AUTO_CLAMPED", 822.2222010294596, 19.352774107530017, "AUTO_CLAMPED"], [6.8487506359690835, 266.66666666666674, "BEZIER", "EASE_IN", 911.1111323038737, 6.8487506359690835, "AUTO_CLAMPED", 1100.0, 6.8487506359690835, "AUTO_CLAMPED"], [18.430997390354484, 300.0, "CONSTANT", "AUTO", 1203.1758626302083, 16.18389759681885, "ALIGNED"], [3.7309174095858877, 216.66666666666652, "BEZIER", "AUTO", 1622.2222646077473, 3.7309174095858877, "AUTO_CLAMPED"], [6.951205607953391, 316.66666666666674, "BEZIER", "AUTO", 1727.7777353922525, 5.1776103861761795, "AUTO_CLAMPED", 1944.4444020589194, 8.81814817134352, "AUTO_CLAMPED"], [11.202414385112291, 333.33333333333326, "BEZIER", "AUTO", 2055.5555979410806, 11.047306765476826, "AUTO_CLAMPED", 2227.777862548828, 11.287723447845751, "AUTO_CLAMPED"], [11.287723447845751, 183.33333333333348, "BEZIER", "AUTO", 2288.8888041178384, 11.287723447845751, "AUTO_CLAMPED", 2400.0, 11.287723447845751, "AUTO_CLAMPED"], [0.0, 150.0, "BEZIER", "AUTO", 2450.0, 0.0, "AUTO_CLAMPED", 2550.0, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 55.555554231007896, -0.0, "AUTO_CLAMPED"], [-0.0, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, -0.0, "AUTO_CLAMPED", 250.0, -0.0, "AUTO_CLAMPED"], [0.06078959074761263, 250.00000000000003, "BEZIER", "AUTO", 333.3333333333333, 0.06078959074761263, "AUTO_CLAMPED", 450.0, 0.06078959074761263, "AUTO_CLAMPED"], [0.06078959074761263, 99.99999999999994, "BEZIER", "AUTO", 483.3333333333333, 0.06078959074761263, "AUTO_CLAMPED", 588.8888676961262, 0.06078959074761263, "AUTO_CLAMPED"], [7.811642957513978, 216.66666666666663, "BEZIER", "AUTO", 661.1111323038737, 7.811642957513978, "AUTO_CLAMPED", 822.2222010294596, 7.811642957513978, "AUTO_CLAMPED"], [-38.30911379034874, 266.66666666666674, "BEZIER", "EASE_IN", 911.3918304443359, 13.807524520409672, "ALIGNED", 1077.3877461751301, -83.82624232502783, "ALIGNED"], [-352.32899724031466, 300.0, "CONSTANT", "AUTO", 1261.3759358723958, -321.9006410916913, "ALIGNED"], [-69.20970580309225, 216.66666666666652, "BEZIER", "AUTO", 1622.2222646077473, -43.611167661881616, "AUTO_CLAMPED"], [-43.611167661881616, 316.66666666666674, "BEZIER", "AUTO", 1727.7777353922525, -51.158690619285785, "AUTO_CLAMPED", 1944.4444020589194, -35.66640773253867, "AUTO_CLAMPED"], [-3.7350402825236366, 333.33333333333326, "BEZIER", "AUTO", 2055.5555979410806, -10.995832752344318, "AUTO_CLAMPED", 2227.777862548828, 0.25839587469851427, "AUTO_CLAMPED"], [0.2583960614614994, 183.33333333333348, "BEZIER", "AUTO", 2288.8888041178384, 0.2583960614614994, "AUTO_CLAMPED", 2400.0, 0.2583960614614994, "AUTO_CLAMPED"], [-0.0, 150.0, "BEZIER", "AUTO", 2450.0, -0.0, "AUTO_CLAMPED", 2550.0, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 55.555554231007896, 0.0, "AUTO_CLAMPED"], [0.0, 166.66666666666666, "BEZIER", "AUTO", 111.11111640930176, 0.0, "AUTO_CLAMPED", 250.0, 0.0, "AUTO_CLAMPED"], [0.35444556998437726, 250.00000000000003, "BEZIER", "AUTO", 333.3333333333333, 0.35444556998437726, "AUTO_CLAMPED", 450.0, 0.35444556998437726, "AUTO_CLAMPED"], [0.35444556998437726, 99.99999999999994, "BEZIER", "AUTO", 483.3333333333333, 0.35444556998437726, "AUTO_CLAMPED", 588.8888676961262, 0.35444556998437726, "AUTO_CLAMPED"], [3.2815099586626775, 216.66666666666663, "BEZIER", "AUTO", 661.1111323038737, 3.2815099586626775, "AUTO_CLAMPED", 822.2222010294596, 3.2815099586626775, "AUTO_CLAMPED"], [-16.578976228979897, 266.66666666666674, "BEZIER", "EASE_IN", 911.1111323038737, -16.578976228979897, "AUTO_CLAMPED", 1100.0, -16.578976228979897, "AUTO_CLAMPED"], [-8.980774975481523, 300.0, "CONSTANT", "AUTO", 1200.0, -8.980774975481523, "AUTO_CLAMPED"], [-10.256062647303052, 216.66666666666652, "BEZIER", "AUTO", 1622.2222646077473, -10.955330584339789, "AUTO_CLAMPED"], [-11.29071421692857, 316.66666666666674, "BEZIER", "AUTO", 1727.7777353922525, -10.97447645835698, "AUTO_CLAMPED", 1944.4444020589194, -11.623596292733836, "AUTO_CLAMPED"], [-12.285666165777036, 333.33333333333326, "BEZIER", "AUTO", 2055.5555979410806, -12.285666165777036, "AUTO_CLAMPED", 2183.333333333333, -12.285666165777036, "AUTO_CLAMPED"], [-1.6670543025653557, 50.000000000000455, "BEZIER", "AUTO", 2200.0, -1.9612403685147366, "AUTO_CLAMPED", 2311.1111958821616, 0.0, "AUTO_CLAMPED"], [0.0, 283.33333333333303, "BEZIER", "AUTO", 2405.5554707845054, 0.0, "AUTO_CLAMPED", 2594.4445292154946, 0.0, "AUTO_CLAMPED"]]}}}}, "offset": {"Bolt": [0.4437499940395355, 1.8304203748703003, -1.8655332326889038], "Mag": [1.6590982809816524e-08, 2.3913047313690186, 1.5], "MagPlate": [8.392404104995421e-09, 2.080420970916748, 1.7499605417251587], "Silencer": [2.45330426196233e-07, 1.8616708517074585, 11.875], "Trigger": [2.9753691066503052e-08, 1.111669898033142, -1.562500238418579]}, "hierarchy": {"Bolt": "Gun", "Mag": "Gun", "MagPlate": "Mag", "Silencer": "Gun", "Trigger": "Gun"}} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/weapons/animations/flamethrower.json b/src/main/resources/assets/hbm/models/weapons/animations/flamethrower.json new file mode 100644 index 000000000..334a5ca74 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/animations/flamethrower.json @@ -0,0 +1 @@ +{"anim": {"Reload": {"Gauge": {"location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 292.80862808227545, 0.0, "AUTO_CLAMPED"], [0.0, 750.0, "BEZIER", "AUTO", 457.1913719177246, 0.0, "AUTO_CLAMPED", 1238.0144119262698, 0.0, "AUTO_CLAMPED"], [0.0, 1250.0, "BEZIER", "AUTO", 1511.9855880737305, 0.0, "AUTO_CLAMPED", 2195.2056884765625, 0.0, "AUTO_CLAMPED"], [0.0, 500.0, "BEZIER", "AUTO", 2304.7943115234375, 0.0, "AUTO_CLAMPED", 2988.0144119262695, 0.0, "AUTO_CLAMPED"], [0.0, 1250.0, "LINEAR", "AUTO", 3261.9857788085938, 0.0, "AUTO_CLAMPED"], [0.0, 750.0, "BEZIER", "AUTO", 4792.808532714844, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 292.80862808227545, -0.0, "AUTO_CLAMPED"], [-1.0132989883422852, 750.0, "BEZIER", "AUTO", 457.1913719177246, -1.0132989883422852, "AUTO_CLAMPED", 1238.0144119262698, -1.0132989883422852, "AUTO_CLAMPED"], [-1.0132989883422852, 1250.0, "BEZIER", "AUTO", 1511.9855880737305, -1.0132989883422852, "AUTO_CLAMPED", 2195.2056884765625, -1.0132989883422852, "AUTO_CLAMPED"], [-1.0132989883422852, 500.0, "BEZIER", "AUTO", 2304.7943115234375, -1.0132989883422852, "AUTO_CLAMPED", 2988.0144119262695, -1.0132989883422852, "AUTO_CLAMPED"], [-1.0132989883422852, 1250.0, "LINEAR", "AUTO", 3261.9857788085938, -1.0132989883422852, "AUTO_CLAMPED"], [-0.0, 750.0, "BEZIER", "AUTO", 4792.808532714844, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 292.80862808227545, 0.0, "AUTO_CLAMPED"], [0.0, 750.0, "BEZIER", "AUTO", 457.1913719177246, 0.0, "AUTO_CLAMPED", 1238.0144119262698, 0.0, "AUTO_CLAMPED"], [0.0, 1250.0, "BEZIER", "AUTO", 1511.9855880737305, 0.0, "AUTO_CLAMPED", 2195.2056884765625, 0.0, "AUTO_CLAMPED"], [2.400388240814209, 500.0, "BEZIER", "AUTO", 2304.7943115234375, 2.400388240814209, "AUTO_CLAMPED", 2988.0144119262695, 2.400388240814209, "AUTO_CLAMPED"], [2.400388240814209, 1250.0, "LINEAR", "AUTO", 3261.9857788085938, 2.400388240814209, "AUTO_CLAMPED"], [0.0, 750.0, "BEZIER", "AUTO", 4792.808532714844, 0.0, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 292.80862808227545, 0.0, "AUTO_CLAMPED"], [31.53669436033596, 750.0, "BEZIER", "AUTO", 457.1913719177246, 31.53669436033596, "AUTO_CLAMPED", 1238.0144119262698, 31.53669436033596, "AUTO_CLAMPED"], [31.53669436033596, 1250.0, "BEZIER", "AUTO", 1511.9855880737305, 31.53669436033596, "AUTO_CLAMPED", 2195.2056884765625, 31.53669436033596, "AUTO_CLAMPED"], [-23.37867031189583, 500.0, "BEZIER", "AUTO", 2304.7943115234375, -23.37867031189583, "AUTO_CLAMPED", 2988.0144119262695, -23.37867031189583, "AUTO_CLAMPED"], [-23.37867031189583, 1250.0, "LINEAR", "AUTO", 3261.9857788085938, -23.37867031189583, "AUTO_CLAMPED"], [0.0, 750.0, "BEZIER", "AUTO", 4792.808532714844, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 292.80862808227545, -0.0, "AUTO_CLAMPED"], [0.0, 750.0, "BEZIER", "AUTO", 457.1913719177246, 0.0, "AUTO_CLAMPED", 1238.0144119262698, 0.0, "AUTO_CLAMPED"], [0.0, 1250.0, "BEZIER", "AUTO", 1511.9855880737305, 0.0, "AUTO_CLAMPED", 2195.2056884765625, 0.0, "AUTO_CLAMPED"], [0.0, 500.0, "BEZIER", "AUTO", 2304.7943115234375, 0.0, "AUTO_CLAMPED", 2988.0144119262695, 0.0, "AUTO_CLAMPED"], [-0.0, 1250.0, "LINEAR", "AUTO", 3261.9857788085938, -0.0, "AUTO_CLAMPED"], [-0.0, 750.0, "BEZIER", "AUTO", 4792.808532714844, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 292.80862808227545, 0.0, "AUTO_CLAMPED"], [0.0, 750.0, "BEZIER", "AUTO", 457.1913719177246, 0.0, "AUTO_CLAMPED", 1238.0144119262698, 0.0, "AUTO_CLAMPED"], [0.0, 1250.0, "BEZIER", "AUTO", 1511.9855880737305, 0.0, "AUTO_CLAMPED", 2195.2056884765625, 0.0, "AUTO_CLAMPED"], [0.0, 500.0, "BEZIER", "AUTO", 2304.7943115234375, 0.0, "AUTO_CLAMPED", 2988.0144119262695, 0.0, "AUTO_CLAMPED"], [0.0, 1250.0, "LINEAR", "AUTO", 3261.9857788085938, 0.0, "AUTO_CLAMPED"], [0.0, 750.0, "BEZIER", "AUTO", 4792.808532714844, 0.0, "AUTO_CLAMPED"]]}}, "Gun": {"location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 292.80862808227545, 0.0, "AUTO_CLAMPED"], [0.0, 750.0, "BEZIER", "AUTO", 457.1913719177246, 0.0, "AUTO_CLAMPED", 1238.0144119262698, 0.0, "AUTO_CLAMPED"], [0.0, 1250.0, "BEZIER", "AUTO", 1511.9855880737305, 0.0, "AUTO_CLAMPED", 2195.2056884765625, 0.0, "AUTO_CLAMPED"], [0.0, 500.0, "BEZIER", "AUTO", 2304.7943115234375, 0.0, "AUTO_CLAMPED", 2988.0144119262695, 0.0, "AUTO_CLAMPED"], [0.0, 1250.0, "LINEAR", "AUTO", 3261.9857788085938, 0.0, "AUTO_CLAMPED"], [0.0, 750.0, "BEZIER", "AUTO", 4792.808532714844, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 292.80862808227545, -0.0, "AUTO_CLAMPED"], [-1.0132989883422852, 750.0, "BEZIER", "AUTO", 457.1913719177246, -1.0132989883422852, "AUTO_CLAMPED", 1238.0144119262698, -1.0132989883422852, "AUTO_CLAMPED"], [-1.0132989883422852, 1250.0, "BEZIER", "AUTO", 1511.9855880737305, -1.0132989883422852, "AUTO_CLAMPED", 2195.2056884765625, -1.0132989883422852, "AUTO_CLAMPED"], [-1.0132989883422852, 500.0, "BEZIER", "AUTO", 2304.7943115234375, -1.0132989883422852, "AUTO_CLAMPED", 2988.0144119262695, -1.0132989883422852, "AUTO_CLAMPED"], [-1.0132989883422852, 1250.0, "LINEAR", "AUTO", 3261.9857788085938, -1.0132989883422852, "AUTO_CLAMPED"], [-0.0, 750.0, "BEZIER", "AUTO", 4792.808532714844, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 292.80862808227545, 0.0, "AUTO_CLAMPED"], [0.0, 750.0, "BEZIER", "AUTO", 457.1913719177246, 0.0, "AUTO_CLAMPED", 1238.0144119262698, 0.0, "AUTO_CLAMPED"], [0.0, 1250.0, "BEZIER", "AUTO", 1511.9855880737305, 0.0, "AUTO_CLAMPED", 2195.2056884765625, 0.0, "AUTO_CLAMPED"], [2.400388240814209, 500.0, "BEZIER", "AUTO", 2304.7943115234375, 2.400388240814209, "AUTO_CLAMPED", 2988.0144119262695, 2.400388240814209, "AUTO_CLAMPED"], [2.400388240814209, 1250.0, "LINEAR", "AUTO", 3261.9857788085938, 2.400388240814209, "AUTO_CLAMPED"], [0.0, 750.0, "BEZIER", "AUTO", 4792.808532714844, 0.0, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 292.80862808227545, 0.0, "AUTO_CLAMPED"], [31.53669436033596, 750.0, "BEZIER", "AUTO", 457.1913719177246, 31.53669436033596, "AUTO_CLAMPED", 1238.0144119262698, 31.53669436033596, "AUTO_CLAMPED"], [31.53669436033596, 1250.0, "BEZIER", "AUTO", 1511.9855880737305, 31.53669436033596, "AUTO_CLAMPED", 2195.2056884765625, 31.53669436033596, "AUTO_CLAMPED"], [-23.37867031189583, 500.0, "BEZIER", "AUTO", 2304.7943115234375, -23.37867031189583, "AUTO_CLAMPED", 2988.0144119262695, -23.37867031189583, "AUTO_CLAMPED"], [-23.37867031189583, 1250.0, "LINEAR", "AUTO", 3261.9857788085938, -23.37867031189583, "AUTO_CLAMPED"], [0.0, 750.0, "BEZIER", "AUTO", 4792.808532714844, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 292.80862808227545, -0.0, "AUTO_CLAMPED"], [0.0, 750.0, "BEZIER", "AUTO", 457.1913719177246, 0.0, "AUTO_CLAMPED", 1238.0144119262698, 0.0, "AUTO_CLAMPED"], [0.0, 1250.0, "BEZIER", "AUTO", 1511.9855880737305, 0.0, "AUTO_CLAMPED", 2195.2056884765625, 0.0, "AUTO_CLAMPED"], [0.0, 500.0, "BEZIER", "AUTO", 2304.7943115234375, 0.0, "AUTO_CLAMPED", 2988.0144119262695, 0.0, "AUTO_CLAMPED"], [0.0, 1250.0, "LINEAR", "AUTO", 3261.9857788085938, 0.0, "AUTO_CLAMPED"], [0.0, 750.0, "BEZIER", "AUTO", 4792.808532714844, 0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 292.80862808227545, 0.0, "AUTO_CLAMPED"], [0.0, 750.0, "BEZIER", "AUTO", 457.1913719177246, 0.0, "AUTO_CLAMPED", 1238.0144119262698, 0.0, "AUTO_CLAMPED"], [0.0, 1250.0, "BEZIER", "AUTO", 1511.9855880737305, 0.0, "AUTO_CLAMPED", 2195.2056884765625, 0.0, "AUTO_CLAMPED"], [0.0, 500.0, "BEZIER", "AUTO", 2304.7943115234375, 0.0, "AUTO_CLAMPED", 2988.0144119262695, 0.0, "AUTO_CLAMPED"], [0.0, 1250.0, "LINEAR", "AUTO", 3261.9857788085938, 0.0, "AUTO_CLAMPED"], [0.0, 750.0, "BEZIER", "AUTO", 4792.808532714844, 0.0, "AUTO_CLAMPED"]]}}, "Tank": {"location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 292.80862808227545, 0.0, "AUTO_CLAMPED"], [0.0, 750.0, "LINEAR", "AUTO", 457.1913719177246, 0.0, "AUTO_CLAMPED"], [-0.044564783573150635, 400.0000000000002, "LINEAR", "AUTO"], [-0.044564783573150635, 349.9999999999998, "BEZIER", "AUTO", 1695.2056884765625, -0.044564783573150635, "AUTO_CLAMPED"], [-0.044564783573150635, 500.0, "BEZIER", "AUTO", 1804.7943115234375, -0.044564783573150635, "AUTO_CLAMPED", 2195.2056884765625, -0.044564783573150635, "AUTO_CLAMPED"], [-0.044564783573150635, 500.0, "BEZIER", "AUTO", 2304.7943115234375, -0.044564783573150635, "AUTO_CLAMPED", 2695.2056884765625, -0.044564783573150635, "AUTO_CLAMPED"], [-0.044564783573150635, 500.0, "BEZIER", "AUTO", 2804.7943115234375, -0.044564783573150635, "AUTO_CLAMPED", 3097.6028442382812, -0.044564783573150635, "AUTO_CLAMPED"], [-0.044564783573150635, 250.0, "BEZIER", "AUTO", 3152.3971557617188, -0.044564783573150635, "AUTO_CLAMPED", 3347.6028442382812, -0.044564783573150635, "AUTO_CLAMPED"], [-0.044564783573150635, 250.0, "LINEAR", "AUTO", 3402.3971557617188, -0.044564783573150635, "AUTO_CLAMPED"], [0.0, 250.0, "LINEAR", "AUTO"], [0.0, 750.0, "BEZIER", "AUTO", 4792.808532714844, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 292.80862808227545, -0.0, "AUTO_CLAMPED"], [-1.0132989883422852, 750.0, "LINEAR", "AUTO", 457.1913719177246, -1.0132989883422852, "AUTO_CLAMPED"], [2.5499136447906494, 400.0000000000002, "LINEAR", "AUTO"], [1.4521247148513794, 349.9999999999998, "BEZIER", "AUTO", 1695.2056884765625, 1.4521247148513794, "AUTO_CLAMPED"], [3.9383955001831055, 500.0, "BEZIER", "AUTO", 1804.7943115234375, 3.9383955001831055, "AUTO_CLAMPED", 2195.2056884765625, 3.9383955001831055, "AUTO_CLAMPED"], [3.9383955001831055, 500.0, "BEZIER", "AUTO", 2304.7943115234375, 3.9383955001831055, "AUTO_CLAMPED", 2695.2056884765625, 3.9383955001831055, "AUTO_CLAMPED"], [4.342286586761475, 500.0, "BEZIER", "AUTO", 2804.7943115234375, 3.9470109939575195, "AUTO_CLAMPED", 3097.6028442382812, 4.539924621582031, "AUTO_CLAMPED"], [5.1528000831604, 250.0, "BEZIER", "AUTO", 3152.3971557617188, 5.1528000831604, "AUTO_CLAMPED", 3347.6028442382812, 5.1528000831604, "AUTO_CLAMPED"], [2.7643589973449707, 250.0, "LINEAR", "AUTO", 3402.3971557617188, 3.9673728942871094, "AUTO_CLAMPED"], [-1.0099999904632568, 250.0, "LINEAR", "AUTO"], [-0.0, 750.0, "BEZIER", "AUTO", 4792.808532714844, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 292.80862808227545, 0.0, "AUTO_CLAMPED"], [0.0, 750.0, "LINEAR", "AUTO", 457.1913719177246, 0.0, "AUTO_CLAMPED"], [-2.2834606170654297, 400.0000000000002, "LINEAR", "AUTO"], [-5.361827373504639, 349.9999999999998, "BEZIER", "AUTO", 1695.2056884765625, -7.615589141845703, "AUTO_CLAMPED"], [-12.509732246398926, 500.0, "BEZIER", "AUTO", 1804.7943115234375, -12.509732246398926, "AUTO_CLAMPED", 2195.2056884765625, -12.509732246398926, "AUTO_CLAMPED"], [-12.509732246398926, 500.0, "BEZIER", "AUTO", 2304.7943115234375, -12.509732246398926, "AUTO_CLAMPED", 2695.2056884765625, -12.509732246398926, "AUTO_CLAMPED"], [-4.52110481262207, 500.0, "BEZIER", "AUTO", 2804.7943115234375, -7.63911247253418, "AUTO_CLAMPED", 3097.6028442382812, -2.9621009826660156, "AUTO_CLAMPED"], [-0.5289543867111206, 250.0, "BEZIER", "AUTO", 3152.3971557617188, -2.206026554107666, "AUTO_CLAMPED", 3347.6028442382812, 1.1481177806854248, "AUTO_CLAMPED"], [4.070199966430664, 250.0, "LINEAR", "AUTO", 3402.3971557617188, 4.070199966430664, "AUTO_CLAMPED"], [2.4000000953674316, 250.0, "LINEAR", "AUTO"], [0.0, 750.0, "BEZIER", "AUTO", 4792.808532714844, 0.0, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 292.80862808227545, 0.0, "AUTO_CLAMPED"], [31.53669436033596, 750.0, "LINEAR", "AUTO", 457.1913719177246, 31.53669436033596, "AUTO_CLAMPED"], [31.53669436033596, 400.0000000000002, "LINEAR", "AUTO"], [60.02500016201436, 349.9999999999998, "BEZIER", "AUTO", 1695.2056884765625, 60.02500016201436, "AUTO_CLAMPED"], [60.02500016201436, 500.0, "BEZIER", "AUTO", 1804.7943115234375, 60.02500016201436, "AUTO_CLAMPED", 2195.2056884765625, 60.02500016201436, "AUTO_CLAMPED"], [60.02500016201436, 500.0, "BEZIER", "AUTO", 2304.7943115234375, 60.02500016201436, "AUTO_CLAMPED", 2695.2056884765625, 60.02500016201436, "AUTO_CLAMPED"], [60.02500016201436, 500.0, "BEZIER", "AUTO", 2804.7943115234375, 60.02500016201436, "AUTO_CLAMPED", 3097.6028442382812, 60.02500016201436, "AUTO_CLAMPED"], [23.514188095218056, 250.0, "BEZIER", "AUTO", 3152.3971557617188, 39.881238922178085, "AUTO_CLAMPED", 3347.6028442382812, 7.147137268258023, "AUTO_CLAMPED"], [-23.820132758710436, 250.0, "LINEAR", "AUTO", 3402.3971557617188, -23.820132758710436, "AUTO_CLAMPED"], [-23.820132758710436, 250.0, "LINEAR", "AUTO"], [0.0, 750.0, "BEZIER", "AUTO", 4792.808532714844, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 292.80862808227545, -0.0, "AUTO_CLAMPED"], [0.0, 750.0, "LINEAR", "AUTO", 457.1913719177246, 0.0, "AUTO_CLAMPED"], [0.0, 400.0000000000002, "LINEAR", "AUTO"], [0.0, 349.9999999999998, "BEZIER", "AUTO", 1695.2056884765625, 0.0, "AUTO_CLAMPED"], [0.0, 500.0, "BEZIER", "AUTO", 1804.7943115234375, 0.0, "AUTO_CLAMPED", 2195.2056884765625, 0.0, "AUTO_CLAMPED"], [0.0, 500.0, "BEZIER", "AUTO", 2304.7943115234375, 0.0, "AUTO_CLAMPED", 2695.2056884765625, 0.0, "AUTO_CLAMPED"], [0.0, 500.0, "BEZIER", "AUTO", 2804.7943115234375, 0.0, "AUTO_CLAMPED", 3097.6028442382812, 0.0, "AUTO_CLAMPED"], [0.0, 250.0, "BEZIER", "AUTO", 3152.3971557617188, 0.0, "AUTO_CLAMPED", 3347.6028442382812, 0.0, "AUTO_CLAMPED"], [0.0, 250.0, "LINEAR", "AUTO", 3402.3971557617188, 0.0, "AUTO_CLAMPED"], [0.0, 250.0, "LINEAR", "AUTO"], [0.0, 750.0, "BEZIER", "AUTO", 4792.808532714844, 0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 292.80862808227545, 0.0, "AUTO_CLAMPED"], [0.0, 750.0, "LINEAR", "AUTO", 457.1913719177246, 0.0, "AUTO_CLAMPED"], [0.0, 400.0000000000002, "LINEAR", "AUTO"], [0.0, 349.9999999999998, "BEZIER", "AUTO", 1695.2056884765625, 0.0, "AUTO_CLAMPED"], [0.0, 500.0, "BEZIER", "AUTO", 1804.7943115234375, 0.0, "AUTO_CLAMPED", 2195.2056884765625, 0.0, "AUTO_CLAMPED"], [0.0, 500.0, "BEZIER", "AUTO", 2304.7943115234375, 0.0, "AUTO_CLAMPED", 2695.2056884765625, 0.0, "AUTO_CLAMPED"], [0.0, 500.0, "BEZIER", "AUTO", 2804.7943115234375, 0.0, "AUTO_CLAMPED", 3097.6028442382812, 0.0, "AUTO_CLAMPED"], [0.0, 250.0, "BEZIER", "AUTO", 3152.3971557617188, 0.0, "AUTO_CLAMPED", 3347.6028442382812, 0.0, "AUTO_CLAMPED"], [0.0, 250.0, "LINEAR", "AUTO", 3402.3971557617188, 0.0, "AUTO_CLAMPED"], [0.0, 250.0, "LINEAR", "AUTO"], [0.0, 750.0, "BEZIER", "AUTO", 4792.808532714844, 0.0, "AUTO_CLAMPED"]]}}}}, "offset": {}, "hierarchy": {}} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/weapons/flamethrower.obj b/src/main/resources/assets/hbm/models/weapons/flamethrower.obj index ba471a2db..c1db95f4f 100644 --- a/src/main/resources/assets/hbm/models/weapons/flamethrower.obj +++ b/src/main/resources/assets/hbm/models/weapons/flamethrower.obj @@ -76,46 +76,46 @@ v -0.250000 -1.566988 -6.750000 vt 0.346821 0.604839 vt 0.369942 0.580645 vt 0.369942 0.612903 -vt 0.393064 0.741935 +vt 0.390173 0.741935 vt 0.369942 0.709677 -vt 0.393064 0.709677 +vt 0.390173 0.709677 vt 0.624277 0.709677 vt 0.624277 0.741935 vt 0.369942 0.645161 vt 0.346821 0.620968 -vt 0.393064 0.774194 +vt 0.390173 0.774194 vt 0.369942 0.806452 vt 0.369942 0.774194 vt 0.624277 0.677419 -vt 0.367052 0.935484 +vt 0.369942 0.935484 vt 0.346821 0.911290 vt 0.369942 0.903226 vt 0.369942 0.741935 -vt 0.393064 0.677419 +vt 0.390173 0.677419 vt 0.624277 0.645161 vt 0.346821 0.895161 vt 0.369942 0.870968 vt 0.369942 0.677419 -vt 0.393064 0.645161 +vt 0.390173 0.645161 vt 0.624277 0.612903 vt 0.346821 0.862903 vt 0.369942 0.838710 -vt 0.393064 0.612903 +vt 0.390173 0.612903 vt 0.624277 0.580645 vt 0.346821 0.814516 -vt 0.393064 0.580645 +vt 0.390173 0.580645 vt 0.369942 0.548387 -vt 0.393064 0.548387 +vt 0.390173 0.548387 vt 0.624277 0.548387 vt 0.346821 0.782258 -vt 0.393064 0.903226 -vt 0.393064 0.870968 -vt 0.393064 0.935484 +vt 0.390173 0.903226 +vt 0.390173 0.870968 +vt 0.390173 0.935484 vt 0.624277 0.903226 vt 0.624277 0.935484 vt 0.346821 0.750000 -vt 0.393064 0.838710 -vt 0.393064 0.806452 +vt 0.390173 0.838710 +vt 0.390173 0.806452 vt 0.624277 0.870968 vt 0.346821 0.733871 vt 0.624277 0.838710 diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index 543f67a45..39632d3cf 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -223,6 +223,7 @@ "weapon.switchmode2": {"category": "player", "sounds": [{"name": "weapon/switchmode2", "stream": false}]}, "weapon.fire.blackPowder": {"category": "player", "sounds": [{"name": "weapon/fire/blackPowder", "stream": false}]}, + "weapon.fire.flameLoop": {"category": "player", "sounds": [{"name": "weapon/fire/flameLoop", "stream": false}]}, "weapon.reload.boltClose": {"category": "player", "sounds": ["weapon/reload/boltClose"]}, "weapon.reload.boltOpen": {"category": "player", "sounds": ["weapon/reload/boltOpen"]}, diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/flameLoop.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/flameLoop.ogg new file mode 100644 index 000000000..8d2822779 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/flameLoop.ogg differ