RuneHive-Game
Loading...
Searching...
No Matches
ObjectReplacementEvent.java
Go to the documentation of this file.
1package com.runehive.game.task.impl;
2
3import com.runehive.game.task.Task;
4import com.runehive.game.world.object.GameObject;
5
6/**
7 * An randomevent which replaces an object with another object.
8 *
9 * @author Daniel | Obey
10 * @author Michael | Chex
11 */
12public class ObjectReplacementEvent extends Task {
13
14 /** The original game object. */
15 private final GameObject original;
16
17 /** The replacement game object. */
18 private final int originalId;
19
20 /** The replacement game object. */
21 private final int replacement;
22
23 /** The on event end runnable. */
24 private final Runnable onEndRun;
25
27 super(false, delay);
28 this.original = original;
29 this.originalId = original.getId();
30 this.replacement = -1;
31 this.onEndRun = () -> {
32 };
33 }
34
36 super(false, delay);
37 this.original = original;
38 this.originalId = original.getId();
39 this.replacement = replacement;
40 this.onEndRun = () -> {
41 };
42 }
43
45 super(false, delay);
46 this.original = original;
47 this.originalId = original.getId();
48 this.replacement = replacement;
49 this.onEndRun = onEndRun;
50 }
51
52 @Override
53 protected void onSchedule() {
54 if (replacement == -1) {
55 original.unregister();
56 return;
57 }
58 original.transform(replacement);
59 }
60
61 @Override
62 public void execute() {
63 cancel();
64 }
65
66 @Override
67 protected void onCancel(boolean logout) {
68 if (replacement == -1) {
69 original.register();
70 } else {
71 original.transform(originalId);
72 }
73
74 onEndRun.run();
75 }
76}
synchronized final void cancel()
Cancels all subsequent executions.
Definition Task.java:113
Task(boolean instant, int delay)
Creates a new Task.
Definition Task.java:41
int delay
The cyclic delay.
Definition Task.java:17
final Runnable onEndRun
The on event end runnable.
ObjectReplacementEvent(GameObject original, int replacement, int delay)
void execute()
A function representing the unit of work that will be carried out.
final GameObject original
The original game object.
void onSchedule()
A function executed on registration.
void onCancel(boolean logout)
A function executed on cancellation.
ObjectReplacementEvent(GameObject original, int replacement, int delay, Runnable onEndRun)