Add support for Context global objects
This commit is contained in:
@@ -85,6 +85,46 @@ public interface Context extends Updatable, Renderable, Disposable {
|
|||||||
|
|
||||||
<E extends Event> void removeEventListener(EventType<E> type, Consumer<E> listener);
|
<E extends Event> void removeEventListener(EventType<E> type, Consumer<E> listener);
|
||||||
|
|
||||||
|
void putGlobal(String key, Object value);
|
||||||
|
|
||||||
|
void putGlobal(String key, boolean value);
|
||||||
|
|
||||||
|
void putGlobal(String key, byte value);
|
||||||
|
|
||||||
|
void putGlobal(String key, short value);
|
||||||
|
|
||||||
|
void putGlobal(String key, int value);
|
||||||
|
|
||||||
|
void putGlobal(String key, long value);
|
||||||
|
|
||||||
|
void putGlobal(String key, float value);
|
||||||
|
|
||||||
|
void putGlobal(String key, double value);
|
||||||
|
|
||||||
|
void putGlobal(String key, char value);
|
||||||
|
|
||||||
|
Object getGlobal(String key);
|
||||||
|
|
||||||
|
<T> T getGlobal(String key, Class<T> type);
|
||||||
|
|
||||||
|
boolean getBooleanGlobal(String key);
|
||||||
|
|
||||||
|
byte getByteGlobal(String key);
|
||||||
|
|
||||||
|
short getShortGlobal(String key);
|
||||||
|
|
||||||
|
int getIntGlobal(String key);
|
||||||
|
|
||||||
|
long getLongGlobal(String key);
|
||||||
|
|
||||||
|
float getFloatGlobal(String key);
|
||||||
|
|
||||||
|
double getDoubleGlobal(String key);
|
||||||
|
|
||||||
|
char getCharGlobal(String key);
|
||||||
|
|
||||||
|
String getStringGlobal(String key);
|
||||||
|
|
||||||
void init(Screen screen, Input input, Camera camera);
|
void init(Screen screen, Input input, Camera camera);
|
||||||
|
|
||||||
void input(Input input);
|
void input(Input input);
|
||||||
|
|||||||
@@ -43,13 +43,16 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
|
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Builder
|
@Builder
|
||||||
public class DefaultContext implements Context {
|
public class DefaultContext implements Context {
|
||||||
|
private final Map<String, Object> globals = new HashMap<>();
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
private final GameEngine engine;
|
private final GameEngine engine;
|
||||||
@@ -286,6 +289,106 @@ public class DefaultContext implements Context {
|
|||||||
eventHandler.removeListener(type, listener);
|
eventHandler.removeListener(type, listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void putGlobal(String key, Object value) {
|
||||||
|
globals.put(key, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void putGlobal(String key, boolean value) {
|
||||||
|
globals.put(key, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void putGlobal(String key, byte value) {
|
||||||
|
globals.put(key, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void putGlobal(String key, short value) {
|
||||||
|
globals.put(key, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void putGlobal(String key, int value) {
|
||||||
|
globals.put(key, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void putGlobal(String key, long value) {
|
||||||
|
globals.put(key, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void putGlobal(String key, float value) {
|
||||||
|
globals.put(key, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void putGlobal(String key, double value) {
|
||||||
|
globals.put(key, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void putGlobal(String key, char value) {
|
||||||
|
globals.put(key, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object getGlobal(String key) {
|
||||||
|
return globals.get(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public <T> T getGlobal(String key, Class<T> type) {
|
||||||
|
return type.cast(globals.get(key));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getBooleanGlobal(String key) {
|
||||||
|
return (boolean) globals.get(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public byte getByteGlobal(String key) {
|
||||||
|
return (byte) globals.get(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public short getShortGlobal(String key) {
|
||||||
|
return (short) globals.get(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getIntGlobal(String key) {
|
||||||
|
return (int) globals.get(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long getLongGlobal(String key) {
|
||||||
|
return (long) globals.get(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getFloatGlobal(String key) {
|
||||||
|
return (float) globals.get(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getDoubleGlobal(String key) {
|
||||||
|
return (double) globals.get(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public char getCharGlobal(String key) {
|
||||||
|
return (char) globals.get(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getStringGlobal(String key) {
|
||||||
|
return (String) globals.get(key);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void input(Input input) {
|
public void input(Input input) {
|
||||||
gameRunner.input(input);
|
gameRunner.input(input);
|
||||||
|
|||||||
Reference in New Issue
Block a user