实现98k双换弹模式,添加perk贴图

This commit is contained in:
Atsuihsio 2024-08-12 15:07:10 +08:00
parent bd21d759ea
commit ff11300e28
18 changed files with 427 additions and 24 deletions

View file

@ -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));

View file

@ -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));

View file

@ -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")));

View file

@ -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()
); );
} }

View file

@ -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"));

View file

@ -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"));

View file

@ -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"));

View file

@ -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);

View file

@ -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": {

View file

@ -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",

View file

@ -0,0 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "superbwarfare:item/perk/field_doctor"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "superbwarfare:item/perk/head_seeker"
}
}

View file

@ -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

View file

@ -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
} }