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<PlayerUpdateType> 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;
}
}