Polyphase Game Engine
Loading...
Searching...
No Matches
Property_Lua.h
Go to the documentation of this file.
1#pragma once
2
3#include "Engine.h"
4#include "Property.h"
6
7#if LUA_ENABLED
8
9#define PROPERTY_LUA_NAME "Property"
10
11struct AutoPropertyInfo
12{
13 std::string mVarName;
14 std::string mDisplayName;
15 DatumType mType;
16 Datum mDefaultValue;
17};
18
19struct Property_Lua
20{
21 static int Create(lua_State* L);
22 static int CreateArray(lua_State* L);
23
24 static void Bind();
25
26 // Static function to get the current script that's being initialized
27 static class Script* GetCurrentInitializingScript();
28 static void SetCurrentInitializingScript(class Script* script);
29
30 // Function to process pending auto properties
31 static void ProcessPendingAutoProperties(class Script* script);
32
33 // Clear pending properties
34 static void ClearPendingProperties();
35
36 // Add a pending auto property
37 static void AddPendingAutoProperty(const std::string& varName, const std::string& displayName, DatumType type, const Datum& defaultValue);
38
39private:
40 static class Script* sCurrentInitializingScript;
41 static std::vector<AutoPropertyInfo> sPendingAutoProperties;
42};
43
44#endif
DatumType
Definition Datum.h:28
Definition Datum.h:164
Definition Script.h:29