summaryrefslogtreecommitdiff
path: root/src/main/java/space/m0e/quga/oop/lab56maven/entities
diff options
context:
space:
mode:
authorAndriy Cherniy <qugalet@m0e.space>2024-06-17 05:10:58 +0300
committerAndriy Cherniy <qugalet@m0e.space>2024-06-17 05:10:58 +0300
commit943bc45a13256d57c82ed58f22aa2cb802292744 (patch)
treeada8c6d5eefa3e4034504bfcc5eb03ab84597ebe /src/main/java/space/m0e/quga/oop/lab56maven/entities
parent3401d742ca53dce6bb1464cc12f94d107cfc285d (diff)
downloadoop-kursach-943bc45a13256d57c82ed58f22aa2cb802292744.tar.gz
oop-kursach-943bc45a13256d57c82ed58f22aa2cb802292744.zip
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEADmaster
Diffstat (limited to 'src/main/java/space/m0e/quga/oop/lab56maven/entities')
-rw-r--r--src/main/java/space/m0e/quga/oop/lab56maven/entities/common/MiniMap.java4
-rw-r--r--src/main/java/space/m0e/quga/oop/lab56maven/entities/macro/Fortress.java16
-rw-r--r--src/main/java/space/m0e/quga/oop/lab56maven/entities/micro/Dwarf.java41
3 files changed, 53 insertions, 8 deletions
diff --git a/src/main/java/space/m0e/quga/oop/lab56maven/entities/common/MiniMap.java b/src/main/java/space/m0e/quga/oop/lab56maven/entities/common/MiniMap.java
index 5e5f319..0a6b25b 100644
--- a/src/main/java/space/m0e/quga/oop/lab56maven/entities/common/MiniMap.java
+++ b/src/main/java/space/m0e/quga/oop/lab56maven/entities/common/MiniMap.java
@@ -16,8 +16,8 @@ public class MiniMap extends Rectangle
setWidth(width);
this.mainGroup = mainGroup;
setFill(Color.GREY);
- setStroke(Color.GREEN);
- setStrokeWidth(5);
+ setStroke(Color.YELLOW);
+ setStrokeWidth(2);
rect.setWidth(selectionWidth);
rect.setHeight(selectionHeight);
rect.setFill(Color.TRANSPARENT);
diff --git a/src/main/java/space/m0e/quga/oop/lab56maven/entities/macro/Fortress.java b/src/main/java/space/m0e/quga/oop/lab56maven/entities/macro/Fortress.java
index 3264802..fe34ce1 100644
--- a/src/main/java/space/m0e/quga/oop/lab56maven/entities/macro/Fortress.java
+++ b/src/main/java/space/m0e/quga/oop/lab56maven/entities/macro/Fortress.java
@@ -36,6 +36,13 @@ public class Fortress {
return throneRooms;
}
+ public ArrayList<String> getAvailableDecisions() {
+ return availableDecisions;
+ }
+
+ private ArrayList<String> availableDecisions = new ArrayList<String>();
+
+
ArrayList<ThroneRoom> throneRooms = new ArrayList<>();
ArrayList<Dwarf> dwarves = new ArrayList<>();
@@ -112,6 +119,14 @@ public class Fortress {
// this.dwarvesContainer.setBorder(new Border(new BorderStroke(Color.RED, BorderStrokeStyle.SOLID, CornerRadii.EMPTY, new BorderWidths(3))));
// dwarvesContainer.setMinSize(100 * 3, 100 * 3);
hBox.getChildren().addAll(countLabel, resourcesLabel);
+ availableDecisions.add("GoToDwarvesContainer");
+ availableDecisions.add("GoTrading");
+ if (!workstations.isEmpty()) {
+ availableDecisions.add("GoToWorkstation");
+ }
+ if (!throneRooms.isEmpty()) {
+ availableDecisions.add("GoToThroneRoom");
+ }
vBox.setLayoutX(x);
vBox.setLayoutY(y);
@@ -137,6 +152,7 @@ public class Fortress {
public void add(Dwarf dwarf) {
dwarves.add(dwarf);
countLabel.setText(String.valueOf(dwarves.size()));
+ dwarf.getTimeline().play();
dwarvesContainer.getChildren().add(dwarf.getGroup());
}
diff --git a/src/main/java/space/m0e/quga/oop/lab56maven/entities/micro/Dwarf.java b/src/main/java/space/m0e/quga/oop/lab56maven/entities/micro/Dwarf.java
index daaa9c5..a36f66a 100644
--- a/src/main/java/space/m0e/quga/oop/lab56maven/entities/micro/Dwarf.java
+++ b/src/main/java/space/m0e/quga/oop/lab56maven/entities/micro/Dwarf.java
@@ -4,6 +4,7 @@ import javafx.animation.Animation;
import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.application.Platform;
+import javafx.geometry.Bounds;
import javafx.scene.control.Label;
import javafx.scene.image.Image;
import javafx.util.Duration;
@@ -139,16 +140,44 @@ public class Dwarf extends Immigrant {
}).findFirst().orElse(null);
}
+// public Coordinates getCoordinatesToWorkstation(Workstation workstation) {
+// double workstationX = workstation.getGroup().getLayoutX() + workstation.getGroup().getBoundsInParent().getWidth() - this.getGroup().getBoundsInParent().getWidth();
+// double workstationY = workstation.getGroup().getLayoutY() + workstation.getGroup().getBoundsInParent().getHeight() - this.getGroup().getBoundsInParent().getHeight();
+// return new Coordinates(workstationX, workstationY);
+// }
public Coordinates getCoordinatesToWorkstation(Workstation workstation) {
- double workstationX = workstation.getGroup().getLayoutX() + workstation.getGroup().getBoundsInParent().getWidth() - this.getGroup().getBoundsInParent().getWidth();
- double workstationY = workstation.getGroup().getLayoutY() + workstation.getGroup().getBoundsInParent().getHeight() - this.getGroup().getBoundsInParent().getHeight();
+ // Отримання меж групи робочої станції в координатах сцени
+ Bounds workstationBoundsInScene = workstation.getGroup().localToScene(workstation.getGroup().getBoundsInLocal());
+
+ // Отримання меж кореневої групи в координатах сцени
+ Bounds rootBoundsInScene = this.getGroup().getScene().getRoot().localToScene(this.getGroup().getScene().getRoot().getBoundsInLocal());
+
+ // Обчислення відносних координат робочої станції відносно кореневої групи
+ double workstationX = workstationBoundsInScene.getMinX() - rootBoundsInScene.getMinX();
+ double workstationY = workstationBoundsInScene.getMinY() - rootBoundsInScene.getMinY();
+
return new Coordinates(workstationX, workstationY);
}
- public Coordinates getCoordinatesToThroneRoom(ThroneRoom throneRoom) {
- double throneRoomX = throneRoom.getGroup().getLayoutX() + throneRoom.getGroup().getBoundsInParent().getWidth() / 2 + this.getGroup().getBoundsInParent().getWidth();
- double throneRoomY = throneRoom.getGroup().getLayoutY() + throneRoom.getGroup().getBoundsInParent().getHeight() / 2 + this.getGroup().getBoundsInParent().getHeight();
- return new Coordinates(throneRoomX, throneRoomY);
+
+// public Coordinates getCoordinatesToThroneRoom(ThroneRoom throneRoom) {
+// double throneRoomX = throneRoom.getGroup().getLayoutX() + throneRoom.getGroup().getBoundsInParent().getWidth() / 2 + this.getGroup().getBoundsInParent().getWidth();
+// double throneRoomY = throneRoom.getGroup().getLayoutY() + throneRoom.getGroup().getBoundsInParent().getHeight() / 2 + this.getGroup().getBoundsInParent().getHeight();
+// return new Coordinates(throneRoomX, throneRoomY);
+// }
+
+ public Coordinates getCoordinatesToThroneRoom(ThroneRoom workstation) {
+ // Отримання меж групи робочої станції в координатах сцени
+ Bounds workstationBoundsInScene = workstation.getGroup().localToScene(workstation.getGroup().getBoundsInLocal());
+
+ // Отримання меж кореневої групи в координатах сцени
+ Bounds rootBoundsInScene = this.getGroup().getScene().getRoot().localToScene(this.getGroup().getScene().getRoot().getBoundsInLocal());
+
+ // Обчислення відносних координат робочої станції відносно кореневої групи
+ double workstationX = workstationBoundsInScene.getMinX() - rootBoundsInScene.getMinX();
+ double workstationY = workstationBoundsInScene.getMinY() - rootBoundsInScene.getMinY();
+
+ return new Coordinates(workstationX, workstationY);
}
public void free() {