实现98k双换弹模式,添加perk贴图
This commit is contained in:
parent
bd21d759ea
commit
ff11300e28
18 changed files with 427 additions and 24 deletions
|
@ -33,6 +33,7 @@ public class K98ItemModel extends GeoModel<K98Item> {
|
||||||
public void setCustomAnimations(K98Item animatable, long instanceId, AnimationState animationState) {
|
public void setCustomAnimations(K98Item animatable, long instanceId, AnimationState animationState) {
|
||||||
CoreGeoBone gun = getAnimationProcessor().getBone("bone");
|
CoreGeoBone gun = getAnimationProcessor().getBone("bone");
|
||||||
CoreGeoBone shen = getAnimationProcessor().getBone("shen");
|
CoreGeoBone shen = getAnimationProcessor().getBone("shen");
|
||||||
|
CoreGeoBone zhuangzhen = getAnimationProcessor().getBone("zhuangzhen");
|
||||||
CoreGeoBone flare = getAnimationProcessor().getBone("flare");
|
CoreGeoBone flare = getAnimationProcessor().getBone("flare");
|
||||||
|
|
||||||
Player player = Minecraft.getInstance().player;
|
Player player = Minecraft.getInstance().player;
|
||||||
|
@ -63,13 +64,13 @@ public class K98ItemModel extends GeoModel<K98Item> {
|
||||||
|
|
||||||
if ((player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).zooming) {
|
if ((player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).zooming) {
|
||||||
shen.setPosY(0.1f * (float) (fp + 2 * fr));
|
shen.setPosY(0.1f * (float) (fp + 2 * fr));
|
||||||
shen.setPosZ(4.6f * (float) (fp + 0.54f * fr));
|
shen.setPosZ(5.6f * (float) (fp + 0.54f * fr));
|
||||||
shen.setRotX(0.03f * (float) (fp + fr));
|
shen.setRotX(0.03f * (float) (fp + fr));
|
||||||
shen.setRotZ(0f);
|
shen.setRotZ(0f);
|
||||||
} else {
|
} else {
|
||||||
shen.setPosY(0.18f * (float) (fp + 2 * fr));
|
shen.setPosY(0.28f * (float) (fp + 2 * fr));
|
||||||
shen.setPosZ(4.8f * (float) (fp + 0.54f * fr));
|
shen.setPosZ(5.8f * (float) (fp + 0.54f * fr));
|
||||||
shen.setRotX(0.27f * (float) (0.18f * fp + fr));
|
shen.setRotX(0.17f * (float) (0.18f * fp + fr));
|
||||||
shen.setRotZ(-0.04f * (float) (fp + 1.3 * fr));
|
shen.setRotZ(-0.04f * (float) (fp + 1.3 * fr));
|
||||||
}
|
}
|
||||||
shen.setPosX(0.5f * (float)fr * (float)((player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).recoilHorizon * fp));
|
shen.setPosX(0.5f * (float)fr * (float)((player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).recoilHorizon * fp));
|
||||||
|
|
|
@ -668,14 +668,14 @@ public class GunEventHandler {
|
||||||
}
|
}
|
||||||
|
|
||||||
// 装填
|
// 装填
|
||||||
if (stack.getItem() == ModItems.M_870.get()) {
|
if (stack.getItem() == ModItems.M_870.get() || stack.getItem() == ModItems.MARLIN.get()) {
|
||||||
if (tag.getInt("iterative") == 3) {
|
if (tag.getInt("iterative") == 3) {
|
||||||
singleLoad(player);
|
singleLoad(player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (stack.getItem() == ModItems.MARLIN.get()) {
|
if (stack.getItem() == ModItems.K_98.get()) {
|
||||||
if (tag.getInt("iterative") == 3) {
|
if (tag.getInt("iterative") == 1) {
|
||||||
singleLoad(player);
|
singleLoad(player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -719,6 +719,9 @@ public class GunEventHandler {
|
||||||
// 三阶段结束
|
// 三阶段结束
|
||||||
if (tag.getInt("finish") == 1) {
|
if (tag.getInt("finish") == 1) {
|
||||||
tag.putInt("reload_stage", 0);
|
tag.putInt("reload_stage", 0);
|
||||||
|
if (tag.getDouble("bolt_action_time") > 0) {
|
||||||
|
stack.getOrCreateTag().putBoolean("need_bolt_action", false);
|
||||||
|
}
|
||||||
tag.putBoolean("reloading", false);
|
tag.putBoolean("reloading", false);
|
||||||
|
|
||||||
MinecraftForge.EVENT_BUS.post(new ReloadEvent.Post(player, stack));
|
MinecraftForge.EVENT_BUS.post(new ReloadEvent.Post(player, stack));
|
||||||
|
|
|
@ -216,6 +216,9 @@ public class ModSounds {
|
||||||
public static final RegistryObject<SoundEvent> K_98_VERYFAR = REGISTRY.register("k_98_veryfar", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("superbwarfare", "k_98_veryfar")));
|
public static final RegistryObject<SoundEvent> K_98_VERYFAR = REGISTRY.register("k_98_veryfar", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("superbwarfare", "k_98_veryfar")));
|
||||||
public static final RegistryObject<SoundEvent> K_98_RELOAD_EMPTY = REGISTRY.register("k_98_reload_empty", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("superbwarfare", "k_98_reload_empty")));
|
public static final RegistryObject<SoundEvent> K_98_RELOAD_EMPTY = REGISTRY.register("k_98_reload_empty", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("superbwarfare", "k_98_reload_empty")));
|
||||||
public static final RegistryObject<SoundEvent> K_98_BOLT = REGISTRY.register("k_98_bolt", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("superbwarfare", "k_98_bolt")));
|
public static final RegistryObject<SoundEvent> K_98_BOLT = REGISTRY.register("k_98_bolt", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("superbwarfare", "k_98_bolt")));
|
||||||
|
public static final RegistryObject<SoundEvent> K_98_PREPARE = REGISTRY.register("k_98_prepare", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("superbwarfare", "k_98_prepare")));
|
||||||
|
public static final RegistryObject<SoundEvent> K_98_LOOP = REGISTRY.register("k_98_loop", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("superbwarfare", "k_98_loop")));
|
||||||
|
public static final RegistryObject<SoundEvent> K_98_END = REGISTRY.register("k_98_end", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("superbwarfare", "k_98_end")));
|
||||||
|
|
||||||
public static final RegistryObject<SoundEvent> MK_42_FIRE_1P = REGISTRY.register("mk_42_fire_1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("superbwarfare", "mk_42_fire_1p")));
|
public static final RegistryObject<SoundEvent> MK_42_FIRE_1P = REGISTRY.register("mk_42_fire_1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("superbwarfare", "mk_42_fire_1p")));
|
||||||
public static final RegistryObject<SoundEvent> MK_42_FIRE_3P = REGISTRY.register("mk_42_fire_3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("superbwarfare", "mk_42_fire_3p")));
|
public static final RegistryObject<SoundEvent> MK_42_FIRE_3P = REGISTRY.register("mk_42_fire_3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("superbwarfare", "mk_42_fire_3p")));
|
||||||
|
|
|
@ -95,6 +95,21 @@ public class K98Item extends GunItem implements GeoItem, AnimatedItem {
|
||||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.k98.reload_empty"));
|
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.k98.reload_empty"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (stack.getOrCreateTag().getInt("reload_stage") == 1 && stack.getOrCreateTag().getDouble("prepare") > 0) {
|
||||||
|
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.k98.prepare"));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (stack.getOrCreateTag().getDouble("load_index") == 0 && stack.getOrCreateTag().getInt("reload_stage") == 2) {
|
||||||
|
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.k98.iterativeload"));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (stack.getOrCreateTag().getDouble("load_index") == 1 && stack.getOrCreateTag().getInt("reload_stage") == 2) {
|
||||||
|
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.k98.iterativeload2"));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (stack.getOrCreateTag().getInt("reload_stage") == 3) {
|
||||||
|
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.k98.finish"));
|
||||||
|
}
|
||||||
|
|
||||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.k98.idle"));
|
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.k98.idle"));
|
||||||
}
|
}
|
||||||
|
@ -115,8 +130,11 @@ public class K98Item extends GunItem implements GeoItem, AnimatedItem {
|
||||||
|
|
||||||
if (player.isSprinting() && player.onGround()
|
if (player.isSprinting() && player.onGround()
|
||||||
&& player.getPersistentData().getDouble("noRun") == 0
|
&& player.getPersistentData().getDouble("noRun") == 0
|
||||||
&& !(stack.getOrCreateTag().getBoolean("is_empty_reloading"))) {
|
&& !(stack.getOrCreateTag().getBoolean("is_empty_reloading"))
|
||||||
if (player.hasEffect(MobEffects.MOVEMENT_SPEED)) {
|
&& stack.getOrCreateTag().getInt("reload_stage") != 1
|
||||||
|
&& stack.getOrCreateTag().getInt("reload_stage") != 2
|
||||||
|
&& stack.getOrCreateTag().getInt("reload_stage") != 3) {
|
||||||
|
if (player.hasEffect(MobEffects.MOVEMENT_SPEED) && stack.getOrCreateTag().getInt("bolt_action_anim") == 0) {
|
||||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.k98.run_fast"));
|
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.k98.run_fast"));
|
||||||
} else {
|
} else {
|
||||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.k98.run"));
|
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.k98.run"));
|
||||||
|
@ -177,7 +195,10 @@ public class K98Item extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public Set<SoundEvent> getReloadSound() {
|
public Set<SoundEvent> getReloadSound() {
|
||||||
return Set.of(
|
return Set.of(
|
||||||
ModSounds.K_98_RELOAD_EMPTY.get(),
|
ModSounds.K_98_RELOAD_EMPTY.get(),
|
||||||
ModSounds.K_98_BOLT.get()
|
ModSounds.K_98_BOLT.get(),
|
||||||
|
ModSounds.K_98_PREPARE.get(),
|
||||||
|
ModSounds.K_98_LOOP.get(),
|
||||||
|
ModSounds.K_98_END.get()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,8 @@ import net.mcreator.superbwarfare.init.ModItems;
|
||||||
import net.mcreator.superbwarfare.init.ModSounds;
|
import net.mcreator.superbwarfare.init.ModSounds;
|
||||||
import net.mcreator.superbwarfare.init.ModTags;
|
import net.mcreator.superbwarfare.init.ModTags;
|
||||||
import net.mcreator.superbwarfare.item.AnimatedItem;
|
import net.mcreator.superbwarfare.item.AnimatedItem;
|
||||||
import net.mcreator.superbwarfare.tools.*;
|
import net.mcreator.superbwarfare.tools.GunsTool;
|
||||||
|
import net.mcreator.superbwarfare.tools.TooltipTool;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.model.HumanoidModel;
|
import net.minecraft.client.model.HumanoidModel;
|
||||||
import net.minecraft.client.player.LocalPlayer;
|
import net.minecraft.client.player.LocalPlayer;
|
||||||
|
@ -100,7 +101,7 @@ public class M98bItem extends GunItem implements GeoItem, AnimatedItem {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (player.isSprinting() && player.onGround() && player.getPersistentData().getDouble("noRun") == 0) {
|
if (player.isSprinting() && player.onGround() && player.getPersistentData().getDouble("noRun") == 0) {
|
||||||
if (player.hasEffect(MobEffects.MOVEMENT_SPEED)) {
|
if (player.hasEffect(MobEffects.MOVEMENT_SPEED) && stack.getOrCreateTag().getInt("bolt_action_anim") == 0) {
|
||||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.m98b.run_fast"));
|
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.m98b.run_fast"));
|
||||||
} else {
|
} else {
|
||||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.m98b.run"));
|
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.m98b.run"));
|
||||||
|
|
|
@ -134,7 +134,7 @@ public class Ntw20 extends GunItem implements GeoItem, AnimatedItem {
|
||||||
if (player.isSprinting() && player.onGround()
|
if (player.isSprinting() && player.onGround()
|
||||||
&& player.getPersistentData().getDouble("noRun") == 0
|
&& player.getPersistentData().getDouble("noRun") == 0
|
||||||
&& !(stack.getOrCreateTag().getBoolean("is_normal_reloading") || stack.getOrCreateTag().getBoolean("is_empty_reloading"))) {
|
&& !(stack.getOrCreateTag().getBoolean("is_normal_reloading") || stack.getOrCreateTag().getBoolean("is_empty_reloading"))) {
|
||||||
if (player.hasEffect(MobEffects.MOVEMENT_SPEED)) {
|
if (player.hasEffect(MobEffects.MOVEMENT_SPEED) && stack.getOrCreateTag().getInt("bolt_action_anim") == 0) {
|
||||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.ntw_20.run_fast"));
|
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.ntw_20.run_fast"));
|
||||||
} else {
|
} else {
|
||||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.ntw_20.run"));
|
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.ntw_20.run"));
|
||||||
|
|
|
@ -174,7 +174,7 @@ public class SentinelItem extends GunItem implements GeoItem, AnimatedItem {
|
||||||
&& player.getPersistentData().getDouble("noRun") == 0
|
&& player.getPersistentData().getDouble("noRun") == 0
|
||||||
&& !(stack.getOrCreateTag().getBoolean("is_normal_reloading") || stack.getOrCreateTag().getBoolean("is_empty_reloading"))
|
&& !(stack.getOrCreateTag().getBoolean("is_normal_reloading") || stack.getOrCreateTag().getBoolean("is_empty_reloading"))
|
||||||
&& !stack.getOrCreateTag().getBoolean("sentinel_is_charging")) {
|
&& !stack.getOrCreateTag().getBoolean("sentinel_is_charging")) {
|
||||||
if (player.hasEffect(MobEffects.MOVEMENT_SPEED)) {
|
if (player.hasEffect(MobEffects.MOVEMENT_SPEED) && stack.getOrCreateTag().getInt("bolt_action_anim") == 0) {
|
||||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.sentinel.run_fast"));
|
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.sentinel.run_fast"));
|
||||||
} else {
|
} else {
|
||||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.sentinel.run"));
|
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.sentinel.run"));
|
||||||
|
|
|
@ -55,10 +55,12 @@ public class ReloadMessage {
|
||||||
) {
|
) {
|
||||||
CompoundTag tag = stack.getOrCreateTag();
|
CompoundTag tag = stack.getOrCreateTag();
|
||||||
|
|
||||||
boolean can_reload = tag.getDouble("normal_reload_time") != 0 || tag.getDouble("empty_reload_time") != 0;
|
|
||||||
|
|
||||||
boolean can_single_reload = tag.getDouble("iterative_time") != 0;
|
boolean can_single_reload = tag.getDouble("iterative_time") != 0;
|
||||||
|
|
||||||
|
boolean can_reload = (tag.getDouble("normal_reload_time") != 0 || tag.getDouble("empty_reload_time") != 0) && tag.getDouble("clipLoad") != 1;
|
||||||
|
|
||||||
|
boolean clipLoad = tag.getInt("ammo") == 0 && tag.getDouble("clipLoad") == 1;
|
||||||
|
|
||||||
//检查备弹
|
//检查备弹
|
||||||
if (stack.is(ModTags.Items.USE_SHOTGUN_AMMO) && capability.shotgunAmmo == 0) {
|
if (stack.is(ModTags.Items.USE_SHOTGUN_AMMO) && capability.shotgunAmmo == 0) {
|
||||||
return;
|
return;
|
||||||
|
@ -75,7 +77,8 @@ public class ReloadMessage {
|
||||||
} else if (stack.getItem() == ModItems.RPG.get() && tag.getInt("max_ammo") == 0) {
|
} else if (stack.getItem() == ModItems.RPG.get() && tag.getInt("max_ammo") == 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (can_reload) {
|
|
||||||
|
if (can_reload || clipLoad) {
|
||||||
if (stack.is(ModTags.Items.OPEN_BOLT)) {
|
if (stack.is(ModTags.Items.OPEN_BOLT)) {
|
||||||
if (stack.getItem() == ModItems.M_60.get() || stack.getItem() == ModItems.ABEKIRI.get()) {
|
if (stack.getItem() == ModItems.M_60.get() || stack.getItem() == ModItems.ABEKIRI.get()) {
|
||||||
if (tag.getInt("ammo") < tag.getDouble("mag")) {
|
if (tag.getInt("ammo") < tag.getDouble("mag")) {
|
||||||
|
@ -91,6 +94,7 @@ public class ReloadMessage {
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (can_single_reload) {
|
if (can_single_reload) {
|
||||||
if (tag.getInt("ammo") < tag.getDouble("mag")) {
|
if (tag.getInt("ammo") < tag.getDouble("mag")) {
|
||||||
tag.putBoolean("start_single_reload", true);
|
tag.putBoolean("start_single_reload", true);
|
||||||
|
|
|
@ -208,7 +208,21 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"animation.k98.fire": {
|
"animation.k98.fire": {
|
||||||
"animation_length": 0.01
|
"loop": "hold_on_last_frame",
|
||||||
|
"animation_length": 0.202,
|
||||||
|
"bones": {
|
||||||
|
"0": {
|
||||||
|
"position": {
|
||||||
|
"0.0": {
|
||||||
|
"vector": [0, 0.5, 2.2]
|
||||||
|
},
|
||||||
|
"0.1818": {
|
||||||
|
"vector": [0, 0, 0],
|
||||||
|
"easing": "easeInElastic"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"animation.k98.shift": {
|
"animation.k98.shift": {
|
||||||
"loop": "hold_on_last_frame",
|
"loop": "hold_on_last_frame",
|
||||||
|
@ -1779,7 +1793,237 @@
|
||||||
},
|
},
|
||||||
"animation.k98.iterativeload": {
|
"animation.k98.iterativeload": {
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"animation_length": 0.5,
|
"animation_length": 0.75,
|
||||||
|
"override_previous_animation": true,
|
||||||
|
"bones": {
|
||||||
|
"0": {
|
||||||
|
"rotation": {
|
||||||
|
"0.0": {
|
||||||
|
"vector": [-20.11, -32.33, 1.96]
|
||||||
|
},
|
||||||
|
"0.15": {
|
||||||
|
"vector": [-17.65307, -33.62522, -2.55191]
|
||||||
|
},
|
||||||
|
"0.225": {
|
||||||
|
"vector": [-23.65307, -33.62522, -2.55191]
|
||||||
|
},
|
||||||
|
"0.35": {
|
||||||
|
"vector": [-14.65307, -33.62522, -2.55191]
|
||||||
|
},
|
||||||
|
"0.5": {
|
||||||
|
"vector": [-20.11, -32.33, 1.96]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"position": {
|
||||||
|
"0.0": {
|
||||||
|
"vector": [2, -0.37, 1.65]
|
||||||
|
},
|
||||||
|
"0.15": {
|
||||||
|
"vector": [1.88672, -0.37, 1.65]
|
||||||
|
},
|
||||||
|
"0.225": {
|
||||||
|
"vector": [1.62295, -1.31455, 2.07423]
|
||||||
|
},
|
||||||
|
"0.35": {
|
||||||
|
"vector": [1.89, -0.27, 1.65]
|
||||||
|
},
|
||||||
|
"0.5": {
|
||||||
|
"vector": [2, -0.37, 1.65]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Righthand": {
|
||||||
|
"rotation": {
|
||||||
|
"0.0": {
|
||||||
|
"vector": [-11.3392, 11.10446, 14.57372],
|
||||||
|
"easing": "easeInElastic"
|
||||||
|
},
|
||||||
|
"0.15": {
|
||||||
|
"vector": [-12.81458, 23.61754, 36.26634],
|
||||||
|
"easing": "easeInElastic"
|
||||||
|
},
|
||||||
|
"0.2": {
|
||||||
|
"vector": [-12.81, 23.62, 36.27]
|
||||||
|
},
|
||||||
|
"0.275": {
|
||||||
|
"vector": [-12.49926, 24.91581, 38.43047]
|
||||||
|
},
|
||||||
|
"0.35": {
|
||||||
|
"vector": [-12.81, 23.62, 36.27]
|
||||||
|
},
|
||||||
|
"0.5": {
|
||||||
|
"vector": [-11.3392, 11.10446, 14.57372],
|
||||||
|
"easing": "easeInElastic"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"position": {
|
||||||
|
"0.0": {
|
||||||
|
"vector": [-1.06957, 1.32253, -8.23422],
|
||||||
|
"easing": "easeInElastic"
|
||||||
|
},
|
||||||
|
"0.075": {
|
||||||
|
"vector": [-1.62035, 1.82253, -8.23422],
|
||||||
|
"easing": "linear"
|
||||||
|
},
|
||||||
|
"0.15": {
|
||||||
|
"vector": [-1.1266, 1.57253, -7.83422],
|
||||||
|
"easing": "linear"
|
||||||
|
},
|
||||||
|
"0.2": {
|
||||||
|
"vector": [-1.17, 1.07, -7.83]
|
||||||
|
},
|
||||||
|
"0.275": {
|
||||||
|
"vector": [-1.22469, 0.90594, -7.83]
|
||||||
|
},
|
||||||
|
"0.35": {
|
||||||
|
"vector": [-1.17, 1.07, -7.83]
|
||||||
|
},
|
||||||
|
"0.45": {
|
||||||
|
"vector": [-1.06957, 1.32253, -8.23422],
|
||||||
|
"easing": "easeInElastic"
|
||||||
|
},
|
||||||
|
"0.5": {
|
||||||
|
"vector": [-1.06957, 1.32253, -8.23422],
|
||||||
|
"easing": "easeInElastic"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"bolt": {
|
||||||
|
"position": {
|
||||||
|
"vector": [0, 0, 4.14]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ammo": {
|
||||||
|
"rotation": {
|
||||||
|
"0.0": {
|
||||||
|
"vector": [-20.22911, -10.71813, 5.1491]
|
||||||
|
},
|
||||||
|
"0.1": {
|
||||||
|
"vector": [-10.13568, 4.72758, 1.69494]
|
||||||
|
},
|
||||||
|
"0.15": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
},
|
||||||
|
"0.225": {
|
||||||
|
"vector": [-8.67, -4.59, 2.21]
|
||||||
|
},
|
||||||
|
"0.3": {
|
||||||
|
"vector": [-8.67, -4.59, 2.21]
|
||||||
|
},
|
||||||
|
"0.325": {
|
||||||
|
"vector": [-20.22911, -10.71813, 5.1491]
|
||||||
|
},
|
||||||
|
"0.4": {
|
||||||
|
"vector": [-30.22911, -10.71813, 5.1491]
|
||||||
|
},
|
||||||
|
"0.5": {
|
||||||
|
"vector": [-20.22911, -10.71813, 5.1491]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"position": {
|
||||||
|
"0.0": {
|
||||||
|
"vector": [-0.92, 0.28, 3.96]
|
||||||
|
},
|
||||||
|
"0.1": {
|
||||||
|
"vector": [-0.23897, -0.05511, 3.31474]
|
||||||
|
},
|
||||||
|
"0.15": {
|
||||||
|
"vector": [-0.12, -0.27, 3.71]
|
||||||
|
},
|
||||||
|
"0.225": {
|
||||||
|
"vector": [-0.12, -0.77, 3.96]
|
||||||
|
},
|
||||||
|
"0.3": {
|
||||||
|
"vector": [-0.12, -0.77, 3.96]
|
||||||
|
},
|
||||||
|
"0.325": {
|
||||||
|
"vector": [-0.92, 0.28, 3.96]
|
||||||
|
},
|
||||||
|
"0.4": {
|
||||||
|
"vector": [-1.32, -0.02, 4.06]
|
||||||
|
},
|
||||||
|
"0.5": {
|
||||||
|
"vector": [-0.92, 0.28, 3.96]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"scale": {
|
||||||
|
"0.2": {
|
||||||
|
"vector": [1, 1, 1]
|
||||||
|
},
|
||||||
|
"0.225": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
},
|
||||||
|
"0.375": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
},
|
||||||
|
"0.4": {
|
||||||
|
"vector": [1, 1, 1]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"shell": {
|
||||||
|
"scale": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"bolt_rot": {
|
||||||
|
"rotation": {
|
||||||
|
"vector": [0, 0, 90]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"bone26": {
|
||||||
|
"position": {
|
||||||
|
"0.075": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
},
|
||||||
|
"0.15": {
|
||||||
|
"vector": [0, -0.54453, 0],
|
||||||
|
"easing": "linear"
|
||||||
|
},
|
||||||
|
"0.3": {
|
||||||
|
"vector": [0, -0.54453, 0]
|
||||||
|
},
|
||||||
|
"0.375": {
|
||||||
|
"vector": [0, -0.14453, 0],
|
||||||
|
"easing": "easeInElastic"
|
||||||
|
},
|
||||||
|
"0.4": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"camera": {
|
||||||
|
"rotation": {
|
||||||
|
"0.0": {
|
||||||
|
"vector": [0.03, 0.16, -0.17]
|
||||||
|
},
|
||||||
|
"0.1": {
|
||||||
|
"vector": [0, 0, -1]
|
||||||
|
},
|
||||||
|
"0.225": {
|
||||||
|
"vector": [0, 0, 0.5]
|
||||||
|
},
|
||||||
|
"0.3": {
|
||||||
|
"vector": [0, 1, -1]
|
||||||
|
},
|
||||||
|
"0.35": {
|
||||||
|
"vector": [0, -0.75, 0.75]
|
||||||
|
},
|
||||||
|
"0.475": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sound_effects": {
|
||||||
|
"0.0": {
|
||||||
|
"effect": "k98_loop"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"animation.k98.iterativeload2": {
|
||||||
|
"loop": true,
|
||||||
|
"animation_length": 0.75,
|
||||||
"override_previous_animation": true,
|
"override_previous_animation": true,
|
||||||
"bones": {
|
"bones": {
|
||||||
"0": {
|
"0": {
|
||||||
|
@ -2009,7 +2253,7 @@
|
||||||
},
|
},
|
||||||
"animation.k98.finish": {
|
"animation.k98.finish": {
|
||||||
"loop": "hold_on_last_frame",
|
"loop": "hold_on_last_frame",
|
||||||
"animation_length": 1,
|
"animation_length": 1.25,
|
||||||
"override_previous_animation": true,
|
"override_previous_animation": true,
|
||||||
"bones": {
|
"bones": {
|
||||||
"0": {
|
"0": {
|
||||||
|
|
|
@ -7,8 +7,8 @@
|
||||||
"texture_width": 64,
|
"texture_width": 64,
|
||||||
"texture_height": 64,
|
"texture_height": 64,
|
||||||
"visible_bounds_width": 4,
|
"visible_bounds_width": 4,
|
||||||
"visible_bounds_height": 1.5,
|
"visible_bounds_height": 3,
|
||||||
"visible_bounds_offset": [0, 0.25, 0]
|
"visible_bounds_offset": [0, 0.5, 0]
|
||||||
},
|
},
|
||||||
"bones": [
|
"bones": [
|
||||||
{
|
{
|
||||||
|
@ -156,7 +156,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"origin": [0.22425, 2.98248, -30.88808],
|
"origin": [0.22425, 2.98248, -30.88808],
|
||||||
"size": [0.09634, 0.395, 0.30422],
|
"size": [0.09634, 0.30672, 0.30422],
|
||||||
"pivot": [0.27242, 3.14748, -30.43597],
|
"pivot": [0.27242, 3.14748, -30.43597],
|
||||||
"rotation": [0, 0, 22.5],
|
"rotation": [0, 0, 22.5],
|
||||||
"uv": {
|
"uv": {
|
||||||
|
@ -168,6 +168,62 @@
|
||||||
"down": {"uv": [47, 5.25], "uv_size": [0.25, -0.25]}
|
"down": {"uv": [47, 5.25], "uv_size": [0.25, -0.25]}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"origin": [0.31002, 3.3487, -30.88808],
|
||||||
|
"size": [0.09634, 0.01172, 0.30422],
|
||||||
|
"pivot": [0.35819, 3.35456, -30.73597],
|
||||||
|
"rotation": [0, 0, 22.5],
|
||||||
|
"uv": {
|
||||||
|
"north": {"uv": [44, 29], "uv_size": [0.25, 0.5]},
|
||||||
|
"east": {"uv": [30, 44], "uv_size": [0.25, 0.5]},
|
||||||
|
"south": {"uv": [44, 30], "uv_size": [0.25, 0.5]},
|
||||||
|
"west": {"uv": [31, 44], "uv_size": [0.25, 0.5]},
|
||||||
|
"up": {"uv": [5, 47], "uv_size": [0.25, 0.25]},
|
||||||
|
"down": {"uv": [47, 5.25], "uv_size": [0.25, -0.25]}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"origin": [0.32844, 3.28259, -30.88808],
|
||||||
|
"size": [0.08071, 0.01172, 0.30422],
|
||||||
|
"pivot": [0.3766, 3.28845, -30.73597],
|
||||||
|
"rotation": [0, 0, 112.5],
|
||||||
|
"uv": {
|
||||||
|
"north": {"uv": [44, 29], "uv_size": [0.25, 0.5]},
|
||||||
|
"east": {"uv": [30, 44], "uv_size": [0.25, 0.5]},
|
||||||
|
"south": {"uv": [44, 30], "uv_size": [0.25, 0.5]},
|
||||||
|
"west": {"uv": [31, 44], "uv_size": [0.25, 0.5]},
|
||||||
|
"up": {"uv": [5, 47], "uv_size": [0.25, 0.25]},
|
||||||
|
"down": {"uv": [47, 5.25], "uv_size": [0.25, -0.25]}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"origin": [0.26588, 3.31498, -30.88808],
|
||||||
|
"size": [0.08071, 0.01172, 0.30422],
|
||||||
|
"pivot": [0.29843, 3.32084, -30.73597],
|
||||||
|
"rotation": [0, 0, -67.5],
|
||||||
|
"uv": {
|
||||||
|
"north": {"uv": [44.25, 29], "uv_size": [-0.25, 0.5]},
|
||||||
|
"east": {"uv": [31.25, 44], "uv_size": [-0.25, 0.5]},
|
||||||
|
"south": {"uv": [44.25, 30], "uv_size": [-0.25, 0.5]},
|
||||||
|
"west": {"uv": [30.25, 44], "uv_size": [-0.25, 0.5]},
|
||||||
|
"up": {"uv": [5.25, 47], "uv_size": [-0.25, 0.25]},
|
||||||
|
"down": {"uv": [47.25, 5.25], "uv_size": [-0.25, -0.25]}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"origin": [0.23597, 3.2892, -30.88808],
|
||||||
|
"size": [0.0729, 0.07656, 0.30422],
|
||||||
|
"pivot": [0.27242, 3.14748, -30.43597],
|
||||||
|
"rotation": [0, 0, 22.5],
|
||||||
|
"uv": {
|
||||||
|
"north": {"uv": [1.25, 50.25], "uv_size": [-0.25, -0.25]},
|
||||||
|
"east": {"uv": [1.25, 50.25], "uv_size": [-0.25, -0.25]},
|
||||||
|
"south": {"uv": [1.25, 50.25], "uv_size": [-0.25, -0.25]},
|
||||||
|
"west": {"uv": [1.25, 50.25], "uv_size": [-0.25, -0.25]},
|
||||||
|
"up": {"uv": [1, 50], "uv_size": [0.25, 0.25]},
|
||||||
|
"down": {"uv": [1, 50], "uv_size": [0.25, 0.25]}
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"origin": [0.04373, 2.91963, -31.10808],
|
"origin": [0.04373, 2.91963, -31.10808],
|
||||||
"size": [0.43634, 0.02492, 1.12922],
|
"size": [0.43634, 0.02492, 1.12922],
|
||||||
|
@ -382,7 +438,37 @@
|
||||||
{
|
{
|
||||||
"name": "qiangji",
|
"name": "qiangji",
|
||||||
"parent": "qiangshen",
|
"parent": "qiangshen",
|
||||||
"pivot": [0, 2.50938, -25.349]
|
"pivot": [0, 2.50938, -25.349],
|
||||||
|
"cubes": [
|
||||||
|
{
|
||||||
|
"origin": [0.12638, 3.33254, -7.95421],
|
||||||
|
"size": [0.06551, 0.068, 0.05993],
|
||||||
|
"pivot": [0.15913, 3.36654, -7.92425],
|
||||||
|
"rotation": [0, 0, -45],
|
||||||
|
"uv": {
|
||||||
|
"north": {"uv": [1.25, 50.25], "uv_size": [-0.25, -0.25]},
|
||||||
|
"east": {"uv": [1.25, 50.25], "uv_size": [-0.25, -0.25]},
|
||||||
|
"south": {"uv": [1.25, 50.25], "uv_size": [-0.25, -0.25]},
|
||||||
|
"west": {"uv": [1.25, 50.25], "uv_size": [-0.25, -0.25]},
|
||||||
|
"up": {"uv": [1, 50], "uv_size": [0.25, 0.25]},
|
||||||
|
"down": {"uv": [1, 50], "uv_size": [0.25, 0.25]}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"origin": [-0.19189, 3.33254, -7.95421],
|
||||||
|
"size": [0.06551, 0.068, 0.05993],
|
||||||
|
"pivot": [-0.15913, 3.36654, -7.92425],
|
||||||
|
"rotation": [0, 0, 45],
|
||||||
|
"uv": {
|
||||||
|
"north": {"uv": [1, 50.25], "uv_size": [0.25, -0.25]},
|
||||||
|
"east": {"uv": [1, 50.25], "uv_size": [0.25, -0.25]},
|
||||||
|
"south": {"uv": [1, 50.25], "uv_size": [0.25, -0.25]},
|
||||||
|
"west": {"uv": [1, 50.25], "uv_size": [0.25, -0.25]},
|
||||||
|
"up": {"uv": [1.25, 50], "uv_size": [-0.25, 0.25]},
|
||||||
|
"down": {"uv": [1.25, 50], "uv_size": [-0.25, 0.25]}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "bone17",
|
"name": "bone17",
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "superbwarfare:item/perk/field_doctor"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "superbwarfare:item/perk/head_seeker"
|
||||||
|
}
|
||||||
|
}
|
|
@ -1410,6 +1410,30 @@
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"k_98_loop": {
|
||||||
|
"sounds": [
|
||||||
|
{
|
||||||
|
"name": "superbwarfare:k_98/k_98_loop",
|
||||||
|
"stream": false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"k_98_prepare": {
|
||||||
|
"sounds": [
|
||||||
|
{
|
||||||
|
"name": "superbwarfare:k_98/k_98_prepare",
|
||||||
|
"stream": false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"k_98_end": {
|
||||||
|
"sounds": [
|
||||||
|
{
|
||||||
|
"name": "superbwarfare:k_98/k_98_finish",
|
||||||
|
"stream": false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
|
||||||
"lightsaber": {
|
"lightsaber": {
|
||||||
"sounds": [
|
"sounds": [
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 18 KiB |
Binary file not shown.
Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 6.3 KiB |
Binary file not shown.
After Width: | Height: | Size: 857 B |
Binary file not shown.
After Width: | Height: | Size: 759 B |
|
@ -19,5 +19,9 @@
|
||||||
"auto": 0,
|
"auto": 0,
|
||||||
"burst_size": 1,
|
"burst_size": 1,
|
||||||
"empty_reload_time": 59,
|
"empty_reload_time": 59,
|
||||||
|
"clipLoad": 1,
|
||||||
|
"prepare_time": 31,
|
||||||
|
"iterative_time": 11,
|
||||||
|
"finish_time": 18,
|
||||||
"BypassesArmor": 0.5
|
"BypassesArmor": 0.5
|
||||||
}
|
}
|
Loading…
Add table
Reference in a new issue