package dev.llan.events; import dev.llan.model.GameContainer; import dev.llan.model.GameRecord; import dev.llan.model.state.State; import dev.llan.events.Events.*; import java.util.List; public abstract class BaseEvent implements GameEvent { private final EventType type; private final GameRecord gameRecord; private boolean disableControls; private boolean enableControls; public BaseEvent(EventType type) { this.gameRecord = GameContainer.getInstance().getCurrentGame().getImmutableSnapshot(type); this.type = type; disableControls = false; enableControls = false; } @Override public EventType getEventType() { return type; } @Override public GameRecord getGame() { return gameRecord; } @Override public State getNewState() { throw new UnsupportedOperationException("Operation not supported on current event"); } @Override public List getPlayerUpdateTypes() { throw new UnsupportedOperationException("Operation not supported on current event"); } @Override public void setDisableControls(boolean disableControls) { this.disableControls = disableControls; } @Override public boolean getDisableControls() { return disableControls; } @Override public void setEnableControls(boolean enableControls) { this.enableControls = enableControls; } @Override public boolean getEnableControls() { return enableControls; } }