From 7afce8f3c04827ae659f807cf02bf0eb92554f80 Mon Sep 17 00:00:00 2001 From: Frank Date: Tue, 11 Jul 2023 22:25:18 +0200 Subject: [PATCH] [Change] Use the `DropSelfLootProvider` where possible. --- .../org/betterx/bclib/blocks/BaseAnvilBlock.java | 7 ++++--- .../org/betterx/bclib/blocks/BaseBarrelBlock.java | 12 ++---------- .../org/betterx/bclib/blocks/BaseButtonBlock.java | 12 ++---------- .../org/betterx/bclib/blocks/BaseChainBlock.java | 12 ++---------- .../org/betterx/bclib/blocks/BaseChestBlock.java | 13 ++----------- .../betterx/bclib/blocks/BaseComposterBlock.java | 11 ++--------- .../bclib/blocks/BaseCraftingTableBlock.java | 11 ++--------- .../org/betterx/bclib/blocks/BaseCropBlock.java | 3 ++- .../bclib/blocks/BaseDoublePlantBlock.java | 4 ++-- .../org/betterx/bclib/blocks/BaseFenceBlock.java | 11 ++--------- .../org/betterx/bclib/blocks/BaseGateBlock.java | 11 ++--------- .../org/betterx/bclib/blocks/BaseLadderBlock.java | 13 ++----------- .../org/betterx/bclib/blocks/BaseLeavesBlock.java | 4 ++-- .../org/betterx/bclib/blocks/BasePlantBlock.java | 4 ++-- .../bclib/blocks/BasePressurePlateBlock.java | 11 ++--------- .../bclib/blocks/BaseRotatedPillarBlock.java | 12 ++---------- .../org/betterx/bclib/blocks/BaseSlabBlock.java | 13 ++----------- .../org/betterx/bclib/blocks/BaseStairsBlock.java | 12 ++---------- .../betterx/bclib/blocks/BaseTrapdoorBlock.java | 15 ++++++--------- .../org/betterx/bclib/blocks/BaseVineBlock.java | 4 ++-- .../org/betterx/bclib/blocks/BaseWallBlock.java | 12 ++---------- .../bclib/blocks/BaseWeightedPlateBlock.java | 13 ++----------- .../betterx/bclib/blocks/FeatureSaplingBlock.java | 12 ++---------- .../bclib/blocks/UnderwaterPlantBlock.java | 4 ++-- .../betterx/bclib/blocks/UpDownPlantBlock.java | 4 ++-- .../betterx/bclib/blocks/signs/BaseSignBlock.java | 9 +-------- 26 files changed, 57 insertions(+), 192 deletions(-) diff --git a/src/main/java/org/betterx/bclib/blocks/BaseAnvilBlock.java b/src/main/java/org/betterx/bclib/blocks/BaseAnvilBlock.java index 6e482198..99711c62 100644 --- a/src/main/java/org/betterx/bclib/blocks/BaseAnvilBlock.java +++ b/src/main/java/org/betterx/bclib/blocks/BaseAnvilBlock.java @@ -5,8 +5,10 @@ import org.betterx.bclib.client.models.ModelsHelper; import org.betterx.bclib.client.models.PatternsHelper; import org.betterx.bclib.interfaces.BlockModelProvider; import org.betterx.bclib.interfaces.CustomItemProvider; +import org.betterx.bclib.interfaces.tools.AddMineablePickaxe; import org.betterx.bclib.items.BaseAnvilItem; import org.betterx.bclib.util.BlocksHelper; +import org.betterx.bclib.util.LootUtil; import net.minecraft.client.renderer.block.model.BlockModel; import net.minecraft.client.resources.model.UnbakedModel; @@ -16,7 +18,6 @@ import net.minecraft.util.RandomSource; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.PickaxeItem; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.AnvilBlock; import net.minecraft.world.level.block.Block; @@ -43,7 +44,7 @@ import java.util.Optional; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Nullable; -public abstract class BaseAnvilBlock extends AnvilBlock implements BlockModelProvider, CustomItemProvider { +public abstract class BaseAnvilBlock extends AnvilBlock implements AddMineablePickaxe, BlockModelProvider, CustomItemProvider { public static final IntegerProperty DESTRUCTION = BlockProperties.DESTRUCTION; public IntegerProperty durability; @@ -112,7 +113,7 @@ public abstract class BaseAnvilBlock extends AnvilBlock implements BlockModelPro int durability = state.getValue(getDurabilityProp()); int value = destruction * getMaxDurability() + durability; ItemStack tool = builder.getParameter(LootContextParams.TOOL); - if (tool != null && tool.getItem() instanceof PickaxeItem) { + if (LootUtil.isCorrectTool(this, state, tool)) { ItemStack itemStack = new ItemStack(this); itemStack.getOrCreateTag().putInt(BaseAnvilItem.DESTRUCTION, value); return Lists.newArrayList(itemStack); diff --git a/src/main/java/org/betterx/bclib/blocks/BaseBarrelBlock.java b/src/main/java/org/betterx/bclib/blocks/BaseBarrelBlock.java index 5f0f460c..66c5fe78 100644 --- a/src/main/java/org/betterx/bclib/blocks/BaseBarrelBlock.java +++ b/src/main/java/org/betterx/bclib/blocks/BaseBarrelBlock.java @@ -1,5 +1,6 @@ package org.betterx.bclib.blocks; +import org.betterx.bclib.api.v3.datagen.DropSelfLootProvider; import org.betterx.bclib.behaviours.interfaces.BehaviourWood; import org.betterx.bclib.blockentities.BaseBarrelBlockEntity; import org.betterx.bclib.client.models.BasePatterns; @@ -35,7 +36,6 @@ import net.minecraft.world.level.block.RenderShape; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.storage.loot.LootParams; import net.minecraft.world.phys.BlockHitResult; import net.fabricmc.api.EnvType; @@ -46,7 +46,7 @@ import java.util.Map; import java.util.Optional; import org.jetbrains.annotations.Nullable; -public abstract class BaseBarrelBlock extends BarrelBlock implements BlockModelProvider, TagProvider { +public abstract class BaseBarrelBlock extends BarrelBlock implements BlockModelProvider, TagProvider, DropSelfLootProvider { BaseBarrelBlock(Block source) { this(Properties.copy(source).noOcclusion()); } @@ -60,14 +60,6 @@ public abstract class BaseBarrelBlock extends BarrelBlock implements BlockModelP return BaseBlockEntities.BARREL.create(blockPos, blockState); } - @Override - @SuppressWarnings("deprecation") - public List getDrops(BlockState state, LootParams.Builder builder) { - List drop = super.getDrops(state, builder); - drop.add(new ItemStack(this.asItem())); - return drop; - } - @Override public InteractionResult use( BlockState state, diff --git a/src/main/java/org/betterx/bclib/blocks/BaseButtonBlock.java b/src/main/java/org/betterx/bclib/blocks/BaseButtonBlock.java index bb9c2db5..c3eefae8 100644 --- a/src/main/java/org/betterx/bclib/blocks/BaseButtonBlock.java +++ b/src/main/java/org/betterx/bclib/blocks/BaseButtonBlock.java @@ -1,5 +1,6 @@ package org.betterx.bclib.blocks; +import org.betterx.bclib.api.v3.datagen.DropSelfLootProvider; import org.betterx.bclib.behaviours.BehaviourHelper; import org.betterx.bclib.behaviours.interfaces.BehaviourMetal; import org.betterx.bclib.behaviours.interfaces.BehaviourStone; @@ -19,24 +20,21 @@ import net.minecraft.tags.BlockTags; import net.minecraft.tags.ItemTags; import net.minecraft.tags.TagKey; import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.ButtonBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.AttachFace; import net.minecraft.world.level.block.state.properties.BlockSetType; -import net.minecraft.world.level.storage.loot.LootParams; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Optional; import org.jetbrains.annotations.Nullable; -public abstract class BaseButtonBlock extends ButtonBlock implements BlockModelProvider, TagProvider { +public abstract class BaseButtonBlock extends ButtonBlock implements BlockModelProvider, TagProvider, DropSelfLootProvider { private final Block parent; protected BaseButtonBlock(Block parent, Properties properties, boolean sensitive, BlockSetType type) { @@ -56,12 +54,6 @@ public abstract class BaseButtonBlock extends ButtonBlock implements BlockModelP this.parent = parent; } - @Override - @SuppressWarnings("deprecation") - public List getDrops(BlockState state, LootParams.Builder builder) { - return Collections.singletonList(new ItemStack(this)); - } - @Override @Environment(EnvType.CLIENT) public BlockModel getItemModel(ResourceLocation blockId) { diff --git a/src/main/java/org/betterx/bclib/blocks/BaseChainBlock.java b/src/main/java/org/betterx/bclib/blocks/BaseChainBlock.java index 790e1a89..95eaf993 100644 --- a/src/main/java/org/betterx/bclib/blocks/BaseChainBlock.java +++ b/src/main/java/org/betterx/bclib/blocks/BaseChainBlock.java @@ -1,5 +1,6 @@ package org.betterx.bclib.blocks; +import org.betterx.bclib.api.v3.datagen.DropSelfLootProvider; import org.betterx.bclib.behaviours.interfaces.BehaviourMetal; import org.betterx.bclib.client.models.BasePatterns; import org.betterx.bclib.client.models.ModelsHelper; @@ -12,24 +13,20 @@ import net.minecraft.client.renderer.block.model.BlockModel; import net.minecraft.client.resources.model.UnbakedModel; import net.minecraft.core.Direction; import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.ChainBlock; import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.MapColor; -import net.minecraft.world.level.storage.loot.LootParams; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import java.util.Collections; -import java.util.List; import java.util.Map; import java.util.Optional; import org.jetbrains.annotations.Nullable; -public abstract class BaseChainBlock extends ChainBlock implements BlockModelProvider, RenderLayerProvider { +public abstract class BaseChainBlock extends ChainBlock implements BlockModelProvider, RenderLayerProvider, DropSelfLootProvider { public BaseChainBlock(MapColor color) { this(Properties.copy(Blocks.CHAIN).mapColor(color)); } @@ -38,11 +35,6 @@ public abstract class BaseChainBlock extends ChainBlock implements BlockModelPro super(properties); } - @Override - @SuppressWarnings("deprecation") - public List getDrops(BlockState state, LootParams.Builder builder) { - return Collections.singletonList(new ItemStack(this)); - } @Override @Environment(EnvType.CLIENT) diff --git a/src/main/java/org/betterx/bclib/blocks/BaseChestBlock.java b/src/main/java/org/betterx/bclib/blocks/BaseChestBlock.java index ded1233f..b6c0655b 100644 --- a/src/main/java/org/betterx/bclib/blocks/BaseChestBlock.java +++ b/src/main/java/org/betterx/bclib/blocks/BaseChestBlock.java @@ -1,5 +1,6 @@ package org.betterx.bclib.blocks; +import org.betterx.bclib.api.v3.datagen.DropSelfLootProvider; import org.betterx.bclib.behaviours.interfaces.BehaviourWood; import org.betterx.bclib.client.models.BasePatterns; import org.betterx.bclib.client.models.ModelsHelper; @@ -16,12 +17,10 @@ import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.TagKey; import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.ChestBlock; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.storage.loot.LootParams; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; @@ -30,7 +29,7 @@ import java.util.List; import java.util.Optional; import org.jetbrains.annotations.Nullable; -public abstract class BaseChestBlock extends ChestBlock implements BlockModelProvider, TagProvider { +public abstract class BaseChestBlock extends ChestBlock implements BlockModelProvider, TagProvider, DropSelfLootProvider { private final Block parent; protected BaseChestBlock(Block source) { @@ -43,14 +42,6 @@ public abstract class BaseChestBlock extends ChestBlock implements BlockModelPro return BaseBlockEntities.CHEST.create(blockPos, blockState); } - @Override - @SuppressWarnings("deprecation") - public List getDrops(BlockState state, LootParams.Builder builder) { - List drop = super.getDrops(state, builder); - drop.add(new ItemStack(this.asItem())); - return drop; - } - @Override @Environment(EnvType.CLIENT) public BlockModel getItemModel(ResourceLocation blockId) { diff --git a/src/main/java/org/betterx/bclib/blocks/BaseComposterBlock.java b/src/main/java/org/betterx/bclib/blocks/BaseComposterBlock.java index 5c1ed92a..e42c6fe5 100644 --- a/src/main/java/org/betterx/bclib/blocks/BaseComposterBlock.java +++ b/src/main/java/org/betterx/bclib/blocks/BaseComposterBlock.java @@ -1,5 +1,6 @@ package org.betterx.bclib.blocks; +import org.betterx.bclib.api.v3.datagen.DropSelfLootProvider; import org.betterx.bclib.behaviours.interfaces.BehaviourWood; import org.betterx.bclib.client.models.BasePatterns; import org.betterx.bclib.client.models.ModelsHelper; @@ -14,31 +15,23 @@ import net.minecraft.client.resources.model.UnbakedModel; import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.TagKey; import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.ComposterBlock; import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.storage.loot.LootParams; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Optional; import org.jetbrains.annotations.Nullable; -public abstract class BaseComposterBlock extends ComposterBlock implements BlockModelProvider, TagProvider { +public abstract class BaseComposterBlock extends ComposterBlock implements BlockModelProvider, TagProvider, DropSelfLootProvider { protected BaseComposterBlock(Block source) { super(Properties.copy(source)); } - @Override - @SuppressWarnings("deprecation") - public List getDrops(BlockState state, LootParams.Builder builder) { - return Collections.singletonList(new ItemStack(this.asItem())); - } @Override @Environment(EnvType.CLIENT) diff --git a/src/main/java/org/betterx/bclib/blocks/BaseCraftingTableBlock.java b/src/main/java/org/betterx/bclib/blocks/BaseCraftingTableBlock.java index 360c7f6f..d83669d1 100644 --- a/src/main/java/org/betterx/bclib/blocks/BaseCraftingTableBlock.java +++ b/src/main/java/org/betterx/bclib/blocks/BaseCraftingTableBlock.java @@ -1,5 +1,6 @@ package org.betterx.bclib.blocks; +import org.betterx.bclib.api.v3.datagen.DropSelfLootProvider; import org.betterx.bclib.behaviours.interfaces.BehaviourWood; import org.betterx.bclib.client.models.BasePatterns; import org.betterx.bclib.client.models.ModelsHelper; @@ -13,23 +14,20 @@ import net.minecraft.client.renderer.block.model.BlockModel; import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.TagKey; import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.CraftingTableBlock; import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.storage.loot.LootParams; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Optional; import org.jetbrains.annotations.Nullable; -public abstract class BaseCraftingTableBlock extends CraftingTableBlock implements BlockModelProvider, TagProvider { +public abstract class BaseCraftingTableBlock extends CraftingTableBlock implements BlockModelProvider, TagProvider, DropSelfLootProvider { protected BaseCraftingTableBlock(Block source) { this(Properties.copy(source)); } @@ -38,11 +36,6 @@ public abstract class BaseCraftingTableBlock extends CraftingTableBlock implemen super(properties); } - @Override - @SuppressWarnings("deprecation") - public List getDrops(BlockState state, LootParams.Builder builder) { - return Collections.singletonList(new ItemStack(this.asItem())); - } @Override @Environment(EnvType.CLIENT) diff --git a/src/main/java/org/betterx/bclib/blocks/BaseCropBlock.java b/src/main/java/org/betterx/bclib/blocks/BaseCropBlock.java index 5e613948..de722f1c 100644 --- a/src/main/java/org/betterx/bclib/blocks/BaseCropBlock.java +++ b/src/main/java/org/betterx/bclib/blocks/BaseCropBlock.java @@ -3,6 +3,7 @@ package org.betterx.bclib.blocks; import org.betterx.bclib.behaviours.BehaviourBuilders; import org.betterx.bclib.interfaces.SurvivesOnBlocks; import org.betterx.bclib.util.BlocksHelper; +import org.betterx.bclib.util.LootUtil; import org.betterx.bclib.util.MHelper; import net.minecraft.core.BlockPos; @@ -65,7 +66,7 @@ public class BaseCropBlock extends BasePlantBlock implements SurvivesOnBlocks { return Collections.singletonList(new ItemStack(this)); } ItemStack tool = builder.getParameter(LootContextParams.TOOL); - if (tool != null && tool.isCorrectToolForDrops(state)) { + if (LootUtil.isCorrectTool(this, state, tool)) { int enchantment = EnchantmentHelper.getItemEnchantmentLevel(Enchantments.BLOCK_FORTUNE, tool); if (enchantment > 0) { int countSeeds = MHelper.randRange(Mth.clamp(1 + enchantment, 1, 3), 3, MHelper.RANDOM_SOURCE); diff --git a/src/main/java/org/betterx/bclib/blocks/BaseDoublePlantBlock.java b/src/main/java/org/betterx/bclib/blocks/BaseDoublePlantBlock.java index 124e31f9..7434578b 100644 --- a/src/main/java/org/betterx/bclib/blocks/BaseDoublePlantBlock.java +++ b/src/main/java/org/betterx/bclib/blocks/BaseDoublePlantBlock.java @@ -3,8 +3,8 @@ package org.betterx.bclib.blocks; import org.betterx.bclib.behaviours.BehaviourBuilders; import org.betterx.bclib.client.render.BCLRenderLayer; import org.betterx.bclib.interfaces.RenderLayerProvider; -import org.betterx.bclib.items.tool.BaseShearsItem; import org.betterx.bclib.util.BlocksHelper; +import org.betterx.bclib.util.LootUtil; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -115,7 +115,7 @@ public abstract class BaseDoublePlantBlock extends BaseBlockNotFull implements R @Override public List getDrops(BlockState state, LootParams.Builder builder) { ItemStack tool = builder.getParameter(LootContextParams.TOOL); - if (tool != null && BaseShearsItem.isShear(tool) || EnchantmentHelper.getItemEnchantmentLevel( + if (LootUtil.isCorrectTool(this, state, tool) || EnchantmentHelper.getItemEnchantmentLevel( Enchantments.SILK_TOUCH, tool ) > 0) { diff --git a/src/main/java/org/betterx/bclib/blocks/BaseFenceBlock.java b/src/main/java/org/betterx/bclib/blocks/BaseFenceBlock.java index 60541bcf..3fbdb3ce 100644 --- a/src/main/java/org/betterx/bclib/blocks/BaseFenceBlock.java +++ b/src/main/java/org/betterx/bclib/blocks/BaseFenceBlock.java @@ -1,5 +1,6 @@ package org.betterx.bclib.blocks; +import org.betterx.bclib.api.v3.datagen.DropSelfLootProvider; import org.betterx.bclib.behaviours.interfaces.BehaviourWood; import org.betterx.bclib.client.models.BasePatterns; import org.betterx.bclib.client.models.ModelsHelper; @@ -16,23 +17,20 @@ import net.minecraft.tags.BlockTags; import net.minecraft.tags.ItemTags; import net.minecraft.tags.TagKey; import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.FenceBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.BlockSetType; -import net.minecraft.world.level.storage.loot.LootParams; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Optional; import org.jetbrains.annotations.Nullable; -public abstract class BaseFenceBlock extends FenceBlock implements BlockModelProvider, TagProvider { +public abstract class BaseFenceBlock extends FenceBlock implements BlockModelProvider, TagProvider, DropSelfLootProvider { private final Block parent; protected BaseFenceBlock(Block source) { @@ -40,11 +38,6 @@ public abstract class BaseFenceBlock extends FenceBlock implements BlockModelPro this.parent = source; } - @Override - @SuppressWarnings("deprecation") - public List getDrops(BlockState state, LootParams.Builder builder) { - return Collections.singletonList(new ItemStack(this)); - } @Override @Environment(EnvType.CLIENT) diff --git a/src/main/java/org/betterx/bclib/blocks/BaseGateBlock.java b/src/main/java/org/betterx/bclib/blocks/BaseGateBlock.java index 0ec723b9..993ad72f 100644 --- a/src/main/java/org/betterx/bclib/blocks/BaseGateBlock.java +++ b/src/main/java/org/betterx/bclib/blocks/BaseGateBlock.java @@ -1,5 +1,6 @@ package org.betterx.bclib.blocks; +import org.betterx.bclib.api.v3.datagen.DropSelfLootProvider; import org.betterx.bclib.behaviours.interfaces.BehaviourWood; import org.betterx.bclib.client.models.BasePatterns; import org.betterx.bclib.client.models.ModelsHelper; @@ -14,23 +15,20 @@ import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.BlockTags; import net.minecraft.tags.TagKey; import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.FenceGateBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.WoodType; -import net.minecraft.world.level.storage.loot.LootParams; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Optional; import org.jetbrains.annotations.Nullable; -public abstract class BaseGateBlock extends FenceGateBlock implements BlockModelProvider, TagProvider { +public abstract class BaseGateBlock extends FenceGateBlock implements BlockModelProvider, TagProvider, DropSelfLootProvider { private final Block parent; protected BaseGateBlock(Block source, WoodType type) { @@ -38,11 +36,6 @@ public abstract class BaseGateBlock extends FenceGateBlock implements BlockModel this.parent = source; } - @Override - @SuppressWarnings("deprecation") - public List getDrops(BlockState state, LootParams.Builder builder) { - return Collections.singletonList(new ItemStack(this)); - } @Override @Environment(EnvType.CLIENT) diff --git a/src/main/java/org/betterx/bclib/blocks/BaseLadderBlock.java b/src/main/java/org/betterx/bclib/blocks/BaseLadderBlock.java index d54a7222..88f87f43 100644 --- a/src/main/java/org/betterx/bclib/blocks/BaseLadderBlock.java +++ b/src/main/java/org/betterx/bclib/blocks/BaseLadderBlock.java @@ -1,5 +1,6 @@ package org.betterx.bclib.blocks; +import org.betterx.bclib.api.v3.datagen.DropSelfLootProvider; import org.betterx.bclib.behaviours.BehaviourHelper; import org.betterx.bclib.behaviours.interfaces.BehaviourClimable; import org.betterx.bclib.behaviours.interfaces.BehaviourMetal; @@ -14,23 +15,19 @@ import org.betterx.bclib.interfaces.RenderLayerProvider; import net.minecraft.client.renderer.block.model.BlockModel; import net.minecraft.client.resources.model.UnbakedModel; import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.LadderBlock; import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.storage.loot.LootParams; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import java.util.Collections; -import java.util.List; import java.util.Map; import java.util.Optional; import org.jetbrains.annotations.Nullable; -public abstract class BaseLadderBlock extends LadderBlock implements RenderLayerProvider, BlockModelProvider, BehaviourClimable { +public abstract class BaseLadderBlock extends LadderBlock implements RenderLayerProvider, BlockModelProvider, BehaviourClimable, DropSelfLootProvider { protected BaseLadderBlock(Block block) { this(Properties.copy(block).noOcclusion()); } @@ -69,12 +66,6 @@ public abstract class BaseLadderBlock extends LadderBlock implements RenderLayer return ModelsHelper.createFacingModel(modelId, blockState.getValue(FACING), false, true); } - @Override - @SuppressWarnings("deprecation") - public List getDrops(BlockState state, LootParams.Builder builder) { - return Collections.singletonList(new ItemStack(this)); - } - public static class Wood extends BaseLadderBlock implements BehaviourWood { public Wood(Block block) { super(block); diff --git a/src/main/java/org/betterx/bclib/blocks/BaseLeavesBlock.java b/src/main/java/org/betterx/bclib/blocks/BaseLeavesBlock.java index cf423228..b8c607ce 100644 --- a/src/main/java/org/betterx/bclib/blocks/BaseLeavesBlock.java +++ b/src/main/java/org/betterx/bclib/blocks/BaseLeavesBlock.java @@ -5,7 +5,7 @@ import org.betterx.bclib.behaviours.interfaces.BehaviourLeaves; import org.betterx.bclib.client.render.BCLRenderLayer; import org.betterx.bclib.interfaces.BlockModelProvider; import org.betterx.bclib.interfaces.RenderLayerProvider; -import org.betterx.bclib.items.tool.BaseShearsItem; +import org.betterx.bclib.util.LootUtil; import org.betterx.bclib.util.MHelper; import net.minecraft.client.renderer.block.model.BlockModel; @@ -95,7 +95,7 @@ public class BaseLeavesBlock extends LeavesBlock implements BlockModelProvider, ) { ItemStack tool = builder.getParameter(LootContextParams.TOOL); if (tool != null) { - if (BaseShearsItem.isShear(tool) || EnchantmentHelper.getItemEnchantmentLevel( + if (LootUtil.isCorrectTool(leaveBlock, null, tool) || EnchantmentHelper.getItemEnchantmentLevel( Enchantments.SILK_TOUCH, tool ) > 0) { diff --git a/src/main/java/org/betterx/bclib/blocks/BasePlantBlock.java b/src/main/java/org/betterx/bclib/blocks/BasePlantBlock.java index 6396b54c..cdc00b9a 100644 --- a/src/main/java/org/betterx/bclib/blocks/BasePlantBlock.java +++ b/src/main/java/org/betterx/bclib/blocks/BasePlantBlock.java @@ -5,7 +5,7 @@ import org.betterx.bclib.client.models.ModelsHelper; import org.betterx.bclib.client.models.PatternsHelper; import org.betterx.bclib.client.render.BCLRenderLayer; import org.betterx.bclib.interfaces.RenderLayerProvider; -import org.betterx.bclib.items.tool.BaseShearsItem; +import org.betterx.bclib.util.LootUtil; import net.minecraft.client.renderer.block.model.BlockModel; import net.minecraft.core.BlockPos; @@ -83,7 +83,7 @@ public abstract class BasePlantBlock extends BaseBlockNotFull implements RenderL @Override public List getDrops(BlockState state, LootParams.Builder builder) { ItemStack tool = builder.getParameter(LootContextParams.TOOL); - if (tool != null && BaseShearsItem.isShear(tool) || EnchantmentHelper.getItemEnchantmentLevel( + if (LootUtil.isCorrectTool(this, state, tool) || EnchantmentHelper.getItemEnchantmentLevel( Enchantments.SILK_TOUCH, tool ) > 0) { diff --git a/src/main/java/org/betterx/bclib/blocks/BasePressurePlateBlock.java b/src/main/java/org/betterx/bclib/blocks/BasePressurePlateBlock.java index c3fe495f..b57949d4 100644 --- a/src/main/java/org/betterx/bclib/blocks/BasePressurePlateBlock.java +++ b/src/main/java/org/betterx/bclib/blocks/BasePressurePlateBlock.java @@ -1,5 +1,6 @@ package org.betterx.bclib.blocks; +import org.betterx.bclib.api.v3.datagen.DropSelfLootProvider; import org.betterx.bclib.behaviours.BehaviourHelper; import org.betterx.bclib.behaviours.interfaces.BehaviourMetal; import org.betterx.bclib.behaviours.interfaces.BehaviourStone; @@ -18,23 +19,20 @@ import net.minecraft.tags.BlockTags; import net.minecraft.tags.ItemTags; import net.minecraft.tags.TagKey; import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.PressurePlateBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.BlockSetType; -import net.minecraft.world.level.storage.loot.LootParams; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Optional; import org.jetbrains.annotations.Nullable; -public abstract class BasePressurePlateBlock extends PressurePlateBlock implements BlockModelProvider, TagProvider { +public abstract class BasePressurePlateBlock extends PressurePlateBlock implements BlockModelProvider, TagProvider, DropSelfLootProvider { private final Block parent; protected BasePressurePlateBlock(Sensitivity rule, Block source, BlockSetType type) { @@ -45,11 +43,6 @@ public abstract class BasePressurePlateBlock extends PressurePlateBlock implemen this.parent = source; } - @Override - @SuppressWarnings("deprecation") - public List getDrops(BlockState state, LootParams.Builder builder) { - return Collections.singletonList(new ItemStack(this)); - } @Override @Environment(EnvType.CLIENT) diff --git a/src/main/java/org/betterx/bclib/blocks/BaseRotatedPillarBlock.java b/src/main/java/org/betterx/bclib/blocks/BaseRotatedPillarBlock.java index 07a96e59..949c70db 100644 --- a/src/main/java/org/betterx/bclib/blocks/BaseRotatedPillarBlock.java +++ b/src/main/java/org/betterx/bclib/blocks/BaseRotatedPillarBlock.java @@ -1,5 +1,6 @@ package org.betterx.bclib.blocks; +import org.betterx.bclib.api.v3.datagen.DropSelfLootProvider; import org.betterx.bclib.behaviours.BehaviourHelper; import org.betterx.bclib.behaviours.interfaces.BehaviourMetal; import org.betterx.bclib.behaviours.interfaces.BehaviourStone; @@ -11,22 +12,18 @@ import org.betterx.bclib.interfaces.BlockModelProvider; import net.minecraft.client.renderer.block.model.BlockModel; import net.minecraft.client.resources.model.UnbakedModel; import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.RotatedPillarBlock; import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.storage.loot.LootParams; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import java.util.Collections; -import java.util.List; import java.util.Map; import java.util.Optional; import org.jetbrains.annotations.Nullable; -public abstract class BaseRotatedPillarBlock extends RotatedPillarBlock implements BlockModelProvider { +public abstract class BaseRotatedPillarBlock extends RotatedPillarBlock implements BlockModelProvider, DropSelfLootProvider { protected BaseRotatedPillarBlock(Properties settings) { super(settings); } @@ -35,11 +32,6 @@ public abstract class BaseRotatedPillarBlock extends RotatedPillarBlock implemen this(Properties.copy(block)); } - @Override - @SuppressWarnings("deprecation") - public List getDrops(BlockState state, LootParams.Builder builder) { - return Collections.singletonList(new ItemStack(this)); - } @Override @Environment(EnvType.CLIENT) diff --git a/src/main/java/org/betterx/bclib/blocks/BaseSlabBlock.java b/src/main/java/org/betterx/bclib/blocks/BaseSlabBlock.java index 902f172d..1a56b308 100644 --- a/src/main/java/org/betterx/bclib/blocks/BaseSlabBlock.java +++ b/src/main/java/org/betterx/bclib/blocks/BaseSlabBlock.java @@ -1,5 +1,6 @@ package org.betterx.bclib.blocks; +import org.betterx.bclib.api.v3.datagen.DropSelfLootProvider; import org.betterx.bclib.behaviours.BehaviourHelper; import org.betterx.bclib.behaviours.interfaces.BehaviourMetal; import org.betterx.bclib.behaviours.interfaces.BehaviourObsidian; @@ -22,23 +23,20 @@ import net.minecraft.tags.ItemTags; import net.minecraft.tags.TagKey; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.SlabBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.SlabType; -import net.minecraft.world.level.storage.loot.LootParams; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Optional; import org.jetbrains.annotations.Nullable; -public abstract class BaseSlabBlock extends SlabBlock implements BlockModelProvider, CustomItemProvider, TagProvider { +public abstract class BaseSlabBlock extends SlabBlock implements BlockModelProvider, CustomItemProvider, TagProvider, DropSelfLootProvider { private final Block parent; public final boolean fireproof; @@ -48,13 +46,6 @@ public abstract class BaseSlabBlock extends SlabBlock implements BlockModelProvi this.fireproof = fireproof; } - @Override - @SuppressWarnings("deprecation") - public List getDrops(BlockState state, LootParams.Builder builder) { - int count = state.getValue(TYPE) == SlabType.DOUBLE ? 2 : 1; - return Collections.singletonList(new ItemStack(this, count)); - } - @Override @Environment(EnvType.CLIENT) public BlockModel getItemModel(ResourceLocation resourceLocation) { diff --git a/src/main/java/org/betterx/bclib/blocks/BaseStairsBlock.java b/src/main/java/org/betterx/bclib/blocks/BaseStairsBlock.java index 735166fc..d3d5f257 100644 --- a/src/main/java/org/betterx/bclib/blocks/BaseStairsBlock.java +++ b/src/main/java/org/betterx/bclib/blocks/BaseStairsBlock.java @@ -1,5 +1,6 @@ package org.betterx.bclib.blocks; +import org.betterx.bclib.api.v3.datagen.DropSelfLootProvider; import org.betterx.bclib.behaviours.BehaviourHelper; import org.betterx.bclib.behaviours.interfaces.BehaviourMetal; import org.betterx.bclib.behaviours.interfaces.BehaviourObsidian; @@ -22,24 +23,21 @@ import net.minecraft.tags.ItemTags; import net.minecraft.tags.TagKey; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.StairBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.Half; import net.minecraft.world.level.block.state.properties.StairsShape; -import net.minecraft.world.level.storage.loot.LootParams; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Optional; import org.jetbrains.annotations.Nullable; -public abstract class BaseStairsBlock extends StairBlock implements BlockModelProvider, CustomItemProvider, TagProvider { +public abstract class BaseStairsBlock extends StairBlock implements BlockModelProvider, CustomItemProvider, TagProvider, DropSelfLootProvider { private final Block parent; @@ -51,12 +49,6 @@ public abstract class BaseStairsBlock extends StairBlock implements BlockModelPr this.fireproof = fireproof; } - @Override - @SuppressWarnings("deprecation") - public List getDrops(BlockState state, LootParams.Builder builder) { - return Collections.singletonList(new ItemStack(this)); - } - @Override @Environment(EnvType.CLIENT) public BlockModel getItemModel(ResourceLocation resourceLocation) { diff --git a/src/main/java/org/betterx/bclib/blocks/BaseTrapdoorBlock.java b/src/main/java/org/betterx/bclib/blocks/BaseTrapdoorBlock.java index 0c2e2a0c..6376c39e 100644 --- a/src/main/java/org/betterx/bclib/blocks/BaseTrapdoorBlock.java +++ b/src/main/java/org/betterx/bclib/blocks/BaseTrapdoorBlock.java @@ -1,5 +1,6 @@ package org.betterx.bclib.blocks; +import org.betterx.bclib.api.v3.datagen.DropSelfLootProvider; import org.betterx.bclib.behaviours.BehaviourBuilders; import org.betterx.bclib.behaviours.BehaviourHelper; import org.betterx.bclib.behaviours.interfaces.BehaviourMetal; @@ -21,7 +22,6 @@ import net.minecraft.tags.BlockTags; import net.minecraft.tags.ItemTags; import net.minecraft.tags.TagKey; import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.SoundType; import net.minecraft.world.level.block.TrapDoorBlock; @@ -29,24 +29,21 @@ import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.BlockSetType; import net.minecraft.world.level.block.state.properties.Half; -import net.minecraft.world.level.storage.loot.LootParams; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import java.util.*; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; import org.jetbrains.annotations.Nullable; -public abstract class BaseTrapdoorBlock extends TrapDoorBlock implements RenderLayerProvider, BlockModelProvider, TagProvider { +public abstract class BaseTrapdoorBlock extends TrapDoorBlock implements RenderLayerProvider, BlockModelProvider, TagProvider, DropSelfLootProvider { protected BaseTrapdoorBlock(BlockBehaviour.Properties properties, BlockSetType type) { super(properties, type); } - @Override - @SuppressWarnings("deprecation") - public List getDrops(BlockState state, LootParams.Builder builder) { - return Collections.singletonList(new ItemStack(this)); - } @Override public BCLRenderLayer getRenderLayer() { diff --git a/src/main/java/org/betterx/bclib/blocks/BaseVineBlock.java b/src/main/java/org/betterx/bclib/blocks/BaseVineBlock.java index c278f92e..df9b5c7c 100644 --- a/src/main/java/org/betterx/bclib/blocks/BaseVineBlock.java +++ b/src/main/java/org/betterx/bclib/blocks/BaseVineBlock.java @@ -5,8 +5,8 @@ import org.betterx.bclib.behaviours.interfaces.BehaviourVine; import org.betterx.bclib.blocks.BlockProperties.TripleShape; import org.betterx.bclib.client.render.BCLRenderLayer; import org.betterx.bclib.interfaces.RenderLayerProvider; -import org.betterx.bclib.items.tool.BaseShearsItem; import org.betterx.bclib.util.BlocksHelper; +import org.betterx.bclib.util.LootUtil; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -121,7 +121,7 @@ public class BaseVineBlock extends BaseBlockNotFull implements RenderLayerProvid @Override public List getDrops(BlockState state, LootParams.Builder builder) { ItemStack tool = builder.getParameter(LootContextParams.TOOL); - if (tool != null && BaseShearsItem.isShear(tool) || EnchantmentHelper.getItemEnchantmentLevel( + if (LootUtil.isCorrectTool(this, state, tool) || EnchantmentHelper.getItemEnchantmentLevel( Enchantments.SILK_TOUCH, tool ) > 0) { diff --git a/src/main/java/org/betterx/bclib/blocks/BaseWallBlock.java b/src/main/java/org/betterx/bclib/blocks/BaseWallBlock.java index 3dcd3750..6f0d90ae 100644 --- a/src/main/java/org/betterx/bclib/blocks/BaseWallBlock.java +++ b/src/main/java/org/betterx/bclib/blocks/BaseWallBlock.java @@ -1,5 +1,6 @@ package org.betterx.bclib.blocks; +import org.betterx.bclib.api.v3.datagen.DropSelfLootProvider; import org.betterx.bclib.behaviours.interfaces.BehaviourStone; import org.betterx.bclib.behaviours.interfaces.BehaviourWood; import org.betterx.bclib.client.models.BasePatterns; @@ -16,23 +17,20 @@ import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.BlockTags; import net.minecraft.tags.TagKey; import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.WallBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.WallSide; -import net.minecraft.world.level.storage.loot.LootParams; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Optional; import org.jetbrains.annotations.Nullable; -public abstract class BaseWallBlock extends WallBlock implements BlockModelProvider, TagProvider { +public abstract class BaseWallBlock extends WallBlock implements BlockModelProvider, TagProvider, DropSelfLootProvider { private final Block parent; protected BaseWallBlock(Block source) { @@ -40,12 +38,6 @@ public abstract class BaseWallBlock extends WallBlock implements BlockModelProvi this.parent = source; } - @Override - @SuppressWarnings("deprecation") - public List getDrops(BlockState state, LootParams.Builder builder) { - return Collections.singletonList(new ItemStack(this)); - } - @Override @Environment(EnvType.CLIENT) public BlockModel getItemModel(ResourceLocation blockId) { diff --git a/src/main/java/org/betterx/bclib/blocks/BaseWeightedPlateBlock.java b/src/main/java/org/betterx/bclib/blocks/BaseWeightedPlateBlock.java index c0b60d0c..73cbdd52 100644 --- a/src/main/java/org/betterx/bclib/blocks/BaseWeightedPlateBlock.java +++ b/src/main/java/org/betterx/bclib/blocks/BaseWeightedPlateBlock.java @@ -1,5 +1,6 @@ package org.betterx.bclib.blocks; +import org.betterx.bclib.api.v3.datagen.DropSelfLootProvider; import org.betterx.bclib.client.models.BasePatterns; import org.betterx.bclib.client.models.ModelsHelper; import org.betterx.bclib.client.models.PatternsHelper; @@ -9,23 +10,19 @@ import net.minecraft.client.renderer.block.model.BlockModel; import net.minecraft.client.resources.model.UnbakedModel; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.WeightedPressurePlateBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.BlockSetType; -import net.minecraft.world.level.storage.loot.LootParams; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import java.util.Collections; -import java.util.List; import java.util.Map; import java.util.Optional; import org.jetbrains.annotations.Nullable; -public class BaseWeightedPlateBlock extends WeightedPressurePlateBlock implements BlockModelProvider { +public class BaseWeightedPlateBlock extends WeightedPressurePlateBlock implements BlockModelProvider, DropSelfLootProvider { private final Block parent; public BaseWeightedPlateBlock(Block source, BlockSetType type) { @@ -41,12 +38,6 @@ public class BaseWeightedPlateBlock extends WeightedPressurePlateBlock implement this.parent = source; } - @Override - @SuppressWarnings("deprecation") - public List getDrops(BlockState state, LootParams.Builder builder) { - return Collections.singletonList(new ItemStack(this)); - } - @Override @Environment(EnvType.CLIENT) public BlockModel getItemModel(ResourceLocation resourceLocation) { diff --git a/src/main/java/org/betterx/bclib/blocks/FeatureSaplingBlock.java b/src/main/java/org/betterx/bclib/blocks/FeatureSaplingBlock.java index 17972946..70108212 100644 --- a/src/main/java/org/betterx/bclib/blocks/FeatureSaplingBlock.java +++ b/src/main/java/org/betterx/bclib/blocks/FeatureSaplingBlock.java @@ -1,5 +1,6 @@ package org.betterx.bclib.blocks; +import org.betterx.bclib.api.v3.datagen.DropSelfLootProvider; import org.betterx.bclib.api.v3.levelgen.features.BCLConfigureFeature; import org.betterx.bclib.behaviours.BehaviourBuilders; import org.betterx.bclib.client.models.BasePatterns; @@ -15,7 +16,6 @@ import net.minecraft.core.Direction; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerLevel; import net.minecraft.util.RandomSource; -import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.Level; import net.minecraft.world.level.LevelAccessor; @@ -27,19 +27,16 @@ import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.levelgen.feature.Feature; import net.minecraft.world.level.levelgen.feature.configurations.FeatureConfiguration; -import net.minecraft.world.level.storage.loot.LootParams; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.VoxelShape; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import java.util.Collections; -import java.util.List; import java.util.Optional; import org.jetbrains.annotations.Nullable; -public class FeatureSaplingBlock, FC extends FeatureConfiguration> extends SaplingBlock implements RenderLayerProvider, BlockModelProvider { +public class FeatureSaplingBlock, FC extends FeatureConfiguration> extends SaplingBlock implements RenderLayerProvider, BlockModelProvider, DropSelfLootProvider { @FunctionalInterface public interface FeatureSupplier, FC extends FeatureConfiguration> { @@ -75,11 +72,6 @@ public class FeatureSaplingBlock, FC extends FeatureConfig return feature != null ? feature.get(state) : null; } - @Override - public List getDrops(BlockState state, LootParams.Builder builder) { - return Collections.singletonList(new ItemStack(this)); - } - @Override public BlockState updateShape( BlockState state, diff --git a/src/main/java/org/betterx/bclib/blocks/UnderwaterPlantBlock.java b/src/main/java/org/betterx/bclib/blocks/UnderwaterPlantBlock.java index 7fbabb9b..e66f19ef 100644 --- a/src/main/java/org/betterx/bclib/blocks/UnderwaterPlantBlock.java +++ b/src/main/java/org/betterx/bclib/blocks/UnderwaterPlantBlock.java @@ -2,7 +2,7 @@ package org.betterx.bclib.blocks; import org.betterx.bclib.client.render.BCLRenderLayer; import org.betterx.bclib.interfaces.RenderLayerProvider; -import org.betterx.bclib.items.tool.BaseShearsItem; +import org.betterx.bclib.util.LootUtil; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -78,7 +78,7 @@ public abstract class UnderwaterPlantBlock extends BaseBlockNotFull implements R @Override public List getDrops(BlockState state, LootParams.Builder builder) { ItemStack tool = builder.getParameter(LootContextParams.TOOL); - if (tool != null && BaseShearsItem.isShear(tool) || EnchantmentHelper.getItemEnchantmentLevel( + if (LootUtil.isCorrectTool(this, state, tool) || EnchantmentHelper.getItemEnchantmentLevel( Enchantments.SILK_TOUCH, tool ) > 0) { diff --git a/src/main/java/org/betterx/bclib/blocks/UpDownPlantBlock.java b/src/main/java/org/betterx/bclib/blocks/UpDownPlantBlock.java index d0de85b7..ffcc7053 100644 --- a/src/main/java/org/betterx/bclib/blocks/UpDownPlantBlock.java +++ b/src/main/java/org/betterx/bclib/blocks/UpDownPlantBlock.java @@ -5,7 +5,7 @@ import org.betterx.bclib.behaviours.interfaces.BehaviourPlant; import org.betterx.bclib.client.render.BCLRenderLayer; import org.betterx.bclib.interfaces.RenderLayerProvider; import org.betterx.bclib.interfaces.tools.AddMineableShears; -import org.betterx.bclib.items.tool.BaseShearsItem; +import org.betterx.bclib.util.LootUtil; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -85,7 +85,7 @@ public abstract class UpDownPlantBlock extends BaseBlockNotFull implements Rende @Override public List getDrops(BlockState state, LootParams.Builder builder) { ItemStack tool = builder.getParameter(LootContextParams.TOOL); - if (tool != null && BaseShearsItem.isShear(tool) || EnchantmentHelper.getItemEnchantmentLevel( + if (LootUtil.isCorrectTool(this, state, tool) || EnchantmentHelper.getItemEnchantmentLevel( Enchantments.SILK_TOUCH, tool ) > 0) { diff --git a/src/main/java/org/betterx/bclib/blocks/signs/BaseSignBlock.java b/src/main/java/org/betterx/bclib/blocks/signs/BaseSignBlock.java index cefc2176..96ecab7a 100644 --- a/src/main/java/org/betterx/bclib/blocks/signs/BaseSignBlock.java +++ b/src/main/java/org/betterx/bclib/blocks/signs/BaseSignBlock.java @@ -15,7 +15,6 @@ import net.minecraft.tags.ItemTags; import net.minecraft.tags.TagKey; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.SignItem; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.StandingSignBlock; @@ -23,7 +22,6 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.RotationSegment; import net.minecraft.world.level.block.state.properties.WoodType; import net.minecraft.world.level.material.MapColor; -import net.minecraft.world.level.storage.loot.LootParams; import java.util.List; import java.util.function.Supplier; @@ -44,7 +42,7 @@ public abstract class BaseSignBlock extends StandingSignBlock implements BlockMo super(BehaviourBuilders.createSign(color, flammable), type); this.wallSign = () -> provider.create(BehaviourBuilders.createWallSign(color, this, flammable), type); } - + public BaseWallSignBlock getWallSignBlock() { if (wallSignBlock == null) { wallSignBlock = wallSign.get(); @@ -88,9 +86,4 @@ public abstract class BaseSignBlock extends StandingSignBlock implements BlockMo public static BaseSignBlock from(BCLWoodTypeWrapper type) { return new BaseSignBlock.Wood(type); } - - @Override - public List getDrops(BlockState blockState, LootParams.Builder builder) { - return super.getDrops(blockState, builder); - } } \ No newline at end of file