diff --git a/gradle.properties b/gradle.properties index 76e520a..8bc29eb 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,14 +5,14 @@ org.gradle.caching=true org.gradle.configuration-cache=true minecraft_version=26.1.2 minecraft_version_range=[26.1,26.2] -neo_version=26.1.2.44-beta +neo_version=26.1.2.75 ## Mod Properties mod_id=cakesticklib mod_name=CakeStickLib mod_license=Ora Et Labora License -mod_version=1.11 +mod_version=1.11.1 mod_group_id=com.devdyna.cakestick mod_authors=DevDyna mod_description=A standalone port of Synergy API to unify most of the code diff --git a/src/main/java/com/devdyna/cakesticklib/api/aspect/logic/BucketInteraction.java b/src/main/java/com/devdyna/cakesticklib/api/aspect/logic/BucketInteraction.java index 2845596..38b92e1 100644 --- a/src/main/java/com/devdyna/cakesticklib/api/aspect/logic/BucketInteraction.java +++ b/src/main/java/com/devdyna/cakesticklib/api/aspect/logic/BucketInteraction.java @@ -47,7 +47,7 @@ default InteractionResult bucketAction(ItemStack item, BlockState blockState, Le if (level.isClientSide()) return InteractionResult.SUCCESS; - if (FluidUtil.interactWithFluidHandler(player, hand, level, blockPos, blockHitResult.getDirection())) + if (FluidUtil.interactWithFluidHandler(player, hand, level, blockPos, blockHitResult.getDirection(),null)) return InteractionResult.SUCCESS; return InteractionResult.PASS; diff --git a/src/main/java/com/devdyna/cakesticklib/api/factories/plants/Harvestable.java b/src/main/java/com/devdyna/cakesticklib/api/factories/plants/Harvestable.java index 9328336..c3981d3 100644 --- a/src/main/java/com/devdyna/cakesticklib/api/factories/plants/Harvestable.java +++ b/src/main/java/com/devdyna/cakesticklib/api/factories/plants/Harvestable.java @@ -10,6 +10,7 @@ import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.IntegerProperty; @@ -54,5 +55,42 @@ public BlockState state() { public BlockState state(Direction d) { return level.getBlockState(pos.relative(d)); } + + public Block block() { + return state().getBlock(); + } + + public Block block(Direction d) { + return state(d).getBlock(); + } + + public Context modify(BlockPos pos) { + return modify(pos, player()); + } + + public boolean is(BlockPos pos) { + return pos().equals(pos); + } + + public boolean is(BlockState state) { + return is(state.getBlock()); + } + + public boolean is(Block block) { + return state().is(block); + } + + public boolean is(Direction dir,Block block) { + return state(dir).is(block); + } + + public Context modify(Player player) { + return modify(pos(), player); + } + + public Context modify(BlockPos pos, Player player) { + return of(level(), pos, player); + } + } } diff --git a/src/main/java/com/devdyna/cakesticklib/api/factories/plants/VanillaPlants.java b/src/main/java/com/devdyna/cakesticklib/api/factories/plants/VanillaPlants.java index 8554445..7a08fba 100644 --- a/src/main/java/com/devdyna/cakesticklib/api/factories/plants/VanillaPlants.java +++ b/src/main/java/com/devdyna/cakesticklib/api/factories/plants/VanillaPlants.java @@ -84,8 +84,9 @@ public static List checkReplant(Level level, BlockPos pos, @Nullable var ctx = Harvestable.Context.of(level, pos, player); if (harvestable.canHarvest(ctx)) { + var items = harvestable.getItemsResult(ctx);// required to prevent to harvest AIR harvestable.replant(ctx); - return harvestable.getItemsResult(ctx); + return items; } } diff --git a/src/main/java/com/devdyna/cakesticklib/api/utils/LootTableHelper.java b/src/main/java/com/devdyna/cakesticklib/api/utils/LootTableHelper.java index 435afc7..ccfa376 100644 --- a/src/main/java/com/devdyna/cakesticklib/api/utils/LootTableHelper.java +++ b/src/main/java/com/devdyna/cakesticklib/api/utils/LootTableHelper.java @@ -21,7 +21,7 @@ public class LootTableHelper { /** * mainly useful to define valid blocks on Datagen SubLootBlocksProvider */ - public List getValidBlocks(DeferredRegister.Blocks... blocks) { + public static List getValidBlocks(DeferredRegister.Blocks... blocks) { List result = new ArrayList<>(); List.of(blocks).forEach(t -> result.addAll(t.getEntries() .stream()