修改弹药盒的逻辑
This commit is contained in:
parent
c0528f10ba
commit
6513d65f22
2 changed files with 17 additions and 16 deletions
|
@ -30,8 +30,10 @@ public class AmmoBox extends Item {
|
||||||
@Override
|
@Override
|
||||||
public InteractionResultHolder<ItemStack> use(Level level, Player player, InteractionHand hand) {
|
public InteractionResultHolder<ItemStack> use(Level level, Player player, InteractionHand hand) {
|
||||||
ItemStack stack = player.getItemInHand(hand);
|
ItemStack stack = player.getItemInHand(hand);
|
||||||
CompoundTag tag = stack.getOrCreateTag();
|
|
||||||
|
|
||||||
|
if (hand == InteractionHand.OFF_HAND) return InteractionResultHolder.fail(stack);
|
||||||
|
|
||||||
|
CompoundTag tag = stack.getOrCreateTag();
|
||||||
player.getCooldowns().addCooldown(this, 10);
|
player.getCooldowns().addCooldown(this, 10);
|
||||||
int type = stack.getOrCreateTag().getInt("Type");
|
int type = stack.getOrCreateTag().getInt("Type");
|
||||||
|
|
||||||
|
@ -162,5 +164,4 @@ public class AmmoBox extends Item {
|
||||||
.append(Component.literal("").withStyle(ChatFormatting.RESET))
|
.append(Component.literal("").withStyle(ChatFormatting.RESET))
|
||||||
.append(Component.literal(FormatTool.format0D(ItemNBTTool.getInt(stack, "HeavyAmmo", 0)) + ((type == 0 || type == 5) ? " ←-" : " ")).withStyle(ChatFormatting.BOLD)));
|
.append(Component.literal(FormatTool.format0D(ItemNBTTool.getInt(stack, "HeavyAmmo", 0)) + ((type == 0 || type == 5) ? " ←-" : " ")).withStyle(ChatFormatting.BOLD)));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,26 +31,26 @@ public class AmmoSupplierItem extends Item {
|
||||||
player.getCooldowns().addCooldown(this, 10);
|
player.getCooldowns().addCooldown(this, 10);
|
||||||
stack.shrink(count);
|
stack.shrink(count);
|
||||||
|
|
||||||
ItemStack ammobox = player.getOffhandItem();
|
ItemStack offhandItem = player.getOffhandItem();
|
||||||
|
|
||||||
if (ammobox.is(ModItems.AMMO_BOX.get())) {
|
if (offhandItem.is(ModItems.AMMO_BOX.get())) {
|
||||||
var newAmmoCount = switch (this.type) {
|
int newAmmoCount = switch (this.type) {
|
||||||
case HANDGUN -> ammobox.getOrCreateTag().getInt("HandgunAmmo");
|
case HANDGUN -> offhandItem.getOrCreateTag().getInt("HandgunAmmo");
|
||||||
case RIFLE -> ammobox.getOrCreateTag().getInt("RifleAmmo");
|
case RIFLE -> offhandItem.getOrCreateTag().getInt("RifleAmmo");
|
||||||
case SHOTGUN -> ammobox.getOrCreateTag().getInt("ShotgunAmmo");
|
case SHOTGUN -> offhandItem.getOrCreateTag().getInt("ShotgunAmmo");
|
||||||
case SNIPER -> ammobox.getOrCreateTag().getInt("SniperAmmo");
|
case SNIPER -> offhandItem.getOrCreateTag().getInt("SniperAmmo");
|
||||||
case HEAVY -> ammobox.getOrCreateTag().getInt("HeavyAmmo");
|
case HEAVY -> offhandItem.getOrCreateTag().getInt("HeavyAmmo");
|
||||||
} + ammoToAdd * count;
|
} + ammoToAdd * count;
|
||||||
switch (this.type) {
|
switch (this.type) {
|
||||||
case HANDGUN -> ammobox.getOrCreateTag().putInt("HandgunAmmo", newAmmoCount);
|
case HANDGUN -> offhandItem.getOrCreateTag().putInt("HandgunAmmo", newAmmoCount);
|
||||||
case RIFLE -> ammobox.getOrCreateTag().putInt("RifleAmmo", newAmmoCount);
|
case RIFLE -> offhandItem.getOrCreateTag().putInt("RifleAmmo", newAmmoCount);
|
||||||
case SHOTGUN -> ammobox.getOrCreateTag().putInt("ShotgunAmmo", newAmmoCount);
|
case SHOTGUN -> offhandItem.getOrCreateTag().putInt("ShotgunAmmo", newAmmoCount);
|
||||||
case SNIPER -> ammobox.getOrCreateTag().putInt("SniperAmmo", newAmmoCount);
|
case SNIPER -> offhandItem.getOrCreateTag().putInt("SniperAmmo", newAmmoCount);
|
||||||
case HEAVY -> ammobox.getOrCreateTag().putInt("HeavyAmmo", newAmmoCount);
|
case HEAVY -> offhandItem.getOrCreateTag().putInt("HeavyAmmo", newAmmoCount);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> {
|
player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> {
|
||||||
var newAmmoCount = switch (this.type) {
|
int newAmmoCount = switch (this.type) {
|
||||||
case HANDGUN -> capability.handgunAmmo;
|
case HANDGUN -> capability.handgunAmmo;
|
||||||
case RIFLE -> capability.rifleAmmo;
|
case RIFLE -> capability.rifleAmmo;
|
||||||
case SHOTGUN -> capability.shotgunAmmo;
|
case SHOTGUN -> capability.shotgunAmmo;
|
||||||
|
|
Loading…
Add table
Reference in a new issue