diff --git a/ProjectMonorail/.idea/workspace.xml b/ProjectMonorail/.idea/workspace.xml index 41c53d4..f2f2b72 100644 --- a/ProjectMonorail/.idea/workspace.xml +++ b/ProjectMonorail/.idea/workspace.xml @@ -5,11 +5,16 @@ + + - - - + + + + + + - { + "keyToString": { + "Application.Program.executor": "Run", + "RunOnceActivity.OpenProjectViewOnStart": "true", + "RunOnceActivity.ShowReadmeOnStart": "true", + "git-widget-placeholder": "LabWorking__5", + "kotlin-language-version-configured": "true", + "last_opened_file_path": "C:/Учеба/AgarioGame" } -}]]> +} - - - - - - diff --git a/ProjectMonorail/out/production/ProjectMonorail/Scripts/Wheels/DrawingWheels.class b/ProjectMonorail/out/production/ProjectMonorail/Scripts/Wheels/DrawingWheels.class index bee45c7..dc1a621 100644 Binary files a/ProjectMonorail/out/production/ProjectMonorail/Scripts/Wheels/DrawingWheels.class and b/ProjectMonorail/out/production/ProjectMonorail/Scripts/Wheels/DrawingWheels.class differ diff --git a/ProjectMonorail/src/Scripts/Drawing/DrawingMonorail.java b/ProjectMonorail/src/Scripts/Drawing/DrawingMonorail.java index 58b378f..f416799 100644 --- a/ProjectMonorail/src/Scripts/Drawing/DrawingMonorail.java +++ b/ProjectMonorail/src/Scripts/Drawing/DrawingMonorail.java @@ -8,8 +8,8 @@ import java.awt.*; import java.util.Random; public class DrawingMonorail { - protected EntityMonorail _entityMonorail; - protected IDrawingWheels _wheels; + public EntityMonorail _entityMonorail; + public IDrawingWheels _wheels; private Integer _pictureWidth = null; private Integer _pictureHeight = null; diff --git a/ProjectMonorail/src/Scripts/Entities/EntityModernMonorail.java b/ProjectMonorail/src/Scripts/Entities/EntityModernMonorail.java index deba422..b5d2598 100644 --- a/ProjectMonorail/src/Scripts/Entities/EntityModernMonorail.java +++ b/ProjectMonorail/src/Scripts/Entities/EntityModernMonorail.java @@ -12,6 +12,10 @@ public class EntityModernMonorail extends EntityMonorail { public boolean getMonorailTrack() {return _monorailTrack;} public boolean getCabin() {return _cabin;} + public void setAdditionalColor(Color value) {_additionalColor = _additionalColor;} + public void setMonorailTrack(Boolean value) { _monorailTrack = value;} + public void setCabin(Boolean value) { _cabin = value;} + public EntityModernMonorail(int speed, float weight, Color bodyColor, Color additionalColor, boolean monorailTrack, boolean cabin){ super(speed, weight, bodyColor); Random rnd = new Random(); diff --git a/ProjectMonorail/src/Scripts/Entities/EntityMonorail.java b/ProjectMonorail/src/Scripts/Entities/EntityMonorail.java index 8ac7086..4763c27 100644 --- a/ProjectMonorail/src/Scripts/Entities/EntityMonorail.java +++ b/ProjectMonorail/src/Scripts/Entities/EntityMonorail.java @@ -19,6 +19,10 @@ public class EntityMonorail { return _bodyColor; } + public void setSpeed(int value) {_speed = value; } + public void setWeight(float value) {_weight = value;} + public void setBodyColor(Color value) {_bodyColor = value;} + public EntityMonorail(int speed, float weight, Color bodyColor){ Random rnd = new Random(); _speed = speed <= 0 ? rnd.nextInt(50)+10 : speed; diff --git a/ProjectMonorail/src/Scripts/Forms/FormMonorailCollection.java b/ProjectMonorail/src/Scripts/Forms/FormMonorailCollection.java index 9294270..02037ed 100644 --- a/ProjectMonorail/src/Scripts/Forms/FormMonorailCollection.java +++ b/ProjectMonorail/src/Scripts/Forms/FormMonorailCollection.java @@ -28,8 +28,7 @@ public class FormMonorailCollection extends JFrame{ private JList listBoxCollection = new JList(); private JButton buttonRemoveCollection = new JButton("Удалить"); private JButton buttonCreateCompany = new JButton("Создать компанию"); - private JButton createButton = new JButton("Создать современный монорельс");; - private JButton createModernButton = new JButton("Создать монорельс"); + private JButton createMonorailButton = new JButton("Создать монорельс"); private JButton removeButton = new JButton("Удалить"); private JButton removeObjectsButton = new JButton("Удаленные объекты"); @@ -96,16 +95,13 @@ public class FormMonorailCollection extends JFrame{ } }); - createModernButton.addActionListener(new ActionListener() { + createMonorailButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - CreateObject("DrawingMonorail"); - } - }); - createButton.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - CreateObject("DrawingModernMonorail"); + if (_company == null) return; + FormMonorailConfig form = new FormMonorailConfig("", new Dimension(800, 300)); + form.setCompany(_company); + form.Init(); } }); @@ -275,8 +271,7 @@ public class FormMonorailCollection extends JFrame{ buttonRemoveCollection.setBounds(getWidth()-190, 195, 150, 20); ComboBoxCollections.setBounds(getWidth() - 190, 225, 150, 20); buttonCreateCompany.setBounds(getWidth()-190, 255, 150, 20); - createModernButton.setBounds(getWidth() - 190, 285, 150, 30); - createButton.setBounds(getWidth() - 190, 325, 150, 30); + createMonorailButton.setBounds(getWidth() - 190, 285, 150, 30); RandomButton.setBounds(getWidth() - 190, 365, 150, 30); removeObjectsButton.setBounds(getWidth()-190, 505, 150, 30); TextField.setBounds(getWidth() - 190, 545, 150, 30); @@ -298,8 +293,7 @@ public class FormMonorailCollection extends JFrame{ add(_canvasMonorail); add(ComboBoxCollections); - add(createModernButton); - add(createButton); + add(createMonorailButton); add(TextField); add(GoToCheckButton); add(RandomButton); diff --git a/ProjectMonorail/src/Scripts/Forms/FormMonorailConfig.java b/ProjectMonorail/src/Scripts/Forms/FormMonorailConfig.java new file mode 100644 index 0000000..15851cd --- /dev/null +++ b/ProjectMonorail/src/Scripts/Forms/FormMonorailConfig.java @@ -0,0 +1,457 @@ +package Scripts.Forms; + +import Scripts.CollectionGenericObjects.AbstractCompany; +import Scripts.Drawing.DrawingModernMonorail; +import Scripts.Drawing.DrawingMonorail; +import Scripts.Entities.EntityModernMonorail; +import Scripts.Wheels.*; + +import javax.swing.*; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; +import java.awt.*; +import java.awt.datatransfer.DataFlavor; +import java.awt.datatransfer.StringSelection; +import java.awt.datatransfer.Transferable; +import java.awt.datatransfer.UnsupportedFlavorException; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.io.IOException; + +public class FormMonorailConfig extends JFrame { + private String title; + private Dimension dimension; + private DrawingMonorail _drawingMonorail; + private AbstractCompany company = null; + private JLabel labelSpeed = new JLabel("Скорость"); + private JLabel labelWeight = new JLabel("Вес"); + private JLabel labelNumberOfWheels = new JLabel("Колеса"); + + private JLabel labelMonorail = new JLabel("Monorail", SwingConstants.CENTER); + private JLabel labelModernMonorail = new JLabel("ModernMonorail", SwingConstants.CENTER); + private JLabel labelColor = new JLabel("Цвета"); + private JLabel labelBodyColor = new JLabel("Основной цвет", SwingConstants.CENTER); + private JLabel labelAdditionalColor = new JLabel("Дополнительный цвет", SwingConstants.CENTER); + private JLabel labelWheels = new JLabel("Тип двигателей",SwingConstants.CENTER); + private JLabel labelDefaultEngines = new JLabel("Классические",SwingConstants.CENTER); + private JLabel labelOvalEngines = new JLabel("Овальные", SwingConstants.CENTER); + private JLabel labelTriangleEngines = new JLabel("Треугольные", SwingConstants.CENTER); + + private JSpinner spinnerSpeed = new JSpinner(); + private JSpinner spinnerWeight = new JSpinner(); + private JSpinner spinnerNumberOfWheels = new JSpinner(); + private JCheckBox checkBoxMonorailTrack = new JCheckBox("Имеет путь"); + private JCheckBox checkBoxCabin = new JCheckBox("Имеет кабину"); + private JComponent panelObject = new JPanel(); + private JPanel panelColorRed = new JPanel(); + private JPanel panelColorGreen = new JPanel(); + private JPanel panelColorBlue = new JPanel(); + private JPanel panelColorYellow = new JPanel(); + private JPanel panelColorBlack = new JPanel(); + private JPanel panelColorWhite = new JPanel(); + private JPanel panelColorGray = new JPanel(); + private JPanel panelColorCyan = new JPanel(); + private JButton buttonAdd = new JButton("Добавить"); + private JButton buttonCancel = new JButton("Отмена"); + + public FormMonorailConfig(String title, Dimension dimension) { + this.title = title; + this.dimension = dimension; + } + + public void Init() { + SpinnerModel numSpeed = new SpinnerNumberModel(100, 100, 1000, 1); + SpinnerModel numWeight = new SpinnerNumberModel(100, 100, 1000, 1); + spinnerSpeed.setModel(numSpeed); + spinnerWeight.setModel(numWeight); + SpinnerModel numWheels = new SpinnerNumberModel(2, 2, 4, 1); + spinnerNumberOfWheels.setModel(numWheels); + panelObject = new Canvas(); + panelObject.setBorder(BorderFactory.createLineBorder(Color.BLACK, 2)); + + spinnerSpeed.addChangeListener(new ChangeListener() { + @Override + public void stateChanged(ChangeEvent e) { + if (_drawingMonorail == null) return; + _drawingMonorail.getMonorail().setSpeed((int)spinnerSpeed.getValue()); + } + }); + spinnerWeight.addChangeListener(new ChangeListener() { + @Override + public void stateChanged(ChangeEvent e) { + if (_drawingMonorail == null) return; + _drawingMonorail.getMonorail().setWeight((int)spinnerWeight.getValue()); + } + }); + + spinnerNumberOfWheels.addChangeListener(new ChangeListener() { + @Override + public void stateChanged(ChangeEvent e) { + if(_drawingMonorail ==null)return; + _drawingMonorail._wheels.SetCountWheels((int) spinnerNumberOfWheels.getValue()); + panelObject.repaint(); + } + }); + checkBoxMonorailTrack.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + if (_drawingMonorail == null) return; + if (_drawingMonorail.getMonorail() instanceof EntityModernMonorail entityModernMonorail) { + entityModernMonorail.setMonorailTrack(checkBoxMonorailTrack.isSelected()); + panelObject.repaint(); + } + } + }); + checkBoxCabin.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + if (_drawingMonorail == null) return; + if (_drawingMonorail.getMonorail() instanceof EntityModernMonorail entityModernMonorail) { + entityModernMonorail.setCabin(checkBoxCabin.isSelected()); + panelObject.repaint(); + } + } + }); + + labelMonorail.setBackground(Color.WHITE); + labelModernMonorail.setBackground(Color.WHITE); + labelMonorail.setBorder(BorderFactory.createLineBorder(Color.BLACK, 2)); + labelModernMonorail.setBorder(BorderFactory.createLineBorder(Color.BLACK, 2)); + labelBodyColor.setBorder(BorderFactory.createLineBorder(Color.BLACK, 2)); + labelAdditionalColor.setBorder(BorderFactory.createLineBorder(Color.BLACK, 2)); + labelDefaultEngines.setBorder(BorderFactory.createLineBorder(Color.BLACK, 2)); + labelOvalEngines.setBorder(BorderFactory.createLineBorder(Color.BLACK, 2)); + labelTriangleEngines.setBorder(BorderFactory.createLineBorder(Color.BLACK, 2)); + MouseAdapter labelObjectsMouseDown = new MouseAdapter() { + @Override + public void mousePressed(MouseEvent e) { + ((JLabel) e.getComponent()).getTransferHandler().exportAsDrag(((JLabel) e.getComponent()), e, TransferHandler.COPY); + } + }; + TransferHandler labelObjectsTransferHandler = new TransferHandler() { + @Override + public int getSourceActions(JComponent c) { + return TransferHandler.COPY; + } + @Override + protected Transferable createTransferable(JComponent c) { + return new StringSelection(((JLabel) c).getText()); + } + }; + + labelMonorail.addMouseListener(labelObjectsMouseDown); + labelMonorail.setTransferHandler(labelObjectsTransferHandler); + labelModernMonorail.addMouseListener(labelObjectsMouseDown); + labelModernMonorail.setTransferHandler(labelObjectsTransferHandler); + + MouseAdapter labelEnginesMouseDown = new MouseAdapter() { + @Override + public void mousePressed(MouseEvent e) { + ((JLabel) e.getComponent()).getTransferHandler().exportAsDrag(((JLabel) e.getComponent()), e, TransferHandler.COPY); + } + }; + + labelDefaultEngines.addMouseListener(labelEnginesMouseDown); + labelOvalEngines.addMouseListener(labelEnginesMouseDown); + labelTriangleEngines.addMouseListener(labelEnginesMouseDown); + labelDefaultEngines.setTransferHandler(new TransferHandler() { + @Override + public int getSourceActions(JComponent c) {return TransferHandler.COPY;} + + @Override + protected Transferable createTransferable(JComponent c) { + return new WheelsTransferable(new DrawingWheels()); + } + }); + labelOvalEngines.setTransferHandler(new TransferHandler() { + @Override + public int getSourceActions(JComponent c) {return TransferHandler.COPY;} + + @Override + protected Transferable createTransferable(JComponent c) { + return new WheelsTransferable(new DrawOrnamentOval()); + } + }); + labelTriangleEngines.setTransferHandler(new TransferHandler() { + @Override + public int getSourceActions(JComponent c) {return TransferHandler.COPY;} + + @Override + protected Transferable createTransferable(JComponent c) { + return new WheelsTransferable(new DrawOrnamentTriangle()); + } + }); + + panelObject.setTransferHandler(new TransferHandler() { + @Override + public boolean canImport(TransferHandler.TransferSupport support) { + return support.isDataFlavorSupported(DataFlavor.stringFlavor) + || support.isDataFlavorSupported(WheelsTransferable.wheelsDataFlavor); + } + @Override + public boolean importData(TransferHandler.TransferSupport support) { + if (canImport(support)) { + try { + String data = (String) support.getTransferable().getTransferData(DataFlavor.stringFlavor); + + switch (data) { + case "Monorail": + _drawingMonorail = new DrawingMonorail((int) spinnerSpeed.getValue(), (int) spinnerWeight.getValue(), Color.WHITE); + break; + case "ModernMonorail": + _drawingMonorail = new DrawingModernMonorail((int) spinnerSpeed.getValue(), (float) spinnerWeight.getValue(), + Color.DARK_GRAY, Color.BLACK, checkBoxMonorailTrack.isSelected(), checkBoxCabin.isSelected()); + break; + } + if (_drawingMonorail != null) { + _drawingMonorail._wheels = new DrawingWheels(); + _drawingMonorail._wheels.SetCountWheels((int) spinnerNumberOfWheels.getValue()); + _drawingMonorail.SetPictureSize(400,150); + _drawingMonorail.SetPosition(10,40); + } + else return false; + } + catch (UnsupportedFlavorException | IOException e) {} + try { + IDrawingWheels wheels = + (IDrawingWheels) support.getTransferable().getTransferData(WheelsTransferable.wheelsDataFlavor); + _drawingMonorail._wheels = wheels; + _drawingMonorail._wheels.SetCountWheels((int) spinnerNumberOfWheels.getValue()); + + }catch (UnsupportedFlavorException | IOException e) {} + panelObject.repaint(); + return true; + } + return false; + } + }); + JPanel[] colorPanels = { + panelColorRed, + panelColorGreen, + panelColorBlue, + panelColorYellow, + panelColorWhite, + panelColorBlack, + panelColorGray, + panelColorCyan, + }; + panelColorRed.setBackground(Color.RED); + panelColorGreen.setBackground(Color.GREEN); + panelColorBlue.setBackground(Color.BLUE); + panelColorYellow.setBackground(Color.YELLOW); + panelColorWhite.setBackground(Color.WHITE); + panelColorBlack.setBackground(Color.BLACK); + panelColorGray.setBackground(Color.GRAY); + panelColorCyan.setBackground(Color.CYAN); + MouseAdapter colorMouseDown = new MouseAdapter() { + @Override + public void mousePressed(MouseEvent e) { + ((JPanel) e.getComponent()).getTransferHandler().exportAsDrag(((JPanel) e.getComponent()), e, TransferHandler.COPY); + } + }; + for (var panelColor : colorPanels) { + panelColor.addMouseListener(colorMouseDown); + panelColor.setTransferHandler(new ColorTransferHandler()); + } + labelBodyColor.setTransferHandler(new TransferHandler() { + @Override + public boolean canImport(TransferHandler.TransferSupport support) { + return support.isDataFlavorSupported(ColorTransferable.colorDataFlavor); + } + @Override + public boolean importData(TransferSupport support) { + try { + Color color = (Color) support.getTransferable().getTransferData(ColorTransferable.colorDataFlavor); + if (_drawingMonorail == null) return false; + _drawingMonorail.getMonorail().setBodyColor(color); + return true; + } catch (UnsupportedFlavorException | IOException e) { + e.printStackTrace(); + } + return false; + } + }); + labelAdditionalColor.setTransferHandler(new TransferHandler() { + @Override + public boolean canImport(TransferHandler.TransferSupport support) { + if (!(_drawingMonorail instanceof DrawingModernMonorail)) return false; + return support.isDataFlavorSupported(ColorTransferable.colorDataFlavor); + } + @Override + public boolean importData(TransferSupport support) { + try { + Color color = (Color) support.getTransferable().getTransferData(ColorTransferable.colorDataFlavor); + if (_drawingMonorail == null) return false; + if (_drawingMonorail.getMonorail() instanceof EntityModernMonorail entityModernMonorail) { + entityModernMonorail.setAdditionalColor(color); + labelColor.setBackground(color); + return true; + } + return false; + } catch (UnsupportedFlavorException | IOException e) { + e.printStackTrace(); + } + return false; + } + }); + buttonAdd.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + if (_drawingMonorail == null) return; + DrawingMonorail copyDrawingMonorail; + if (_drawingMonorail instanceof DrawingModernMonorail) + copyDrawingMonorail = new DrawingModernMonorail((EntityModernMonorail) _drawingMonorail.getMonorail(), _drawingMonorail.getWheels()); + else + copyDrawingMonorail = new DrawingMonorail(_drawingMonorail.getMonorail(), _drawingMonorail.getWheels()); + company._collection.Insert(copyDrawingMonorail); + FormMonorailCollection.canvasShow(); + dispose(); + } + }); + buttonCancel.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + dispose(); + } + }); + labelSpeed.setBounds(8, 17, 75, 15); + labelWeight.setBounds(8,43, 75, 15); + labelNumberOfWheels.setBounds(8, 68, 75, 15); + labelMonorail.setBounds(8,150,105,30); + labelModernMonorail.setBounds(8,190,110,30); + checkBoxMonorailTrack.setBounds(8,85,150,20); + checkBoxCabin.setBounds(8,105,150,20); + spinnerSpeed.setBounds(80,15, 60,20); + spinnerWeight.setBounds(80,40, 60,20); + spinnerNumberOfWheels.setBounds(80, 65,60,20); + panelObject.setBounds(555,50,400,150); + labelBodyColor.setBounds(500,5,100, 40); + labelAdditionalColor.setBounds(605,5,170,40); + labelWheels.setBounds(225,190,150,15); + labelDefaultEngines.setBounds(140, 210, 100, 40); + labelOvalEngines.setBounds(250, 210, 100,40); + labelTriangleEngines.setBounds(360,210,100,40); + labelColor.setBounds(200,10,50,15); + panelColorRed.setBounds(200, 30, 40, 40); + panelColorGreen.setBounds(250, 30, 40,40); + panelColorBlue.setBounds(300,30,40,40); + panelColorYellow.setBounds(350,30,40,40); + panelColorWhite.setBounds(200, 80,40,40); + panelColorBlack.setBounds(250,80,40,40); + panelColorGray.setBounds(300,80,40,40); + panelColorCyan.setBounds(350,80,40,40); + buttonAdd.setBounds(515, 210, 110, 40); + buttonCancel.setBounds(640, 210, 110, 40); + setSize(dimension.width, dimension.height); + setLayout(null); + add(labelSpeed); + add(labelWeight); + add(labelNumberOfWheels); + add(labelMonorail); + add(labelModernMonorail); + add(labelColor); + add(labelBodyColor); + add(labelAdditionalColor); + add(labelDefaultEngines); + add(labelDefaultEngines); + add(labelOvalEngines); + add(labelTriangleEngines); + add(spinnerSpeed); + add(spinnerWeight); + add(spinnerNumberOfWheels); + add(checkBoxMonorailTrack); + add(checkBoxCabin); + add(panelObject); + add(panelColorRed); + add(panelColorGreen); + add(panelColorBlue); + add(panelColorYellow); + add(panelColorWhite); + add(labelWheels); + add(panelColorBlack); + add(panelColorGray); + add(panelColorCyan); + add(buttonAdd); + add(buttonCancel); + setVisible(true); + } + public void setCompany(AbstractCompany company) { + this.company = company; + } + private class Canvas extends JComponent { + public Canvas() { + } + public void paintComponent(Graphics g) { + if (_drawingMonorail == null) { + return; + } + super.paintComponents(g); + Graphics2D g2d = (Graphics2D) g; + _drawingMonorail.DrawTransport(g2d); + super.repaint(); + } + } + private class ColorTransferable implements Transferable { + private Color color; + private static final DataFlavor colorDataFlavor = new DataFlavor(Color.class, "Color"); + public ColorTransferable(Color color) { + this.color = color; + } + @Override + public DataFlavor[] getTransferDataFlavors() { + return new DataFlavor[]{colorDataFlavor}; + } + @Override + public boolean isDataFlavorSupported(DataFlavor flavor) { + return colorDataFlavor.equals(flavor); + } + @Override + public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException { + if (isDataFlavorSupported(flavor)) { + return color; + } else { + throw new UnsupportedFlavorException(flavor); + } + } + } + private class ColorTransferHandler extends TransferHandler { + @Override + public int getSourceActions(JComponent c) { + return TransferHandler.COPY; + } + @Override + protected Transferable createTransferable(JComponent c) { + return new ColorTransferable(c.getBackground()); + } + } + private class WheelsTransferable implements Transferable { + private IDrawingWheels wheels; + private static final DataFlavor wheelsDataFlavor = new DataFlavor(IDrawingWheels.class, "Wheels"); + public WheelsTransferable(IDrawingWheels iDrawingWheels) { + this.wheels = iDrawingWheels; + } + public WheelsTransferable(IOrnament ornament) { + this.wheels = new DrawingWheels(); + wheels.SetOrnament(ornament); + } + @Override + public DataFlavor[] getTransferDataFlavors() { + return new DataFlavor[]{wheelsDataFlavor}; + } + @Override + public boolean isDataFlavorSupported(DataFlavor flavor) { + return flavor.equals(wheelsDataFlavor); + } + @Override + public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException { + if (isDataFlavorSupported(flavor)) { + return wheels; + } else { + throw new UnsupportedFlavorException(flavor); + } + } + } + +} \ No newline at end of file diff --git a/ProjectMonorail/src/Scripts/Forms/FormShipConfig.form b/ProjectMonorail/src/Scripts/Forms/FormShipConfig.form new file mode 100644 index 0000000..e51a4a4 --- /dev/null +++ b/ProjectMonorail/src/Scripts/Forms/FormShipConfig.form @@ -0,0 +1,13 @@ + +
+ + + + + + + + + + +
diff --git a/ProjectMonorail/src/Scripts/Wheels/DrawingWheels.java b/ProjectMonorail/src/Scripts/Wheels/DrawingWheels.java index 601e975..1d45c57 100644 --- a/ProjectMonorail/src/Scripts/Wheels/DrawingWheels.java +++ b/ProjectMonorail/src/Scripts/Wheels/DrawingWheels.java @@ -7,14 +7,20 @@ import java.util.Random; public class DrawingWheels implements IDrawingWheels{ private CountWheels _wheels; - private IOrnament _ornament; - private int _seedOrnament; + private IOrnament _ornament; + + public DrawingWheels() { + _ornament = new DrawOrnament(); + } + + public void SetOrnament(IOrnament ornament) { + _ornament = ornament; + } public void SetCountWheels(int Count){ for (CountWheels temp: CountWheels.values()) if (temp.getCountWheels() == Count){ Random rnd = new Random(); - _seedOrnament = rnd.nextInt(0, 3); _wheels=temp; return; } @@ -29,18 +35,6 @@ public class DrawingWheels implements IDrawingWheels{ } public void DrawWheels(Graphics2D g,int startPosX[], int startPosY, Color color) { - switch (_seedOrnament) { - case 0: - _ornament = new DrawOrnament(); - break; - case 1: - _ornament = new DrawOrnamentTriangle(); - break; - case 2: - _ornament = new DrawOrnamentOval(); - break; - } - for (int i = 0; i < startPosX.length; i++) { g.setColor(color); g.drawOval(startPosX[i], startPosY, 10, 10); diff --git a/ProjectMonorail/src/Scripts/Wheels/IDrawingWheels.java b/ProjectMonorail/src/Scripts/Wheels/IDrawingWheels.java index 5442daf..193c2a0 100644 --- a/ProjectMonorail/src/Scripts/Wheels/IDrawingWheels.java +++ b/ProjectMonorail/src/Scripts/Wheels/IDrawingWheels.java @@ -3,6 +3,7 @@ package Scripts.Wheels; import java.awt.*; public interface IDrawingWheels { + public void SetOrnament(IOrnament ornament); public void SetCountWheels(int Count); public int getCountWheels(); public void DrawWheels(Graphics2D g, int startPosX[], int startPosY, Color color);