aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/xmrvizzy/skyblocker/mixin/FarmlandBlockMixin.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/mixin/FarmlandBlockMixin.java')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/mixin/FarmlandBlockMixin.java20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/FarmlandBlockMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/FarmlandBlockMixin.java
index 761f8a68..d36773b2 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/mixin/FarmlandBlockMixin.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/FarmlandBlockMixin.java
@@ -1,34 +1,38 @@
package me.xmrvizzy.skyblocker.mixin;
+import com.llamalad7.mixinextras.injector.ModifyReturnValue;
import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
import me.xmrvizzy.skyblocker.utils.Utils;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.block.FarmlandBlock;
-import net.minecraft.block.ShapeContext;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.shape.VoxelShape;
+import net.minecraft.util.shape.VoxelShapes;
import net.minecraft.world.BlockView;
+import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Inject;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
@Mixin(FarmlandBlock.class)
public abstract class FarmlandBlockMixin extends Block {
+ @Shadow
+ @Final
+ protected static VoxelShape SHAPE;
+
protected FarmlandBlockMixin(Settings settings) {
super(settings);
}
- @Inject(method = "getOutlineShape", at = @At("HEAD"), cancellable = true)
- public void skyblocker$onGetOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context, CallbackInfoReturnable<VoxelShape> cir) {
- if (Utils.isOnSkyblock() && SkyblockerConfig.get().general.hitbox.oldFarmlandHitbox)
- cir.setReturnValue(Block.createCuboidShape(0.0, 0.0, 0.0, 16.0, 16.0, 16.0));
+ @ModifyReturnValue(method = "getOutlineShape", at = @At("RETURN"))
+ private VoxelShape skyblocker$replaceOutlineShape(VoxelShape original) {
+ return SkyblockerConfig.get().general.hitbox.oldFarmlandHitbox && Utils.isOnSkyblock() ? VoxelShapes.fullCube() : original;
}
@SuppressWarnings("deprecation")
@Override
public VoxelShape getCullingShape(BlockState state, BlockView world, BlockPos pos) {
- return Block.createCuboidShape(0.0, 0.0, 0.0, 16.0, 15.0, 16.0);
+ return SHAPE;
}
}