diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/K98ItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/K98ItemModel.java index bba0ca460..69fa2c3c0 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/K98ItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/K98ItemModel.java @@ -33,6 +33,7 @@ public class K98ItemModel extends GeoModel { public void setCustomAnimations(K98Item animatable, long instanceId, AnimationState animationState) { CoreGeoBone gun = getAnimationProcessor().getBone("bone"); CoreGeoBone shen = getAnimationProcessor().getBone("shen"); + CoreGeoBone zhuangzhen = getAnimationProcessor().getBone("zhuangzhen"); CoreGeoBone flare = getAnimationProcessor().getBone("flare"); Player player = Minecraft.getInstance().player; @@ -63,13 +64,13 @@ public class K98ItemModel extends GeoModel { if ((player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).zooming) { 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.setRotZ(0f); } else { - shen.setPosY(0.18f * (float) (fp + 2 * fr)); - shen.setPosZ(4.8f * (float) (fp + 0.54f * fr)); - shen.setRotX(0.27f * (float) (0.18f * fp + fr)); + shen.setPosY(0.28f * (float) (fp + 2 * fr)); + shen.setPosZ(5.8f * (float) (fp + 0.54f * fr)); + shen.setRotX(0.17f * (float) (0.18f * fp + 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)); diff --git a/src/main/java/net/mcreator/superbwarfare/event/GunEventHandler.java b/src/main/java/net/mcreator/superbwarfare/event/GunEventHandler.java index 3929dd210..41c37cb1a 100644 --- a/src/main/java/net/mcreator/superbwarfare/event/GunEventHandler.java +++ b/src/main/java/net/mcreator/superbwarfare/event/GunEventHandler.java @@ -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) { singleLoad(player); } } - if (stack.getItem() == ModItems.MARLIN.get()) { - if (tag.getInt("iterative") == 3) { + if (stack.getItem() == ModItems.K_98.get()) { + if (tag.getInt("iterative") == 1) { singleLoad(player); } } @@ -719,6 +719,9 @@ public class GunEventHandler { // 三阶段结束 if (tag.getInt("finish") == 1) { tag.putInt("reload_stage", 0); + if (tag.getDouble("bolt_action_time") > 0) { + stack.getOrCreateTag().putBoolean("need_bolt_action", false); + } tag.putBoolean("reloading", false); MinecraftForge.EVENT_BUS.post(new ReloadEvent.Post(player, stack)); diff --git a/src/main/java/net/mcreator/superbwarfare/init/ModSounds.java b/src/main/java/net/mcreator/superbwarfare/init/ModSounds.java index a4682dce9..4383f9427 100644 --- a/src/main/java/net/mcreator/superbwarfare/init/ModSounds.java +++ b/src/main/java/net/mcreator/superbwarfare/init/ModSounds.java @@ -216,6 +216,9 @@ public class ModSounds { public static final RegistryObject K_98_VERYFAR = REGISTRY.register("k_98_veryfar", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("superbwarfare", "k_98_veryfar"))); public static final RegistryObject K_98_RELOAD_EMPTY = REGISTRY.register("k_98_reload_empty", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("superbwarfare", "k_98_reload_empty"))); public static final RegistryObject K_98_BOLT = REGISTRY.register("k_98_bolt", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("superbwarfare", "k_98_bolt"))); + public static final RegistryObject K_98_PREPARE = REGISTRY.register("k_98_prepare", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("superbwarfare", "k_98_prepare"))); + public static final RegistryObject K_98_LOOP = REGISTRY.register("k_98_loop", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("superbwarfare", "k_98_loop"))); + public static final RegistryObject K_98_END = REGISTRY.register("k_98_end", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("superbwarfare", "k_98_end"))); public static final RegistryObject MK_42_FIRE_1P = REGISTRY.register("mk_42_fire_1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("superbwarfare", "mk_42_fire_1p"))); public static final RegistryObject MK_42_FIRE_3P = REGISTRY.register("mk_42_fire_3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("superbwarfare", "mk_42_fire_3p"))); diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/K98Item.java b/src/main/java/net/mcreator/superbwarfare/item/gun/K98Item.java index ab1a52539..9abb6c6d8 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/K98Item.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/K98Item.java @@ -95,6 +95,21 @@ public class K98Item extends GunItem implements GeoItem, AnimatedItem { 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")); } @@ -115,8 +130,11 @@ public class K98Item extends GunItem implements GeoItem, AnimatedItem { if (player.isSprinting() && player.onGround() && player.getPersistentData().getDouble("noRun") == 0 - && !(stack.getOrCreateTag().getBoolean("is_empty_reloading"))) { - if (player.hasEffect(MobEffects.MOVEMENT_SPEED)) { + && !(stack.getOrCreateTag().getBoolean("is_empty_reloading")) + && 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")); } else { return event.setAndContinue(RawAnimation.begin().thenLoop("animation.k98.run")); @@ -177,7 +195,10 @@ public class K98Item extends GunItem implements GeoItem, AnimatedItem { public Set getReloadSound() { return Set.of( 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() ); } diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/M98bItem.java b/src/main/java/net/mcreator/superbwarfare/item/gun/M98bItem.java index fd104bffb..9e164536c 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/M98bItem.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/M98bItem.java @@ -8,7 +8,8 @@ import net.mcreator.superbwarfare.init.ModItems; import net.mcreator.superbwarfare.init.ModSounds; import net.mcreator.superbwarfare.init.ModTags; 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.model.HumanoidModel; 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.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")); } else { return event.setAndContinue(RawAnimation.begin().thenLoop("animation.m98b.run")); diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/Ntw20.java b/src/main/java/net/mcreator/superbwarfare/item/gun/Ntw20.java index 3c6ef2762..54dc5d201 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/Ntw20.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/Ntw20.java @@ -134,7 +134,7 @@ public class Ntw20 extends GunItem implements GeoItem, AnimatedItem { if (player.isSprinting() && player.onGround() && player.getPersistentData().getDouble("noRun") == 0 && !(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")); } else { return event.setAndContinue(RawAnimation.begin().thenLoop("animation.ntw_20.run")); diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/SentinelItem.java b/src/main/java/net/mcreator/superbwarfare/item/gun/SentinelItem.java index 3c3976eea..1c2af50ea 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/SentinelItem.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/SentinelItem.java @@ -174,7 +174,7 @@ public class SentinelItem extends GunItem implements GeoItem, AnimatedItem { && player.getPersistentData().getDouble("noRun") == 0 && !(stack.getOrCreateTag().getBoolean("is_normal_reloading") || stack.getOrCreateTag().getBoolean("is_empty_reloading")) && !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")); } else { return event.setAndContinue(RawAnimation.begin().thenLoop("animation.sentinel.run")); diff --git a/src/main/java/net/mcreator/superbwarfare/network/message/ReloadMessage.java b/src/main/java/net/mcreator/superbwarfare/network/message/ReloadMessage.java index d69f01be9..31a9291a6 100644 --- a/src/main/java/net/mcreator/superbwarfare/network/message/ReloadMessage.java +++ b/src/main/java/net/mcreator/superbwarfare/network/message/ReloadMessage.java @@ -55,10 +55,12 @@ public class ReloadMessage { ) { 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_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) { return; @@ -75,7 +77,8 @@ public class ReloadMessage { } else if (stack.getItem() == ModItems.RPG.get() && tag.getInt("max_ammo") == 0) { return; } - if (can_reload) { + + if (can_reload || clipLoad) { if (stack.is(ModTags.Items.OPEN_BOLT)) { if (stack.getItem() == ModItems.M_60.get() || stack.getItem() == ModItems.ABEKIRI.get()) { if (tag.getInt("ammo") < tag.getDouble("mag")) { @@ -91,6 +94,7 @@ public class ReloadMessage { } return; } + if (can_single_reload) { if (tag.getInt("ammo") < tag.getDouble("mag")) { tag.putBoolean("start_single_reload", true); diff --git a/src/main/resources/assets/superbwarfare/animations/k98.animation.json b/src/main/resources/assets/superbwarfare/animations/k98.animation.json index ba07167f7..cf5a48002 100644 --- a/src/main/resources/assets/superbwarfare/animations/k98.animation.json +++ b/src/main/resources/assets/superbwarfare/animations/k98.animation.json @@ -208,7 +208,21 @@ } }, "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": { "loop": "hold_on_last_frame", @@ -1779,7 +1793,237 @@ }, "animation.k98.iterativeload": { "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, "bones": { "0": { @@ -2009,7 +2253,7 @@ }, "animation.k98.finish": { "loop": "hold_on_last_frame", - "animation_length": 1, + "animation_length": 1.25, "override_previous_animation": true, "bones": { "0": { diff --git a/src/main/resources/assets/superbwarfare/geo/kar98k.geo.json b/src/main/resources/assets/superbwarfare/geo/kar98k.geo.json index 9beedbc94..d4de5de86 100644 --- a/src/main/resources/assets/superbwarfare/geo/kar98k.geo.json +++ b/src/main/resources/assets/superbwarfare/geo/kar98k.geo.json @@ -7,8 +7,8 @@ "texture_width": 64, "texture_height": 64, "visible_bounds_width": 4, - "visible_bounds_height": 1.5, - "visible_bounds_offset": [0, 0.25, 0] + "visible_bounds_height": 3, + "visible_bounds_offset": [0, 0.5, 0] }, "bones": [ { @@ -156,7 +156,7 @@ }, { "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], "rotation": [0, 0, 22.5], "uv": { @@ -168,6 +168,62 @@ "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], "size": [0.43634, 0.02492, 1.12922], @@ -382,7 +438,37 @@ { "name": "qiangji", "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", diff --git a/src/main/resources/assets/superbwarfare/models/item/field_doctor.json b/src/main/resources/assets/superbwarfare/models/item/field_doctor.json new file mode 100644 index 000000000..6c551dee7 --- /dev/null +++ b/src/main/resources/assets/superbwarfare/models/item/field_doctor.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "superbwarfare:item/perk/field_doctor" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/superbwarfare/models/item/head_seeker.json b/src/main/resources/assets/superbwarfare/models/item/head_seeker.json new file mode 100644 index 000000000..2e0a1b75f --- /dev/null +++ b/src/main/resources/assets/superbwarfare/models/item/head_seeker.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "superbwarfare:item/perk/head_seeker" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/superbwarfare/sounds.json b/src/main/resources/assets/superbwarfare/sounds.json index 39b62614e..d86f6c2ab 100644 --- a/src/main/resources/assets/superbwarfare/sounds.json +++ b/src/main/resources/assets/superbwarfare/sounds.json @@ -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": { "sounds": [ diff --git a/src/main/resources/assets/superbwarfare/textures/item/k98.png b/src/main/resources/assets/superbwarfare/textures/item/k98.png index 075db5bf1..91e1e2ae4 100644 Binary files a/src/main/resources/assets/superbwarfare/textures/item/k98.png and b/src/main/resources/assets/superbwarfare/textures/item/k98.png differ diff --git a/src/main/resources/assets/superbwarfare/textures/item/k98_e.png b/src/main/resources/assets/superbwarfare/textures/item/k98_e.png index bfe4346ff..3e1780279 100644 Binary files a/src/main/resources/assets/superbwarfare/textures/item/k98_e.png and b/src/main/resources/assets/superbwarfare/textures/item/k98_e.png differ diff --git a/src/main/resources/assets/superbwarfare/textures/item/perk/field_doctor.png b/src/main/resources/assets/superbwarfare/textures/item/perk/field_doctor.png new file mode 100644 index 000000000..cf0862c32 Binary files /dev/null and b/src/main/resources/assets/superbwarfare/textures/item/perk/field_doctor.png differ diff --git a/src/main/resources/assets/superbwarfare/textures/item/perk/head_seeker.png b/src/main/resources/assets/superbwarfare/textures/item/perk/head_seeker.png new file mode 100644 index 000000000..73203a991 Binary files /dev/null and b/src/main/resources/assets/superbwarfare/textures/item/perk/head_seeker.png differ diff --git a/src/main/resources/data/superbwarfare/guns/k_98.json b/src/main/resources/data/superbwarfare/guns/k_98.json index 8c4f7d17f..75643f52a 100644 --- a/src/main/resources/data/superbwarfare/guns/k_98.json +++ b/src/main/resources/data/superbwarfare/guns/k_98.json @@ -19,5 +19,9 @@ "auto": 0, "burst_size": 1, "empty_reload_time": 59, + "clipLoad": 1, + "prepare_time": 31, + "iterative_time": 11, + "finish_time": 18, "BypassesArmor": 0.5 } \ No newline at end of file