重写开膛待击和膛内有蛋判定
This commit is contained in:
parent
ca7c919e43
commit
a95d7f19ea
27 changed files with 123 additions and 78 deletions
|
@ -1,4 +1,4 @@
|
||||||
// 1.20.1 2024-11-29T19:04:10.4852137 Tags for minecraft:item mod id superbwarfare
|
// 1.20.1 2024-12-30T13:49:03.1510086 Tags for minecraft:item mod id superbwarfare
|
||||||
cf8d49a8d2872286d1a9c3d4a7e1c2b7690db0b8 data/forge/tags/items/dusts.json
|
cf8d49a8d2872286d1a9c3d4a7e1c2b7690db0b8 data/forge/tags/items/dusts.json
|
||||||
0fa06c2ff83bf09797e3ddff90f62d1124e645b4 data/forge/tags/items/dusts/coal_coke.json
|
0fa06c2ff83bf09797e3ddff90f62d1124e645b4 data/forge/tags/items/dusts/coal_coke.json
|
||||||
295ddf906b7133a0558d03e9a60eea18281fe430 data/forge/tags/items/dusts/iron.json
|
295ddf906b7133a0558d03e9a60eea18281fe430 data/forge/tags/items/dusts/iron.json
|
||||||
|
@ -33,7 +33,6 @@ cedce5ff7bbc95b40cbfced0f03a3da712118049 data/superbwarfare/tags/items/can_apply
|
||||||
cedce5ff7bbc95b40cbfced0f03a3da712118049 data/superbwarfare/tags/items/can_apply_scope.json
|
cedce5ff7bbc95b40cbfced0f03a3da712118049 data/superbwarfare/tags/items/can_apply_scope.json
|
||||||
29af1d9a8f837510bc039feb578330f1a053543f data/superbwarfare/tags/items/can_apply_stock.json
|
29af1d9a8f837510bc039feb578330f1a053543f data/superbwarfare/tags/items/can_apply_stock.json
|
||||||
cedce5ff7bbc95b40cbfced0f03a3da712118049 data/superbwarfare/tags/items/can_custom_gun.json
|
cedce5ff7bbc95b40cbfced0f03a3da712118049 data/superbwarfare/tags/items/can_custom_gun.json
|
||||||
dff9ff6d6637951191906cb55a210ae5a3ad5cd6 data/superbwarfare/tags/items/extra_one_ammo.json
|
|
||||||
52598e22974c8da0d2852defe4c9005e1d67744b data/superbwarfare/tags/items/gun.json
|
52598e22974c8da0d2852defe4c9005e1d67744b data/superbwarfare/tags/items/gun.json
|
||||||
62eb408544731ce4cfcd119d8a6cc74731189ac0 data/superbwarfare/tags/items/handgun.json
|
62eb408544731ce4cfcd119d8a6cc74731189ac0 data/superbwarfare/tags/items/handgun.json
|
||||||
49fbb8c030fdfafec1f291acc1cdff406c777c7e data/superbwarfare/tags/items/has_shell_effect.json
|
49fbb8c030fdfafec1f291acc1cdff406c777c7e data/superbwarfare/tags/items/has_shell_effect.json
|
||||||
|
@ -42,7 +41,6 @@ dae3f86663e841d336efff9d23d8910aa7247be5 data/superbwarfare/tags/items/is_auto_w
|
||||||
b404c6fd99d2ca68c6738f225cb7d68ee443c10a data/superbwarfare/tags/items/machine_gun.json
|
b404c6fd99d2ca68c6738f225cb7d68ee443c10a data/superbwarfare/tags/items/machine_gun.json
|
||||||
a53020091752016da6602ee1b8b7e08823614344 data/superbwarfare/tags/items/military_armor.json
|
a53020091752016da6602ee1b8b7e08823614344 data/superbwarfare/tags/items/military_armor.json
|
||||||
1ff5db892183135cbdd9c38a6b8c6e4eb287341e data/superbwarfare/tags/items/normal_gun.json
|
1ff5db892183135cbdd9c38a6b8c6e4eb287341e data/superbwarfare/tags/items/normal_gun.json
|
||||||
324ad3d6125d66153f899a424521bc99f2c0dde8 data/superbwarfare/tags/items/open_bolt.json
|
|
||||||
15328cd564c931cc0a4fc000596240f93a7b29a1 data/superbwarfare/tags/items/revolver.json
|
15328cd564c931cc0a4fc000596240f93a7b29a1 data/superbwarfare/tags/items/revolver.json
|
||||||
aaa533157491a82b8e23b2914deef67c4078cbed data/superbwarfare/tags/items/rifle.json
|
aaa533157491a82b8e23b2914deef67c4078cbed data/superbwarfare/tags/items/rifle.json
|
||||||
acd4d19dfadb71a1cec43e9c0f4a38fe8d3cf8cb data/superbwarfare/tags/items/shotgun.json
|
acd4d19dfadb71a1cec43e9c0f4a38fe8d3cf8cb data/superbwarfare/tags/items/shotgun.json
|
||||||
|
|
|
@ -1,22 +0,0 @@
|
||||||
{
|
|
||||||
"values": [
|
|
||||||
"superbwarfare:ak_47",
|
|
||||||
"superbwarfare:ak_12",
|
|
||||||
"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"
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,24 +0,0 @@
|
||||||
{
|
|
||||||
"values": [
|
|
||||||
"superbwarfare:abekiri",
|
|
||||||
"superbwarfare:ak_47",
|
|
||||||
"superbwarfare:ak_12",
|
|
||||||
"superbwarfare:svd",
|
|
||||||
"superbwarfare:m_60",
|
|
||||||
"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"
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -104,10 +104,6 @@ public class ModItemTagProvider extends ItemTagsProvider {
|
||||||
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.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());
|
ModItems.DEVOTION.get(), ModItems.M_60.get(), ModItems.RPK.get());
|
||||||
|
|
||||||
this.tag(ModTags.Items.EXTRA_ONE_AMMO).add(ModItems.AK_47.get(), ModItems.AK_12.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.HAS_SHELL_EFFECT).add(ModItems.AK_47.get(), ModItems.AK_12.get(), ModItems.SVD.get(), ModItems.M_60.get(), ModItems.MK_14.get(), ModItems.VECTOR.get(),
|
this.tag(ModTags.Items.HAS_SHELL_EFFECT).add(ModItems.AK_47.get(), ModItems.AK_12.get(), ModItems.SVD.get(), ModItems.M_60.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.GLOCK_17.get(),
|
ModItems.SKS.get(), ModItems.RPK.get(), ModItems.HK_416.get(), ModItems.AA_12.get(), ModItems.M_4.get(), ModItems.DEVOTION.get(), ModItems.GLOCK_17.get(),
|
||||||
ModItems.GLOCK_18.get(), ModItems.M_1911.get(), ModItems.QBZ_95.get());
|
ModItems.GLOCK_18.get(), ModItems.M_1911.get(), ModItems.QBZ_95.get());
|
||||||
|
|
|
@ -402,18 +402,24 @@ public class GunEventHandler {
|
||||||
public static void playGunNormalReload(Player player) {
|
public static void playGunNormalReload(Player player) {
|
||||||
ItemStack stack = player.getMainHandItem();
|
ItemStack stack = player.getMainHandItem();
|
||||||
|
|
||||||
|
GunItem gunItem = null;
|
||||||
|
if (stack.getItem() instanceof GunItem gunItem1) {
|
||||||
|
gunItem = gunItem1;
|
||||||
|
}
|
||||||
|
if (gunItem == null) return;
|
||||||
|
|
||||||
if (player.getInventory().hasAnyMatching(item -> item.is(ModItems.CREATIVE_AMMO_BOX.get()))) {
|
if (player.getInventory().hasAnyMatching(item -> item.is(ModItems.CREATIVE_AMMO_BOX.get()))) {
|
||||||
GunsTool.setGunIntTag(stack, "Ammo", GunsTool.getGunIntTag(stack, "Magazine", 0) + stack.getOrCreateTag().getInt("customMag")
|
GunsTool.setGunIntTag(stack, "Ammo", GunsTool.getGunIntTag(stack, "Magazine", 0) + stack.getOrCreateTag().getInt("customMag")
|
||||||
+ (stack.is(ModTags.Items.EXTRA_ONE_AMMO) ? 1 : 0));
|
+ (gunItem.bulletInBarrel(stack) ? 1 : 0));
|
||||||
} else {
|
} else {
|
||||||
if (stack.is(ModTags.Items.USE_SHOTGUN_AMMO)) {
|
if (stack.is(ModTags.Items.USE_SHOTGUN_AMMO)) {
|
||||||
GunsTool.reload(player, stack, GunInfo.Type.SHOTGUN, stack.is(ModTags.Items.EXTRA_ONE_AMMO));
|
GunsTool.reload(player, stack, GunInfo.Type.SHOTGUN, gunItem.bulletInBarrel(stack));
|
||||||
} else if (stack.is(ModTags.Items.USE_SNIPER_AMMO)) {
|
} else if (stack.is(ModTags.Items.USE_SNIPER_AMMO)) {
|
||||||
GunsTool.reload(player, stack, GunInfo.Type.SNIPER, true);
|
GunsTool.reload(player, stack, GunInfo.Type.SNIPER, true);
|
||||||
} else if (stack.is(ModTags.Items.USE_HANDGUN_AMMO)) {
|
} else if (stack.is(ModTags.Items.USE_HANDGUN_AMMO)) {
|
||||||
GunsTool.reload(player, stack, GunInfo.Type.HANDGUN, true);
|
GunsTool.reload(player, stack, GunInfo.Type.HANDGUN, true);
|
||||||
} else if (stack.is(ModTags.Items.USE_RIFLE_AMMO)) {
|
} else if (stack.is(ModTags.Items.USE_RIFLE_AMMO)) {
|
||||||
GunsTool.reload(player, stack, GunInfo.Type.RIFLE, stack.is(ModTags.Items.EXTRA_ONE_AMMO));
|
GunsTool.reload(player, stack, GunInfo.Type.RIFLE, gunItem.bulletInBarrel(stack));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stack.getOrCreateTag().putBoolean("is_normal_reloading", false);
|
stack.getOrCreateTag().putBoolean("is_normal_reloading", false);
|
||||||
|
|
|
@ -17,7 +17,6 @@ public class ModTags {
|
||||||
public static final TagKey<Item> USE_RIFLE_AMMO = tag("use_rifle_ammo");
|
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_SHOTGUN_AMMO = tag("use_shotgun_ammo");
|
||||||
public static final TagKey<Item> USE_SNIPER_AMMO = tag("use_sniper_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> SMG = tag("smg");
|
||||||
public static final TagKey<Item> HANDGUN = tag("handgun");
|
public static final TagKey<Item> HANDGUN = tag("handgun");
|
||||||
|
|
|
@ -55,6 +55,12 @@ public abstract class GunItem extends Item {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GunItem gunItem = null;
|
||||||
|
if (stack.getItem() instanceof GunItem gunItem1) {
|
||||||
|
gunItem = gunItem1;
|
||||||
|
}
|
||||||
|
if (gunItem == null) return;
|
||||||
|
|
||||||
if (!ItemNBTTool.getBoolean(stack, "init", false)) {
|
if (!ItemNBTTool.getBoolean(stack, "init", false)) {
|
||||||
GunsTool.initGun(level, stack, this.getDescriptionId().substring(this.getDescriptionId().lastIndexOf('.') + 1));
|
GunsTool.initGun(level, stack, this.getDescriptionId().substring(this.getDescriptionId().lastIndexOf('.') + 1));
|
||||||
GunsTool.generateAndSetUUID(stack);
|
GunsTool.generateAndSetUUID(stack);
|
||||||
|
@ -68,10 +74,10 @@ public abstract class GunItem extends Item {
|
||||||
handleGunPerks(stack);
|
handleGunPerks(stack);
|
||||||
handleGunAttachment(stack);
|
handleGunAttachment(stack);
|
||||||
|
|
||||||
if ((stack.is(ModTags.Items.EXTRA_ONE_AMMO) && GunsTool.getGunIntTag(stack, "Ammo", 0) > GunsTool.getGunIntTag(stack, "Magazine", 0) + stack.getOrCreateTag().getInt("customMag") + 1)
|
if ((gunItem.bulletInBarrel(stack) && gunItem.getAmmoCount(stack) > GunsTool.getGunIntTag(stack, "Magazine", 0) + stack.getOrCreateTag().getInt("customMag") + 1)
|
||||||
|| (!stack.is(ModTags.Items.EXTRA_ONE_AMMO) && GunsTool.getGunIntTag(stack, "Ammo", 0) > GunsTool.getGunIntTag(stack, "Magazine", 0) + stack.getOrCreateTag().getInt("customMag"))
|
|| (!gunItem.bulletInBarrel(stack) && gunItem.getAmmoCount(stack) > GunsTool.getGunIntTag(stack, "Magazine", 0) + stack.getOrCreateTag().getInt("customMag"))
|
||||||
) {
|
) {
|
||||||
int count = GunsTool.getGunIntTag(stack, "Ammo", 0) - GunsTool.getGunIntTag(stack, "Magazine", 0) + stack.getOrCreateTag().getInt("customMag") - (stack.is(ModTags.Items.EXTRA_ONE_AMMO) ? 1 : 0);
|
int count = gunItem.getAmmoCount(stack) - GunsTool.getGunIntTag(stack, "Magazine", 0) + stack.getOrCreateTag().getInt("customMag") - (gunItem.bulletInBarrel(stack) ? 1 : 0);
|
||||||
entity.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> {
|
entity.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> {
|
||||||
|
|
||||||
if (stack.is(ModTags.Items.USE_SHOTGUN_AMMO)) {
|
if (stack.is(ModTags.Items.USE_SHOTGUN_AMMO)) {
|
||||||
|
@ -86,7 +92,7 @@ public abstract class GunItem extends Item {
|
||||||
capability.syncPlayerVariables(entity);
|
capability.syncPlayerVariables(entity);
|
||||||
});
|
});
|
||||||
|
|
||||||
GunsTool.setGunIntTag(stack, "Ammo", GunsTool.getGunIntTag(stack, "Magazine", 0) + stack.getOrCreateTag().getInt("customMag") + (stack.is(ModTags.Items.EXTRA_ONE_AMMO) ? 1 : 0));
|
GunsTool.setGunIntTag(stack, "Ammo", GunsTool.getGunIntTag(stack, "Magazine", 0) + stack.getOrCreateTag().getInt("customMag") + (gunItem.bulletInBarrel(stack) ? 1 : 0));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -251,4 +257,8 @@ public abstract class GunItem extends Item {
|
||||||
public boolean isOpenBolt(ItemStack stack) {
|
public boolean isOpenBolt(ItemStack stack) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean bulletInBarrel(ItemStack stack) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -157,4 +157,9 @@ public class Glock17Item extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean isOpenBolt(ItemStack stack) {
|
public boolean isOpenBolt(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean bulletInBarrel(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -160,4 +160,9 @@ public class Glock18Item extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean isOpenBolt(ItemStack stack) {
|
public boolean isOpenBolt(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean bulletInBarrel(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -148,4 +148,9 @@ public class M1911Item extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean isOpenBolt(ItemStack stack) {
|
public boolean isOpenBolt(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean bulletInBarrel(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -144,4 +144,9 @@ public class DevotionItem extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean isOpenBolt(ItemStack stack) {
|
public boolean isOpenBolt(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean bulletInBarrel(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -145,4 +145,9 @@ public class RpkItem extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean isOpenBolt(ItemStack stack) {
|
public boolean isOpenBolt(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean bulletInBarrel(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -209,4 +209,9 @@ public class AK12Item extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean isOpenBolt(ItemStack stack) {
|
public boolean isOpenBolt(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean bulletInBarrel(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -223,4 +223,9 @@ public class AK47Item extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean isOpenBolt(ItemStack stack) {
|
public boolean isOpenBolt(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean bulletInBarrel(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -225,4 +225,9 @@ public class Hk416Item extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean isOpenBolt(ItemStack stack) {
|
public boolean isOpenBolt(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean bulletInBarrel(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -224,4 +224,9 @@ public class M4Item extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean isOpenBolt(ItemStack stack) {
|
public boolean isOpenBolt(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean bulletInBarrel(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -223,4 +223,9 @@ public class Mk14Item extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean isOpenBolt(ItemStack stack) {
|
public boolean isOpenBolt(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean bulletInBarrel(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -226,4 +226,9 @@ public class Qbz95Item extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean isOpenBolt(ItemStack stack) {
|
public boolean isOpenBolt(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean bulletInBarrel(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -158,4 +158,9 @@ public class SksItem extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean isOpenBolt(ItemStack stack) {
|
public boolean isOpenBolt(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean bulletInBarrel(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -177,4 +177,9 @@ public class Aa12Item extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean isOpenBolt(ItemStack stack) {
|
public boolean isOpenBolt(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean bulletInBarrel(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -199,4 +199,9 @@ public class VectorItem extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean isOpenBolt(ItemStack stack) {
|
public boolean isOpenBolt(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean bulletInBarrel(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -160,4 +160,9 @@ public class M98bItem extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean isOpenBolt(ItemStack stack) {
|
public boolean isOpenBolt(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean bulletInBarrel(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -161,4 +161,9 @@ public class Ntw20Item extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean isOpenBolt(ItemStack stack) {
|
public boolean isOpenBolt(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean bulletInBarrel(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -243,4 +243,9 @@ public class SentinelItem extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean isOpenBolt(ItemStack stack) {
|
public boolean isOpenBolt(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean bulletInBarrel(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -143,4 +143,9 @@ public class SvdItem extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public boolean isOpenBolt(ItemStack stack) {
|
public boolean isOpenBolt(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean bulletInBarrel(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -96,26 +96,12 @@ public class ReloadMessage {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (canReload || clipLoad) {
|
if (canReload || clipLoad) {
|
||||||
int magazine = gunItem.getAmmoCount(stack);
|
tag.putBoolean("start_reload", true);
|
||||||
|
|
||||||
if (gunItem.isOpenBolt(stack)) {
|
|
||||||
if (stack.is(ModTags.Items.EXTRA_ONE_AMMO)) {
|
|
||||||
if (GunsTool.getGunIntTag(stack, "Ammo", 0) < magazine + tag.getInt("customMag") + 1) {
|
|
||||||
tag.putBoolean("start_reload", true);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (GunsTool.getGunIntTag(stack, "Ammo", 0) < magazine + tag.getInt("customMag")) {
|
|
||||||
tag.putBoolean("start_reload", true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else if (GunsTool.getGunIntTag(stack, "Ammo", 0) < magazine + tag.getInt("customMag")) {
|
|
||||||
tag.putBoolean("start_reload", true);
|
|
||||||
}
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (canSingleReload) {
|
if (canSingleReload) {
|
||||||
if (GunsTool.getGunIntTag(stack, "Ammo", 0) < GunsTool.getGunIntTag(stack, "Magazine", 0) + tag.getInt("customMag")) {
|
if (gunItem.getAmmoCount(stack) < GunsTool.getGunIntTag(stack, "Magazine", 0) + tag.getInt("customMag")) {
|
||||||
tag.putBoolean("start_single_reload", true);
|
tag.putBoolean("start_single_reload", true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ package com.atsuishio.superbwarfare.tools;
|
||||||
|
|
||||||
import com.atsuishio.superbwarfare.ModUtils;
|
import com.atsuishio.superbwarfare.ModUtils;
|
||||||
import com.atsuishio.superbwarfare.init.ModTags;
|
import com.atsuishio.superbwarfare.init.ModTags;
|
||||||
|
import com.atsuishio.superbwarfare.item.gun.GunItem;
|
||||||
import com.atsuishio.superbwarfare.network.ModVariables;
|
import com.atsuishio.superbwarfare.network.ModVariables;
|
||||||
import com.atsuishio.superbwarfare.network.message.GunsDataMessage;
|
import com.atsuishio.superbwarfare.network.message.GunsDataMessage;
|
||||||
import com.google.gson.stream.JsonReader;
|
import com.google.gson.stream.JsonReader;
|
||||||
|
@ -102,9 +103,14 @@ public class GunsTool {
|
||||||
|
|
||||||
public static void reload(Player player, ItemStack stack, GunInfo.Type type, boolean extraOne) {
|
public static void reload(Player player, ItemStack stack, GunInfo.Type type, boolean extraOne) {
|
||||||
CompoundTag tag = stack.getOrCreateTag();
|
CompoundTag tag = stack.getOrCreateTag();
|
||||||
|
GunItem gunItem = null;
|
||||||
|
if (stack.getItem() instanceof GunItem gunItem1) {
|
||||||
|
gunItem = gunItem1;
|
||||||
|
}
|
||||||
|
if (gunItem == null) return;
|
||||||
|
|
||||||
int mag = GunsTool.getGunIntTag(stack, "Magazine", 0) + tag.getInt("customMag");
|
int mag = GunsTool.getGunIntTag(stack, "Magazine", 0) + tag.getInt("customMag");
|
||||||
int ammo = GunsTool.getGunIntTag(stack, "Ammo", 0);
|
int ammo = gunItem.getAmmoCount(stack);
|
||||||
int ammoToAdd = mag - ammo + (extraOne ? 1 : 0);
|
int ammoToAdd = mag - ammo + (extraOne ? 1 : 0);
|
||||||
|
|
||||||
// 空仓换弹的栓动武器应该在换弹后取消待上膛标记
|
// 空仓换弹的栓动武器应该在换弹后取消待上膛标记
|
||||||
|
|
Loading…
Add table
Reference in a new issue