mourning-ember / src / main / java / dev / llan / receivers / SpacedReceiver.java
SpacedReceiver.java
Raw
package dev.llan.receivers;

import dev.llan.events.GameEvent;
import dev.llan.events.GameOverEvent;
import dev.llan.events.GameWonEvent;
import dev.llan.events.Events.*;
import javafx.application.Platform;

public class SpacedReceiver extends BaseReceiver {

  @Override
  public void receive(GameEvent event) {
    if(event instanceof GameOverEvent || event instanceof GameWonEvent) {
      updateMaxFloor(event);
    }
    for(Observer view : views) {
      Platform.runLater(() -> view.update(event));
    }
    if(event.getEventType() == EventType.GRID_UPDATE) {
      try {
        Thread.sleep(50);
      } catch (InterruptedException e) {
        throw new RuntimeException(e);
      }
    } else if (event.getEventType() == EventType.WAITED) {
      try {
        Thread.sleep(20);
      } catch (InterruptedException e) {
        throw new RuntimeException(e);
      }
    }
  }
}