diff --git a/src/main/java/com/atsuishio/superbwarfare/block/ContainerBlock.java b/src/main/java/com/atsuishio/superbwarfare/block/ContainerBlock.java index 5fc2e8096..1737f051b 100644 --- a/src/main/java/com/atsuishio/superbwarfare/block/ContainerBlock.java +++ b/src/main/java/com/atsuishio/superbwarfare/block/ContainerBlock.java @@ -2,8 +2,8 @@ package com.atsuishio.superbwarfare.block; import com.atsuishio.superbwarfare.block.entity.ContainerBlockEntity; import com.atsuishio.superbwarfare.init.ModBlockEntities; -import com.atsuishio.superbwarfare.init.ModItems; import com.atsuishio.superbwarfare.init.ModSounds; +import com.atsuishio.superbwarfare.init.ModTags; import com.mojang.serialization.MapCodec; import net.minecraft.ChatFormatting; import net.minecraft.core.BlockPos; @@ -64,7 +64,7 @@ public class ContainerBlock extends BaseEntityBlock { || !(level.getBlockEntity(pos) instanceof ContainerBlockEntity containerBlockEntity) ) return ItemInteractionResult.FAIL; - if (!stack.is(ModItems.CROWBAR.get())) { + if (!stack.is(ModTags.Items.CROWBAR)) { player.displayClientMessage(Component.translatable("des.superbwarfare.container.fail.crowbar"), true); return ItemInteractionResult.FAIL; } diff --git a/src/main/java/com/atsuishio/superbwarfare/block/SmallContainerBlock.java b/src/main/java/com/atsuishio/superbwarfare/block/SmallContainerBlock.java index 613f93f45..18f6c3ce5 100644 --- a/src/main/java/com/atsuishio/superbwarfare/block/SmallContainerBlock.java +++ b/src/main/java/com/atsuishio/superbwarfare/block/SmallContainerBlock.java @@ -3,8 +3,8 @@ package com.atsuishio.superbwarfare.block; import com.atsuishio.superbwarfare.Mod; import com.atsuishio.superbwarfare.block.entity.SmallContainerBlockEntity; import com.atsuishio.superbwarfare.init.ModBlockEntities; -import com.atsuishio.superbwarfare.init.ModItems; import com.atsuishio.superbwarfare.init.ModSounds; +import com.atsuishio.superbwarfare.init.ModTags; import com.mojang.serialization.MapCodec; import net.minecraft.ChatFormatting; import net.minecraft.core.BlockPos; @@ -62,7 +62,7 @@ public class SmallContainerBlock extends BaseEntityBlock { } ItemStack stack = player.getItemInHand(player.getUsedItemHand()); - if (!stack.is(ModItems.CROWBAR.get())) { + if (!stack.is(ModTags.Items.CROWBAR)) { player.displayClientMessage(Component.translatable("des.superbwarfare.container.fail.crowbar"), true); return InteractionResult.PASS; } diff --git a/src/main/java/com/atsuishio/superbwarfare/block/SuperbItemInterfaceBlock.java b/src/main/java/com/atsuishio/superbwarfare/block/SuperbItemInterfaceBlock.java index 785a00b7a..13cb275ae 100644 --- a/src/main/java/com/atsuishio/superbwarfare/block/SuperbItemInterfaceBlock.java +++ b/src/main/java/com/atsuishio/superbwarfare/block/SuperbItemInterfaceBlock.java @@ -2,7 +2,6 @@ package com.atsuishio.superbwarfare.block; import com.atsuishio.superbwarfare.block.entity.SuperbItemInterfaceBlockEntity; import com.atsuishio.superbwarfare.init.ModBlockEntities; -import com.atsuishio.superbwarfare.init.ModItems; import com.atsuishio.superbwarfare.init.ModTags; import com.mojang.serialization.MapCodec; import net.minecraft.ChatFormatting; @@ -82,7 +81,7 @@ public class SuperbItemInterfaceBlock extends BaseEntityBlock { @Override @ParametersAreNonnullByDefault protected @NotNull ItemInteractionResult useItemOn(ItemStack stack, BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hitResult) { - if (stack.is(ModItems.CROWBAR.get()) || stack.is(ModTags.Items.WRENCHES_TAG) || stack.is(ModTags.Items.WRENCH_TAG)) { + if (stack.is(ModTags.Items.CROWBAR) || stack.is(ModTags.Items.WRENCHES) || stack.is(ModTags.Items.WRENCH)) { var facing = hitResult.getDirection(); if (state.getValue(FACING) == facing) { facing = facing.getOpposite(); diff --git a/src/main/java/com/atsuishio/superbwarfare/datagen/ModItemTagProvider.java b/src/main/java/com/atsuishio/superbwarfare/datagen/ModItemTagProvider.java index a48c0bcf8..609f5f558 100644 --- a/src/main/java/com/atsuishio/superbwarfare/datagen/ModItemTagProvider.java +++ b/src/main/java/com/atsuishio/superbwarfare/datagen/ModItemTagProvider.java @@ -75,6 +75,8 @@ public class ModItemTagProvider extends ItemTagsProvider { this.tag(cTag("plates")).addTags(cTag("plates/copper")); this.tag(cTag("plates/copper")).add(ModItems.COPPER_PLATE.get()); + this.tag(cTag("tools/crowbar")).add(ModItems.CROWBAR.get()); + // TODO 清理枪械Tag ModItems.GUNS.getEntries().forEach(registryObject -> this.tag(ModTags.Items.GUN).add(registryObject.get())); @@ -86,7 +88,7 @@ public class ModItemTagProvider extends ItemTagsProvider { this.tag(ModTags.Items.SNIPER_RIFLE).add(ModItems.HUNTING_RIFLE.get(), ModItems.SENTINEL.get(), ModItems.SVD.get(), ModItems.M_98B.get(), ModItems.K_98.get(), ModItems.MOSIN_NAGANT.get()); - this.tag(ModTags.Items.HEAVY_WEAPON).add(ModItems.NTW_20.get(),ModItems.M_2_HB.get()); + this.tag(ModTags.Items.HEAVY_WEAPON).add(ModItems.NTW_20.get(), ModItems.M_2_HB.get()); this.tag(ModTags.Items.SHOTGUN).add(ModItems.HOMEMADE_SHOTGUN.get(), ModItems.M_870.get(), ModItems.AA_12.get()); diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/DPSGeneratorEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/DPSGeneratorEntity.java index b3db32c8b..784c3e46a 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/DPSGeneratorEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/DPSGeneratorEntity.java @@ -4,6 +4,7 @@ import com.atsuishio.superbwarfare.Mod; import com.atsuishio.superbwarfare.capability.energy.SyncedEntityEnergyStorage; import com.atsuishio.superbwarfare.init.ModItems; import com.atsuishio.superbwarfare.init.ModSounds; +import com.atsuishio.superbwarfare.init.ModTags; import com.atsuishio.superbwarfare.tools.FormatTool; import com.atsuishio.superbwarfare.tools.SoundTool; import net.minecraft.commands.arguments.EntityAnchorArgument; @@ -35,8 +36,8 @@ import net.neoforged.neoforge.event.entity.living.LivingDeathEvent; import org.jetbrains.annotations.NotNull; import software.bernie.geckolib.animatable.GeoEntity; import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache; -import software.bernie.geckolib.animation.AnimationState; import software.bernie.geckolib.animation.*; +import software.bernie.geckolib.animation.AnimationState; import software.bernie.geckolib.util.GeckoLibUtil; @EventBusSubscriber(modid = Mod.MODID) @@ -161,7 +162,7 @@ public class DPSGeneratorEntity extends LivingEntity implements GeoEntity { @Override public @NotNull InteractionResult interact(Player player, @NotNull InteractionHand hand) { - if (player.getMainHandItem() != ItemStack.EMPTY && player.getMainHandItem().getItem() != ModItems.CROWBAR.get()) { + if (player.getMainHandItem() != ItemStack.EMPTY && player.getMainHandItem().is(ModTags.Items.CROWBAR)) { return InteractionResult.PASS; } diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/TargetEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/TargetEntity.java index 16e9e327b..9f01d6c53 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/TargetEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/TargetEntity.java @@ -4,6 +4,7 @@ import com.atsuishio.superbwarfare.Mod; import com.atsuishio.superbwarfare.entity.vehicle.damage.DamageModifier; import com.atsuishio.superbwarfare.init.ModItems; import com.atsuishio.superbwarfare.init.ModSounds; +import com.atsuishio.superbwarfare.init.ModTags; import com.atsuishio.superbwarfare.tools.FormatTool; import com.atsuishio.superbwarfare.tools.SoundTool; import net.minecraft.commands.arguments.EntityAnchorArgument; @@ -31,8 +32,8 @@ import net.neoforged.neoforge.event.entity.living.LivingDeathEvent; import org.jetbrains.annotations.NotNull; import software.bernie.geckolib.animatable.GeoEntity; import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache; -import software.bernie.geckolib.animation.AnimationState; import software.bernie.geckolib.animation.*; +import software.bernie.geckolib.animation.AnimationState; import software.bernie.geckolib.util.GeckoLibUtil; @EventBusSubscriber(modid = Mod.MODID) @@ -137,7 +138,7 @@ public class TargetEntity extends LivingEntity implements GeoEntity { @Override public @NotNull InteractionResult interact(Player player, @NotNull InteractionHand hand) { - if (player.getMainHandItem() != ItemStack.EMPTY && player.getMainHandItem().getItem() != ModItems.CROWBAR.get()) { + if (player.getMainHandItem() != ItemStack.EMPTY && !player.getMainHandItem().is(ModTags.Items.CROWBAR)) { return InteractionResult.PASS; } diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/AnnihilatorEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/AnnihilatorEntity.java index 97b46c453..c633e0985 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/AnnihilatorEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/AnnihilatorEntity.java @@ -15,6 +15,7 @@ import com.atsuishio.superbwarfare.event.ClientMouseHandler; import com.atsuishio.superbwarfare.init.ModDamageTypes; import com.atsuishio.superbwarfare.init.ModItems; import com.atsuishio.superbwarfare.init.ModSounds; +import com.atsuishio.superbwarfare.init.ModTags; import com.atsuishio.superbwarfare.network.message.receive.ShakeClientMessage; import com.atsuishio.superbwarfare.tools.*; import net.minecraft.ChatFormatting; @@ -50,8 +51,8 @@ import net.neoforged.neoforge.capabilities.Capabilities; import net.neoforged.neoforge.event.EventHooks; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.joml.Math; import org.joml.*; +import org.joml.Math; import software.bernie.geckolib.animatable.GeoEntity; import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache; import software.bernie.geckolib.animation.*; @@ -143,7 +144,7 @@ public class AnnihilatorEntity extends EnergyVehicleEntity implements GeoEntity, return InteractionResult.SUCCESS; } - if (stack.is(ModItems.CROWBAR.get()) && !player.isCrouching()) { + if (stack.is(ModTags.Items.CROWBAR) && !player.isCrouching()) { if (this.entityData.get(COOL_DOWN) == 0) { vehicleShoot(player, 0); entityData.set(SHOOTER_UUID, player.getStringUUID()); diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/DroneEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/DroneEntity.java index 4485d143e..455917c0f 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/DroneEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/DroneEntity.java @@ -340,7 +340,7 @@ public class DroneEntity extends MobileVehicleEntity implements GeoEntity { } } } else if (player.isCrouching()) { - if (stack.is(ModItems.CROWBAR.get())) { + if (stack.is(ModTags.Items.CROWBAR)) { // 无人机拆除 ItemHandlerHelper.giveItemToPlayer(player, new ItemStack(ModItems.DRONE.get())); diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Hpj11Entity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Hpj11Entity.java index 54e66b5cd..296cfb180 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Hpj11Entity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Hpj11Entity.java @@ -11,6 +11,7 @@ import com.atsuishio.superbwarfare.entity.vehicle.weapon.VehicleWeapon; import com.atsuishio.superbwarfare.event.ClientMouseHandler; import com.atsuishio.superbwarfare.init.ModDamageTypes; import com.atsuishio.superbwarfare.init.ModItems; +import com.atsuishio.superbwarfare.init.ModTags; import com.atsuishio.superbwarfare.item.ContainerBlockItem; import com.atsuishio.superbwarfare.tools.*; import com.mojang.math.Axis; @@ -155,7 +156,7 @@ public class Hpj11Entity extends ContainerMobileVehicleEntity implements GeoEnti public @NotNull InteractionResult interact(Player player, @NotNull InteractionHand hand) { ItemStack stack = player.getMainHandItem(); if (player.isCrouching()) { - if (stack.is(ModItems.CROWBAR.get()) && (getOwner() == null || player == getOwner())) { + if (stack.is(ModTags.Items.CROWBAR) && (getOwner() == null || player == getOwner())) { ItemStack container = ContainerBlockItem.createInstance(this); if (!player.addItem(container)) { player.drop(container, false); diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/LaserTowerEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/LaserTowerEntity.java index 1450c5acf..8ceed8936 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/LaserTowerEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/LaserTowerEntity.java @@ -7,8 +7,8 @@ import com.atsuishio.superbwarfare.entity.vehicle.base.AutoAimable; import com.atsuishio.superbwarfare.entity.vehicle.base.EnergyVehicleEntity; import com.atsuishio.superbwarfare.init.ModDamageTypes; import com.atsuishio.superbwarfare.init.ModEntities; -import com.atsuishio.superbwarfare.init.ModItems; import com.atsuishio.superbwarfare.init.ModSounds; +import com.atsuishio.superbwarfare.init.ModTags; import com.atsuishio.superbwarfare.item.ContainerBlockItem; import com.atsuishio.superbwarfare.tools.CustomExplosion; import com.atsuishio.superbwarfare.tools.EntityFindUtil; @@ -41,8 +41,8 @@ import org.jetbrains.annotations.Nullable; import org.joml.Math; import software.bernie.geckolib.animatable.GeoEntity; import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache; -import software.bernie.geckolib.animation.AnimationState; import software.bernie.geckolib.animation.*; +import software.bernie.geckolib.animation.AnimationState; import software.bernie.geckolib.util.GeckoLibUtil; import java.util.Optional; @@ -135,7 +135,7 @@ public class LaserTowerEntity extends EnergyVehicleEntity implements GeoEntity, public @NotNull InteractionResult interact(Player player, @NotNull InteractionHand hand) { ItemStack stack = player.getMainHandItem(); if (player.isCrouching()) { - if (stack.is(ModItems.CROWBAR.get()) && (getOwner() == null || player == getOwner())) { + if (stack.is(ModTags.Items.CROWBAR) && (getOwner() == null || player == getOwner())) { ItemStack container = ContainerBlockItem.createInstance(this); if (!player.addItem(container)) { player.drop(container, false); diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/MortarEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/MortarEntity.java index 38667d06a..ca2258dcc 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/MortarEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/MortarEntity.java @@ -6,6 +6,7 @@ import com.atsuishio.superbwarfare.entity.vehicle.base.VehicleEntity; import com.atsuishio.superbwarfare.init.ModEntities; import com.atsuishio.superbwarfare.init.ModItems; import com.atsuishio.superbwarfare.init.ModSounds; +import com.atsuishio.superbwarfare.init.ModTags; import com.atsuishio.superbwarfare.item.ArtilleryIndicator; import com.atsuishio.superbwarfare.item.Monitor; import com.atsuishio.superbwarfare.item.common.ammo.MortarShell; @@ -181,7 +182,7 @@ public class MortarEntity extends VehicleEntity implements GeoEntity, Container } if (player.isShiftKeyDown()) { - if (mainHandItem.getItem() == ModItems.CROWBAR.get()) { + if (mainHandItem.is(ModTags.Items.CROWBAR)) { this.discard(); ItemHandlerHelper.giveItemToPlayer(player, new ItemStack(ModItems.MORTAR_DEPLOYER.get())); if (entityData.get(INTELLIGENT)) { diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/base/ContainerMobileVehicleEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/base/ContainerMobileVehicleEntity.java index ac83c8f65..73887c209 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/base/ContainerMobileVehicleEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/base/ContainerMobileVehicleEntity.java @@ -1,6 +1,6 @@ package com.atsuishio.superbwarfare.entity.vehicle.base; -import com.atsuishio.superbwarfare.init.ModItems; +import com.atsuishio.superbwarfare.init.ModTags; import com.atsuishio.superbwarfare.menu.VehicleMenu; import com.atsuishio.superbwarfare.tools.InventoryTool; import net.minecraft.core.NonNullList; @@ -54,7 +54,7 @@ public abstract class ContainerMobileVehicleEntity extends MobileVehicleEntity i if (player.getVehicle() == this) return InteractionResult.PASS; ItemStack stack = player.getMainHandItem(); - if (player.isShiftKeyDown() && !stack.is(ModItems.CROWBAR.get())) { + if (player.isShiftKeyDown() && !stack.is(ModTags.Items.CROWBAR)) { player.openMenu(this); return !player.level().isClientSide ? InteractionResult.CONSUME : InteractionResult.SUCCESS; } diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/base/VehicleEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/base/VehicleEntity.java index 02d1deb83..f419bd756 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/base/VehicleEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/base/VehicleEntity.java @@ -416,7 +416,7 @@ public abstract class VehicleEntity extends Entity { var data = data(); ItemStack stack = player.getMainHandItem(); - if (player.isShiftKeyDown() && stack.is(ModItems.CROWBAR.get()) && this.getPassengers().isEmpty()) { + if (player.isShiftKeyDown() && stack.is(ModTags.Items.CROWBAR) && this.getPassengers().isEmpty()) { ItemStack container = ContainerBlockItem.createInstance(this); if (!player.addItem(container)) { player.drop(container, false); diff --git a/src/main/java/com/atsuishio/superbwarfare/init/ModTags.java b/src/main/java/com/atsuishio/superbwarfare/init/ModTags.java index 4c17a6c28..f58954c50 100644 --- a/src/main/java/com/atsuishio/superbwarfare/init/ModTags.java +++ b/src/main/java/com/atsuishio/superbwarfare/init/ModTags.java @@ -43,8 +43,9 @@ public class ModTags { public static final TagKey LEGENDARY_BLUEPRINT = tag("blueprint/legendary"); public static final TagKey CANNON_BLUEPRINT = tag("blueprint/cannon"); - public static final TagKey WRENCHES_TAG = ItemTags.create(ResourceLocation.fromNamespaceAndPath("c", "wrenches")); - public static final TagKey WRENCH_TAG = ItemTags.create(ResourceLocation.fromNamespaceAndPath("c", "tools/wrench")); + public static final TagKey WRENCHES = ItemTags.create(ResourceLocation.fromNamespaceAndPath("c", "wrenches")); + public static final TagKey WRENCH = ItemTags.create(ResourceLocation.fromNamespaceAndPath("c", "tools/wrench")); + public static final TagKey CROWBAR = ItemTags.create(ResourceLocation.fromNamespaceAndPath("c", "tools/crowbar")); private static TagKey tag(String name) { return ItemTags.create(Mod.loc(name));