Jump to content

Obtaining a list of InteractableObjects


Recommended Posts

Posted
import org.osbot.rs07.api.filter.Filter;
import org.osbot.rs07.api.model.InteractableObject;
import org.osbot.rs07.api.model.RS2Object;

/**
 * Get InteractableObjects
 * @author FrostBug
 */
public class InteractableFilter implements Filter<RS2Object> {

	@Override
	public boolean match(RS2Object v) {
		return v instanceof InteractableObject;
	}
	
}

List<RS2Object> interactableObjs = getObjects().filter(new InteractableFilter());

  • Like 2
Posted (edited)
import org.osbot.rs07.api.filter.Filter;import org.osbot.rs07.api.model.InteractableObject;import org.osbot.rs07.api.model.RS2Object;/** * Get InteractableObjects * @author FrostBug */public class InteractableFilter implements Filter<RS2Object> {	@Override	public boolean match(RS2Object v) {		return v instanceof InteractableObject;	}	}
List<RS2Object> interactableObjs = getObjects().filter(new InteractableFilter());
Or just

List<RS2Object> interactableObjs = getObjects().filter(o -> o instanceof InteractableObject);
Edited by fixthissite
  • Like 1
Posted
import org.osbot.rs07.api.filter.Filter;
import org.osbot.rs07.api.model.InteractableObject;
import org.osbot.rs07.api.model.RS2Object;

/**
 * Get InteractableObjects
 * @author FrostBug
 */
public class InteractableFilter implements Filter<RS2Object> {

	@Override
	public boolean match(RS2Object v) {
		return v instanceof InteractableObject;
	}
	
}

List<RS2Object> interactableObjs = getObjects().filter(new InteractableFilter());

 

Thank you! I did this to get cardinal direction ores around my player.

@SuppressWarnings("unchecked")
private void filterRocks() {
	this.rocks = getObjects().filter(new Filter<RS2Object>()
	{
		@Override
		public boolean match(RS2Object v) {
			if(v instanceof InteractableObject) {
				if(((InteractableObject)v).getName().equals("Rocks")) {
					int myX = myPlayer().getX();
					int myY = myPlayer().getY();
					int rockX = v.getX();
					int rockY = v.getY();
					
					return (Math.abs(myX - rockX) == 1 && myY == rockY) || 
					       (Math.abs(myY - rockY) == 1 && myX == rockX);
				}
			}
			return false;
		}
	});
}

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...