diff --git a/station-items-v0/src/main/java/net/modificationstation/stationapi/mixin/item/CropBlockMixin.java b/station-items-v0/src/main/java/net/modificationstation/stationapi/mixin/item/CropBlockMixin.java new file mode 100644 index 000000000..2d02b8a9d --- /dev/null +++ b/station-items-v0/src/main/java/net/modificationstation/stationapi/mixin/item/CropBlockMixin.java @@ -0,0 +1,22 @@ +package net.modificationstation.stationapi.mixin.item; + +import net.minecraft.block.CropBlock; +import net.minecraft.world.World; +import net.modificationstation.stationapi.api.block.BlockState; +import net.modificationstation.stationapi.api.block.StationBlock; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; + +@Mixin(CropBlock.class) +public abstract class CropBlockMixin implements StationBlock { + + @Shadow public abstract void method_996(World world, int i, int j, int k); + + @Override + public boolean onBonemealUse(World world, int x, int y, int z, BlockState state) { + if (!world.isRemote) { + method_996(world, x, y, z); // Full grows crop. + } + return true; + } +} diff --git a/station-items-v0/src/main/java/net/modificationstation/stationapi/mixin/item/SaplingBlockMixin.java b/station-items-v0/src/main/java/net/modificationstation/stationapi/mixin/item/SaplingBlockMixin.java new file mode 100644 index 000000000..6ff61d71b --- /dev/null +++ b/station-items-v0/src/main/java/net/modificationstation/stationapi/mixin/item/SaplingBlockMixin.java @@ -0,0 +1,23 @@ +package net.modificationstation.stationapi.mixin.item; + +import net.minecraft.block.SaplingBlock; +import net.minecraft.world.World; +import net.modificationstation.stationapi.api.block.BlockState; +import net.modificationstation.stationapi.api.block.StationBlock; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; + +import java.util.Random; + +@Mixin(SaplingBlock.class) +public abstract class SaplingBlockMixin implements StationBlock { + @Shadow public abstract void method_533(World world, int x, int y, int z, Random random); + + @Override + public boolean onBonemealUse(World world, int x, int y, int z, BlockState state) { + if (!world.isRemote) { + method_533(world, x, y, z, world.field_214); + } + return true; + } +} diff --git a/station-items-v0/src/main/resources/station-items-v0.mixins.json b/station-items-v0/src/main/resources/station-items-v0.mixins.json index 2fd54f374..a014b3d47 100644 --- a/station-items-v0/src/main/resources/station-items-v0.mixins.json +++ b/station-items-v0/src/main/resources/station-items-v0.mixins.json @@ -5,6 +5,7 @@ "compatibilityLevel": "JAVA_17", "mixins": [ "BlockMixin", + "CropBlockMixin", "DyeItemMixin", "EntityAccessor", "EntityMixin", @@ -13,6 +14,7 @@ "ItemStackMixin", "PlayerEntityMixin", "PlayerInventoryMixin", + "SaplingBlockMixin", "ScreenHandlerMixin", "StatsMixin", "dispenser.block.DispenserBlockMixin",