Modules/Events
Custom Events
With Lynx we make it easy and simple to create custom events. We will be explaining this as an example.
Creating Event
We will be creating GameStateChangeEvent.
We will start by creating a class and extend LynxEvent:
public class GameStateChangeEvent extends LynxEvent {
}Next we add the event values. We will be adding oldState and newState:
public class GameStateChangeEvent extends LynxEvent {
private final GameState oldState;
private final GameState newState;
public GameStateChangeEvent(GameState oldState, GameState newState) {
this.oldState = oldState;
this.newState = newState;
}
public GameState getOldState() {
return oldState;
}
public GameState getNewState() {
return newState;
}
}Cancellable Event
If you want to make you event cancellable you need to change the extensions from LynxEvent to CancellableLynxEvent:
public class GameStateChangeEvent extends CancellableLynxEvent {
private final GameState oldState;
private final GameState newState;
public GameStateChangeEvent(GameState oldState, GameState newState) {
this.oldState = oldState;
this.newState = newState;
}
public GameState getOldState() {
return oldState;
}
public GameState getNewState() {
return newState;
}
}Calling Events
Now that we have a custom event we will need to call it. This can be done by creating a new instance of the event:
GameStateChangeEvent event = new GameStateChangeEvent(GameState.LOADING, GameState.STARTING);When we have a new instance of the event we call it:
Calling events in Java we call the static method LynxEventUtil.call(Event):
GameStateChangeEvent event = new GameStateChangeEvent(GameState.LOADING, GameState.STARTING)
LynxEventUtil.call(event);Calling events in Kotlin we call the Event.call():
val event = GameStateChangeEvent(GameState.LOADING, GameState.STARTING)
event.call()