添加海月权杖的动画和音效
This commit is contained in:
parent
ba78f43aeb
commit
7203df3602
15 changed files with 4576 additions and 18436 deletions
|
@ -341,7 +341,7 @@ public class ClickHandler {
|
|||
&& !notInGame()
|
||||
) {
|
||||
var data = GunData.from(stack);
|
||||
if (!stack.is(ModItems.BOCEK.get())) {
|
||||
if (!(stack.is(ModItems.BOCEK.get()) || stack.is(ModItems.AURELIA_SCEPTRE.get()))) {
|
||||
player.playSound(ModSounds.TRIGGER_CLICK.get(), 1, 1);
|
||||
} else {
|
||||
bowPower = 0;
|
||||
|
|
|
@ -1,15 +1,25 @@
|
|||
package com.atsuishio.superbwarfare.client.model.item;
|
||||
|
||||
import com.atsuishio.superbwarfare.Mod;
|
||||
import com.atsuishio.superbwarfare.event.ClientEventHandler;
|
||||
import com.atsuishio.superbwarfare.item.gun.GunItem;
|
||||
import com.atsuishio.superbwarfare.item.gun.handgun.AureliaSceptre;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.util.Mth;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import software.bernie.geckolib.animation.AnimationState;
|
||||
import software.bernie.geckolib.cache.object.GeoBone;
|
||||
import software.bernie.geckolib.model.GeoModel;
|
||||
|
||||
import static com.atsuishio.superbwarfare.event.ClientEventHandler.*;
|
||||
|
||||
public class AureliaSceptreModel extends GeoModel<AureliaSceptre> {
|
||||
|
||||
public static float fireRotY = 0f;
|
||||
public static float fireRotZ = 0f;
|
||||
public static float firePosMove = 0f;
|
||||
|
||||
@Override
|
||||
public ResourceLocation getAnimationResource(AureliaSceptre animatable) {
|
||||
|
@ -28,98 +38,35 @@ public class AureliaSceptreModel extends GeoModel<AureliaSceptre> {
|
|||
|
||||
@Override
|
||||
public void setCustomAnimations(AureliaSceptre animatable, long instanceId, AnimationState animationState) {
|
||||
// TODO 动画
|
||||
// GeoBone gun = getAnimationProcessor().getBone("bone");
|
||||
// GeoBone slide = getAnimationProcessor().getBone("huatao");
|
||||
// GeoBone bullet = getAnimationProcessor().getBone("bullet");
|
||||
//
|
||||
// Player player = Minecraft.getInstance().player;
|
||||
// if (player == null) return;
|
||||
// ItemStack stack = player.getMainHandItem();
|
||||
// if (!(stack.getItem() instanceof GunItem)) return;
|
||||
//
|
||||
// float times = 0.6f * (float) Math.min(Minecraft.getInstance().getTimer().getRealtimeDeltaTicks(), 0.8);
|
||||
// double zt = ClientEventHandler.zoomTime;
|
||||
// double zp = ClientEventHandler.zoomPos;
|
||||
// double zpz = ClientEventHandler.zoomPosZ;
|
||||
// double fpz = ClientEventHandler.firePosZ * 13 * times;
|
||||
// double fp = ClientEventHandler.firePos;
|
||||
// double fr = ClientEventHandler.fireRot;
|
||||
//
|
||||
// gun.setPosX(1.23f * (float) zp);
|
||||
// gun.setPosY(1.43f * (float) zp - (float) (0.2f * zpz));
|
||||
// gun.setPosZ(7f * (float) zp + (float) (0.3f * zpz));
|
||||
// gun.setScaleZ(1f - (0.55f * (float) zp));
|
||||
//
|
||||
// GeoBone body = getAnimationProcessor().getBone("gun");
|
||||
//
|
||||
// fireRotY = (float) Mth.lerp(0.3f * times, fireRotY, 0.6f * ClientEventHandler.recoilHorizon * fpz);
|
||||
// fireRotZ = (float) Mth.lerp(2f * times, fireRotZ, (0.4f + 0.5 * fpz) * ClientEventHandler.recoilHorizon);
|
||||
//
|
||||
// body.setPosX(-0.4f * (float) (ClientEventHandler.recoilHorizon * (0.5 + 0.4 * ClientEventHandler.fireSpread)));
|
||||
// body.setPosY((float) (0.15f * fp + 0.18f * fr));
|
||||
// body.setPosZ((float) (1.935 * fp + 0.16f * fr + 0.925 * fpz));
|
||||
// body.setRotX((float) (0.08f * fp + 0.1f * fr + 0.35f * fpz));
|
||||
// body.setRotY(fireRotY);
|
||||
// body.setRotZ(fireRotZ);
|
||||
//
|
||||
// body.setPosX((float) (body.getPosX() * (1 - 0.4 * zt)));
|
||||
// body.setPosY((float) (body.getPosY() * (-1 + 0.5 * zt)));
|
||||
// body.setPosZ((float) (body.getPosZ() * (1 - 0.3 * zt)));
|
||||
// body.setRotX((float) (body.getRotX() * (1 - 0.8 * zt)));
|
||||
// body.setRotY((float) (body.getRotY() * (1 - 0.7 * zt)));
|
||||
// body.setRotZ((float) (body.getRotZ() * (1 - 0.65 * zt)));
|
||||
//
|
||||
// CrossHairOverlay.gunRot = body.getRotZ();
|
||||
//
|
||||
// slide.setPosZ(1.5f * (float) fp);
|
||||
//
|
||||
// ClientEventHandler.gunRootMove(getAnimationProcessor());
|
||||
//
|
||||
// GeoBone camera = getAnimationProcessor().getBone("camera");
|
||||
// GeoBone main = getAnimationProcessor().getBone("0");
|
||||
//
|
||||
// float numR = (float) (1 - 0.12 * zt);
|
||||
// float numP = (float) (1 - 0.68 * zt);
|
||||
//
|
||||
// var data = GunData.from(stack);
|
||||
//
|
||||
// if (data.reload.time() > 0) {
|
||||
// main.setRotX(numR * main.getRotX());
|
||||
// main.setRotY(numR * main.getRotY());
|
||||
// main.setRotZ(numR * main.getRotZ());
|
||||
// main.setPosX(numP * main.getPosX());
|
||||
// main.setPosY(numP * main.getPosY());
|
||||
// main.setPosZ(numP * main.getPosZ());
|
||||
// camera.setRotX(numR * camera.getRotX());
|
||||
// camera.setRotY(numR * camera.getRotY());
|
||||
// camera.setRotZ(numR * camera.getRotZ());
|
||||
// }
|
||||
//
|
||||
// ClientEventHandler.handleReloadShake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ());
|
||||
// AnimationHelper.handleShellsAnimation(getAnimationProcessor(), 0.7f, 1f);
|
||||
//
|
||||
// GeoBone shell = getAnimationProcessor().getBone("shell");
|
||||
// GeoBone barrel = getAnimationProcessor().getBone("guan");
|
||||
// if (data.holdOpen.get()) {
|
||||
// slide.setPosZ(1.5f);
|
||||
// barrel.setRotX(4 * Mth.DEG_TO_RAD);
|
||||
// bullet.setScaleX(0);
|
||||
// bullet.setScaleY(0);
|
||||
// bullet.setScaleZ(0);
|
||||
//
|
||||
// shell.setScaleX(0);
|
||||
// shell.setScaleY(0);
|
||||
// shell.setScaleZ(0);
|
||||
// } else {
|
||||
// barrel.setRotX(0);
|
||||
// bullet.setScaleX(1);
|
||||
// bullet.setScaleY(1);
|
||||
// bullet.setScaleZ(1);
|
||||
//
|
||||
// shell.setScaleX(1);
|
||||
// shell.setScaleY(1);
|
||||
// shell.setScaleZ(1);
|
||||
// }
|
||||
Player player = Minecraft.getInstance().player;
|
||||
if (player == null) return;
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (!(stack.getItem() instanceof GunItem)) return;
|
||||
|
||||
float times = 0.2f * (float) Math.min(Minecraft.getInstance().getTimer().getRealtimeDeltaTicks(), 0.8);
|
||||
|
||||
ClientEventHandler.gunRootMove(getAnimationProcessor());
|
||||
|
||||
GeoBone rootLeftHand = getAnimationProcessor().getBone("rootLeftHand");
|
||||
|
||||
firePosMove = Mth.lerp((holdFire ? 5 : 2) * times, firePosMove, holdFire ? 1 : 0);
|
||||
|
||||
|
||||
rootLeftHand.setPosX((float) (-movePosX + 20 * drawTime + 9.3f * movePosHorizon));
|
||||
rootLeftHand.setPosY((float) (swayY - movePosY - 40 * drawTime - 2f * velocityY + 1 * firePosMove));
|
||||
rootLeftHand.setPosZ(-6 * firePosMove);
|
||||
rootLeftHand.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * drawTime + Mth.DEG_TO_RAD * turnRot[0] - 0.15f * velocityY + 4.7144 * Mth.DEG_TO_RAD * firePosMove));
|
||||
rootLeftHand.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * drawTime + Mth.DEG_TO_RAD * turnRot[1] + 5 * Mth.DEG_TO_RAD * firePosMove));
|
||||
rootLeftHand.setRotZ((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 90 * drawTime + 2.7f * movePosHorizon + Mth.DEG_TO_RAD * turnRot[2] + -0.0102 * Mth.DEG_TO_RAD * firePosMove));
|
||||
|
||||
GeoBone guashi = getAnimationProcessor().getBone("guashi");
|
||||
guashi.setPosZ((float) (-0.5f * velocityY));
|
||||
guashi.setPosY((float) (-1.5f * velocityY));
|
||||
|
||||
GeoBone shuimu = getAnimationProcessor().getBone("shuimu");
|
||||
shuimu.setScaleZ((float) Mth.clamp(1 - 1.5f * velocityY, 0.5, 1.5));
|
||||
|
||||
GeoBone camera = getAnimationProcessor().getBone("camera");
|
||||
ClientEventHandler.handleReloadShake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1585,7 +1585,7 @@ public class ClientEventHandler {
|
|||
burstFireAmount = 0;
|
||||
bowPullTimer = 0;
|
||||
bowPower = 0;
|
||||
cantSprint = 20;
|
||||
cantSprint = 10;
|
||||
ClickHandler.isEditing = false;
|
||||
}
|
||||
|
||||
|
|
|
@ -42,5 +42,20 @@ public class ModEnumExtensions {
|
|||
public static HumanoidModel.ArmPose getLungeMinePose() {
|
||||
return SUPERBWARFARE_LUNGE_MINE_POSE.getValue();
|
||||
}
|
||||
|
||||
public static final EnumProxy<HumanoidModel.ArmPose> SUPERBWARFARE_AURELIA_SCEPTRE_POSE = new EnumProxy<>(
|
||||
HumanoidModel.ArmPose.class,
|
||||
false,
|
||||
(IArmPoseTransformer) (model, entity, arm) -> {
|
||||
if (arm != HumanoidArm.LEFT) {
|
||||
model.rightArm.xRot = -67.5f * Mth.DEG_TO_RAD + model.head.xRot;
|
||||
model.rightArm.yRot = 5f * Mth.DEG_TO_RAD;
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
public static HumanoidModel.ArmPose getAureliaSceptrePose() {
|
||||
return SUPERBWARFARE_AURELIA_SCEPTRE_POSE.getValue();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -463,6 +463,9 @@ public class ModSounds {
|
|||
public static final DeferredHolder<SoundEvent, SoundEvent> JET_LOCK = REGISTRY.register("jet_lock", () -> SoundEvent.createVariableRangeEvent(Mod.loc("jet_lock")));
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> JET_LOCKON = REGISTRY.register("jet_lockon", () -> SoundEvent.createVariableRangeEvent(Mod.loc("jet_lockon")));
|
||||
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> AURELIA_SCEPTRE_FIRE_1P = REGISTRY.register("aurelia_sceptre_fire_1p", () -> SoundEvent.createVariableRangeEvent(Mod.loc("aurelia_sceptre_fire_1p")));
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> AURELIA_SCEPTRE_FIRE_3P = REGISTRY.register("aurelia_sceptre_fire_3p", () -> SoundEvent.createVariableRangeEvent(Mod.loc("aurelia_sceptre_fire_3p")));
|
||||
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> DPS_GENERATOR_EVOLVE = REGISTRY.register("dps_generator_evolve", () -> SoundEvent.createVariableRangeEvent(Mod.loc("dps_generator_evolve")));
|
||||
}
|
||||
|
||||
|
|
|
@ -44,6 +44,8 @@ import net.minecraft.world.item.enchantment.Enchantment;
|
|||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
import net.neoforged.api.distmarker.Dist;
|
||||
import net.neoforged.api.distmarker.OnlyIn;
|
||||
import net.neoforged.bus.api.SubscribeEvent;
|
||||
import net.neoforged.fml.common.EventBusSubscriber;
|
||||
import net.neoforged.neoforge.client.extensions.common.IClientItemExtensions;
|
||||
|
@ -688,6 +690,11 @@ public abstract class GunItem extends Item implements CustomRendererItem {
|
|||
return true;
|
||||
}
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public HumanoidModel.ArmPose getArmPose(LivingEntity entityLiving, InteractionHand hand, ItemStack stack) {
|
||||
return PoseTool.pose(entityLiving, hand, stack);
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
private static void registerGunExtensions(RegisterClientExtensionsEvent event) {
|
||||
for (var item : ModItems.GUNS.getEntries()) {
|
||||
|
@ -703,7 +710,7 @@ public abstract class GunItem extends Item implements CustomRendererItem {
|
|||
@Override
|
||||
@ParametersAreNonnullByDefault
|
||||
public HumanoidModel.ArmPose getArmPose(LivingEntity entityLiving, InteractionHand hand, ItemStack stack) {
|
||||
return PoseTool.pose(entityLiving, hand, stack);
|
||||
return gun.getArmPose(entityLiving, hand, stack);
|
||||
}
|
||||
}, item);
|
||||
}
|
||||
|
|
|
@ -3,15 +3,19 @@ package com.atsuishio.superbwarfare.item.gun.handgun;
|
|||
import com.atsuishio.superbwarfare.Mod;
|
||||
import com.atsuishio.superbwarfare.client.renderer.gun.AureliaSceptreRenderer;
|
||||
import com.atsuishio.superbwarfare.data.gun.GunData;
|
||||
import com.atsuishio.superbwarfare.event.ClientEventHandler;
|
||||
import com.atsuishio.superbwarfare.init.ModEnumExtensions;
|
||||
import com.atsuishio.superbwarfare.init.ModSounds;
|
||||
import com.atsuishio.superbwarfare.item.gun.GunItem;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.model.HumanoidModel;
|
||||
import net.minecraft.client.player.LocalPlayer;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.sounds.SoundEvent;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
import net.minecraft.world.entity.LivingEntity;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.neoforged.api.distmarker.Dist;
|
||||
import net.neoforged.api.distmarker.OnlyIn;
|
||||
import software.bernie.geckolib.animatable.GeoItem;
|
||||
import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache;
|
||||
import software.bernie.geckolib.animation.*;
|
||||
|
@ -19,7 +23,6 @@ import software.bernie.geckolib.renderer.GeoItemRenderer;
|
|||
import software.bernie.geckolib.util.GeckoLibUtil;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
|
@ -36,22 +39,15 @@ public class AureliaSceptre extends GunItem implements GeoItem {
|
|||
return AureliaSceptreRenderer::new;
|
||||
}
|
||||
|
||||
private PlayState fireAnimPredicate(AnimationState<AureliaSceptre> event) {
|
||||
LocalPlayer player = Minecraft.getInstance().player;
|
||||
if (player == null) return PlayState.STOP;
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (!(stack.getItem() instanceof GunItem)) return PlayState.STOP;
|
||||
|
||||
// TODO 装填动画
|
||||
// if (GunData.from(stack).reload.empty()) {
|
||||
// return event.setAndContinue(RawAnimation.begin().thenPlay("animation.aurelia_sceptre.reload_empty"));
|
||||
// }
|
||||
//
|
||||
// if (GunData.from(stack).reload.normal()) {
|
||||
// return event.setAndContinue(RawAnimation.begin().thenPlay("animation.aurelia_sceptre.reload_normal"));
|
||||
// }
|
||||
|
||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.aurelia_sceptre.idle"));
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
@Override
|
||||
public HumanoidModel.ArmPose getArmPose(LivingEntity entityLiving, InteractionHand hand, ItemStack stack) {
|
||||
if (!stack.isEmpty()) {
|
||||
if (entityLiving.getUsedItemHand() == hand) {
|
||||
return ModEnumExtensions.Client.getAureliaSceptrePose();
|
||||
}
|
||||
}
|
||||
return HumanoidModel.ArmPose.EMPTY;
|
||||
}
|
||||
|
||||
private PlayState idlePredicate(AnimationState<AureliaSceptre> event) {
|
||||
|
@ -60,25 +56,22 @@ public class AureliaSceptre extends GunItem implements GeoItem {
|
|||
ItemStack stack = player.getMainHandItem();
|
||||
if (!(stack.getItem() instanceof GunItem)) return PlayState.STOP;
|
||||
|
||||
// TODO 冲刺动画
|
||||
// if (player.isSprinting() && player.onGround()
|
||||
// && ClientEventHandler.cantSprint == 0
|
||||
// && !(GunData.from(stack).reload.normal() || GunData.from(stack).reload.empty()) && ClientEventHandler.drawTime < 0.01) {
|
||||
// if (ClientEventHandler.tacticalSprint) {
|
||||
// return event.setAndContinue(RawAnimation.begin().thenLoop("animation.aurelia_sceptre.run_fast"));
|
||||
// } else {
|
||||
// return event.setAndContinue(RawAnimation.begin().thenLoop("animation.aurelia_sceptre.run"));
|
||||
// }
|
||||
// }
|
||||
if (ClientEventHandler.firePosTimer > 0) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.aurelia_sceptre.fire"));
|
||||
}
|
||||
|
||||
if (player.isSprinting() && player.onGround()
|
||||
&& ClientEventHandler.cantSprint == 0
|
||||
&& !(GunData.from(stack).reload.normal() || GunData.from(stack).reload.empty()) && ClientEventHandler.drawTime < 0.01) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.aurelia_sceptre.run"));
|
||||
}
|
||||
|
||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.aurelia_sceptre.idle"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerControllers(AnimatableManager.ControllerRegistrar data) {
|
||||
var fireAnimController = new AnimationController<>(this, "fireAnimController", 1, this::fireAnimPredicate);
|
||||
data.add(fireAnimController);
|
||||
var idleController = new AnimationController<>(this, "idleController", 2, this::idlePredicate);
|
||||
var idleController = new AnimationController<>(this, "idleController", 6, this::idlePredicate);
|
||||
data.add(idleController);
|
||||
}
|
||||
|
||||
|
@ -87,15 +80,8 @@ public class AureliaSceptre extends GunItem implements GeoItem {
|
|||
return this.cache;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<SoundEvent> getReloadSound() {
|
||||
// TODO 音效
|
||||
return Set.of(ModSounds.GLOCK_17_RELOAD_EMPTY.get(), ModSounds.GLOCK_17_RELOAD_NORMAL.get());
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResourceLocation getGunIcon() {
|
||||
// TODO 图标
|
||||
return Mod.loc("textures/gun_icon/aurelia_sceptre_icon.png");
|
||||
}
|
||||
|
||||
|
|
|
@ -17,6 +17,15 @@
|
|||
"class": "com/atsuishio/superbwarfare/init/ModEnumExtensions$Client",
|
||||
"field": "SUPERBWARFARE_LUNGE_MINE_POSE"
|
||||
}
|
||||
},
|
||||
{
|
||||
"enum": "net/minecraft/client/model/HumanoidModel$ArmPose",
|
||||
"name": "SUPERBWARFARE_AURELIA_SCEPTRE_POSE",
|
||||
"constructor": "(ZLnet/neoforged/neoforge/client/IArmPoseTransformer;)V",
|
||||
"parameters": {
|
||||
"class": "com/atsuishio/superbwarfare/init/ModEnumExtensions$Client",
|
||||
"field": "SUPERBWARFARE_AURELIA_SCEPTRE_POSE"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,17 +1,326 @@
|
|||
{
|
||||
"format_version": "1.8.0",
|
||||
"animations": {
|
||||
"animation.aurelia_sceptre.idle": {
|
||||
"loop": true,
|
||||
"bones": {
|
||||
"group": {
|
||||
"rotation": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"format_version": "1.8.0",
|
||||
"animations": {
|
||||
"animation.aurelia_sceptre.idle": {
|
||||
"loop": true
|
||||
},
|
||||
"animation.aurelia_sceptre.run": {
|
||||
"loop": true,
|
||||
"animation_length": 0.6,
|
||||
"bones": {
|
||||
"0": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"post": [1.24287, 1.80368, 24.64514],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.15": {
|
||||
"post": [-0.50513, 5.69695, 31.23867],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.3": {
|
||||
"post": [1.04, 1.8037, 23.9],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.45": {
|
||||
"post": [1.2636, -5.02547, 19.28916],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.6": {
|
||||
"post": [1.24287, 1.80368, 24.64514],
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
},
|
||||
"position": {
|
||||
"0.0": {
|
||||
"post": [0, -3, 1.25],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.075": {
|
||||
"post": [-0.5, -2, 1.25],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.15": {
|
||||
"post": [-1.5, -3, 1.25],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.225": {
|
||||
"post": [-2.5, -4, 1.25],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.3": {
|
||||
"post": [-3, -3, 1.25],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.375": {
|
||||
"post": [-2.5, -2, 1.25],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.45": {
|
||||
"post": [-1.5, -3, 1.2],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.525": {
|
||||
"post": [-0.5, -4, 1.25],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.6": {
|
||||
"post": [0, -3, 1.25],
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
}
|
||||
},
|
||||
"camera": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"post": [-0.3, -0.3, 0.3],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.15": {
|
||||
"post": [0.3, 0, -0.3],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.3": {
|
||||
"post": [-0.3, 0.3, 0.3],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.45": {
|
||||
"post": [0.3, 0, -0.3],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.6": {
|
||||
"post": [-0.3, -0.3, 0.3],
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Lefthand": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"post": [1.24287, 1.80368, -9.35486],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.15": {
|
||||
"post": [-0.50513, 5.69695, -2.76133],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.3": {
|
||||
"post": [1.04, 1.8037, -10.1],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.45": {
|
||||
"post": [1.2636, -5.02547, -14.71084],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.6": {
|
||||
"post": [1.24287, 1.80368, -9.35486],
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
},
|
||||
"position": {
|
||||
"0.0": {
|
||||
"post": [0, -1, 1.25],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.075": {
|
||||
"post": [-0.5, -2, 1.25],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.15": {
|
||||
"post": [-1.5, -1, 1.25],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.225": {
|
||||
"post": [-2.5, 0, 1.25],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.3": {
|
||||
"post": [-3, -1, 1.25],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.375": {
|
||||
"post": [-2.5, -2, 1.25],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.45": {
|
||||
"post": [-1.5, -1, 1.2],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.525": {
|
||||
"post": [-0.5, 0, 1.25],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.6": {
|
||||
"post": [0, -1, 1.25],
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.aurelia_sceptre.fire": {
|
||||
"loop": true,
|
||||
"animation_length": 1.6,
|
||||
"bones": {
|
||||
"0": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"post": [10, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.3333": {
|
||||
"post": [9.99851, 0.17364, -0.98481],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.8": {
|
||||
"post": [9.99679, -0.24035, 1.36325],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.1917": {
|
||||
"post": [9.99937, 0.06301, -0.35732],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.5917": {
|
||||
"post": [10, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
},
|
||||
"position": {
|
||||
"0.0": {
|
||||
"post": [0, 0.64013, -0.11287],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.0583": {
|
||||
"post": [-0.03, 0.64, 0.39],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.1083": {
|
||||
"post": [-0.05, 0.64, -0.15],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.1667": {
|
||||
"post": [-0.06, 0.64, 0.32],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.225": {
|
||||
"post": [-0.08, 0.64, -0.28],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.275": {
|
||||
"post": [-0.11, 0.64, 0.26],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.3333": {
|
||||
"post": [-0.1, 0.64, -0.11],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.3833": {
|
||||
"post": [-0.08, 0.64, 0.37],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.4333": {
|
||||
"post": [-0.06, 0.64, -0.15],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.4833": {
|
||||
"post": [-0.04, 0.64, 0.33],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.525": {
|
||||
"post": [-0.02, 0.65, -0.19],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.575": {
|
||||
"post": [0.01, 0.66, 0.29],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.6167": {
|
||||
"post": [0.04, 0.67, -0.25],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.6583": {
|
||||
"post": [0.07, 0.68, 0.24],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.7": {
|
||||
"post": [0.11, 0.69, -0.37],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.7333": {
|
||||
"post": [0.14, 0.69, 0.18],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.7833": {
|
||||
"post": [0.18, 0.68924, -0.11868],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.8167": {
|
||||
"post": [-0.03, 0.64, 0.39],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.8667": {
|
||||
"post": [-0.05, 0.64, -0.15],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.925": {
|
||||
"post": [-0.06, 0.64, 0.32],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.9833": {
|
||||
"post": [-0.08, 0.64, -0.28],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.0333": {
|
||||
"post": [-0.11, 0.64, 0.26],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.0917": {
|
||||
"post": [-0.1, 0.64, -0.11],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.1417": {
|
||||
"post": [-0.08, 0.64, 0.37],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.1917": {
|
||||
"post": [-0.06, 0.64, -0.15],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.2417": {
|
||||
"post": [-0.04, 0.64, 0.33],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.2833": {
|
||||
"post": [-0.02, 0.65, -0.19],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.3333": {
|
||||
"post": [0.01, 0.66, 0.29],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.375": {
|
||||
"post": [0.04, 0.67, -0.25],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.4167": {
|
||||
"post": [0.07, 0.68, 0.24],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.475": {
|
||||
"post": [0.11, 0.69, -0.37],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.5333": {
|
||||
"post": [0.14, 0.69, 0.18],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.5917": {
|
||||
"post": [0, 0.64013, -0.11287],
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load diff
|
@ -3186,5 +3186,21 @@
|
|||
"stream": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"aurelia_sceptre_fire_1p": {
|
||||
"sounds": [
|
||||
{
|
||||
"name": "superbwarfare:aurelia_sceptre/aurelia_sceptre_fire_1p",
|
||||
"stream": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"aurelia_sceptre_fire_3p": {
|
||||
"sounds": [
|
||||
{
|
||||
"name": "superbwarfare:aurelia_sceptre/aurelia_sceptre_fire_3p",
|
||||
"stream": false
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
After Width: | Height: | Size: 4.3 KiB |
|
@ -1,23 +1,23 @@
|
|||
{
|
||||
"ID": "superbwarfare:aurelia_sceptre",
|
||||
"Spread": 0.5,
|
||||
"RecoilX": 0,
|
||||
"RecoilY": 0,
|
||||
"Damage": 26,
|
||||
"Spread": 1.5,
|
||||
"RecoilX": 0.0005,
|
||||
"RecoilY": 0.0001,
|
||||
"Damage": 11,
|
||||
"Headshot": 1.5,
|
||||
"Velocity": 14,
|
||||
"Magazine": 4,
|
||||
"Velocity": 8,
|
||||
"Weight": 1,
|
||||
"NormalReloadTime": 20,
|
||||
"EmptyReloadTime": 20,
|
||||
"BypassesArmor": 0.44,
|
||||
"SoundRadius": 2,
|
||||
"RPM": 1100,
|
||||
"BurstAmount": 4,
|
||||
"ShootDelay": 10,
|
||||
"HeatPerShoot": 1,
|
||||
"AvailableFireModes": [
|
||||
"Burst"
|
||||
"Auto"
|
||||
],
|
||||
"DefaultFireMode": "Burst",
|
||||
"DefaultFireMode": "Auto",
|
||||
"AmmoType": "@HandgunAmmo",
|
||||
"AvailablePerks": [
|
||||
"@Ammo",
|
||||
|
|
Loading…
Add table
Reference in a new issue