#ifndef XASSETLIST_H
#define XASSETLIST_H

#include "xassetheader.h"
#include "xscriptstringlist.h"
#include "xasset.h"

#include <QVector>

class ZoneFile;

class XAssetList : public XAsset
{
public:
    explicit XAssetList();
    XAssetList(ZoneFile* aZoneFile);
    ~XAssetList() override;

    void ParseData(XDataStream *aStream) override;
    void Clear() override;

    XScriptStringList GetStringList() const;
    void SetStringList(const XScriptStringList& stringList);

    QVector<XAsset*> GetAssets() const;
    XAsset* GetAsset(size_t aIndex) const;
    QVector<XAsset*> GetAssetsByType(XAssetType aAssetType) const;
    void SetAssets(QVector<XAsset *> assets);
    void AddAsset(XAsset* aAsset);

    size_t Size() const;

private:
    XScriptStringList mStringList;
    quint32 mAssetCount;
    QVector<XAsset*> mAssets;
    QVector<XAssetHeader> mAssetHeaders;
    ZoneFile* mZoneFile;
};

#endif // XASSETLIST_H

