Skip to content

Commit e202667

Browse files
committed
feat: Add farmUsingSelection setting and implementation
1 parent 12ddeee commit e202667

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

src/api/java/baritone/api/Settings.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -993,6 +993,11 @@ public final class Settings {
993993
*/
994994
public final Setting<Boolean> replantNetherWart = new Setting<>(false);
995995

996+
/**
997+
* When enabled, farming will be restricted to the current selection.
998+
*/
999+
public final Setting<Boolean> farmUsingSelection = new Setting<>(false);
1000+
9961001
/**
9971002
* Farming will scan for at most this many blocks.
9981003
*/

src/main/java/baritone/process/FarmProcess.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import baritone.api.process.IFarmProcess;
2727
import baritone.api.process.PathingCommand;
2828
import baritone.api.process.PathingCommandType;
29+
import baritone.api.selection.ISelection;
2930
import baritone.api.utils.BetterBlockPos;
3031
import baritone.api.utils.RayTraceUtils;
3132
import baritone.api.utils.Rotation;
@@ -220,6 +221,12 @@ public PathingCommand onTick(boolean calcFailed, boolean isSafeToCancel) {
220221
if (locations == null) {
221222
return new PathingCommand(null, PathingCommandType.REQUEST_PAUSE);
222223
}
224+
if (Baritone.settings().farmUsingSelection.value) {
225+
ISelection selection = baritone.getSelectionManager().getLastSelection();
226+
if (selection != null) {
227+
locations.removeIf(pos -> !selection.aabb().contains(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5));
228+
}
229+
}
223230
List<BlockPos> toBreak = new ArrayList<>();
224231
List<BlockPos> openFarmland = new ArrayList<>();
225232
List<BlockPos> bonemealable = new ArrayList<>();

0 commit comments

Comments
 (0)