mirror of
https://github.com/thunderbrewhq/thunderbrew
synced 2025-10-26 13:56:05 +03:00
chore(ui): clean up script handlers for CScriptObject
This commit is contained in:
parent
bc1ce52f7d
commit
884e491b25
@ -13,6 +13,14 @@ void CScriptObject::RegisterScriptMethods(lua_State* L) {
|
|||||||
FrameScript_Object::FillScriptMethodTable(L, ScriptObjectMethods, NUM_SCRIPT_OBJECT_SCRIPT_METHODS);
|
FrameScript_Object::FillScriptMethodTable(L, ScriptObjectMethods, NUM_SCRIPT_OBJECT_SCRIPT_METHODS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int32_t CScriptObject::GetObjectType() {
|
||||||
|
if (!CScriptObject::s_objectType) {
|
||||||
|
CScriptObject::s_objectType = ++FrameScript_Object::s_objectTypes;
|
||||||
|
}
|
||||||
|
|
||||||
|
return CScriptObject::s_objectType;
|
||||||
|
}
|
||||||
|
|
||||||
CScriptObject* CScriptObject::GetScriptObjectByName(const char* name, int32_t type) {
|
CScriptObject* CScriptObject::GetScriptObjectByName(const char* name, int32_t type) {
|
||||||
lua_State* L = FrameScript_GetContext();
|
lua_State* L = FrameScript_GetContext();
|
||||||
|
|
||||||
|
|||||||
@ -15,6 +15,7 @@ class CScriptObject : public FrameScript_Object {
|
|||||||
static const char* s_objectTypeName;
|
static const char* s_objectTypeName;
|
||||||
|
|
||||||
// Static functions
|
// Static functions
|
||||||
|
static int32_t GetObjectType();
|
||||||
static void RegisterScriptMethods(lua_State* L);
|
static void RegisterScriptMethods(lua_State* L);
|
||||||
static CScriptObject* GetScriptObjectByName(const char* name, int32_t type);
|
static CScriptObject* GetScriptObjectByName(const char* name, int32_t type);
|
||||||
|
|
||||||
|
|||||||
@ -4,13 +4,8 @@
|
|||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
|
|
||||||
int32_t CScriptObject_GetObjectType(lua_State* L) {
|
int32_t CScriptObject_GetObjectType(lua_State* L) {
|
||||||
if (!CScriptObject::s_objectType) {
|
auto object = static_cast<CScriptObject*>(FrameScript_GetObjectThis(L, CScriptObject::GetObjectType()));
|
||||||
CScriptObject::s_objectType = ++FrameScript_Object::s_objectTypes;
|
auto type = object->GetObjectTypeName();
|
||||||
}
|
|
||||||
|
|
||||||
CScriptObject* object = (CScriptObject*)FrameScript_GetObjectThis(L, CScriptObject::s_objectType);
|
|
||||||
|
|
||||||
const char* type = object->GetObjectTypeName();
|
|
||||||
|
|
||||||
lua_pushstring(L, type);
|
lua_pushstring(L, type);
|
||||||
|
|
||||||
@ -18,24 +13,14 @@ int32_t CScriptObject_GetObjectType(lua_State* L) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int32_t CScriptObject_IsObjectType(lua_State* L) {
|
int32_t CScriptObject_IsObjectType(lua_State* L) {
|
||||||
if (!CScriptObject::s_objectType) {
|
auto object = static_cast<CScriptObject*>(FrameScript_GetObjectThis(L, CScriptObject::GetObjectType()));
|
||||||
CScriptObject::s_objectType = ++FrameScript_Object::s_objectTypes;
|
|
||||||
}
|
|
||||||
|
|
||||||
CScriptObject* object = (CScriptObject*)FrameScript_GetObjectThis(L, CScriptObject::s_objectType);
|
|
||||||
|
|
||||||
if (!lua_isstring(L, 2)) {
|
if (!lua_isstring(L, 2)) {
|
||||||
const char* name = object->GetName();
|
auto name = object->GetDisplayName();
|
||||||
|
return luaL_error(L, "Usage: %s:IsObjectType(\"type\")", name);
|
||||||
if (!name) {
|
|
||||||
name = "<unnamed>";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
luaL_error(L, "Usage: %s:IsObjectType(\"type\")", name);
|
auto type = lua_tolstring(L, 2, nullptr);
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
const char* type = lua_tolstring(L, 2, 0);
|
|
||||||
|
|
||||||
if (object->IsA(type)) {
|
if (object->IsA(type)) {
|
||||||
lua_pushnumber(L, 1.0);
|
lua_pushnumber(L, 1.0);
|
||||||
@ -47,13 +32,8 @@ int32_t CScriptObject_IsObjectType(lua_State* L) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int32_t CScriptObject_GetName(lua_State* L) {
|
int32_t CScriptObject_GetName(lua_State* L) {
|
||||||
if (!CScriptObject::s_objectType) {
|
auto object = static_cast<CScriptObject*>(FrameScript_GetObjectThis(L, CScriptObject::GetObjectType()));
|
||||||
CScriptObject::s_objectType = ++FrameScript_Object::s_objectTypes;
|
auto name = object->GetName();
|
||||||
}
|
|
||||||
|
|
||||||
CScriptObject* object = (CScriptObject*)FrameScript_GetObjectThis(L, CScriptObject::s_objectType);
|
|
||||||
|
|
||||||
char* name = object->GetName();
|
|
||||||
|
|
||||||
if (name && *name) {
|
if (name && *name) {
|
||||||
lua_pushstring(L, name);
|
lua_pushstring(L, name);
|
||||||
@ -65,17 +45,12 @@ int32_t CScriptObject_GetName(lua_State* L) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int32_t CScriptObject_GetParent(lua_State* L) {
|
int32_t CScriptObject_GetParent(lua_State* L) {
|
||||||
if (!CScriptObject::s_objectType) {
|
auto object = static_cast<CScriptObject*>(FrameScript_GetObjectThis(L, CScriptObject::GetObjectType()));
|
||||||
CScriptObject::s_objectType = ++FrameScript_Object::s_objectTypes;
|
|
||||||
}
|
|
||||||
|
|
||||||
CScriptObject* object = (CScriptObject*)FrameScript_GetObjectThis(L, CScriptObject::s_objectType);
|
|
||||||
|
|
||||||
CScriptObject* parent = object->GetScriptObjectParent();
|
CScriptObject* parent = object->GetScriptObjectParent();
|
||||||
|
|
||||||
if (parent) {
|
if (parent) {
|
||||||
if (!parent->lua_registered) {
|
if (!parent->lua_registered) {
|
||||||
parent->RegisterScriptObject(0);
|
parent->RegisterScriptObject(nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
lua_rawgeti(L, LUA_REGISTRYINDEX, parent->lua_objectRef);
|
lua_rawgeti(L, LUA_REGISTRYINDEX, parent->lua_objectRef);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user