aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker/mixins/FarmlandBlockMixin.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/mixins/FarmlandBlockMixin.java')
-rw-r--r--src/main/java/de/hysky/skyblocker/mixins/FarmlandBlockMixin.java37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/main/java/de/hysky/skyblocker/mixins/FarmlandBlockMixin.java b/src/main/java/de/hysky/skyblocker/mixins/FarmlandBlockMixin.java
new file mode 100644
index 00000000..4c981d9a
--- /dev/null
+++ b/src/main/java/de/hysky/skyblocker/mixins/FarmlandBlockMixin.java
@@ -0,0 +1,37 @@
+package de.hysky.skyblocker.mixins;
+
+import com.llamalad7.mixinextras.injector.ModifyReturnValue;
+import de.hysky.skyblocker.config.SkyblockerConfigManager;
+import de.hysky.skyblocker.utils.Utils;
+import net.minecraft.block.Block;
+import net.minecraft.block.BlockState;
+import net.minecraft.block.FarmlandBlock;
+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;
+
+@Mixin(FarmlandBlock.class)
+public abstract class FarmlandBlockMixin extends Block {
+ @Shadow
+ @Final
+ protected static VoxelShape SHAPE;
+
+ protected FarmlandBlockMixin(Settings settings) {
+ super(settings);
+ }
+
+ @ModifyReturnValue(method = "getOutlineShape", at = @At("RETURN"))
+ private VoxelShape skyblocker$replaceOutlineShape(VoxelShape original) {
+ return Utils.isOnSkyblock() && SkyblockerConfigManager.get().general.hitbox.oldFarmlandHitbox ? VoxelShapes.fullCube() : original;
+ }
+
+ @Override
+ public VoxelShape getCullingShape(BlockState state, BlockView world, BlockPos pos) {
+ return SHAPE;
+ }
+}