summaryrefslogtreecommitdiff
path: root/src/main/java/space/m0e/quga/oop/lab56maven/threads
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/space/m0e/quga/oop/lab56maven/threads')
-rw-r--r--src/main/java/space/m0e/quga/oop/lab56maven/threads/DwarfThread.java102
-rw-r--r--src/main/java/space/m0e/quga/oop/lab56maven/threads/ImmigrantThread.java60
2 files changed, 0 insertions, 162 deletions
diff --git a/src/main/java/space/m0e/quga/oop/lab56maven/threads/DwarfThread.java b/src/main/java/space/m0e/quga/oop/lab56maven/threads/DwarfThread.java
deleted file mode 100644
index cffeeea..0000000
--- a/src/main/java/space/m0e/quga/oop/lab56maven/threads/DwarfThread.java
+++ /dev/null
@@ -1,102 +0,0 @@
-package space.m0e.quga.oop.lab56maven.threads;
-
-import javafx.application.Platform;
-import space.m0e.quga.oop.lab56maven.Main;
-import space.m0e.quga.oop.lab56maven.decisions.Decision;
-import space.m0e.quga.oop.lab56maven.decisions.GoToDwarvesContainerDecision;
-import space.m0e.quga.oop.lab56maven.decisions.GoToThroneRoomDecision;
-import space.m0e.quga.oop.lab56maven.decisions.GoToWorkstationDecision;
-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;
-
-import java.util.Objects;
-import java.util.Random;
-import java.util.concurrent.TimeUnit;
-
-public class DwarfThread extends Thread {
- public Dwarf getDwarf() {
- return dwarf;
- }
-
- private int timer = 0;
- private Decision decision;
- private static final String[] availableDecisions = new String[]{
- "GoToWorkstation",
- "GoToDwarvesContainer",
-// "GoToThroneRoom"
- };
- private static String lastDecision;
-
- public void setDwarf(Dwarf dwarf) {
- this.dwarf = dwarf;
- }
-
- private Dwarf dwarf;
-
- public DwarfThread(Dwarf dwarf) {
- super();
- this.setName(String.format("DwarfThread_%s", dwarf.getFullName()));
- this.dwarf = dwarf;
- }
-
- @Override
- public void run() {
- while (!isInterrupted()) {
- if (dwarf != null && !dwarf.isActive()) {
- try {
- TimeUnit.MILLISECONDS.sleep(10);
- } catch (InterruptedException e) {
- break;
- }
- timer++;
- if (dwarf.getFortress() == null) {
- Fortress fortress = dwarf.findNearestFortress();
- if (fortress != null) {
- Coordinates moveTo = dwarf.getCoordinatesToFortress(fortress);
- dwarf.move(moveTo);
- if (moveTo.isThere(dwarf)) {
- Platform.runLater(() -> {
- dwarf.setFortress(fortress);
- fortress.add(dwarf);
- Main.root.getChildren().remove(dwarf.getGroup());
- });
- }
- }
- } else {
- if (decision == null) {
- String decisionName = availableDecisions[new Random().nextInt(availableDecisions.length)];
- while (Objects.equals(lastDecision, decisionName)) {
- decisionName = availableDecisions[new Random().nextInt(availableDecisions.length)];
- }
- lastDecision = decisionName;
- switch (decisionName) {
- case "GoToWorkstation" -> {
- if (dwarf.getAge() > 12 && dwarf.getAge() < 70) {
- decision = new GoToWorkstationDecision(new Random().nextInt(timer + 200, timer + 500), dwarf);
- }
- }
- case "GoToDwarvesContainer" -> {
- decision = new GoToDwarvesContainerDecision(new Random().nextInt(timer + 200, timer + 500), dwarf);
- }
- case "GoToThroneRoom" -> {
- if (dwarf.getAge() > 35 && dwarf.getAge() < 70) {
- decision = new GoToThroneRoomDecision(new Random().nextInt(timer + 200, timer + 500), dwarf);
- }
- }
- }
- } else {
- if (decision.getExecuteWhen() < timer) {
- decision.cycle();
- }
- if (decision.isComplete())
- decision = null;
- }
- }
- }
- }
- }
-
-
-}
diff --git a/src/main/java/space/m0e/quga/oop/lab56maven/threads/ImmigrantThread.java b/src/main/java/space/m0e/quga/oop/lab56maven/threads/ImmigrantThread.java
deleted file mode 100644
index b3406d8..0000000
--- a/src/main/java/space/m0e/quga/oop/lab56maven/threads/ImmigrantThread.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package space.m0e.quga.oop.lab56maven.threads;
-
-import javafx.application.Platform;
-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;
-
-import java.util.concurrent.TimeUnit;
-
-public class ImmigrantThread extends Thread {
- public Immigrant getImmigrant() {
- return immigrant;
- }
-
- public void setImmigrant(Immigrant immigrant) {
- this.immigrant = immigrant;
- }
-
- private Immigrant immigrant;
-
- public ImmigrantThread(Immigrant immigrant) {
- super();
- this.setName(String.format("ImmigrantThread_%s", immigrant.getFullName()));
- this.immigrant = immigrant;
- }
-
- @Override
- public void run() {
- while (!isInterrupted()) {
- if (immigrant != null && !immigrant.isActive()) {
- try {
- TimeUnit.MILLISECONDS.sleep(10);
- } catch (InterruptedException e) {
- throw new RuntimeException(e);
- }
- Fortress fortress = immigrant.findNearestFortress();
- if (fortress != null) {
- Coordinates moveTo = immigrant.getCoordinatesToFortress(fortress);
- immigrant.move(moveTo);
- if (moveTo.isThere(immigrant)) {
- Platform.runLater(() -> {
- Dwarf dwarf = new Dwarf(immigrant, fortress);
- dwarf.setThread(new DwarfThread(dwarf));
- dwarf.getThread().start();
- Main.immigrants.remove(immigrant);
- Main.immigrants.add(dwarf);
- fortress.add(dwarf);
- Main.root.getChildren().remove(immigrant.getGroup());
- });
- this.interrupt();
- }
- }
- }
- }
- }
-
-
-}