MapConnection to QObject

This commit is contained in:
GriffinR
2024-08-04 16:08:16 -04:00
parent 7eb3c17f4a
commit 4e04e57c05
11 changed files with 238 additions and 186 deletions

View File

@@ -98,7 +98,7 @@ public:
QStringList getScriptLabels(Event::Group group = Event::Group::None);
void removeEvent(Event *);
void addEvent(Event *);
QPixmap renderConnection(const MapConnection&, MapLayout *);
QPixmap renderConnection(const QString &, MapLayout *);
QPixmap renderBorder(bool ignoreCache = false);
void setDimensions(int newWidth, int newHeight, bool setNewBlockdata = true, bool enableScriptCallback = false);
void setBorderDimensions(int newWidth, int newHeight, bool setNewBlockdata = true, bool enableScriptCallback = false);

View File

@@ -3,32 +3,45 @@
#define MAPCONNECTION_H
#include <QString>
#include <QHash>
#include <QObject>
class Map;
class MapConnection {
class MapConnection : public QObject
{
Q_OBJECT
public:
QString direction;
int offset;
QString map_name;
MapConnection(const QString &direction, const QString &hostMapName, const QString &targetMapName, int offset = 0);
QString direction() const { return m_direction; }
void setDirection(const QString &direction);
QString hostMapName() const { return m_hostMapName; }
void setHostMapName(const QString &hostMapName);
QString targetMapName() const { return m_targetMapName; }
void setTargetMapName(const QString &targetMapName);
int offset() const { return m_offset; }
void setOffset(int offset);
MapConnection * createMirror();
bool isMirror(const MapConnection*);
static const QStringList cardinalDirections;
static bool isCardinal(const QString &direction);
static bool isHorizontal(const QString &direction);
static bool isVertical(const QString &direction);
static MapConnection mirror(const MapConnection &source, const QString &mapName);
};
struct MapConnectionMirror {
MapConnection * connection = nullptr;
Map * map = nullptr;
};
private:
QString m_direction;
QString m_hostMapName;
QString m_targetMapName;
int m_offset;
inline bool operator==(const MapConnection &c1, const MapConnection &c2) {
return c1.direction == c2.direction &&
c1.offset == c2.offset &&
c1.map_name == c2.map_name;
}
signals:
void directionChanged(const QString &before, const QString &after);
void targetMapNameChanged(const QString &before, const QString &after);
void hostMapNameChanged(const QString &before, const QString &after);
void offsetChanged(int before, int after);
};
#endif // MAPCONNECTION_H