添加扩容弹匣

This commit is contained in:
Atsuihsio 2024-10-09 05:49:24 +08:00
parent c37a44ff68
commit d0f523a9e8
38 changed files with 134 additions and 572 deletions

View file

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

View file

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

View file

@ -94,525 +94,6 @@ public class DevotionItemModel extends GeoModel<DevotionItem> {
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");

View file

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

View file

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

View file

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

View file

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

View file

@ -53,6 +53,7 @@ public class ModPerks {
public static final RegistryObject<Perk> SUBSISTENCE = FUNC_PERKS.register("subsistence", () -> new Perk("subsistence", Perk.Type.FUNCTIONAL));
public static final RegistryObject<Perk> FIELD_DOCTOR = FUNC_PERKS.register("field_doctor", () -> new Perk("field_doctor", Perk.Type.FUNCTIONAL));
public static final RegistryObject<Perk> SUPER_RECHARGE = FUNC_PERKS.register("super_recharge", () -> new Perk("super_recharge", Perk.Type.FUNCTIONAL));
public static final RegistryObject<Perk> DIMENSION_MAGAZINE = FUNC_PERKS.register("dimension_magazine", () -> new Perk("dimension_magazine", Perk.Type.FUNCTIONAL));
/**
* Damage Perks

View file

@ -17,6 +17,7 @@ public class ModTags {
public static final TagKey<Item> USE_RIFLE_AMMO = tag("use_rifle_ammo");
public static final TagKey<Item> USE_SHOTGUN_AMMO = tag("use_shotgun_ammo");
public static final TagKey<Item> USE_SNIPER_AMMO = tag("use_sniper_ammo");
public static final TagKey<Item> EXTRA_ONE_AMMO = tag("extra_one_ammo");
public static final TagKey<Item> SMG = tag("smg");
public static final TagKey<Item> HANDGUN = tag("handgun");

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -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<Perk> MAGAZINE_PERKS = perk -> perk == ModPerks.DIMENSION_MAGAZINE.get();
public static final Predicate<Perk> LAUNCHER_PERKS = perk -> perk == ModPerks.MONSTER_HUNTER.get();
}

View file

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

View file

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

View file

@ -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": "类型: ",

View file

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 706 B

View file

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