#pragma once
#include <stdint.h>

namespace Deer {
    namespace EditorEngine {
        struct EntityHandleStruct {
            EntityHandleStruct(int _entId = 0, int _envId = 0) : entityId(_entId), environmentId(_envId) { }

            uint16_t entityId;
            uint16_t environmentId;
    
            // This is an internal function to avoid undefined behaviour from angelscript and avoid problems
            bool assertEntity(const char* funcName);
        };

        struct EnvironmentHandleStruct {
            EnvironmentHandleStruct(int _id = 0) : environmentId(_id) { }

            uint16_t environmentId;
        };

        struct FrameBufferHandleStruct {
            FrameBufferHandleStruct(int _id = 0) : frameBufferId(_id) { }
            
            uint16_t frameBufferId;
        };
    }
}