Refactoring EditableCanvas in DrawboxEditable and other classes

This commit is contained in:
2026-03-23 15:07:55 +03:00
parent 3b81412eb2
commit ab30acd69a
26 changed files with 498 additions and 186 deletions

View File

@ -3,34 +3,35 @@ package model;
import java.util.ArrayList;
import java.util.List;
public class Hitbox {
public abstract class Hitbox {
String shape = null;// shape - Форма хитбокса. Понадобится при написании сохранения. Один из параметров в xml-file.
Point referencePoint = new Point(0, 0); //Точка отсчета хитбокса, от нее рассчитывается высота+ширина/радиус(при круге) хитбокса.
Entity owner;
public Hitbox(){
}
//Либо так передавать shape, либо создать setShape. Но по сути shape определяется при создании обьекта, и тогда set - предоставление не нужных возможностей.
public Hitbox(String shape){
this.shape = new String(shape);
}
//informationHitbox - default="Rectangle 0 0 96 98"
//Предварительно, я бы сказал что вообще этот конструктор бесполезен и его можно удалить,
// т.к. Hitbox конструктор вызывается из дочерних элементов, а они уже владеют всей необходимой инфой, и entity owner задают сами
// кстати забавно. сейчас устанавливается entity через serOwnerEntity, но как будто этот метод тоже излишек, ведь владелец хитбокса только один.
//Но нет. у нас может быть хитбокс создан программно раньше entity, помню было такое где то, так что этот метод еще обоснован.
public Hitbox(String informationHitbox, Entity owner){
if(informationHitbox!= null) {
setOwnerEntity(owner);
String[] informations = informationHitbox.split(" ");
shape = new String(informations[0]);
if(shape.equals("Rectangle")) {
/*parseStringToRectangleHitbox(informations);
createCartesianPointsFromWidthAndHeigh();
convertCartesianPointsToIso();
printToConsole();*/
}else if(shape.equals("Circle")) {
//parseStringToCircleHitbox(informations);
}
}
}
public abstract String listPointsToString();
/**
* @param result - Point object to store the result
* @return x and y converted to isometic coords