MCPcopy Create free account
hub / github.com/VolmitSoftware/Adapt / TickedObject

Class TickedObject

src/main/java/com/volmit/adapt/api/tick/TickedObject.java:30–180  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

28import java.util.concurrent.atomic.AtomicLong;
29
30public abstract class TickedObject implements Ticked, Listener {
31 private final AtomicLong lastTick;
32 private final AtomicLong interval;
33 private final AtomicInteger skip;
34 private final AtomicInteger burst;
35 private final AtomicLong ticks;
36 private final AtomicInteger dieIn;
37 private final AtomicBoolean die;
38 private final long start;
39 private final String group;
40 private final String id;
41
42 public TickedObject() {
43 this("null");
44 }
45
46 public TickedObject(String group, String id) {
47 this(group, id, 1000);
48 }
49
50 public TickedObject(String group) {
51 this(group, UUID.randomUUID().toString(), 1000);
52 }
53
54 public TickedObject(String group, long interval) {
55 this(group, UUID.randomUUID().toString(), interval);
56 }
57
58 public TickedObject(String group, String id, long interval) {
59 this.group = group;
60 this.id = id;
61 this.die = new AtomicBoolean(false);
62 this.dieIn = new AtomicInteger(0);
63 this.interval = new AtomicLong(interval);
64 this.lastTick = new AtomicLong(M.ms());
65 this.burst = new AtomicInteger(0);
66 this.skip = new AtomicInteger(0);
67 this.ticks = new AtomicLong(0);
68 this.start = M.ms();
69 Adapt.instance.getTicker().register(this);
70 Adapt.instance.registerListener(this);
71 }
72
73 public void dieAfter(int ticks) {
74 dieIn.set(ticks);
75 die.set(true);
76 }
77
78 @Override
79 public void unregister() {
80 Adapt.instance.getTicker().unregister(this);
81 Adapt.instance.unregisterListener(this);
82 }
83
84 @Override
85 public long getLastTick() {
86 return lastTick.get();
87 }

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected