package net.scapeemulator.game.model.player.action; import net.scapeemulator.game.model.Door; import net.scapeemulator.game.model.Position; import net.scapeemulator.game.model.player.Player; /** * @author Hadyn Richard */ public final class OpenDoorAction extends ReachDistancedAction { private final Door door; private final boolean open; private final Player player; private final Position position; private boolean executed; public OpenDoorAction(Player player, Position position, Door door, boolean open) { super(1, true, player, position, 1); this.player = player; this.position = position; this.door = door; this.open = open; } @Override public void executeAction() { /* If the player is still walking, dont execute the action and assume that next time he will be done wallking */ if(!executed && !player.getWalkingQueue().isEmpty()) { executed = true; return; } player.turnToPosition(position); if(open) { door.open(); } else { door.close(); } stop(); } }