mirror of
https://github.com/SquidDev-CC/CC-Tweaked
synced 2025-01-26 00:46:54 +00:00
Prevent turtles moving beyond the world border
As tiles outside the world border are not ticked, turtles are rendered entirely useless. Furthermore, the turtle animation will never progress resulting in visual glitches. In order to avoid this, we ensure the target position is within the world border when moving to it.
This commit is contained in:
parent
3b3dd8071b
commit
94e10d1f67
@ -496,10 +496,11 @@ public class TurtleBrain implements ITurtleAccess
|
||||
return true;
|
||||
}
|
||||
|
||||
if ( !world.isBlockLoaded( pos ) )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
// Ensure the chunk is loaded
|
||||
if( !world.isBlockLoaded( pos ) ) return false;
|
||||
|
||||
// Ensure we're inside the world border
|
||||
if( !world.getWorldBorder().contains( pos ) ) return false;
|
||||
|
||||
oldOwner.notifyMoveStart();
|
||||
|
||||
|
@ -14,9 +14,9 @@ import dan200.computercraft.api.turtle.TurtleCommandResult;
|
||||
import dan200.computercraft.shared.util.WorldUtil;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraft.util.math.AxisAlignedBB;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
@ -170,6 +170,10 @@ public class TurtleMoveCommand implements ITurtleCommand
|
||||
{
|
||||
return TurtleCommandResult.failure( "Cannot leave loaded world" );
|
||||
}
|
||||
if( !world.getWorldBorder().contains( position ) )
|
||||
{
|
||||
return TurtleCommandResult.failure( "Cannot pass the world border" );
|
||||
}
|
||||
return TurtleCommandResult.success();
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user