diff --git a/src/main/java/com/atsuishio/superbwarfare/api/event/RegisterContainersEvent.java b/src/main/java/com/atsuishio/superbwarfare/api/event/RegisterContainersEvent.java index 57f7775ae..e35475502 100644 --- a/src/main/java/com/atsuishio/superbwarfare/api/event/RegisterContainersEvent.java +++ b/src/main/java/com/atsuishio/superbwarfare/api/event/RegisterContainersEvent.java @@ -20,26 +20,14 @@ public class RegisterContainersEvent extends Event implements IModBusEvent { public static final List containers = new ArrayList<>(); public void add(DeferredHolder, EntityType> type) { - add(type.get(), false); - } - - public void add(DeferredHolder, EntityType> type, boolean canBePlacedAboveWater) { - add(type.get(), canBePlacedAboveWater); + add(type.get()); } public void add(EntityType type) { - add(type, false); - } - - public void add(EntityType type, boolean canBePlacedAboveWater) { - containers.add(ContainerBlockItem.createInstance(type, canBePlacedAboveWater)); + containers.add(ContainerBlockItem.createInstance(type)); } public void add(Entity entity) { - add(entity, false); - } - - public void add(Entity entity, boolean canBePlacedAboveWater) { - containers.add(ContainerBlockItem.createInstance(entity, canBePlacedAboveWater)); + containers.add(ContainerBlockItem.createInstance(entity)); } } diff --git a/src/main/java/com/atsuishio/superbwarfare/item/ContainerBlockItem.java b/src/main/java/com/atsuishio/superbwarfare/item/ContainerBlockItem.java index 22255c436..6bec74502 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/ContainerBlockItem.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/ContainerBlockItem.java @@ -18,7 +18,6 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.component.CustomData; import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.item.context.UseOnContext; import net.minecraft.world.level.ClipContext; @@ -39,6 +38,8 @@ import software.bernie.geckolib.animation.AnimationState; import software.bernie.geckolib.animation.PlayState; import software.bernie.geckolib.util.GeckoLibUtil; +import javax.annotation.ParametersAreNonnullByDefault; + @EventBusSubscriber(modid = Mod.MODID, bus = EventBusSubscriber.Bus.MOD) public class ContainerBlockItem extends BlockItem implements GeoItem { @@ -49,10 +50,10 @@ public class ContainerBlockItem extends BlockItem implements GeoItem { event.add(ModEntities.HPJ_11); event.add(ModEntities.ANNIHILATOR); event.add(ModEntities.LASER_TOWER); - event.add(ModEntities.SPEEDBOAT, true); + event.add(ModEntities.SPEEDBOAT); event.add(ModEntities.AH_6); - event.add(ModEntities.LAV_150, true); - event.add(ModEntities.BMP_2, true); + event.add(ModEntities.LAV_150); + event.add(ModEntities.BMP_2); event.add(ModEntities.PRISM_TANK); event.add(ModEntities.YX_100); event.add(ModEntities.WHEEL_CHAIR); @@ -67,31 +68,20 @@ public class ContainerBlockItem extends BlockItem implements GeoItem { } @Override - public @NotNull InteractionResult useOn(UseOnContext context) { - ItemStack stack = context.getItemInHand(); - var data = stack.get(DataComponents.BLOCK_ENTITY_DATA); - - if (data != null && data.copyTag().getBoolean("CanPlacedAboveWater")) { - return InteractionResult.PASS; - } - return super.useOn(context); + public @NotNull InteractionResult useOn(@NotNull UseOnContext context) { + return InteractionResult.PASS; } @Override - public @NotNull InteractionResultHolder use(@NotNull Level level, Player player, @NotNull InteractionHand hand) { - ItemStack stack = player.getItemInHand(hand); - var data = stack.get(DataComponents.BLOCK_ENTITY_DATA); - - if (data != null && data.copyTag().getBoolean("CanPlacedAboveWater")) { - BlockHitResult playerPOVHitResult = getPlayerPOVHitResult(level, player, ClipContext.Fluid.WATER); - if (playerPOVHitResult.getType() == HitResult.Type.MISS) { - return super.use(level, player, hand); - } - BlockHitResult blockHitResult = playerPOVHitResult.withPosition(playerPOVHitResult.getBlockPos().above()); - InteractionResult interactionresult = super.useOn(new UseOnContext(player, hand, blockHitResult)); - return new InteractionResultHolder<>(interactionresult, player.getItemInHand(hand)); + @ParametersAreNonnullByDefault + public @NotNull InteractionResultHolder use(Level level, Player player, InteractionHand hand) { + BlockHitResult playerPOVHitResult = getPlayerPOVHitResult(level, player, ClipContext.Fluid.WATER); + if (playerPOVHitResult.getType() == HitResult.Type.MISS) { + return super.use(level, player, hand); } - return super.use(level, player, hand); + BlockHitResult blockHitResult = playerPOVHitResult.withPosition(playerPOVHitResult.getBlockPos().above()); + InteractionResult interactionresult = super.useOn(new UseOnContext(player, hand, blockHitResult)); + return new InteractionResultHolder<>(interactionresult, player.getItemInHand(hand)); } @Override @@ -144,14 +134,6 @@ public class ContainerBlockItem extends BlockItem implements GeoItem { } public static ItemStack createInstance(Entity entity) { - return createInstance(entity, false); - } - - public static ItemStack createInstance(EntityType entityType) { - return createInstance(entityType, false); - } - - public static ItemStack createInstance(Entity entity, boolean canPlacedAboveWater) { ItemStack stack = new ItemStack(ModBlocks.CONTAINER.get()); var data = stack.get(DataComponents.BLOCK_ENTITY_DATA); @@ -167,22 +149,16 @@ public class ContainerBlockItem extends BlockItem implements GeoItem { tag.putString("EntityType", EntityType.getKey(entity.getType()).toString()); BlockItem.setBlockEntityData(stack, ModBlockEntities.CONTAINER.get(), tag); - tag.putBoolean("CanPlacedAboveWater", canPlacedAboveWater); - stack.set(DataComponents.BLOCK_ENTITY_DATA, CustomData.of(tag)); - return stack; } - public static ItemStack createInstance(EntityType entityType, boolean canPlacedAboveWater) { + public static ItemStack createInstance(EntityType entityType) { ItemStack stack = new ItemStack(ModBlocks.CONTAINER.get()); var data = stack.get(DataComponents.BLOCK_ENTITY_DATA); var tag = data != null ? data.copyTag() : new CompoundTag(); tag.putString("EntityType", EntityType.getKey(entityType).toString()); BlockItem.setBlockEntityData(stack, ModBlockEntities.CONTAINER.get(), tag); - tag.putBoolean("CanPlacedAboveWater", canPlacedAboveWater); - stack.set(DataComponents.BLOCK_ENTITY_DATA, CustomData.of(tag)); - return stack; } }