#ifndef EQEMU_LUA_OBJECT_H #define EQEMU_LUA_OBJECT_H #ifdef LUA_EQEMU #include "lua_entity.h" class Object; namespace luabind { struct scope; } luabind::scope lua_register_object(); class Lua_Object : public Lua_Entity { typedef Object NativeType; public: Lua_Object() { SetLuaPtrData(nullptr); } Lua_Object(Object *d) { SetLuaPtrData(reinterpret_cast(d)); } virtual ~Lua_Object() { } operator Object*() { void *d = GetLuaPtrData(); if(d) { return reinterpret_cast(d); } return nullptr; } void Depop(); void Repop(); void SetModelName(const char *name); const char *GetModelName(); float GetX(); float GetY(); float GetZ(); float GetHeading(); void SetX(float x); void SetY(float y); void SetZ(float z); void SetHeading(float h); void SetLocation(float x, float y, float z); void SetItemID(uint32 item_id); uint32 GetItemID(); void SetIcon(uint32 icon); uint32 GetIcon(); void SetType(uint32 type); uint32 GetType(); uint32 GetDBID(); void ClearUser(); void SetID(int user); int GetID(); bool Save(); uint32 VarSave(); void DeleteItem(int index); void StartDecay(); void Delete(); void Delete(bool reset_state); bool IsGroundSpawn(); void Close(); const char *GetEntityVariable(const char *name); void SetEntityVariable(const char *name, const char *value); bool EntityVariableExists(const char *name); }; #endif #endif