#ifndef TILESET_H #define TILESET_H #include "metatile.h" #include "tile.h" #include <QImage> class Tileset { public: Tileset(); public: QString name; QString is_compressed; QString is_secondary; QString padding; QString tiles_label; QString palettes_label; QString metatiles_label; QString metatiles_path; QString callback_label; QString metatile_attrs_label; QString metatile_attrs_path; QString tilesImagePath; QImage tilesImage; QList<QString> palettePaths; QList<QImage> *tiles = nullptr; QList<Metatile*> *metatiles = nullptr; QList<QList<QRgb>> *palettes = nullptr; QList<QList<QRgb>> *palettePreviews = nullptr; Tileset* copy(); static Tileset* getBlockTileset(int, Tileset*, Tileset*); static Metatile* getMetatile(int, Tileset*, Tileset*); static QList<QList<QRgb>> getBlockPalettes(Tileset*, Tileset*, bool useTruePalettes = false); static QList<QRgb> getPalette(int, Tileset*, Tileset*, bool useTruePalettes = false); static bool metatileIsValid(uint16_t metatileId, Tileset *, Tileset *); bool appendToHeaders(QString headerFile, QString friendlyName); bool appendToGraphics(QString graphicsFile, QString friendlyName, bool primary); bool appendToMetatiles(QString metatileFile, QString friendlyName, bool primary); }; #endif // TILESET_H