Allow harvesters to harvest kelp tops

This commit is contained in:
Colman Davenport 2020-09-09 12:57:34 -04:00
parent 59339a7bcb
commit e682e232e6

View File

@ -15,6 +15,7 @@ import net.minecraft.block.Blocks;
import net.minecraft.block.CocoaBlock; import net.minecraft.block.CocoaBlock;
import net.minecraft.block.CropsBlock; import net.minecraft.block.CropsBlock;
import net.minecraft.block.KelpBlock; import net.minecraft.block.KelpBlock;
import net.minecraft.block.KelpTopBlock;
import net.minecraft.block.SugarCaneBlock; import net.minecraft.block.SugarCaneBlock;
import net.minecraft.client.renderer.IRenderTypeBuffer; import net.minecraft.client.renderer.IRenderTypeBuffer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@ -109,6 +110,11 @@ public class HarvesterMovementBehaviour extends MovementBehaviour {
if (state.getCollisionShape(world, pos) if (state.getCollisionShape(world, pos)
.isEmpty() || state.getBlock() instanceof CocoaBlock) { .isEmpty() || state.getBlock() instanceof CocoaBlock) {
if (state.getBlock() instanceof KelpBlock)
return true;
if (state.getBlock() instanceof KelpTopBlock)
return true;
for (IProperty<?> property : state.getProperties()) { for (IProperty<?> property : state.getProperties()) {
if (!(property instanceof IntegerProperty)) if (!(property instanceof IntegerProperty))
continue; continue;
@ -118,8 +124,6 @@ public class HarvesterMovementBehaviour extends MovementBehaviour {
return false; return false;
} }
if (state.getBlock() instanceof KelpBlock)
return true;
if (state.getBlock() instanceof IPlantable) if (state.getBlock() instanceof IPlantable)
return true; return true;
} }
@ -132,7 +136,7 @@ public class HarvesterMovementBehaviour extends MovementBehaviour {
CropsBlock crop = (CropsBlock) state.getBlock(); CropsBlock crop = (CropsBlock) state.getBlock();
return crop.withAge(0); return crop.withAge(0);
} }
if (state.getBlock() == Blocks.SUGAR_CANE) { if (state.getBlock() == Blocks.SUGAR_CANE || state.getBlock() == Blocks.KELP) {
if (state.getFluidState() if (state.getFluidState()
.isEmpty()) .isEmpty())
return Blocks.AIR.getDefaultState(); return Blocks.AIR.getDefaultState();