package org.rsbot.event.events;
import org.rsbot.event.EventMulticaster;
import org.rsbot.event.listeners.CharacterMovedListener;
import org.rsbot.script.methods.MethodContext;
import java.util.EventListener;
/**
* A character moved event.
*/
public class CharacterMovedEvent extends RSEvent {
private static final long serialVersionUID = 8883312847545757405L;
private final MethodContext ctx;
private final org.rsbot.client.RSCharacter character;
private final int direction;
private org.rsbot.script.wrappers.RSCharacter wrapped;
public CharacterMovedEvent(final MethodContext ctx, final org.rsbot.client.RSCharacter character, final int direction) {
this.ctx = ctx;
this.character = character;
this.direction = direction;
}
@Override
public void dispatch(final EventListener el) {
((CharacterMovedListener) el).characterMoved(this);
}
public org.rsbot.script.wrappers.RSCharacter getCharacter() {
if (wrapped == null) {
if (character instanceof org.rsbot.client.RSNPC) {
final org.rsbot.client.RSNPC npc = (org.rsbot.client.RSNPC) character;
wrapped = new org.rsbot.script.wrappers.RSNPC(ctx, npc);
} else if (character instanceof org.rsbot.client.RSPlayer) {
final org.rsbot.client.RSPlayer player = (org.rsbot.client.RSPlayer) character;
wrapped = new org.rsbot.script.wrappers.RSPlayer(ctx, player);
}
}
return wrapped;
}
/**
* 0 = NW
* 1 = N
* 2 = NE
* 3 = W
* 4 = E
* 5 = SW
* 6 = S
* 7 = SE
*
* @return Returns the direction of the character movement event.
*/
public int getDirection() {
return direction;
}
@Override
public long getMask() {
return EventMulticaster.CHARACTER_MOVED_EVENT;
}
}