package space.m0e.quga.oop.lab56maven.handlers; import javafx.animation.Timeline; import javafx.application.Platform; import javafx.event.ActionEvent; import javafx.event.EventHandler; import space.m0e.quga.oop.lab56maven.Main; import space.m0e.quga.oop.lab56maven.entities.common.Coordinates; import space.m0e.quga.oop.lab56maven.entities.macro.Fortress; import space.m0e.quga.oop.lab56maven.entities.micro.Dwarf; import space.m0e.quga.oop.lab56maven.entities.micro.Immigrant; public class ImmigrantHandler implements EventHandler { public Immigrant getImmigrant() { return immigrant; } public void setImmigrant(Immigrant immigrant) { this.immigrant = immigrant; } private Immigrant immigrant; public ImmigrantHandler(Immigrant immigrant) { super(); this.immigrant = immigrant; } @Override public void handle(ActionEvent e) { if (immigrant != null && !immigrant.isActive()) { Fortress fortress = immigrant.findNearestFortress(); if (fortress != null) { Coordinates moveTo = immigrant.getCoordinatesToFortress(fortress); immigrant.move(moveTo); if (moveTo.isThere(immigrant)) { Platform.runLater(() -> { immigrant.getTimeline().stop(); Dwarf dwarf = new Dwarf(immigrant, fortress); Main.immigrants.remove(immigrant); Main.immigrants.add(dwarf); fortress.add(dwarf); // dwarf.getTimeline().play(); Main.root.getChildren().remove(immigrant.getGroup()); }); } } } } }