mirror of
https://github.com/GTNewHorizons/ForestryMC.git
synced 2026-11-14 01:04:12 +00:00
Fix #547 wheat farm places farmland in invalid spaces
This commit is contained in:
1 parent
66da45f5bf
commit
ed563d98c2
1 file changed
+22
-9
@@ -28,6 +28,7 @@ import forestry.core.utils.StackUtils;
|
||||
import forestry.core.utils.Utils;
|
||||
import forestry.core.vect.Vect;
|
||||
import forestry.core.vect.VectUtil;
|
||||
import forestry.farming.gadgets.StructureLogicFarm;
|
||||
|
||||
public abstract class FarmLogicWatered extends FarmLogic {
|
||||
|
||||
@@ -95,19 +96,25 @@ public abstract class FarmLogicWatered extends FarmLogic {
|
||||
|
||||
for (int i = 0; i < extent; i++) {
|
||||
Vect position = translateWithOffset(x, y, z, direction, i);
|
||||
Block block = VectUtil.getBlock(world, position);
|
||||
if (!isAirBlock(block) && !Utils.isReplaceableBlock(block)) {
|
||||
|
||||
ItemStack blockStack = VectUtil.getAsItemStack(world, position);
|
||||
if (!isAcceptedGround(blockStack) && housing.hasResources(resources)) {
|
||||
produce.addAll(BlockUtil.getBlockDrops(getWorld(), position));
|
||||
setBlock(position, Blocks.air, 0);
|
||||
return trySetSoil(position);
|
||||
}
|
||||
Block soil = VectUtil.getBlock(world, position);
|
||||
|
||||
ItemStack soilStack = VectUtil.getAsItemStack(world, position);
|
||||
if (isAcceptedGround(soilStack) || !housing.hasResources(resources)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
Vect platformPosition = position.add(0, -1, 0);
|
||||
Block platformBlock = VectUtil.getBlock(world, platformPosition);
|
||||
if (!StructureLogicFarm.bricks.contains(platformBlock)) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (!isAirBlock(soil) && !Utils.isReplaceableBlock(soil)) {
|
||||
produce.addAll(BlockUtil.getBlockDrops(getWorld(), position));
|
||||
setBlock(position, Blocks.air, 0);
|
||||
return trySetSoil(position);
|
||||
}
|
||||
|
||||
if (isManual || isWaterSourceBlock(world, position)) {
|
||||
continue;
|
||||
}
|
||||
@@ -128,6 +135,12 @@ public abstract class FarmLogicWatered extends FarmLogic {
|
||||
for (int i = 0; i < extent; i++) {
|
||||
Vect position = translateWithOffset(x, y, z, direction, i);
|
||||
|
||||
Vect platformPosition = position.add(0, -1, 0);
|
||||
Block platformBlock = VectUtil.getBlock(world, platformPosition);
|
||||
if (!StructureLogicFarm.bricks.contains(platformBlock)) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (trySetWater(world, position)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user