/******************************************************************************
*	File		-	asset.h
*	Author		-	Joey Pollack
*	Date		-	2021/10/25 (y/m/d)
*	Mod Date	-	2021/10/25 (y/m/d)
*	Description	-	The base class for all asset type files
******************************************************************************/

#ifndef ASSET_H_
#define ASSET_H_

#include <core/common_defs.h>

namespace lunarium
{
    enum AssetType
    {
        ASSET_TYPE_IMAGE,
        ASSET_TYPE_SCRIPT,
        ASSET_TYPE_AUDIO,
        ASSET_TYPE_UNKNOWN,
    };

    class Asset
    {
    public:
        Asset(AssetType type = AssetType::ASSET_TYPE_UNKNOWN);
        Asset(LUUID uuid, AssetType type = AssetType::ASSET_TYPE_UNKNOWN);
        virtual ~Asset() = 0;

        AssetType GetType() const;

        LUUID GetUUID() const;
    private:
        AssetType mType;
        LUUID mUUID;
    };
}

#endif  // ASSET_H_