/******************************************************************************
*	File		-	definitions.h
*	Author		-	Joey Pollack
*	Date		-	2022/02/24 (y/m/d)
*	Mod Date	-	2022/02/24 (y/m/d)
*	Description	-	file for common defintions for the editor content system
******************************************************************************/

#ifndef EDITOR_ASSETS_DEFINITIONS_H_
#define EDITOR_ASSETS_DEFINITIONS_H_

#include <core/types.h>

namespace lunarium { namespace editor 
{
    // Allows tiles from multiple tilesets to be used in one map
    // A tile ID of -1 will mean "no tile" and result in a transparent spot
    // when rendered
    struct TileRef
    {
        int TileSetID;
        Vec2i TileIndex;

        bool operator==(const TileRef& rhs) const { return this->TileSetID == rhs.TileSetID && this->TileIndex == rhs.TileIndex; }
        bool operator!=(const TileRef& rhs) const { return !((*this) == rhs); }
    };


    enum AssetType
    {
        EATYPE_IMAGE,
        EATYPE_TILE_SET,
        EATYPE_TILE_MAP,
    };
}}

#endif  // EDITOR_ASSETS_DEFINITIONS_H_