New architecture of classes for switching the drawing modes of hitboxes/Dravboxes of entities

This commit is contained in:
2025-03-27 01:41:22 +03:00
parent a929f86461
commit f5bd320061
11 changed files with 37 additions and 107 deletions

View File

@ -0,0 +1,5 @@
package gui;
public class CircleRenderingFunction implements ShapeRenderingFunction {
}

View File

@ -150,7 +150,9 @@ public class DrawboxEditor extends Editable {
);
}
}
public void clearPoints(){
}
// эта штука очищает точки при нажатии универскальной кнопки очистки в Main GUI. Это следует рефакторнуть и вместо передачи события сюда,
// обрабатывать его прямо в Main GUI(лямбдой) вызывая отсюда только метод в духе clearPoints()
@Override

View File

@ -24,7 +24,7 @@ public abstract class Editable extends JPanel implements MouseListener, MouseMot
protected Entity entity;
protected String selectedEntityName;
protected BufferedImage image;
JPanel drawPanel;
EditableCanvas canvas;
private static Logger logger = Logger.getLogger("gui.Editable");

View File

@ -0,0 +1,7 @@
package gui;
import javax.swing.JPanel;
public class EditableCanvas extends JPanel {
}

View File

@ -1,47 +0,0 @@
package gui;
import java.awt.Graphics2D;
import java.awt.event.ActionEvent;
import java.awt.event.MouseEvent;
import javax.swing.JPanel;
public class HitboxCircleEditor extends Editable {
HitboxCircleEditor(ListGUI listGUI) {
super(listGUI);
// TODO Auto-generated constructor stub
}
@Override
public void drawing(Graphics2D g) {
// TODO Auto-generated method stub
}
@Override
public void saveDataInEntity() {
// TODO Auto-generated method stub
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseMoved(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
}
}

View File

@ -10,12 +10,12 @@ import model.Hitbox;
import model.Point;
public class HitboxRectangleEditor extends Editable {
public class HitboxEditor extends Editable {
Point firstIsoPoint = null;
Point currentIsoPoint = new Point(0,0);
Point firstCartesianPoint = new Point(0,0), currentCartesianPoint = new Point(0,0);
HitboxRectangleEditor(ListGUI listGUI) {
HitboxEditor(ListGUI listGUI) {
super(listGUI);
}

View File

@ -1,48 +0,0 @@
package gui;
import java.awt.Graphics2D;
import java.awt.event.ActionEvent;
import java.awt.event.MouseEvent;
import javax.swing.JPanel;
public class HitboxPoligonEditor extends Editable {
HitboxPoligonEditor(ListGUI listGUI) {
super(listGUI);
// TODO Auto-generated constructor stub
}
@Override
public void drawing(Graphics2D g) {
// TODO Auto-generated method stub
}
@Override
public void saveDataInEntity() {
// TODO Auto-generated method stub
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseMoved(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
}
}

View File

@ -27,7 +27,8 @@ public class MainGUI extends JFrame{
JButton clearLinesJButton;
public static JTabbedPane editorPane;
DrawboxEditor drawBoxPanel;
HitboxRectangleEditor hitboxRectanglePanel;
HitboxEditor hitboxPanel;
public MainGUI() {
@ -41,9 +42,9 @@ public class MainGUI extends JFrame{
list.setVisible(true);
drawBoxPanel = new DrawboxEditor(list);
hitboxRectanglePanel = new HitboxRectangleEditor(list);
hitboxPanel = new HitboxEditor(list);
list.registerJListListener(drawBoxPanel);
list.registerJListListener(hitboxRectanglePanel);
list.registerJListListener(hitboxPanel);
OpenXMLFileButtonListener = new OpenXMLFileButtonListener(list);
@ -59,17 +60,17 @@ public class MainGUI extends JFrame{
add(TopButtonBar,BorderLayout.NORTH);
clearLinesJButton.addActionListener(drawBoxPanel);
clearLinesJButton.addActionListener(hitboxRectanglePanel);
clearLinesJButton.addActionListener(hitboxPanel);
editorPane = new JTabbedPane();
editorPane.setVisible(true);
add(editorPane,BorderLayout.CENTER);
editorPane.addTab("Hitbox", hitboxRectanglePanel);
editorPane.addTab("Hitbox", hitboxPanel);
editorPane.addTab("Drawbox", drawBoxPanel);
repaint();
drawBoxPanel.subscribe(Project.getInstance()); // подписка: Project получит данные ввиде обьекта Event, содержащий аднные drawbox при отрисовке последней точки из 4-х.
drawBoxPanel.subscribe(Project.getInstance()); // подписка: Project получит данные ввиде обьекта Event, содержащий данные drawbox при отрисовке последней точки из 4-х.
}
@Override

View File

@ -0,0 +1,5 @@
package gui;
public class RectengleRenderingFunction implements ShapeRenderingFunction {
}

View File

@ -0,0 +1,5 @@
package gui;
public interface ShapeRenderingFunction {
}

View File

@ -74,8 +74,8 @@ public class Entity {
public void PrintEntity() {
System.out.println("---------------------");
System.out.println("Name: "+thisName);
this.thisDrawbox.printToConsole();
this.thisHitbox.printToConsole();
thisDrawbox.printToConsole();
thisHitbox.printToConsole();
System.out.println("---------------------");
}