diff --git a/src/generated/resources/.cache/2e07f3c482445536d45c00e6abf223465c01c841 b/src/generated/resources/.cache/2e07f3c482445536d45c00e6abf223465c01c841 index c1dcd0448..fc2317d07 100644 --- a/src/generated/resources/.cache/2e07f3c482445536d45c00e6abf223465c01c841 +++ b/src/generated/resources/.cache/2e07f3c482445536d45c00e6abf223465c01c841 @@ -1,4 +1,4 @@ -// 1.20.1 2024-10-01T15:18:03.5568295 Tags for minecraft:item mod id superbwarfare +// 1.20.1 2024-10-09T04:53:17.1268589 Tags for minecraft:item mod id superbwarfare cf8d49a8d2872286d1a9c3d4a7e1c2b7690db0b8 data/forge/tags/items/dusts.json 0fa06c2ff83bf09797e3ddff90f62d1124e645b4 data/forge/tags/items/dusts/coal_coke.json 295ddf906b7133a0558d03e9a60eea18281fe430 data/forge/tags/items/dusts/iron.json @@ -27,6 +27,7 @@ af6fd64b4a685c353f243763db268f7b2304c009 data/forge/tags/items/storage_blocks/le 3743c2790deca7e779d3e4b82f092de39b446988 data/forge/tags/items/storage_blocks/steel.json 144e54d908121dee498b2ebba3b24b09fd6f18d9 data/forge/tags/items/storage_blocks/tungsten.json 4d4dfd25a2a749e000e1bb742c2f984d4e094e5d data/superbwarfare/tags/items/cannot_reload.json +c0d8d0b01d86ea9a0386908ca59c5b660ac48c3b data/superbwarfare/tags/items/extra_one_ammo.json 99a5a3a4bb6b5fb641dcd449937365ea174f3797 data/superbwarfare/tags/items/gun.json 62eb408544731ce4cfcd119d8a6cc74731189ac0 data/superbwarfare/tags/items/handgun.json c28a85bbe8de35bb681cc50e6e29631410e79b06 data/superbwarfare/tags/items/is_auto_weapon.json diff --git a/src/generated/resources/data/superbwarfare/tags/items/extra_one_ammo.json b/src/generated/resources/data/superbwarfare/tags/items/extra_one_ammo.json new file mode 100644 index 000000000..62b4618bd --- /dev/null +++ b/src/generated/resources/data/superbwarfare/tags/items/extra_one_ammo.json @@ -0,0 +1,21 @@ +{ + "values": [ + "superbwarfare:ak_47", + "superbwarfare:svd", + "superbwarfare:mk_14", + "superbwarfare:vector", + "superbwarfare:sks", + "superbwarfare:rpk", + "superbwarfare:hk_416", + "superbwarfare:aa_12", + "superbwarfare:m_4", + "superbwarfare:devotion", + "superbwarfare:ntw_20", + "superbwarfare:m_98b", + "superbwarfare:sentinel", + "superbwarfare:glock_17", + "superbwarfare:glock_18", + "superbwarfare:m_1911", + "superbwarfare:qbz_95" + ] +} \ No newline at end of file diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/DevotionItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/DevotionItemModel.java index eb37901e2..9fa3f3625 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/DevotionItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/DevotionItemModel.java @@ -94,525 +94,6 @@ public class DevotionItemModel extends GeoModel { shen.setPosX(0.2f * (float) (ClientEventHandler.recoilHorizon * (0.5 + 0.4 * ClientEventHandler.fireSpread))); bolt.setPosZ(-2f * (float) fp); - CoreGeoBone n0 = getAnimationProcessor().getBone("00"); - CoreGeoBone n1 = getAnimationProcessor().getBone("1"); - CoreGeoBone n2 = getAnimationProcessor().getBone("2"); - CoreGeoBone n3 = getAnimationProcessor().getBone("3"); - CoreGeoBone n4 = getAnimationProcessor().getBone("4"); - CoreGeoBone n5 = getAnimationProcessor().getBone("5"); - CoreGeoBone n6 = getAnimationProcessor().getBone("6"); - CoreGeoBone n7 = getAnimationProcessor().getBone("7"); - CoreGeoBone n8 = getAnimationProcessor().getBone("8"); - CoreGeoBone n9 = getAnimationProcessor().getBone("9"); - CoreGeoBone n10 = getAnimationProcessor().getBone("10"); - CoreGeoBone n11 = getAnimationProcessor().getBone("11"); - CoreGeoBone n12 = getAnimationProcessor().getBone("12"); - CoreGeoBone n13 = getAnimationProcessor().getBone("13"); - CoreGeoBone n14 = getAnimationProcessor().getBone("14"); - CoreGeoBone n15 = getAnimationProcessor().getBone("15"); - CoreGeoBone n16 = getAnimationProcessor().getBone("16"); - CoreGeoBone n17 = getAnimationProcessor().getBone("17"); - CoreGeoBone n18 = getAnimationProcessor().getBone("18"); - CoreGeoBone n19 = getAnimationProcessor().getBone("19"); - CoreGeoBone n20 = getAnimationProcessor().getBone("20"); - CoreGeoBone n21 = getAnimationProcessor().getBone("21"); - CoreGeoBone n22 = getAnimationProcessor().getBone("22"); - CoreGeoBone n23 = getAnimationProcessor().getBone("23"); - CoreGeoBone n24 = getAnimationProcessor().getBone("24"); - CoreGeoBone n25 = getAnimationProcessor().getBone("25"); - CoreGeoBone n26 = getAnimationProcessor().getBone("26"); - CoreGeoBone n27 = getAnimationProcessor().getBone("27"); - CoreGeoBone n28 = getAnimationProcessor().getBone("28"); - CoreGeoBone n29 = getAnimationProcessor().getBone("29"); - CoreGeoBone n30 = getAnimationProcessor().getBone("30"); - CoreGeoBone n31 = getAnimationProcessor().getBone("31"); - CoreGeoBone n32 = getAnimationProcessor().getBone("32"); - CoreGeoBone n33 = getAnimationProcessor().getBone("33"); - CoreGeoBone n34 = getAnimationProcessor().getBone("34"); - CoreGeoBone n35 = getAnimationProcessor().getBone("35"); - CoreGeoBone n36 = getAnimationProcessor().getBone("36"); - CoreGeoBone n37 = getAnimationProcessor().getBone("37"); - CoreGeoBone n38 = getAnimationProcessor().getBone("38"); - CoreGeoBone n39 = getAnimationProcessor().getBone("39"); - CoreGeoBone n40 = getAnimationProcessor().getBone("40"); - CoreGeoBone n41 = getAnimationProcessor().getBone("41"); - CoreGeoBone n42 = getAnimationProcessor().getBone("42"); - CoreGeoBone n43 = getAnimationProcessor().getBone("43"); - CoreGeoBone n44 = getAnimationProcessor().getBone("44"); - CoreGeoBone n45 = getAnimationProcessor().getBone("45"); - CoreGeoBone n46 = getAnimationProcessor().getBone("46"); - CoreGeoBone n47 = getAnimationProcessor().getBone("47"); - CoreGeoBone n48 = getAnimationProcessor().getBone("48"); - CoreGeoBone n49 = getAnimationProcessor().getBone("49"); - CoreGeoBone n50 = getAnimationProcessor().getBone("50"); - CoreGeoBone n51 = getAnimationProcessor().getBone("51"); - CoreGeoBone n52 = getAnimationProcessor().getBone("52"); - CoreGeoBone n53 = getAnimationProcessor().getBone("53"); - CoreGeoBone n54 = getAnimationProcessor().getBone("54"); - CoreGeoBone n55 = getAnimationProcessor().getBone("55"); - CoreGeoBone n56 = getAnimationProcessor().getBone("56"); - - if (stack.getOrCreateTag().getInt("ammo") == 0) { - n0.setScaleX(1); - n0.setScaleY(1); - } else { - n0.setScaleX(0); - n0.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 1) { - n1.setScaleX(1); - n1.setScaleY(1); - } else { - n1.setScaleX(0); - n1.setScaleY(0); - } - - - if (stack.getOrCreateTag().getInt("ammo") == 2) { - n2.setScaleX(1); - n2.setScaleY(1); - } else { - n2.setScaleX(0); - n2.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 3) { - n3.setScaleX(1); - n3.setScaleY(1); - } else { - n3.setScaleX(0); - n3.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 4) { - n4.setScaleX(1); - n4.setScaleY(1); - } else { - n4.setScaleX(0); - n4.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 5) { - n5.setScaleX(1); - n5.setScaleY(1); - } else { - n5.setScaleX(0); - n5.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 6) { - n6.setScaleX(1); - n6.setScaleY(1); - } else { - n6.setScaleX(0); - n6.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 7) { - n7.setScaleX(1); - n7.setScaleY(1); - } else { - n7.setScaleX(0); - n7.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 8) { - n8.setScaleX(1); - n8.setScaleY(1); - } else { - n8.setScaleX(0); - n8.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 9) { - n9.setScaleX(1); - n9.setScaleY(1); - } else { - n9.setScaleX(0); - n9.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 10) { - n10.setScaleX(1); - n10.setScaleY(1); - } else { - n10.setScaleX(0); - n10.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 11) { - n11.setScaleX(1); - n11.setScaleY(1); - } else { - n11.setScaleX(0); - n11.setScaleY(0); - } - - - if (stack.getOrCreateTag().getInt("ammo") == 12) { - n12.setScaleX(1); - n12.setScaleY(1); - } else { - n12.setScaleX(0); - n12.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 13) { - n13.setScaleX(1); - n13.setScaleY(1); - } else { - n13.setScaleX(0); - n13.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 14) { - n14.setScaleX(1); - n14.setScaleY(1); - } else { - n14.setScaleX(0); - n14.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 15) { - n15.setScaleX(1); - n15.setScaleY(1); - } else { - n15.setScaleX(0); - n15.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 16) { - n16.setScaleX(1); - n16.setScaleY(1); - } else { - n16.setScaleX(0); - n16.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 17) { - n17.setScaleX(1); - n17.setScaleY(1); - } else { - n17.setScaleX(0); - n17.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 18) { - n18.setScaleX(1); - n18.setScaleY(1); - } else { - n18.setScaleX(0); - n18.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 19) { - n19.setScaleX(1); - n19.setScaleY(1); - } else { - n19.setScaleX(0); - n19.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 20) { - n20.setScaleX(1); - n20.setScaleY(1); - } else { - n20.setScaleX(0); - n20.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 21) { - n21.setScaleX(1); - n21.setScaleY(1); - } else { - n21.setScaleX(0); - n21.setScaleY(0); - } - - - if (stack.getOrCreateTag().getInt("ammo") == 22) { - n22.setScaleX(1); - n22.setScaleY(1); - } else { - n22.setScaleX(0); - n22.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 23) { - n23.setScaleX(1); - n23.setScaleY(1); - } else { - n23.setScaleX(0); - n23.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 24) { - n24.setScaleX(1); - n24.setScaleY(1); - } else { - n24.setScaleX(0); - n24.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 25) { - n25.setScaleX(1); - n25.setScaleY(1); - } else { - n25.setScaleX(0); - n25.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 26) { - n26.setScaleX(1); - n26.setScaleY(1); - } else { - n26.setScaleX(0); - n26.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 27) { - n27.setScaleX(1); - n27.setScaleY(1); - } else { - n27.setScaleX(0); - n27.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 28) { - n28.setScaleX(1); - n28.setScaleY(1); - } else { - n28.setScaleX(0); - n28.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 29) { - n29.setScaleX(1); - n29.setScaleY(1); - } else { - n29.setScaleX(0); - n29.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 30) { - n30.setScaleX(1); - n30.setScaleY(1); - } else { - n30.setScaleX(0); - n30.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 31) { - n31.setScaleX(1); - n31.setScaleY(1); - } else { - n31.setScaleX(0); - n31.setScaleY(0); - } - - - if (stack.getOrCreateTag().getInt("ammo") == 32) { - n32.setScaleX(1); - n32.setScaleY(1); - } else { - n32.setScaleX(0); - n32.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 33) { - n33.setScaleX(1); - n33.setScaleY(1); - } else { - n33.setScaleX(0); - n33.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 34) { - n34.setScaleX(1); - n34.setScaleY(1); - } else { - n34.setScaleX(0); - n34.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 35) { - n35.setScaleX(1); - n35.setScaleY(1); - } else { - n35.setScaleX(0); - n35.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 36) { - n36.setScaleX(1); - n36.setScaleY(1); - } else { - n36.setScaleX(0); - n36.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 37) { - n37.setScaleX(1); - n37.setScaleY(1); - } else { - n37.setScaleX(0); - n37.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 38) { - n38.setScaleX(1); - n38.setScaleY(1); - } else { - n38.setScaleX(0); - n38.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 39) { - n39.setScaleX(1); - n39.setScaleY(1); - } else { - n39.setScaleX(0); - n39.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 40) { - n40.setScaleX(1); - n40.setScaleY(1); - } else { - n40.setScaleX(0); - n40.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 41) { - n41.setScaleX(1); - n41.setScaleY(1); - } else { - n41.setScaleX(0); - n41.setScaleY(0); - } - - - if (stack.getOrCreateTag().getInt("ammo") == 42) { - n42.setScaleX(1); - n42.setScaleY(1); - } else { - n42.setScaleX(0); - n42.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 43) { - n43.setScaleX(1); - n43.setScaleY(1); - } else { - n43.setScaleX(0); - n43.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 44) { - n44.setScaleX(1); - n44.setScaleY(1); - } else { - n44.setScaleX(0); - n44.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 45) { - n45.setScaleX(1); - n45.setScaleY(1); - } else { - n45.setScaleX(0); - n45.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 46) { - n46.setScaleX(1); - n46.setScaleY(1); - } else { - n46.setScaleX(0); - n46.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 47) { - n47.setScaleX(1); - n47.setScaleY(1); - } else { - n47.setScaleX(0); - n47.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 48) { - n48.setScaleX(1); - n48.setScaleY(1); - } else { - n48.setScaleX(0); - n48.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 49) { - n49.setScaleX(1); - n49.setScaleY(1); - } else { - n49.setScaleX(0); - n49.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 50) { - n50.setScaleX(1); - n50.setScaleY(1); - } else { - n50.setScaleX(0); - n50.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 51) { - n51.setScaleX(1); - n51.setScaleY(1); - } else { - n51.setScaleX(0); - n51.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 52) { - n52.setScaleX(1); - n52.setScaleY(1); - } else { - n52.setScaleX(0); - n52.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 53) { - n53.setScaleX(1); - n53.setScaleY(1); - } else { - n53.setScaleX(0); - n53.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 54) { - n54.setScaleX(1); - n54.setScaleY(1); - } else { - n54.setScaleX(0); - n54.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 55) { - n55.setScaleX(1); - n55.setScaleY(1); - } else { - n55.setScaleX(0); - n55.setScaleY(0); - } - - if (stack.getOrCreateTag().getInt("ammo") == 56) { - n56.setScaleX(1); - n56.setScaleY(1); - } else { - n56.setScaleX(0); - n56.setScaleY(0); - } - CoreGeoBone root = getAnimationProcessor().getBone("root"); CoreGeoBone move = getAnimationProcessor().getBone("move"); diff --git a/src/main/java/net/mcreator/superbwarfare/datagen/ModItemTagProvider.java b/src/main/java/net/mcreator/superbwarfare/datagen/ModItemTagProvider.java index c482edda8..f8afc7b0c 100644 --- a/src/main/java/net/mcreator/superbwarfare/datagen/ModItemTagProvider.java +++ b/src/main/java/net/mcreator/superbwarfare/datagen/ModItemTagProvider.java @@ -90,6 +90,9 @@ public class ModItemTagProvider extends ItemTagsProvider { this.tag(ModTags.Items.IS_AUTO_WEAPON).add(ModItems.AA_12.get(), ModItems.AK_47.get(), ModItems.HK_416.get(), ModItems.AA_12.get(), ModItems.M_4.get(), ModItems.QBZ_95.get(), ModItems.MK_14.get(), ModItems.AA_12.get(), ModItems.GLOCK_18.get(), ModItems.VECTOR.get(), ModItems.AA_12.get(), ModItems.MINIGUN.get(), ModItems.DEVOTION.get(), ModItems.M_60.get(), ModItems.RPK.get()); + this.tag(ModTags.Items.EXTRA_ONE_AMMO).add(ModItems.AK_47.get(), ModItems.SVD.get(), ModItems.MK_14.get(), ModItems.VECTOR.get(),ModItems.SKS.get(), + ModItems.RPK.get(), ModItems.HK_416.get(), ModItems.AA_12.get(), ModItems.M_4.get(), ModItems.DEVOTION.get(),ModItems.NTW_20.get(), ModItems.M_98B.get(), + ModItems.SENTINEL.get(), ModItems.GLOCK_17.get(),ModItems.GLOCK_18.get(), ModItems.M_1911.get(), ModItems.QBZ_95.get()); this.tag(ModTags.Items.MILITARY_ARMOR).add(ModItems.RU_CHEST_6B43.get(), ModItems.US_CHEST_IOTV.get()); } diff --git a/src/main/java/net/mcreator/superbwarfare/event/ClientEventHandler.java b/src/main/java/net/mcreator/superbwarfare/event/ClientEventHandler.java index b1d0e1359..83ee35b7e 100644 --- a/src/main/java/net/mcreator/superbwarfare/event/ClientEventHandler.java +++ b/src/main/java/net/mcreator/superbwarfare/event/ClientEventHandler.java @@ -599,7 +599,7 @@ public class ClientEventHandler { } if (0 < recoilTime && recoilTime < 2.5) { - float newPitch = (float) (player.getXRot() - 1.5 * gunRecoilX * (sinRes + Mth.clamp(0.5 - recoilTime, 0, 0.5)) * times * (0.5 + fireSpread)); + float newPitch = (float) (player.getXRot() - 1.5 * pose * gunRecoilX * (sinRes + Mth.clamp(0.5 - recoilTime, 0, 0.5)) * times * (0.5 + fireSpread)); player.setXRot(newPitch); player.xRotO = player.getXRot(); } diff --git a/src/main/java/net/mcreator/superbwarfare/event/GunEventHandler.java b/src/main/java/net/mcreator/superbwarfare/event/GunEventHandler.java index f1a31d551..ce511c77d 100644 --- a/src/main/java/net/mcreator/superbwarfare/event/GunEventHandler.java +++ b/src/main/java/net/mcreator/superbwarfare/event/GunEventHandler.java @@ -368,39 +368,31 @@ public class GunEventHandler { if (count == 0) { if (stack.is(ModTags.Items.USE_SHOTGUN_AMMO)) { - if (stack.getItem() == ModItems.ABEKIRI.get()) { - GunsTool.reload(player, GunInfo.Type.SHOTGUN); - } else { + if (stack.is(ModTags.Items.EXTRA_ONE_AMMO)) { GunsTool.reload(player, GunInfo.Type.SHOTGUN, true); + } else { + GunsTool.reload(player, GunInfo.Type.SHOTGUN); } } else if (stack.is(ModTags.Items.USE_SNIPER_AMMO)) { GunsTool.reload(player, GunInfo.Type.SNIPER, true); } else if (stack.is(ModTags.Items.USE_HANDGUN_AMMO)) { GunsTool.reload(player, GunInfo.Type.HANDGUN, true); } else if (stack.is(ModTags.Items.USE_RIFLE_AMMO)) { - if (stack.getItem() == ModItems.M_60.get()) { - GunsTool.reload(player, GunInfo.Type.RIFLE); - } else { + if (stack.is(ModTags.Items.EXTRA_ONE_AMMO)) { GunsTool.reload(player, GunInfo.Type.RIFLE, true); + } else { + GunsTool.reload(player, GunInfo.Type.RIFLE); } } } else { if (stack.is(ModTags.Items.USE_SHOTGUN_AMMO)) { - if (stack.getItem() == ModItems.ABEKIRI.get()) { - stack.getOrCreateTag().putInt("ammo", stack.getOrCreateTag().getInt("mag")); - } else { - stack.getOrCreateTag().putInt("ammo", stack.getOrCreateTag().getInt("mag") + 1); - } + stack.getOrCreateTag().putInt("ammo", stack.getOrCreateTag().getInt("mag") + stack.getOrCreateTag().getInt("customMag") + (stack.is(ModTags.Items.EXTRA_ONE_AMMO) ? 1 : 0)); } else if (stack.is(ModTags.Items.USE_SNIPER_AMMO)) { - stack.getOrCreateTag().putInt("ammo", stack.getOrCreateTag().getInt("mag") + 1); + stack.getOrCreateTag().putInt("ammo", stack.getOrCreateTag().getInt("mag") + stack.getOrCreateTag().getInt("customMag") + (stack.is(ModTags.Items.EXTRA_ONE_AMMO) ? 1 : 0)); } else if (stack.is(ModTags.Items.USE_HANDGUN_AMMO)) { - stack.getOrCreateTag().putInt("ammo", stack.getOrCreateTag().getInt("mag") + 1); + stack.getOrCreateTag().putInt("ammo", stack.getOrCreateTag().getInt("mag") + stack.getOrCreateTag().getInt("customMag") + (stack.is(ModTags.Items.EXTRA_ONE_AMMO) ? 1 : 0)); } else if (stack.is(ModTags.Items.USE_RIFLE_AMMO)) { - if (stack.getItem() == ModItems.M_60.get()) { - stack.getOrCreateTag().putInt("ammo", stack.getOrCreateTag().getInt("mag")); - } else { - stack.getOrCreateTag().putInt("ammo", stack.getOrCreateTag().getInt("mag") + 1); - } + stack.getOrCreateTag().putInt("ammo", stack.getOrCreateTag().getInt("mag") + stack.getOrCreateTag().getInt("customMag") + (stack.is(ModTags.Items.EXTRA_ONE_AMMO) ? 1 : 0)); } } @@ -444,7 +436,7 @@ public class GunEventHandler { player.getInventory().clearOrCountMatchingItems(p -> p.getItem() == ModItems.JAVELIN_MISSILE.get(), 1, player.inventoryMenu.getCraftSlots()); } } else { - stack.getOrCreateTag().putInt("ammo", stack.getOrCreateTag().getInt("mag")); + stack.getOrCreateTag().putInt("ammo", stack.getOrCreateTag().getInt("mag") + stack.getOrCreateTag().getInt("customMag")); } @@ -583,7 +575,7 @@ public class GunEventHandler { && tag.getInt("reload_stage") == 2 && tag.getInt("iterative") == 0 && !tag.getBoolean("stop") - && tag.getInt("ammo") < (int) tag.getDouble("mag")) { + && tag.getInt("ammo") < (int) tag.getDouble("mag") + tag.getInt("customMag")) { playGunLoopReloadSounds(player); tag.putDouble("iterative", (int) tag.getDouble("iterative_time")); @@ -613,7 +605,7 @@ public class GunEventHandler { if (tag.getInt("iterative") == 1) { // 装满结束 - if (tag.getInt("ammo") >= (int) tag.getDouble("mag")) { + if (tag.getInt("ammo") >= (int) tag.getDouble("mag") + tag.getInt("customMag")) { tag.putInt("reload_stage", 3); } diff --git a/src/main/java/net/mcreator/superbwarfare/event/LivingEventHandler.java b/src/main/java/net/mcreator/superbwarfare/event/LivingEventHandler.java index 79fb228b1..014654320 100644 --- a/src/main/java/net/mcreator/superbwarfare/event/LivingEventHandler.java +++ b/src/main/java/net/mcreator/superbwarfare/event/LivingEventHandler.java @@ -555,7 +555,7 @@ public class LivingEventHandler { float rate = level * 0.1f + (stack.is(ModTags.Items.SMG) || stack.is(ModTags.Items.RIFLE) ? 0.07f : 0f); player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { - int mag = stack.getOrCreateTag().getInt("mag"); + int mag = stack.getOrCreateTag().getInt("mag") + stack.getOrCreateTag().getInt("customMag"); int ammo = stack.getOrCreateTag().getInt("ammo"); int ammoReload = (int) Math.min(mag, mag * rate); int ammoNeed = Math.min(mag - ammo, ammoReload); diff --git a/src/main/java/net/mcreator/superbwarfare/init/ModPerks.java b/src/main/java/net/mcreator/superbwarfare/init/ModPerks.java index 165975049..0f9ee606d 100644 --- a/src/main/java/net/mcreator/superbwarfare/init/ModPerks.java +++ b/src/main/java/net/mcreator/superbwarfare/init/ModPerks.java @@ -53,6 +53,7 @@ public class ModPerks { public static final RegistryObject SUBSISTENCE = FUNC_PERKS.register("subsistence", () -> new Perk("subsistence", Perk.Type.FUNCTIONAL)); public static final RegistryObject FIELD_DOCTOR = FUNC_PERKS.register("field_doctor", () -> new Perk("field_doctor", Perk.Type.FUNCTIONAL)); public static final RegistryObject SUPER_RECHARGE = FUNC_PERKS.register("super_recharge", () -> new Perk("super_recharge", Perk.Type.FUNCTIONAL)); + public static final RegistryObject DIMENSION_MAGAZINE = FUNC_PERKS.register("dimension_magazine", () -> new Perk("dimension_magazine", Perk.Type.FUNCTIONAL)); /** * Damage Perks diff --git a/src/main/java/net/mcreator/superbwarfare/init/ModTags.java b/src/main/java/net/mcreator/superbwarfare/init/ModTags.java index 9884f4175..0ee66ee3a 100644 --- a/src/main/java/net/mcreator/superbwarfare/init/ModTags.java +++ b/src/main/java/net/mcreator/superbwarfare/init/ModTags.java @@ -17,6 +17,7 @@ public class ModTags { public static final TagKey USE_RIFLE_AMMO = tag("use_rifle_ammo"); public static final TagKey USE_SHOTGUN_AMMO = tag("use_shotgun_ammo"); public static final TagKey USE_SNIPER_AMMO = tag("use_sniper_ammo"); + public static final TagKey EXTRA_ONE_AMMO = tag("extra_one_ammo"); public static final TagKey SMG = tag("smg"); public static final TagKey HANDGUN = tag("handgun"); diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/GunItem.java b/src/main/java/net/mcreator/superbwarfare/item/gun/GunItem.java index b1f6823c1..d254c45fb 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/GunItem.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/GunItem.java @@ -4,6 +4,7 @@ import net.mcreator.superbwarfare.ModUtils; import net.mcreator.superbwarfare.init.ModItems; import net.mcreator.superbwarfare.init.ModPerks; import net.mcreator.superbwarfare.init.ModTags; +import net.mcreator.superbwarfare.network.ModVariables; import net.mcreator.superbwarfare.perk.Perk; import net.mcreator.superbwarfare.perk.PerkHelper; import net.mcreator.superbwarfare.tools.GunsTool; @@ -85,6 +86,29 @@ public abstract class GunItem extends Item { } handleGunPerks(itemstack); + + if ((itemstack.is(ModTags.Items.EXTRA_ONE_AMMO) && itemstack.getOrCreateTag().getInt("ammo") > itemstack.getOrCreateTag().getInt("mag") + itemstack.getOrCreateTag().getInt("customMag") + 1) + ||(!itemstack.is(ModTags.Items.EXTRA_ONE_AMMO) && itemstack.getOrCreateTag().getInt("ammo") > itemstack.getOrCreateTag().getInt("mag") + itemstack.getOrCreateTag().getInt("customMag")) + ) { + + int count = itemstack.getOrCreateTag().getInt("ammo") - itemstack.getOrCreateTag().getInt("mag") + itemstack.getOrCreateTag().getInt("customMag") - (itemstack.is(ModTags.Items.EXTRA_ONE_AMMO) ? 1 : 0); + + entity.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { + + if (itemstack.is(ModTags.Items.USE_SHOTGUN_AMMO)) { + capability.shotgunAmmo = entity.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).shotgunAmmo + count; + } else if (itemstack.is(ModTags.Items.USE_SNIPER_AMMO)) { + capability.sniperAmmo = entity.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).sniperAmmo + count; + } else if (itemstack.is(ModTags.Items.USE_HANDGUN_AMMO)) { + capability.handgunAmmo = entity.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).handgunAmmo + count; + } else if (itemstack.is(ModTags.Items.USE_RIFLE_AMMO)) { + capability.rifleAmmo = entity.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).rifleAmmo + count; + } + capability.syncPlayerVariables(entity); + }); + + itemstack.getOrCreateTag().putInt("ammo",itemstack.getOrCreateTag().getInt("mag") + itemstack.getOrCreateTag().getInt("customMag") + (itemstack.is(ModTags.Items.EXTRA_ONE_AMMO) ? 1 : 0)); + } } } @@ -162,7 +186,7 @@ public abstract class GunItem extends Item { stack.getOrCreateTag().putInt("FourthTimesCharmTick", 0); stack.getOrCreateTag().putInt("FourthTimesCharmCount", 0); - int mag = stack.getOrCreateTag().getInt("mag"); + int mag = stack.getOrCreateTag().getInt("mag") + stack.getOrCreateTag().getInt("customMag"); stack.getOrCreateTag().putInt("ammo", Math.min(mag, stack.getOrCreateTag().getInt("ammo") + 2)); } } @@ -170,6 +194,9 @@ public abstract class GunItem extends Item { if (stack.getOrCreateTag().getInt("HeadSeeker") > 0) { stack.getOrCreateTag().putInt("HeadSeeker", Math.max(0, stack.getOrCreateTag().getInt("HeadSeeker") - 1)); } + + int mag_ = stack.getOrCreateTag().getInt("mag"); + stack.getOrCreateTag().putInt("customMag", (int) (Math.ceil(0.15 * PerkHelper.getItemPerkLevel(ModPerks.DIMENSION_MAGAZINE.get(), stack) * mag_))); } public boolean canApplyPerk(Perk perk) { diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/handgun/Glock17Item.java b/src/main/java/net/mcreator/superbwarfare/item/gun/handgun/Glock17Item.java index 832d44aa2..aa719ab8c 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/handgun/Glock17Item.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/handgun/Glock17Item.java @@ -179,6 +179,6 @@ public class Glock17Item extends GunItem implements GeoItem, AnimatedItem { @Override public boolean canApplyPerk(Perk perk) { - return PerkHelper.HANDGUN_PERKS.test(perk); + return PerkHelper.HANDGUN_PERKS.test(perk) || PerkHelper.MAGAZINE_PERKS.test(perk); } } \ No newline at end of file diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/handgun/Glock18Item.java b/src/main/java/net/mcreator/superbwarfare/item/gun/handgun/Glock18Item.java index 522deb855..f40c21a07 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/handgun/Glock18Item.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/handgun/Glock18Item.java @@ -181,6 +181,6 @@ public class Glock18Item extends GunItem implements GeoItem, AnimatedItem { @Override public boolean canApplyPerk(Perk perk) { - return PerkHelper.HANDGUN_PERKS.test(perk); + return PerkHelper.HANDGUN_PERKS.test(perk) || PerkHelper.MAGAZINE_PERKS.test(perk); } } \ No newline at end of file diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/handgun/M1911Item.java b/src/main/java/net/mcreator/superbwarfare/item/gun/handgun/M1911Item.java index e8c6e9e06..507104410 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/handgun/M1911Item.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/handgun/M1911Item.java @@ -182,6 +182,6 @@ public class M1911Item extends GunItem implements GeoItem, AnimatedItem { @Override public boolean canApplyPerk(Perk perk) { - return PerkHelper.HANDGUN_PERKS.test(perk); + return PerkHelper.HANDGUN_PERKS.test(perk) || PerkHelper.MAGAZINE_PERKS.test(perk); } } \ No newline at end of file diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/machinegun/DevotionItem.java b/src/main/java/net/mcreator/superbwarfare/item/gun/machinegun/DevotionItem.java index c469ecaa9..5b42b5a09 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/machinegun/DevotionItem.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/machinegun/DevotionItem.java @@ -177,6 +177,6 @@ public class DevotionItem extends GunItem implements GeoItem, AnimatedItem { @Override public boolean canApplyPerk(Perk perk) { - return PerkHelper.MACHINE_GUN_PERKS.test(perk); + return PerkHelper.MACHINE_GUN_PERKS.test(perk) || PerkHelper.MAGAZINE_PERKS.test(perk); } } \ No newline at end of file diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/machinegun/M60Item.java b/src/main/java/net/mcreator/superbwarfare/item/gun/machinegun/M60Item.java index 66ac31bf4..7cf3604dc 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/machinegun/M60Item.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/machinegun/M60Item.java @@ -183,6 +183,6 @@ public class M60Item extends GunItem implements GeoItem, AnimatedItem { @Override public boolean canApplyPerk(Perk perk) { - return PerkHelper.MACHINE_GUN_PERKS.test(perk); + return PerkHelper.MACHINE_GUN_PERKS.test(perk) || PerkHelper.MAGAZINE_PERKS.test(perk); } } \ No newline at end of file diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/machinegun/RpkItem.java b/src/main/java/net/mcreator/superbwarfare/item/gun/machinegun/RpkItem.java index a83b6ae55..d1888f139 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/machinegun/RpkItem.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/machinegun/RpkItem.java @@ -179,6 +179,6 @@ public class RpkItem extends GunItem implements GeoItem, AnimatedItem { @Override public boolean canApplyPerk(Perk perk) { - return PerkHelper.MACHINE_GUN_PERKS.test(perk); + return PerkHelper.MACHINE_GUN_PERKS.test(perk) || PerkHelper.MAGAZINE_PERKS.test(perk); } } \ No newline at end of file diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/rifle/AK47Item.java b/src/main/java/net/mcreator/superbwarfare/item/gun/rifle/AK47Item.java index 0e4313194..7ffd530d0 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/rifle/AK47Item.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/rifle/AK47Item.java @@ -163,6 +163,6 @@ public class AK47Item extends GunItem implements GeoItem, AnimatedItem { @Override public boolean canApplyPerk(Perk perk) { - return PerkHelper.RIFLE_PERKS.test(perk); + return PerkHelper.RIFLE_PERKS.test(perk) || PerkHelper.MAGAZINE_PERKS.test(perk); } } \ No newline at end of file diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/rifle/Hk416Item.java b/src/main/java/net/mcreator/superbwarfare/item/gun/rifle/Hk416Item.java index 49f2b1e2f..52ed320d1 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/rifle/Hk416Item.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/rifle/Hk416Item.java @@ -180,6 +180,6 @@ public class Hk416Item extends GunItem implements GeoItem, AnimatedItem { @Override public boolean canApplyPerk(Perk perk) { - return PerkHelper.RIFLE_PERKS.test(perk); + return PerkHelper.RIFLE_PERKS.test(perk) || PerkHelper.MAGAZINE_PERKS.test(perk); } } \ No newline at end of file diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/rifle/M4Item.java b/src/main/java/net/mcreator/superbwarfare/item/gun/rifle/M4Item.java index 7750bfd26..ce48f7346 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/rifle/M4Item.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/rifle/M4Item.java @@ -180,6 +180,6 @@ public class M4Item extends GunItem implements GeoItem, AnimatedItem { @Override public boolean canApplyPerk(Perk perk) { - return PerkHelper.RIFLE_PERKS.test(perk); + return PerkHelper.RIFLE_PERKS.test(perk) || PerkHelper.MAGAZINE_PERKS.test(perk); } } \ No newline at end of file diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/rifle/MarlinItem.java b/src/main/java/net/mcreator/superbwarfare/item/gun/rifle/MarlinItem.java index 8f84d658a..46d3acf9e 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/rifle/MarlinItem.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/rifle/MarlinItem.java @@ -214,6 +214,6 @@ public class MarlinItem extends GunItem implements GeoItem, AnimatedItem { @Override public boolean canApplyPerk(Perk perk) { - return PerkHelper.RIFLE_PERKS.test(perk); + return PerkHelper.RIFLE_PERKS.test(perk) || PerkHelper.MAGAZINE_PERKS.test(perk); } } \ No newline at end of file diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/rifle/Mk14Item.java b/src/main/java/net/mcreator/superbwarfare/item/gun/rifle/Mk14Item.java index be8d7408e..c22953226 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/rifle/Mk14Item.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/rifle/Mk14Item.java @@ -180,6 +180,6 @@ public class Mk14Item extends GunItem implements GeoItem, AnimatedItem { @Override public boolean canApplyPerk(Perk perk) { - return PerkHelper.RIFLE_PERKS.test(perk); + return PerkHelper.RIFLE_PERKS.test(perk) || PerkHelper.MAGAZINE_PERKS.test(perk); } } \ No newline at end of file diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/rifle/Qbz95Item.java b/src/main/java/net/mcreator/superbwarfare/item/gun/rifle/Qbz95Item.java index 8f2529e62..10f6c5030 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/rifle/Qbz95Item.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/rifle/Qbz95Item.java @@ -179,6 +179,6 @@ public class Qbz95Item extends GunItem implements GeoItem, AnimatedItem { @Override public boolean canApplyPerk(Perk perk) { - return PerkHelper.RIFLE_PERKS.test(perk); + return PerkHelper.RIFLE_PERKS.test(perk) || PerkHelper.MAGAZINE_PERKS.test(perk); } } \ No newline at end of file diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/rifle/SksItem.java b/src/main/java/net/mcreator/superbwarfare/item/gun/rifle/SksItem.java index 52d660847..7ffa5f150 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/rifle/SksItem.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/rifle/SksItem.java @@ -180,6 +180,6 @@ public class SksItem extends GunItem implements GeoItem, AnimatedItem { @Override public boolean canApplyPerk(Perk perk) { - return PerkHelper.RIFLE_PERKS.test(perk); + return PerkHelper.RIFLE_PERKS.test(perk) || PerkHelper.MAGAZINE_PERKS.test(perk); } } \ No newline at end of file diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/shotgun/Aa12Item.java b/src/main/java/net/mcreator/superbwarfare/item/gun/shotgun/Aa12Item.java index 025bad664..22de4b2a9 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/shotgun/Aa12Item.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/shotgun/Aa12Item.java @@ -191,6 +191,6 @@ public class Aa12Item extends GunItem implements GeoItem, AnimatedItem { @Override public boolean canApplyPerk(Perk perk) { - return PerkHelper.SHOTGUN_PERKS.test(perk); + return PerkHelper.SHOTGUN_PERKS.test(perk) || PerkHelper.MAGAZINE_PERKS.test(perk); } } \ No newline at end of file diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/shotgun/M870Item.java b/src/main/java/net/mcreator/superbwarfare/item/gun/shotgun/M870Item.java index 43d5e8e5a..5c06c936b 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/shotgun/M870Item.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/shotgun/M870Item.java @@ -201,6 +201,6 @@ public class M870Item extends GunItem implements GeoItem, AnimatedItem { @Override public boolean canApplyPerk(Perk perk) { - return PerkHelper.SHOTGUN_PERKS.test(perk); + return PerkHelper.SHOTGUN_PERKS.test(perk) || PerkHelper.MAGAZINE_PERKS.test(perk); } } \ No newline at end of file diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/smg/VectorItem.java b/src/main/java/net/mcreator/superbwarfare/item/gun/smg/VectorItem.java index 826926f09..ce11b50e8 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/smg/VectorItem.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/smg/VectorItem.java @@ -179,6 +179,6 @@ public class VectorItem extends GunItem implements GeoItem, AnimatedItem { @Override public boolean canApplyPerk(Perk perk) { - return PerkHelper.SMG_PERKS.test(perk); + return PerkHelper.SMG_PERKS.test(perk) || PerkHelper.MAGAZINE_PERKS.test(perk); } } \ No newline at end of file diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/sniper/M98bItem.java b/src/main/java/net/mcreator/superbwarfare/item/gun/sniper/M98bItem.java index e8d2e0618..e67313750 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/sniper/M98bItem.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/sniper/M98bItem.java @@ -182,6 +182,6 @@ public class M98bItem extends GunItem implements GeoItem, AnimatedItem { @Override public boolean canApplyPerk(Perk perk) { - return PerkHelper.SNIPER_RIFLE_PERKS.test(perk); + return PerkHelper.SNIPER_RIFLE_PERKS.test(perk) || PerkHelper.MAGAZINE_PERKS.test(perk); } } \ No newline at end of file diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/sniper/Ntw20Item.java b/src/main/java/net/mcreator/superbwarfare/item/gun/sniper/Ntw20Item.java index f9d2ae7fd..e38fbc3d8 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/sniper/Ntw20Item.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/sniper/Ntw20Item.java @@ -182,6 +182,6 @@ public class Ntw20Item extends GunItem implements GeoItem, AnimatedItem { @Override public boolean canApplyPerk(Perk perk) { - return PerkHelper.SNIPER_RIFLE_PERKS.test(perk); + return PerkHelper.SNIPER_RIFLE_PERKS.test(perk) || PerkHelper.MAGAZINE_PERKS.test(perk); } } \ No newline at end of file diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/sniper/SentinelItem.java b/src/main/java/net/mcreator/superbwarfare/item/gun/sniper/SentinelItem.java index 8da0f212d..f3f6c15c1 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/sniper/SentinelItem.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/sniper/SentinelItem.java @@ -268,6 +268,6 @@ public class SentinelItem extends GunItem implements GeoItem, AnimatedItem { @Override public boolean canApplyPerk(Perk perk) { - return PerkHelper.SNIPER_RIFLE_PERKS.test(perk); + return PerkHelper.SNIPER_RIFLE_PERKS.test(perk) || PerkHelper.MAGAZINE_PERKS.test(perk); } } \ No newline at end of file diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/sniper/SvdItem.java b/src/main/java/net/mcreator/superbwarfare/item/gun/sniper/SvdItem.java index 65a281a56..5456eb511 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/sniper/SvdItem.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/sniper/SvdItem.java @@ -180,6 +180,6 @@ public class SvdItem extends GunItem implements GeoItem, AnimatedItem { @Override public boolean canApplyPerk(Perk perk) { - return PerkHelper.SNIPER_RIFLE_PERKS.test(perk); + return PerkHelper.SNIPER_RIFLE_PERKS.test(perk) || PerkHelper.MAGAZINE_PERKS.test(perk); } } \ No newline at end of file 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 e66475af6..53c87e0b3 100644 --- a/src/main/java/net/mcreator/superbwarfare/network/message/ReloadMessage.java +++ b/src/main/java/net/mcreator/superbwarfare/network/message/ReloadMessage.java @@ -90,23 +90,23 @@ public class ReloadMessage { if (canReload || 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")) { + if (stack.is(ModTags.Items.EXTRA_ONE_AMMO)) { + if (tag.getInt("ammo") < tag.getDouble("mag") + tag.getInt("customMag") + 1) { tag.putBoolean("start_reload", true); } } else { - if (tag.getInt("ammo") < tag.getDouble("mag") + 1) { + if (tag.getInt("ammo") < tag.getDouble("mag") + tag.getInt("customMag")) { tag.putBoolean("start_reload", true); } } - } else if (tag.getInt("ammo") < tag.getDouble("mag")) { + } else if (tag.getInt("ammo") < tag.getDouble("mag") + tag.getInt("customMag")) { tag.putBoolean("start_reload", true); } return; } if (canSingleReload) { - if (tag.getInt("ammo") < tag.getDouble("mag")) { + if (tag.getInt("ammo") < tag.getDouble("mag") + tag.getInt("customMag")) { tag.putBoolean("start_single_reload", true); } } diff --git a/src/main/java/net/mcreator/superbwarfare/perk/PerkHelper.java b/src/main/java/net/mcreator/superbwarfare/perk/PerkHelper.java index cacf16ff1..2fc29c1c9 100644 --- a/src/main/java/net/mcreator/superbwarfare/perk/PerkHelper.java +++ b/src/main/java/net/mcreator/superbwarfare/perk/PerkHelper.java @@ -11,7 +11,6 @@ import net.minecraft.world.item.ItemStack; import net.minecraftforge.registries.RegistryObject; import javax.annotation.Nullable; -import java.util.Objects; import java.util.Optional; import java.util.function.Predicate; @@ -285,6 +284,8 @@ public class PerkHelper { } }; + public static final Predicate MAGAZINE_PERKS = perk -> perk == ModPerks.DIMENSION_MAGAZINE.get(); + public static final Predicate LAUNCHER_PERKS = perk -> perk == ModPerks.MONSTER_HUNTER.get(); } diff --git a/src/main/java/net/mcreator/superbwarfare/tools/GunsTool.java b/src/main/java/net/mcreator/superbwarfare/tools/GunsTool.java index 002cc6915..9d92a8a09 100644 --- a/src/main/java/net/mcreator/superbwarfare/tools/GunsTool.java +++ b/src/main/java/net/mcreator/superbwarfare/tools/GunsTool.java @@ -60,7 +60,7 @@ public class GunsTool { public static void initCreativeGun(ItemStack stack, String location) { if (gunsData != null && gunsData.get(location) != null) { gunsData.get(location).forEach((k, v) -> stack.getOrCreateTag().putDouble(k, v)); - stack.getOrCreateTag().putInt("ammo", stack.getOrCreateTag().getInt("mag")); + stack.getOrCreateTag().putInt("ammo", stack.getOrCreateTag().getInt("mag") + stack.getOrCreateTag().getInt("customMag")); } } @@ -102,7 +102,7 @@ public class GunsTool { CompoundTag tag = living.getMainHandItem().getOrCreateTag(); - int mag = tag.getInt("mag"); + int mag = tag.getInt("mag") + tag.getInt("customMag"); int ammo = tag.getInt("ammo"); int ammoToAdd = mag - ammo + (extraOne ? 1 : 0); /* diff --git a/src/main/resources/assets/superbwarfare/lang/en_us.json b/src/main/resources/assets/superbwarfare/lang/en_us.json index cfee6d3fb..c25883ac1 100644 --- a/src/main/resources/assets/superbwarfare/lang/en_us.json +++ b/src/main/resources/assets/superbwarfare/lang/en_us.json @@ -254,6 +254,8 @@ "des.superbwarfare.field_doctor": "Bullets can heal teammate when shooting without the scope", "item.superbwarfare.super_recharge": "Super Recharge", "des.superbwarfare.super_recharge": "Increases the recharge speed of Taser Gun", + "item.superbwarfare.dimension_magazine": "Dimension Magazine", + "des.superbwarfare.dimension_magazine": "Increases the magazine capacity", "item.superbwarfare.kill_clip": "Kill Clip", "des.superbwarfare.kill_clip": "Increases the damage of weapon after dealing a final blow", diff --git a/src/main/resources/assets/superbwarfare/lang/zh_cn.json b/src/main/resources/assets/superbwarfare/lang/zh_cn.json index 9eafd5f05..0216480ea 100644 --- a/src/main/resources/assets/superbwarfare/lang/zh_cn.json +++ b/src/main/resources/assets/superbwarfare/lang/zh_cn.json @@ -267,6 +267,8 @@ "des.superbwarfare.monster_hunter": "增加武器对怪物的伤害", "item.superbwarfare.volt_overload": "电压过载", "des.superbwarfare.volt_overload": "增加泰瑟枪电击的伤害", + "item.superbwarfare.dimension_magazine": "次元弹匣", + "des.superbwarfare.dimension_magazine": "增加弹匣容量", "perk.superbwarfare.tips": "[武器模组]", "perk.superbwarfare.slot": "类型: ", diff --git a/src/main/resources/assets/superbwarfare/models/item/dimension_magazine.json b/src/main/resources/assets/superbwarfare/models/item/dimension_magazine.json new file mode 100644 index 000000000..85842381b --- /dev/null +++ b/src/main/resources/assets/superbwarfare/models/item/dimension_magazine.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "superbwarfare:item/perk/dimension_magazine" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/superbwarfare/textures/item/perk/dimension_magazine.png b/src/main/resources/assets/superbwarfare/textures/item/perk/dimension_magazine.png new file mode 100644 index 000000000..0d83a37d0 Binary files /dev/null and b/src/main/resources/assets/superbwarfare/textures/item/perk/dimension_magazine.png differ diff --git a/src/main/resources/data/superbwarfare/recipes/perk/dimension_magazine_perk_crafting.json b/src/main/resources/data/superbwarfare/recipes/perk/dimension_magazine_perk_crafting.json new file mode 100644 index 000000000..5fae310c3 --- /dev/null +++ b/src/main/resources/data/superbwarfare/recipes/perk/dimension_magazine_perk_crafting.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "bcb", + "cac", + "bcb" + ], + "key": { + "a": { + "item": "superbwarfare:empty_perk" + }, + "b": { + "item":"minecraft:chest" + }, + "c": { + "item": "minecraft:iron_ingot" + } + }, + "result": { + "item": "superbwarfare:dimension_magazine", + "count": 1 + } +} \ No newline at end of file