diff --git a/src/main/java/net/mcreator/target/client/model/item/MinigunItemModel.java b/src/main/java/net/mcreator/target/client/model/item/MinigunItemModel.java index 410e18ab4..745a6098c 100644 --- a/src/main/java/net/mcreator/target/client/model/item/MinigunItemModel.java +++ b/src/main/java/net/mcreator/target/client/model/item/MinigunItemModel.java @@ -54,28 +54,17 @@ public class MinigunItemModel extends GeoModel { double fp = player.getPersistentData().getDouble("fire_pos"); double fr = player.getPersistentData().getDouble("fire_rot"); - if ((player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).zooming) { - shen.setPosY(0.02f * (float) (fp + 2 * fr)); - shen.setPosZ(0.6f * (float) (fp + 0.54f * fr)); - shen.setRotX(0.003f * (float) (fp + fr)); - shen.setRotZ(0f); - if ((player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).recoilHorizon > 0) { - shen.setRotY(0.015f * (float) fr); - } else { - shen.setRotY(-0.015f * (float) fr); - } + shen.setPosY(0.1f * (float) (fp + 2 * fr)); + shen.setPosZ(2.2f * (float) (0.5 * fp + 1.54f * fr)); + shen.setRotX(0.05f * (float) (0.18f * fp + fr)); + shen.setRotZ(-0.02f * (float) (fp + 1.3 * fr)); + if ((player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).recoilHorizon > 0) { + shen.setRotY(0.055f * (float) fr); } else { - shen.setPosY(0.04f * (float) (fp + 2 * fr)); - shen.setPosZ(1.2f * (float) (fp + 0.54f * fr)); - shen.setRotX(0.03f * (float) (0.18f * fp + fr)); - shen.setRotZ(-0.01f * (float) (fp + 1.3 * fr)); - if ((player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).recoilHorizon > 0) { - shen.setRotY(0.045f * (float) fr); - } else { - shen.setRotY(-0.045f * (float) fr); - } + shen.setRotY(-0.055f * (float) fr); } + if (stack.getOrCreateTag().getInt("fire_animation") > 0) { flare.setHidden(false); light.setHidden(false); diff --git a/src/main/java/net/mcreator/target/client/model/item/RpgItemModel.java b/src/main/java/net/mcreator/target/client/model/item/RpgItemModel.java index 51667d909..7aad726b7 100644 --- a/src/main/java/net/mcreator/target/client/model/item/RpgItemModel.java +++ b/src/main/java/net/mcreator/target/client/model/item/RpgItemModel.java @@ -32,14 +32,19 @@ public class RpgItemModel extends GeoModel { CoreGeoBone gun = getAnimationProcessor().getBone("bone"); CoreGeoBone rocket = getAnimationProcessor().getBone("Rockets"); CoreGeoBone shen = getAnimationProcessor().getBone("rpg"); + CoreGeoBone hammer = getAnimationProcessor().getBone("hammer"); Player player = Minecraft.getInstance().player; ItemStack stack = player.getMainHandItem(); - if (stack.getOrCreateTag().getDouble("empty") == 1) { - rocket.setScaleX(0); - rocket.setScaleY(0); - rocket.setScaleZ(0); + if (stack.getOrCreateTag().getBoolean("empty")) { + rocket.setHidden(true); + } else { + rocket.setHidden(false); + } + + if (stack.getOrCreateTag().getBoolean("close_hammer")) { + hammer.setRotX(-90 * Mth.DEG_TO_RAD); } double fp = player.getPersistentData().getDouble("fire_pos"); @@ -84,13 +89,12 @@ public class RpgItemModel extends GeoModel { CoreGeoBone flare = getAnimationProcessor().getBone("flare"); if (stack.getOrCreateTag().getInt("fire_animation") > 0) { + flare.setHidden(false); flare.setScaleX((float) (1.0 + 0.5 * (Math.random() - 0.5))); flare.setScaleY((float) (1.0 + 0.5 * (Math.random() - 0.5))); flare.setRotZ((float) (0.5 * (Math.random() - 0.5))); } else { - flare.setScaleX(0); - flare.setScaleY(0); - flare.setRotZ(0); + flare.setHidden(true); } CoreGeoBone root = getAnimationProcessor().getBone("root"); diff --git a/src/main/java/net/mcreator/target/item/gun/RpgItem.java b/src/main/java/net/mcreator/target/item/gun/RpgItem.java index 77bfe57ef..25e651e1e 100644 --- a/src/main/java/net/mcreator/target/item/gun/RpgItem.java +++ b/src/main/java/net/mcreator/target/item/gun/RpgItem.java @@ -186,7 +186,7 @@ public class RpgItem extends GunItem implements GeoItem, AnimatedItem { tag.putDouble("reload_time", 0); } if (tag.getBoolean("reloading")) { - if (tag.getDouble("reload_time") == 91) { + if (tag.getDouble("reload_time") == 97) { entity.getPersistentData().putDouble("id", id); if (entity.getServer() != null) { SoundTool.playLocalSound(player, TargetModSounds.RPG_RELOAD.get(), 100, 1); @@ -203,7 +203,10 @@ public class RpgItem extends GunItem implements GeoItem, AnimatedItem { tag.putBoolean("empty_reload", false); } if (tag.getDouble("reload_time") == 84) { - tag.putDouble("empty", 0); + tag.putBoolean("empty", false); + } + if (tag.getDouble("reload_time") == 7) { + tag.putBoolean("close_hammer", false); } if (tag.getDouble("reload_time") == 1 && player.getMainHandItem().getOrCreateTag().getDouble("id") == id) { if (tag.getInt("max_ammo") >= 0) { diff --git a/src/main/java/net/mcreator/target/procedures/PlayerReloadProcedure.java b/src/main/java/net/mcreator/target/procedures/PlayerReloadProcedure.java index 4b33d99ea..ecf944699 100644 --- a/src/main/java/net/mcreator/target/procedures/PlayerReloadProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/PlayerReloadProcedure.java @@ -65,7 +65,7 @@ public class PlayerReloadProcedure { tag.putBoolean("reloading", true); tag.putDouble("empty_reload", 1); tag.putDouble("id", (Mth.nextDouble(RandomSource.create(), 1, 1919810))); - tag.putDouble("reload_time", 91); + tag.putDouble("reload_time", 97); } if (player.getMainHandItem().getItem() == TargetModItems.ABEKIRI.get() && !(player.getCooldowns().isOnCooldown(player.getMainHandItem().getItem())) diff --git a/src/main/java/net/mcreator/target/procedures/RpgFireProcedure.java b/src/main/java/net/mcreator/target/procedures/RpgFireProcedure.java index bd5eaea86..33dc8a5e1 100644 --- a/src/main/java/net/mcreator/target/procedures/RpgFireProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/RpgFireProcedure.java @@ -52,7 +52,8 @@ public class RpgFireProcedure { } if (tag.getInt("ammo") == 1) { - tag.putDouble("empty", 1); + tag.putBoolean("empty", true); + tag.putBoolean("close_hammer", true); } player.getCooldowns().addCooldown(mainHandItem.getItem(), 10); diff --git a/src/main/resources/assets/target/animations/rpg.animation.json b/src/main/resources/assets/target/animations/rpg.animation.json index d2302d986..908655e24 100644 --- a/src/main/resources/assets/target/animations/rpg.animation.json +++ b/src/main/resources/assets/target/animations/rpg.animation.json @@ -160,7 +160,8 @@ "animation_length": 0.1 }, "animation.rpg.reload": { - "animation_length": 4.5, + "loop": "hold_on_last_frame", + "animation_length": 5, "bones": { "0": { "rotation": { @@ -213,7 +214,20 @@ "4.0": { "vector": [25.6001, -5.50887, 2.34743] }, + "4.2": { + "vector": [0, 0, -8], + "easing": "easeInOutSine" + }, + "4.3": { + "vector": [3, 0, -3.24] + }, "4.4": { + "vector": [-1, 0, 6.38] + }, + "4.6": { + "vector": [0, 0, -0.81] + }, + "4.8": { "vector": [0, 0, 0], "easing": "easeInOutSine" } @@ -256,10 +270,17 @@ "3.8": { "vector": [-3.07, -10.12, 0] }, - "4.0": { - "vector": [-1.7, -5.79, 0] + "4.1": { + "vector": [-0.1, 0.1, 0], + "easing": "easeInOutSine" + }, + "4.3": { + "vector": [-0.09, -0.61, 0] }, "4.4": { + "vector": [-0.08, -0.19, 0] + }, + "4.8": { "vector": [0, 0, 0], "easing": "easeInOutSine" } @@ -562,6 +583,30 @@ } } }, + "Righthand": { + "rotation": { + "4.2": { + "vector": [0, 0, 0] + }, + "4.3": { + "vector": [-4, 3, 8] + }, + "4.5": { + "vector": [0, 0, 0] + } + }, + "position": { + "4.2": { + "vector": [0, 0, 0] + }, + "4.3": { + "vector": [0, 0, 0] + }, + "4.5": { + "vector": [0, 0, 0] + } + } + }, "camera": { "rotation": { "0.1": { @@ -609,15 +654,29 @@ "3.6": { "vector": [0.5, -2, -2] }, - "4.0": { + "4.2": { "vector": [1, -0.59, -0.59] }, - "4.5": { + "4.3": { + "vector": [0.44, -0.26, 1.5] + }, + "4.4": { + "vector": [0.18, -0.11, -0.5] + }, + "4.6": { + "vector": [0.05, -0.03, 0.2] + }, + "4.8": { "vector": [0, 0, 0], "easing": "easeOutSine" } } } + }, + "sound_effects": { + "0.0": { + "effect": "rpg_reload" + } } } }, diff --git a/src/main/resources/assets/target/geo/rpg.geo.json b/src/main/resources/assets/target/geo/rpg.geo.json index b2f78c59f..14e0a7235 100644 --- a/src/main/resources/assets/target/geo/rpg.geo.json +++ b/src/main/resources/assets/target/geo/rpg.geo.json @@ -58,6 +58,41 @@ "parent": "0", "pivot": [0, 0, 0] }, + { + "name": "hammer", + "parent": "rpg", + "pivot": [0, -0.60982, -1.98992], + "cubes": [ + { + "origin": [-0.2625, -1.18829, -1.90006], + "size": [0.525, 0.62499, 0.30845], + "pivot": [0, -0.6606, -1.71883], + "rotation": [-90, 0, 0], + "uv": { + "north": {"uv": [74, 7], "uv_size": [0.5, 0.5]}, + "east": {"uv": [77, 61], "uv_size": [0.25, 0.5]}, + "south": {"uv": [8, 74], "uv_size": [0.5, 0.5]}, + "west": {"uv": [62, 77], "uv_size": [0.25, 0.5]}, + "up": {"uv": [77, 62], "uv_size": [0.5, 0.25]}, + "down": {"uv": [63, 77.25], "uv_size": [0.5, -0.25]} + } + }, + { + "origin": [-0.2625, -0.80184, -2.10613], + "size": [0.525, 0.62499, 0.30845], + "pivot": [0, -0.6606, -1.81883], + "rotation": [-135, 0, 0], + "uv": { + "north": {"uv": [23, 75], "uv_size": [0.5, 0.5]}, + "east": {"uv": [30, 78], "uv_size": [0.25, 0.5]}, + "south": {"uv": [75, 23], "uv_size": [0.5, 0.5]}, + "west": {"uv": [78, 30], "uv_size": [0.25, 0.5]}, + "up": {"uv": [31, 78], "uv_size": [0.5, 0.25]}, + "down": {"uv": [78, 31.25], "uv_size": [0.5, -0.25]} + } + } + ] + }, { "name": "gun", "parent": "rpg", @@ -3773,34 +3808,6 @@ "west": {"uv": [64, 75], "uv_size": [0.25, 0.75]} } }, - { - "origin": [-0.2625, -0.99385, -1.93825], - "size": [0.525, 0.62499, 0.30845], - "pivot": [0, -0.53136, -1.78402], - "rotation": [-45, 0, 0], - "uv": { - "north": {"uv": [74, 7], "uv_size": [0.5, 0.5]}, - "east": {"uv": [77, 61], "uv_size": [0.25, 0.5]}, - "south": {"uv": [8, 74], "uv_size": [0.5, 0.5]}, - "west": {"uv": [62, 77], "uv_size": [0.25, 0.5]}, - "up": {"uv": [77, 62], "uv_size": [0.5, 0.25]}, - "down": {"uv": [63, 77.25], "uv_size": [0.5, -0.25]} - } - }, - { - "origin": [-0.2625, 0.06622, -2.4518], - "size": [0.525, 0.62499, 0.30845], - "pivot": [0, -0.37128, -2.29757], - "rotation": [-90, 0, 0], - "uv": { - "north": {"uv": [23, 75], "uv_size": [0.5, 0.5]}, - "east": {"uv": [30, 78], "uv_size": [0.25, 0.5]}, - "south": {"uv": [75, 23], "uv_size": [0.5, 0.5]}, - "west": {"uv": [78, 30], "uv_size": [0.25, 0.5]}, - "up": {"uv": [31, 78], "uv_size": [0.5, 0.25]}, - "down": {"uv": [78, 31.25], "uv_size": [0.5, -0.25]} - } - }, { "origin": [-0.4, -1.50777, -3.66146], "size": [0.8, 0.22426, 1.47574], diff --git a/src/main/resources/assets/target/sounds/minigun/minigun_fire_1p.ogg b/src/main/resources/assets/target/sounds/minigun/minigun_fire_1p.ogg index 5d692cec2..8ec3a6be5 100644 Binary files a/src/main/resources/assets/target/sounds/minigun/minigun_fire_1p.ogg and b/src/main/resources/assets/target/sounds/minigun/minigun_fire_1p.ogg differ diff --git a/src/main/resources/assets/target/sounds/minigun/minigun_fire_3p.ogg b/src/main/resources/assets/target/sounds/minigun/minigun_fire_3p.ogg index bf8779102..1b49761a3 100644 Binary files a/src/main/resources/assets/target/sounds/minigun/minigun_fire_3p.ogg and b/src/main/resources/assets/target/sounds/minigun/minigun_fire_3p.ogg differ