diff --git a/src/main/java/dmt/projectairbus/DrawningAirbus.java b/src/main/java/dmt/projectairbus/DrawningAirbus.java index c2709e5..8dabc2e 100644 --- a/src/main/java/dmt/projectairbus/DrawningAirbus.java +++ b/src/main/java/dmt/projectairbus/DrawningAirbus.java @@ -16,6 +16,7 @@ public class DrawningAirbus { private Integer pictureHeight; private Integer startPosX; private Integer startPosY; + private DrawningWindows drawningWindows; private final int drawningAirbusWidth = 155; private final int drawningAirbusHeight = 70; @@ -24,9 +25,14 @@ public class DrawningAirbus { return entityAirbus; } - public void Init(int speed, double weight, Color bodyColor, Color additionalColor, boolean passengerSection, boolean engines) { + public DrawningWindows getDrawningWindows() { + return drawningWindows; + } + + public void Init(int speed, double weight, Color bodyColor, Color additionalColor, boolean passengerSection, boolean engines, boolean windows) { entityAirbus = new EntityAirbus(); - entityAirbus.Init(speed, weight, bodyColor, additionalColor, passengerSection, engines); + entityAirbus.Init(speed, weight, bodyColor, additionalColor, passengerSection, engines, windows); + drawningWindows = new DrawningWindows(); pictureWidth = null; pictureHeight = null; startPosX = null; @@ -158,5 +164,9 @@ public class DrawningAirbus { g.fillOval(startPosX, startPosY + 30, 35, 15); g.strokeOval(startPosX, startPosY + 30, 35, 15); } + + if(entityAirbus.getWindows()) { + drawningWindows.drawWindows(g, startPosX + 40, startPosY + 35, entityAirbus.getAdditionalColor()); + } } } \ No newline at end of file diff --git a/src/main/java/dmt/projectairbus/EntityAirbus.java b/src/main/java/dmt/projectairbus/EntityAirbus.java index 754b3c5..856b591 100644 --- a/src/main/java/dmt/projectairbus/EntityAirbus.java +++ b/src/main/java/dmt/projectairbus/EntityAirbus.java @@ -54,6 +54,11 @@ public class EntityAirbus { return engines; } + private boolean windows; + public boolean getWindows() { + return windows; + } + /** * Шаг перемещения аэробуса */ @@ -70,12 +75,13 @@ public class EntityAirbus { * @param passengerSection Признак(опция) наличия доп. пассажирского отсека * @param engines Признак(опция) наличия доп. двигателей */ - public void Init(int speed, double weight, Color bodyColor, Color additionalColor, boolean passengerSection, boolean engines) { + public void Init(int speed, double weight, Color bodyColor, Color additionalColor, boolean passengerSection, boolean engines, boolean windows) { this.speed = speed; this.weight = weight; this.bodyColor = bodyColor; this.additionalColor = additionalColor; this.passengerSection = passengerSection; this.engines = engines; + this.windows = windows; } } diff --git a/src/main/java/dmt/projectairbus/FormAirbus.java b/src/main/java/dmt/projectairbus/FormAirbus.java index b9c0169..210f62b 100644 --- a/src/main/java/dmt/projectairbus/FormAirbus.java +++ b/src/main/java/dmt/projectairbus/FormAirbus.java @@ -5,6 +5,8 @@ import javafx.fxml.FXML; import javafx.scene.canvas.Canvas; import javafx.scene.canvas.GraphicsContext; import javafx.scene.control.Button; +import javafx.scene.control.Spinner; +import javafx.scene.control.SpinnerValueFactory; import javafx.scene.paint.Color; import java.util.Random; @@ -17,12 +19,17 @@ public class FormAirbus { @FXML private Canvas mainCanvas; + @FXML + private Spinner spinnerSelector; + @FXML private void initialize() { drawningAirbus = new DrawningAirbus(); graphicsContext = mainCanvas.getGraphicsContext2D(); graphicsContext.setImageSmoothing(false); + spinnerSelector.setValueFactory(new SpinnerValueFactory.IntegerSpinnerValueFactory(10, 30, 10, 10)); + random = new Random(); } @@ -36,8 +43,9 @@ public class FormAirbus { random.nextInt(100, 300), random.nextInt(1000, 3000), Color.rgb(random.nextInt(0, 256), random.nextInt(0, 256), random.nextInt(0, 256)), Color.rgb(random.nextInt(0, 256), random.nextInt(0, 256), random.nextInt(0, 256)), - random.nextBoolean(), random.nextBoolean() + random.nextBoolean(), random.nextBoolean(), random.nextBoolean() ); + drawningAirbus.getDrawningWindows().setSpinnerBlockCount(spinnerSelector.getValue()); drawningAirbus.setPictureSize((int) mainCanvas.getWidth(), (int) mainCanvas.getHeight()); drawningAirbus.setPosition(random.nextInt(10, 100), random.nextInt(10, 100)); diff --git a/src/main/resources/dmt/projectairbus/View.fxml b/src/main/resources/dmt/projectairbus/View.fxml index 6cb6c36..99cfa3b 100644 --- a/src/main/resources/dmt/projectairbus/View.fxml +++ b/src/main/resources/dmt/projectairbus/View.fxml @@ -2,6 +2,7 @@ + @@ -16,5 +17,6 @@