mourning-ember / src / main / java / dev / llan / events / BaseEvent.java
BaseEvent.java
Raw
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;
  }
}