优化GunItem方法命名,添加注释

This commit is contained in:
Light_Quanta 2025-03-08 21:36:56 +08:00
parent 1549652aa2
commit d8484ba7b1
No known key found for this signature in database
GPG key ID: 11A39A1B8C890959
37 changed files with 288 additions and 211 deletions

View file

@ -231,21 +231,21 @@ public class ClickHandler {
if (player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).edit) { if (player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).edit) {
if (!(stack.getItem() instanceof GunItem gunItem)) return; if (!(stack.getItem() instanceof GunItem gunItem)) return;
if (ModKeyMappings.EDIT_GRIP.getKeyModifier().isActive(KeyConflictContext.IN_GAME)) { if (ModKeyMappings.EDIT_GRIP.getKeyModifier().isActive(KeyConflictContext.IN_GAME)) {
if (key == ModKeyMappings.EDIT_GRIP.getKey().getValue() && gunItem.canCustomGrip(stack)) { if (key == ModKeyMappings.EDIT_GRIP.getKey().getValue() && gunItem.hasCustomGrip(stack)) {
ModUtils.PACKET_HANDLER.sendToServer(new EditMessage(4)); ModUtils.PACKET_HANDLER.sendToServer(new EditMessage(4));
editModelShake(); editModelShake();
} }
} else { } else {
if (key == ModKeyMappings.EDIT_SCOPE.getKey().getValue() && gunItem.canCustomScope(stack)) { if (key == ModKeyMappings.EDIT_SCOPE.getKey().getValue() && gunItem.hasCustomScope(stack)) {
ModUtils.PACKET_HANDLER.sendToServer(new EditMessage(0)); ModUtils.PACKET_HANDLER.sendToServer(new EditMessage(0));
editModelShake(); editModelShake();
} else if (key == ModKeyMappings.EDIT_BARREL.getKey().getValue() && gunItem.canCustomBarrel(stack)) { } else if (key == ModKeyMappings.EDIT_BARREL.getKey().getValue() && gunItem.hasCustomBarrel(stack)) {
ModUtils.PACKET_HANDLER.sendToServer(new EditMessage(1)); ModUtils.PACKET_HANDLER.sendToServer(new EditMessage(1));
editModelShake(); editModelShake();
} else if (key == ModKeyMappings.EDIT_MAGAZINE.getKey().getValue() && gunItem.canCustomMagazine(stack)) { } else if (key == ModKeyMappings.EDIT_MAGAZINE.getKey().getValue() && gunItem.hasCustomMagazine(stack)) {
ModUtils.PACKET_HANDLER.sendToServer(new EditMessage(2)); ModUtils.PACKET_HANDLER.sendToServer(new EditMessage(2));
editModelShake(); editModelShake();
} else if (key == ModKeyMappings.EDIT_STOCK.getKey().getValue() && gunItem.canCustomStock(stack)) { } else if (key == ModKeyMappings.EDIT_STOCK.getKey().getValue() && gunItem.hasCustomStock(stack)) {
ModUtils.PACKET_HANDLER.sendToServer(new EditMessage(3)); ModUtils.PACKET_HANDLER.sendToServer(new EditMessage(3));
editModelShake(); editModelShake();
} }

View file

@ -67,7 +67,7 @@ public class ClientGunImageTooltip implements ClientTooltipComponent {
protected boolean shouldRenderEditTooltip() { protected boolean shouldRenderEditTooltip() {
if (this.stack.getItem() instanceof GunItem gunItem) { if (this.stack.getItem() instanceof GunItem gunItem) {
return gunItem.canCustom(stack); return gunItem.isCustomizable(stack);
} }
return false; return false;
} }
@ -100,7 +100,7 @@ public class ClientGunImageTooltip implements ClientTooltipComponent {
* 获取武器射速的文本组件 * 获取武器射速的文本组件
*/ */
protected Component getRpmComponent() { protected Component getRpmComponent() {
if (this.stack.getItem() instanceof GunItem gunItem && gunItem.autoWeapon(this.stack)) { if (this.stack.getItem() instanceof GunItem gunItem && gunItem.isAutoWeapon(this.stack)) {
return Component.translatable("des.superbwarfare.guns.rpm").withStyle(ChatFormatting.GRAY) return Component.translatable("des.superbwarfare.guns.rpm").withStyle(ChatFormatting.GRAY)
.append(Component.literal("").withStyle(ChatFormatting.RESET)) .append(Component.literal("").withStyle(ChatFormatting.RESET))
.append(Component.literal(FormatTool.format0D(GunsTool.getGunIntTag(stack, "RPM", 0))) .append(Component.literal(FormatTool.format0D(GunsTool.getGunIntTag(stack, "RPM", 0)))

View file

@ -278,7 +278,7 @@ public class ClientEventHandler {
public static void handleGunMelee(Player player, ItemStack stack) { public static void handleGunMelee(Player player, ItemStack stack) {
if (stack.getItem() instanceof GunItem gunItem) { if (stack.getItem() instanceof GunItem gunItem) {
if (gunItem.canUseMelee(stack) && gunMelee == 0 && drawTime < 0.01 if (gunItem.hasMeleeAttack(stack) && gunMelee == 0 && drawTime < 0.01
&& ModKeyMappings.MELEE.isDown() && ModKeyMappings.MELEE.isDown()
&& !(player.getVehicle() instanceof ArmedVehicleEntity iArmedVehicle && iArmedVehicle.banHand(player)) && !(player.getVehicle() instanceof ArmedVehicleEntity iArmedVehicle && iArmedVehicle.banHand(player))
&& !holdFireVehicle && !holdFireVehicle
@ -677,7 +677,7 @@ public class ClientEventHandler {
ClipContext.Block.OUTLINE, ClipContext.Fluid.NONE, player)).getBlockPos()))); ClipContext.Block.OUTLINE, ClipContext.Fluid.NONE, player)).getBlockPos())));
ModUtils.queueClientWork((int) (1 + 1.5 * shooterHeight), () -> { ModUtils.queueClientWork((int) (1 + 1.5 * shooterHeight), () -> {
if (gunItem.ejectShell(stack)) { if (gunItem.canEjectShell(stack)) {
if (stack.is(ModTags.Items.SHOTGUN)) { if (stack.is(ModTags.Items.SHOTGUN)) {
player.playSound(ModSounds.SHELL_CASING_SHOTGUN.get(), (float) Math.max(0.75 - 0.12 * shooterHeight, 0), 1); player.playSound(ModSounds.SHELL_CASING_SHOTGUN.get(), (float) Math.max(0.75 - 0.12 * shooterHeight, 0), 1);
} else if (stack.is(ModTags.Items.SNIPER_RIFLE) || stack.is(ModTags.Items.HEAVY_WEAPON)) { } else if (stack.is(ModTags.Items.SNIPER_RIFLE) || stack.is(ModTags.Items.HEAVY_WEAPON)) {
@ -1170,7 +1170,7 @@ public class ClientEventHandler {
default -> 2.0; default -> 2.0;
}; };
if (!gunItem.canCustom(stack)) { if (!gunItem.isCustomizable(stack)) {
recoil = 1.6; recoil = 1.6;
gripRecoilX = 0.75; gripRecoilX = 0.75;
gripRecoilY = 1.25; gripRecoilY = 1.25;

View file

@ -417,18 +417,18 @@ public class GunEventHandler {
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) GunsTool.setGunIntTag(stack, "Ammo", GunsTool.getGunIntTag(stack, "Magazine", 0)
+ GunsTool.getGunIntTag(stack, "CustomMagazine", 0) + GunsTool.getGunIntTag(stack, "CustomMagazine", 0)
+ (gunItem.bulletInBarrel(stack) ? 1 : 0)); + (gunItem.hasBulletInBarrel(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, AmmoType.SHOTGUN, gunItem.bulletInBarrel(stack)); GunsTool.reload(player, stack, AmmoType.SHOTGUN, gunItem.hasBulletInBarrel(stack));
} else if (stack.is(ModTags.Items.USE_SNIPER_AMMO)) { } else if (stack.is(ModTags.Items.USE_SNIPER_AMMO)) {
GunsTool.reload(player, stack, AmmoType.SNIPER, true); GunsTool.reload(player, stack, AmmoType.SNIPER, true);
} else if (stack.is(ModTags.Items.USE_HANDGUN_AMMO)) { } else if (stack.is(ModTags.Items.USE_HANDGUN_AMMO)) {
GunsTool.reload(player, stack, AmmoType.HANDGUN, true); GunsTool.reload(player, stack, AmmoType.HANDGUN, true);
} else if (stack.is(ModTags.Items.USE_RIFLE_AMMO)) { } else if (stack.is(ModTags.Items.USE_RIFLE_AMMO)) {
GunsTool.reload(player, stack, AmmoType.RIFLE, gunItem.bulletInBarrel(stack)); GunsTool.reload(player, stack, AmmoType.RIFLE, gunItem.hasBulletInBarrel(stack));
} else if (stack.is(ModTags.Items.USE_HEAVY_AMMO)) { } else if (stack.is(ModTags.Items.USE_HEAVY_AMMO)) {
GunsTool.reload(player, stack, AmmoType.HEAVY, gunItem.bulletInBarrel(stack)); GunsTool.reload(player, stack, AmmoType.HEAVY, gunItem.hasBulletInBarrel(stack));
} }
} }
stack.getOrCreateTag().putBoolean("is_normal_reloading", false); stack.getOrCreateTag().putBoolean("is_normal_reloading", false);

View file

@ -33,6 +33,7 @@ import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import javax.annotation.ParametersAreNonnullByDefault;
import java.util.Optional; import java.util.Optional;
import java.util.Set; import java.util.Set;
import java.util.UUID; import java.util.UUID;
@ -45,65 +46,57 @@ public abstract class GunItem extends Item {
} }
@Override @Override
public boolean canAttackBlock(BlockState p_41441_, Level p_41442_, BlockPos p_41443_, Player p_41444_) { @ParametersAreNonnullByDefault
public boolean canAttackBlock(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer) {
return false; return false;
} }
@Override @Override
public void inventoryTick(ItemStack stack, Level level, Entity entity, int slot, boolean selected) { public void inventoryTick(ItemStack stack, Level level, Entity entity, int slot, boolean selected) {
if (entity instanceof LivingEntity) { if (!(entity instanceof LivingEntity)) return;
if (!stack.is(ModTags.Items.GUN)) { if (!stack.is(ModTags.Items.GUN)) return;
return; if (!(stack.getItem() instanceof GunItem gunItem)) return;
}
if (!(stack.getItem() instanceof GunItem gunItem)) return; if (!ItemNBTTool.getBoolean(stack, "init", false)) {
GunsTool.initGun(level, stack, this.getDescriptionId().substring(this.getDescriptionId().lastIndexOf('.') + 1));
if (!ItemNBTTool.getBoolean(stack, "init", false)) { GunsTool.generateAndSetUUID(stack);
GunsTool.initGun(level, stack, this.getDescriptionId().substring(this.getDescriptionId().lastIndexOf('.') + 1)); ItemNBTTool.setBoolean(stack, "init", true);
GunsTool.generateAndSetUUID(stack);
ItemNBTTool.setBoolean(stack, "init", true);
}
if (stack.getOrCreateTag().getBoolean("draw")) {
stack.getOrCreateTag().putBoolean("draw", false);
}
handleGunPerks(stack);
handleGunAttachment(stack);
if ((gunItem.bulletInBarrel(stack) && GunsTool.getGunIntTag(stack, "Ammo", 0) >
GunsTool.getGunIntTag(stack, "Magazine", 0) + GunsTool.getGunIntTag(stack, "CustomMagazine", 0) + 1)
|| (!gunItem.bulletInBarrel(stack) && GunsTool.getGunIntTag(stack, "Ammo", 0) >
GunsTool.getGunIntTag(stack, "Magazine", 0) + GunsTool.getGunIntTag(stack, "CustomMagazine", 0))
) {
int count = GunsTool.getGunIntTag(stack, "Ammo", 0) - GunsTool.getGunIntTag(stack, "Magazine", 0)
+ GunsTool.getGunIntTag(stack, "CustomMagazine", 0) - (gunItem.bulletInBarrel(stack) ? 1 : 0);
entity.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> {
if (stack.is(ModTags.Items.USE_SHOTGUN_AMMO)) {
capability.shotgunAmmo = entity.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).shotgunAmmo + count;
} else if (stack.is(ModTags.Items.USE_SNIPER_AMMO)) {
capability.sniperAmmo = entity.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).sniperAmmo + count;
} else if (stack.is(ModTags.Items.USE_HANDGUN_AMMO)) {
capability.handgunAmmo = entity.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).handgunAmmo + count;
} else if (stack.is(ModTags.Items.USE_RIFLE_AMMO)) {
capability.rifleAmmo = entity.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).rifleAmmo + count;
} else if (stack.is(ModTags.Items.USE_HEAVY_AMMO)) {
capability.rifleAmmo = entity.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).heavyAmmo + count;
}
capability.syncPlayerVariables(entity);
});
GunsTool.setGunIntTag(stack, "Ammo", GunsTool.getGunIntTag(stack, "Magazine", 0)
+ GunsTool.getGunIntTag(stack, "CustomMagazine", 0) + (gunItem.bulletInBarrel(stack) ? 1 : 0));
}
} }
}
@Override if (stack.getOrCreateTag().getBoolean("draw")) {
public boolean onEntitySwing(ItemStack stack, LivingEntity entity) { stack.getOrCreateTag().putBoolean("draw", false);
return false; }
handleGunPerks(stack);
handleGunAttachment(stack);
if ((gunItem.hasBulletInBarrel(stack) && GunsTool.getGunIntTag(stack, "Ammo", 0) >
GunsTool.getGunIntTag(stack, "Magazine", 0) + GunsTool.getGunIntTag(stack, "CustomMagazine", 0) + 1)
|| (!gunItem.hasBulletInBarrel(stack) && GunsTool.getGunIntTag(stack, "Ammo", 0) >
GunsTool.getGunIntTag(stack, "Magazine", 0) + GunsTool.getGunIntTag(stack, "CustomMagazine", 0))
) {
int count = GunsTool.getGunIntTag(stack, "Ammo", 0) - GunsTool.getGunIntTag(stack, "Magazine", 0)
+ GunsTool.getGunIntTag(stack, "CustomMagazine", 0) - (gunItem.hasBulletInBarrel(stack) ? 1 : 0);
entity.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> {
if (stack.is(ModTags.Items.USE_SHOTGUN_AMMO)) {
capability.shotgunAmmo = entity.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).shotgunAmmo + count;
} else if (stack.is(ModTags.Items.USE_SNIPER_AMMO)) {
capability.sniperAmmo = entity.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).sniperAmmo + count;
} else if (stack.is(ModTags.Items.USE_HANDGUN_AMMO)) {
capability.handgunAmmo = entity.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).handgunAmmo + count;
} else if (stack.is(ModTags.Items.USE_RIFLE_AMMO)) {
capability.rifleAmmo = entity.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).rifleAmmo + count;
} else if (stack.is(ModTags.Items.USE_HEAVY_AMMO)) {
capability.rifleAmmo = entity.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).heavyAmmo + count;
}
capability.syncPlayerVariables(entity);
});
GunsTool.setGunIntTag(stack, "Ammo", GunsTool.getGunIntTag(stack, "Magazine", 0)
+ GunsTool.getGunIntTag(stack, "CustomMagazine", 0) + (gunItem.hasBulletInBarrel(stack) ? 1 : 0));
}
} }
@Override @Override
@ -143,7 +136,7 @@ public abstract class GunItem extends Item {
} }
@Override @Override
public boolean isFoil(ItemStack stack) { public boolean isFoil(@NotNull ItemStack stack) {
return false; return false;
} }
@ -156,7 +149,7 @@ public abstract class GunItem extends Item {
} }
@Override @Override
public boolean isEnchantable(ItemStack stack) { public boolean isEnchantable(@NotNull ItemStack stack) {
return false; return false;
} }
@ -166,7 +159,7 @@ public abstract class GunItem extends Item {
} }
private void handleGunPerks(ItemStack stack) { private void handleGunPerks(ItemStack stack) {
reducePerkTagTime(stack, "HealClipTime", "KillClipReloadTime", "KillClipTime", "FourthTimesCharmTick", "HeadSeeker", reducePerkTagCoolDown(stack, "HealClipTime", "KillClipReloadTime", "KillClipTime", "FourthTimesCharmTick", "HeadSeeker",
"DesperadoTime", "DesperadoTimePost"); "DesperadoTime", "DesperadoTimePost");
if (PerkHelper.getItemPerkLevel(ModPerks.FOURTH_TIMES_CHARM.get(), stack) > 0) { if (PerkHelper.getItemPerkLevel(ModPerks.FOURTH_TIMES_CHARM.get(), stack) > 0) {
@ -225,7 +218,7 @@ public abstract class GunItem extends Item {
return true; return true;
} }
private void reducePerkTagTime(ItemStack stack, String... tag) { private void reducePerkTagCoolDown(ItemStack stack, String... tag) {
if (!stack.hasTag() || stack.getTag() == null) { if (!stack.hasTag() || stack.getTag() == null) {
return; return;
} }
@ -243,70 +236,154 @@ public abstract class GunItem extends Item {
stack.addTagElement("PerkData", compound); stack.addTagElement("PerkData", compound);
} }
/**
* 是否使用弹匣换弹
*
* @param stack 武器物品
*/
public boolean isMagazineReload(ItemStack stack) { public boolean isMagazineReload(ItemStack stack) {
return false; return false;
} }
/**
* 是否使用弹夹换弹
*
* @param stack 武器物品
*/
public boolean isClipReload(ItemStack stack) { public boolean isClipReload(ItemStack stack) {
return false; return false;
} }
/**
* 是否是单发装填换弹
*
* @param stack 武器物品
*/
public boolean isIterativeReload(ItemStack stack) { public boolean isIterativeReload(ItemStack stack) {
return false; return false;
} }
/**
* 开膛待击
*
* @param stack 武器物品
*/
public boolean isOpenBolt(ItemStack stack) { public boolean isOpenBolt(ItemStack stack) {
return false; return false;
} }
public boolean bulletInBarrel(ItemStack stack) { /**
* 是否允许额外往枪管里塞入一发子弹
*
* @param stack 武器物品
*/
public boolean hasBulletInBarrel(ItemStack stack) {
return false; return false;
} }
public boolean autoWeapon(ItemStack stack) { /**
* 武器是否为全自动武器
*
* @param stack 武器物品
*/
public boolean isAutoWeapon(ItemStack stack) {
return false; return false;
} }
/**
* 武器是否直接使用背包内的弹药物品进行发射而不是使用玩家存储的弹药
*
* @param stack 武器物品
*/
public boolean useBackpackAmmo(ItemStack stack) { public boolean useBackpackAmmo(ItemStack stack) {
return false; return false;
} }
public boolean canCustom(ItemStack stack) { /**
* 武器是否能进行改装
*
* @param stack 武器物品
*/
public boolean isCustomizable(ItemStack stack) {
return false; return false;
} }
public boolean canCustomBarrel(ItemStack stack) { /**
* 武器是否能更换枪管配件
*
* @param stack 武器物品
*/
public boolean hasCustomBarrel(ItemStack stack) {
return false; return false;
} }
public boolean canCustomGrip(ItemStack stack) { /**
* 武器是否能更换枪托配件
*
* @param stack 武器物品
*/
public boolean hasCustomGrip(ItemStack stack) {
return false; return false;
} }
public boolean canCustomMagazine(ItemStack stack) { /**
* 武器是否能更换弹匣配件
*
* @param stack 武器物品
*/
public boolean hasCustomMagazine(ItemStack stack) {
return false; return false;
} }
public boolean canCustomScope(ItemStack stack) { /**
* 武器是否能更换瞄具配件
*
* @param stack 武器物品
*/
public boolean hasCustomScope(ItemStack stack) {
return false; return false;
} }
public boolean canCustomStock(ItemStack stack) { /**
* 武器是否能更换枪托配件
*
* @param stack 武器物品
*/
public boolean hasCustomStock(ItemStack stack) {
return false; return false;
} }
/**
* 武器是否有脚架
*
* @param stack 武器物品
*/
public boolean hasBipod(ItemStack stack) { public boolean hasBipod(ItemStack stack) {
return false; return false;
} }
public boolean ejectShell(ItemStack stack) { /**
* 武器是否会抛壳
*
* @param stack 武器物品
*/
public boolean canEjectShell(ItemStack stack) {
return false; return false;
} }
public boolean canUseMelee(ItemStack stack) { /**
* 武器是否能进行近战攻击
*
* @param stack 武器物品
*/
public boolean hasMeleeAttack(ItemStack stack) {
return false; return false;
} }
public int getFireMode() { /**
* 获取武器可用的开火模式
*/
public int getAvailableFireModes() {
return 0; return 0;
} }

View file

@ -160,17 +160,17 @@ public class Glock17Item extends GunItem implements GeoItem, AnimatedItem {
} }
@Override @Override
public boolean bulletInBarrel(ItemStack stack) { public boolean hasBulletInBarrel(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean ejectShell(ItemStack stack) { public boolean canEjectShell(ItemStack stack) {
return true; return true;
} }
@Override @Override
public int getFireMode() { public int getAvailableFireModes() {
return FireMode.SEMI.flag; return FireMode.SEMI.flag;
} }
} }

View file

@ -163,22 +163,22 @@ public class Glock18Item extends GunItem implements GeoItem, AnimatedItem {
} }
@Override @Override
public boolean bulletInBarrel(ItemStack stack) { public boolean hasBulletInBarrel(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean autoWeapon(ItemStack stack) { public boolean isAutoWeapon(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean ejectShell(ItemStack stack) { public boolean canEjectShell(ItemStack stack) {
return true; return true;
} }
@Override @Override
public int getFireMode() { public int getAvailableFireModes() {
return FireMode.SEMI.flag + FireMode.AUTO.flag; return FireMode.SEMI.flag + FireMode.AUTO.flag;
} }
} }

View file

@ -163,17 +163,17 @@ public class M1911Item extends GunItem implements GeoItem, AnimatedItem {
} }
@Override @Override
public boolean bulletInBarrel(ItemStack stack) { public boolean hasBulletInBarrel(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean ejectShell(ItemStack stack) { public boolean canEjectShell(ItemStack stack) {
return true; return true;
} }
@Override @Override
public int getFireMode() { public int getAvailableFireModes() {
return FireMode.SEMI.flag; return FireMode.SEMI.flag;
} }
} }

View file

@ -160,17 +160,17 @@ public class Mp443Item extends GunItem implements GeoItem, AnimatedItem {
} }
@Override @Override
public boolean bulletInBarrel(ItemStack stack) { public boolean hasBulletInBarrel(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean ejectShell(ItemStack stack) { public boolean canEjectShell(ItemStack stack) {
return true; return true;
} }
@Override @Override
public int getFireMode() { public int getAvailableFireModes() {
return FireMode.SEMI.flag; return FireMode.SEMI.flag;
} }
} }

View file

@ -320,32 +320,32 @@ public class Trachelium extends GunItem implements GeoItem, AnimatedItem {
} }
@Override @Override
public boolean canCustom(ItemStack stack) { public boolean isCustomizable(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustomBarrel(ItemStack stack) { public boolean hasCustomBarrel(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustomGrip(ItemStack stack) { public boolean hasCustomGrip(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustomScope(ItemStack stack) { public boolean hasCustomScope(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustomStock(ItemStack stack) { public boolean hasCustomStock(ItemStack stack) {
return true; return true;
} }
@Override @Override
public int getFireMode() { public int getAvailableFireModes() {
return FireMode.SEMI.flag; return FireMode.SEMI.flag;
} }
} }

View file

@ -164,12 +164,12 @@ public class Ntw20Item extends GunItem implements GeoItem, AnimatedItem {
} }
@Override @Override
public boolean bulletInBarrel(ItemStack stack) { public boolean hasBulletInBarrel(ItemStack stack) {
return true; return true;
} }
@Override @Override
public int getFireMode() { public int getAvailableFireModes() {
return FireMode.SEMI.flag; return FireMode.SEMI.flag;
} }
} }

View file

@ -294,12 +294,12 @@ public class SecondaryCataclysm extends GunItem implements GeoItem, AnimatedItem
} }
@Override @Override
public boolean canUseMelee(ItemStack stack) { public boolean hasMeleeAttack(ItemStack stack) {
return true; return true;
} }
@Override @Override
public int getFireMode() { public int getAvailableFireModes() {
return FireMode.SEMI.flag; return FireMode.SEMI.flag;
} }
} }

View file

@ -147,22 +147,22 @@ public class DevotionItem extends GunItem implements GeoItem, AnimatedItem {
} }
@Override @Override
public boolean bulletInBarrel(ItemStack stack) { public boolean hasBulletInBarrel(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean autoWeapon(ItemStack stack) { public boolean isAutoWeapon(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean ejectShell(ItemStack stack) { public boolean canEjectShell(ItemStack stack) {
return true; return true;
} }
@Override @Override
public int getFireMode() { public int getAvailableFireModes() {
return FireMode.AUTO.flag; return FireMode.AUTO.flag;
} }
} }

View file

@ -176,17 +176,17 @@ public class M60Item extends GunItem implements GeoItem, AnimatedItem {
} }
@Override @Override
public boolean autoWeapon(ItemStack stack) { public boolean isAutoWeapon(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean ejectShell(ItemStack stack) { public boolean canEjectShell(ItemStack stack) {
return true; return true;
} }
@Override @Override
public int getFireMode() { public int getAvailableFireModes() {
return FireMode.AUTO.flag; return FireMode.AUTO.flag;
} }
} }

View file

@ -215,7 +215,7 @@ public class MinigunItem extends GunItem implements GeoItem, AnimatedItem {
} }
@Override @Override
public boolean autoWeapon(ItemStack stack) { public boolean isAutoWeapon(ItemStack stack) {
return true; return true;
} }

View file

@ -148,22 +148,22 @@ public class RpkItem extends GunItem implements GeoItem, AnimatedItem {
} }
@Override @Override
public boolean bulletInBarrel(ItemStack stack) { public boolean hasBulletInBarrel(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean autoWeapon(ItemStack stack) { public boolean isAutoWeapon(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean ejectShell(ItemStack stack) { public boolean canEjectShell(ItemStack stack) {
return true; return true;
} }
@Override @Override
public int getFireMode() { public int getAvailableFireModes() {
return FireMode.SEMI.flag + FireMode.AUTO.flag; return FireMode.SEMI.flag + FireMode.AUTO.flag;
} }
} }

View file

@ -216,52 +216,52 @@ public class AK12Item extends GunItem implements GeoItem, AnimatedItem {
} }
@Override @Override
public boolean bulletInBarrel(ItemStack stack) { public boolean hasBulletInBarrel(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean autoWeapon(ItemStack stack) { public boolean isAutoWeapon(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustom(ItemStack stack) { public boolean isCustomizable(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustomBarrel(ItemStack stack) { public boolean hasCustomBarrel(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustomGrip(ItemStack stack) { public boolean hasCustomGrip(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustomMagazine(ItemStack stack) { public boolean hasCustomMagazine(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustomScope(ItemStack stack) { public boolean hasCustomScope(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustomStock(ItemStack stack) { public boolean hasCustomStock(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean ejectShell(ItemStack stack) { public boolean canEjectShell(ItemStack stack) {
return true; return true;
} }
@Override @Override
public int getFireMode() { public int getAvailableFireModes() {
return FireMode.SEMI.flag + FireMode.AUTO.flag; return FireMode.SEMI.flag + FireMode.AUTO.flag;
} }
} }

View file

@ -225,52 +225,52 @@ public class AK47Item extends GunItem implements GeoItem, AnimatedItem {
} }
@Override @Override
public boolean bulletInBarrel(ItemStack stack) { public boolean hasBulletInBarrel(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean autoWeapon(ItemStack stack) { public boolean isAutoWeapon(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustom(ItemStack stack) { public boolean isCustomizable(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustomBarrel(ItemStack stack) { public boolean hasCustomBarrel(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustomGrip(ItemStack stack) { public boolean hasCustomGrip(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustomMagazine(ItemStack stack) { public boolean hasCustomMagazine(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustomScope(ItemStack stack) { public boolean hasCustomScope(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustomStock(ItemStack stack) { public boolean hasCustomStock(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean ejectShell(ItemStack stack) { public boolean canEjectShell(ItemStack stack) {
return true; return true;
} }
@Override @Override
public int getFireMode() { public int getAvailableFireModes() {
return FireMode.SEMI.flag + FireMode.AUTO.flag; return FireMode.SEMI.flag + FireMode.AUTO.flag;
} }
} }

View file

@ -227,52 +227,52 @@ public class Hk416Item extends GunItem implements GeoItem, AnimatedItem {
} }
@Override @Override
public boolean bulletInBarrel(ItemStack stack) { public boolean hasBulletInBarrel(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean autoWeapon(ItemStack stack) { public boolean isAutoWeapon(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustom(ItemStack stack) { public boolean isCustomizable(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustomBarrel(ItemStack stack) { public boolean hasCustomBarrel(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustomGrip(ItemStack stack) { public boolean hasCustomGrip(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustomMagazine(ItemStack stack) { public boolean hasCustomMagazine(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustomScope(ItemStack stack) { public boolean hasCustomScope(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustomStock(ItemStack stack) { public boolean hasCustomStock(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean ejectShell(ItemStack stack) { public boolean canEjectShell(ItemStack stack) {
return true; return true;
} }
@Override @Override
public int getFireMode() { public int getAvailableFireModes() {
return FireMode.SEMI.flag + FireMode.AUTO.flag; return FireMode.SEMI.flag + FireMode.AUTO.flag;
} }
} }

View file

@ -226,52 +226,52 @@ public class M4Item extends GunItem implements GeoItem, AnimatedItem {
} }
@Override @Override
public boolean bulletInBarrel(ItemStack stack) { public boolean hasBulletInBarrel(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean autoWeapon(ItemStack stack) { public boolean isAutoWeapon(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustom(ItemStack stack) { public boolean isCustomizable(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustomBarrel(ItemStack stack) { public boolean hasCustomBarrel(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustomGrip(ItemStack stack) { public boolean hasCustomGrip(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustomMagazine(ItemStack stack) { public boolean hasCustomMagazine(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustomScope(ItemStack stack) { public boolean hasCustomScope(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustomStock(ItemStack stack) { public boolean hasCustomStock(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean ejectShell(ItemStack stack) { public boolean canEjectShell(ItemStack stack) {
return true; return true;
} }
@Override @Override
public int getFireMode() { public int getAvailableFireModes() {
return FireMode.SEMI.flag + FireMode.AUTO.flag; return FireMode.SEMI.flag + FireMode.AUTO.flag;
} }
} }

View file

@ -177,7 +177,7 @@ public class MarlinItem extends GunItem implements GeoItem, AnimatedItem {
} }
@Override @Override
public int getFireMode() { public int getAvailableFireModes() {
return FireMode.SEMI.flag; return FireMode.SEMI.flag;
} }
} }

View file

@ -225,52 +225,52 @@ public class Mk14Item extends GunItem implements GeoItem, AnimatedItem {
} }
@Override @Override
public boolean bulletInBarrel(ItemStack stack) { public boolean hasBulletInBarrel(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean autoWeapon(ItemStack stack) { public boolean isAutoWeapon(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustom(ItemStack stack) { public boolean isCustomizable(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustomBarrel(ItemStack stack) { public boolean hasCustomBarrel(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustomGrip(ItemStack stack) { public boolean hasCustomGrip(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustomMagazine(ItemStack stack) { public boolean hasCustomMagazine(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustomScope(ItemStack stack) { public boolean hasCustomScope(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustomStock(ItemStack stack) { public boolean hasCustomStock(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean ejectShell(ItemStack stack) { public boolean canEjectShell(ItemStack stack) {
return true; return true;
} }
@Override @Override
public int getFireMode() { public int getAvailableFireModes() {
return FireMode.SEMI.flag + FireMode.AUTO.flag; return FireMode.SEMI.flag + FireMode.AUTO.flag;
} }
} }

View file

@ -228,47 +228,47 @@ public class Qbz95Item extends GunItem implements GeoItem, AnimatedItem {
} }
@Override @Override
public boolean bulletInBarrel(ItemStack stack) { public boolean hasBulletInBarrel(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean autoWeapon(ItemStack stack) { public boolean isAutoWeapon(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustom(ItemStack stack) { public boolean isCustomizable(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustomBarrel(ItemStack stack) { public boolean hasCustomBarrel(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustomGrip(ItemStack stack) { public boolean hasCustomGrip(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustomMagazine(ItemStack stack) { public boolean hasCustomMagazine(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustomScope(ItemStack stack) { public boolean hasCustomScope(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean ejectShell(ItemStack stack) { public boolean canEjectShell(ItemStack stack) {
return true; return true;
} }
@Override @Override
public int getFireMode() { public int getAvailableFireModes() {
return FireMode.SEMI.flag + FireMode.AUTO.flag; return FireMode.SEMI.flag + FireMode.AUTO.flag;
} }
} }

View file

@ -160,17 +160,17 @@ public class SksItem extends GunItem implements GeoItem, AnimatedItem {
} }
@Override @Override
public boolean bulletInBarrel(ItemStack stack) { public boolean hasBulletInBarrel(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean ejectShell(ItemStack stack) { public boolean canEjectShell(ItemStack stack) {
return true; return true;
} }
@Override @Override
public int getFireMode() { public int getAvailableFireModes() {
return FireMode.SEMI.flag; return FireMode.SEMI.flag;
} }
} }

View file

@ -179,22 +179,22 @@ public class Aa12Item extends GunItem implements GeoItem, AnimatedItem {
} }
@Override @Override
public boolean bulletInBarrel(ItemStack stack) { public boolean hasBulletInBarrel(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean autoWeapon(ItemStack stack) { public boolean isAutoWeapon(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean ejectShell(ItemStack stack) { public boolean canEjectShell(ItemStack stack) {
return true; return true;
} }
@Override @Override
public int getFireMode() { public int getAvailableFireModes() {
return FireMode.SEMI.flag + FireMode.AUTO.flag; return FireMode.SEMI.flag + FireMode.AUTO.flag;
} }
} }

View file

@ -155,7 +155,7 @@ public class AbekiriItem extends GunItem implements GeoItem, AnimatedItem {
} }
@Override @Override
public int getFireMode() { public int getAvailableFireModes() {
return FireMode.SEMI.flag; return FireMode.SEMI.flag;
} }
} }

View file

@ -184,7 +184,7 @@ public class M870Item extends GunItem implements GeoItem, AnimatedItem {
} }
@Override @Override
public int getFireMode() { public int getAvailableFireModes() {
return FireMode.SEMI.flag; return FireMode.SEMI.flag;
} }
} }

View file

@ -202,52 +202,52 @@ public class VectorItem extends GunItem implements GeoItem, AnimatedItem {
} }
@Override @Override
public boolean bulletInBarrel(ItemStack stack) { public boolean hasBulletInBarrel(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean autoWeapon(ItemStack stack) { public boolean isAutoWeapon(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustom(ItemStack stack) { public boolean isCustomizable(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustomBarrel(ItemStack stack) { public boolean hasCustomBarrel(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustomGrip(ItemStack stack) { public boolean hasCustomGrip(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustomMagazine(ItemStack stack) { public boolean hasCustomMagazine(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustomScope(ItemStack stack) { public boolean hasCustomScope(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustomStock(ItemStack stack) { public boolean hasCustomStock(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean ejectShell(ItemStack stack) { public boolean canEjectShell(ItemStack stack) {
return true; return true;
} }
@Override @Override
public int getFireMode() { public int getAvailableFireModes() {
return FireMode.SEMI.flag + FireMode.BURST.flag + FireMode.AUTO.flag; return FireMode.SEMI.flag + FireMode.BURST.flag + FireMode.AUTO.flag;
} }
} }

View file

@ -137,7 +137,7 @@ public class HuntingRifleItem extends GunItem implements GeoItem, AnimatedItem {
} }
@Override @Override
public int getFireMode() { public int getAvailableFireModes() {
return FireMode.SEMI.flag; return FireMode.SEMI.flag;
} }
} }

View file

@ -185,7 +185,7 @@ public class K98Item extends GunItem implements GeoItem, AnimatedItem {
} }
@Override @Override
public int getFireMode() { public int getAvailableFireModes() {
return FireMode.SEMI.flag; return FireMode.SEMI.flag;
} }
} }

View file

@ -163,12 +163,12 @@ public class M98bItem extends GunItem implements GeoItem, AnimatedItem {
} }
@Override @Override
public boolean bulletInBarrel(ItemStack stack) { public boolean hasBulletInBarrel(ItemStack stack) {
return true; return true;
} }
@Override @Override
public int getFireMode() { public int getAvailableFireModes() {
return FireMode.SEMI.flag; return FireMode.SEMI.flag;
} }
} }

View file

@ -180,7 +180,7 @@ public class MosinNagantItem extends GunItem implements GeoItem, AnimatedItem {
} }
@Override @Override
public int getFireMode() { public int getAvailableFireModes() {
return FireMode.SEMI.flag; return FireMode.SEMI.flag;
} }
} }

View file

@ -245,12 +245,12 @@ public class SentinelItem extends GunItem implements GeoItem, AnimatedItem {
} }
@Override @Override
public boolean bulletInBarrel(ItemStack stack) { public boolean hasBulletInBarrel(ItemStack stack) {
return true; return true;
} }
@Override @Override
public int getFireMode() { public int getAvailableFireModes() {
return FireMode.SEMI.flag; return FireMode.SEMI.flag;
} }
} }

View file

@ -178,22 +178,22 @@ public class SvdItem extends GunItem implements GeoItem, AnimatedItem {
} }
@Override @Override
public boolean canCustom(ItemStack stack) { public boolean isCustomizable(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustomBarrel(ItemStack stack) { public boolean hasCustomBarrel(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustomScope(ItemStack stack) { public boolean hasCustomScope(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean canCustomMagazine(ItemStack stack) { public boolean hasCustomMagazine(ItemStack stack) {
return true; return true;
} }
@ -208,12 +208,12 @@ public class SvdItem extends GunItem implements GeoItem, AnimatedItem {
} }
@Override @Override
public boolean bulletInBarrel(ItemStack stack) { public boolean hasBulletInBarrel(ItemStack stack) {
return true; return true;
} }
@Override @Override
public boolean ejectShell(ItemStack stack) { public boolean canEjectShell(ItemStack stack) {
return true; return true;
} }
@ -223,7 +223,7 @@ public class SvdItem extends GunItem implements GeoItem, AnimatedItem {
} }
@Override @Override
public int getFireMode() { public int getAvailableFireModes() {
return FireMode.SEMI.flag; return FireMode.SEMI.flag;
} }
} }

View file

@ -41,7 +41,7 @@ public class EditModeMessage {
if (!(mainHandItem.getItem() instanceof GunItem gunItem)) return; if (!(mainHandItem.getItem() instanceof GunItem gunItem)) return;
var cap = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null); var cap = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null);
if (gunItem.canCustom(mainHandItem)) { if (gunItem.isCustomizable(mainHandItem)) {
if (!player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).edit) { if (!player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).edit) {
SoundTool.playLocalSound(player, ModSounds.EDIT_MODE.get(), 1f, 1f); SoundTool.playLocalSound(player, ModSounds.EDIT_MODE.get(), 1f, 1f);
} }

View file

@ -50,7 +50,7 @@ public class FireModeMessage {
CompoundTag tag = stack.getOrCreateTag(); CompoundTag tag = stack.getOrCreateTag();
int mode = gunItem.getFireMode(); int mode = gunItem.getAvailableFireModes();
mode &= 0b111; mode &= 0b111;
if (fireMode == 0) { if (fireMode == 0) {

View file

@ -87,7 +87,7 @@ public class ReloadMessage {
int magazine = GunsTool.getGunIntTag(stack, "Magazine", 0); int magazine = GunsTool.getGunIntTag(stack, "Magazine", 0);
if (gunItem.isOpenBolt(stack)) { if (gunItem.isOpenBolt(stack)) {
if (gunItem.bulletInBarrel(stack)) { if (gunItem.hasBulletInBarrel(stack)) {
if (GunsTool.getGunIntTag(stack, "Ammo", 0) < magazine + GunsTool.getGunIntTag(stack, "CustomMagazine", 0) + 1) { if (GunsTool.getGunIntTag(stack, "Ammo", 0) < magazine + GunsTool.getGunIntTag(stack, "CustomMagazine", 0) + 1) {
GunsTool.setGunBooleanTag(stack, "StartReload", true); GunsTool.setGunBooleanTag(stack, "StartReload", true);
} }