RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
ForceMovementTask.java
1package com.osroyale.game.task.impl;
2
3import com.osroyale.game.Animation;
4import com.osroyale.game.task.Task;
5import com.osroyale.game.world.entity.mob.Mob;
6import com.osroyale.game.world.entity.mob.player.ForceMovement;
7import com.osroyale.game.world.position.Position;
8
37
38public class ForceMovementTask extends Task {
39 private final Mob mob;
40 private final Position start;
41 private final Position end;
42 private final Animation animation;
43 private final ForceMovement forceMovement;
44
45 private final int moveDelay;
46 private int tick;
47
48 public ForceMovementTask(Mob mob, int delay, ForceMovement forceMovement, Animation animation) {
49 this(mob, delay, 0, forceMovement, animation);
50 }
51
52 public ForceMovementTask(Mob mob, int delay, int moveDelay, ForceMovement forceMovement, Animation animation) {
53 super(delay == 0, delay);
54 this.mob = mob;
55 this.start = forceMovement.getStart().copy();
56 this.end = forceMovement.getEnd().copy();
57 this.animation = animation;
58 this.forceMovement = forceMovement;
59 this.moveDelay = moveDelay;
60 }
61
62 @Override
63 protected boolean canSchedule() {
64 return mob.forceMovement == null;
65 }
66
67 @Override
68 protected void onSchedule() {
69 mob.getCombat().reset();
70 mob.movement.reset();
71 mob.animate(animation, true);
72 mob.setForceMovement(forceMovement);
73 }
74
75 @Override
76 public void execute() {
77 if (tick >= moveDelay) {
78 final int x = start.getX() + end.getX();
79 final int y = start.getY() + end.getY();
80 mob.move(new Position(x, y, mob.getHeight()));
81 mob.setForceMovement(null);
82 cancel();
83 }
84 tick++;
85 }
86}
synchronized final void cancel()
Definition Task.java:147
Task(boolean instant, int delay)
Definition Task.java:75