private void lightFire() {
if (standingOnFire()) {
getEmptyPosition().ifPresent(position -> {
WalkingEvent walkingEvent = new WalkingEvent(position);
walkingEvent.setMinDistanceThreshold(0);
execute(walkingEvent);
});
} else if (!"Tinderbox".equals(getInventory().getSelectedItemName())) {
getInventory().getItem("Tinderbox").interact("Use");
} else if (getInventory().getItem("Logs").interact()) {
Position playerPos = myPosition();
Sleep.sleepUntil(() -> !myPosition().equals(playerPos), 10_000, 600);
}
}
private boolean standingOnFire() {
return getObjects().singleFilter(getObjects().getAll(), obj -> obj.getPosition().equals(myPosition()) && obj.getName().equals("Fire")) != null;
}
private Optional<Position> getEmptyPosition() {
List<Position> allPositions = myPlayer().getArea(10).getPositions();
// Remove any position with an object (except ground decorations, as they can be walked on)
for (RS2Object object : getObjects().getAll()) {
if (object instanceof GroundDecoration) {
continue;
}
allPositions.removeIf(position -> object.getPosition().equals(position));
}
allPositions.removeIf(position -> !getMap().canReach(position));
return allPositions.stream().min(Comparator.comparingInt(p -> myPosition().distance(p)));
}
Take a look at this! From @Explv's AIO.