Polyphase Game Engine
Loading...
Searching...
No Matches
ScriptFunc.h
Go to the documentation of this file.
1#pragma once
2
3#include "PolyphaseAPI.h"
4#include "EngineTypes.h"
5#include "Datum.h"
6
7class ScriptComponent;
8
10{
11public:
12 ScriptFunc();
14
15 ScriptFunc(lua_State* L, int arg);
16 ScriptFunc(const ScriptFunc& src);
17 ScriptFunc& operator=(const ScriptFunc& src);
18 ScriptFunc(const Datum& datum);
19
20 bool operator==(const ScriptFunc& other) const;
21 bool operator!=(const ScriptFunc& other) const;
22
23 void Call(uint32_t numParams = 0, Datum* params = nullptr) const;
24 Datum CallR(uint32_t numParams = 0, Datum* params = nullptr) const;
25
26 void Push(lua_State* L) const;
27
28 bool IsValid() const;
29
30 static void CreateRefTable();
31
32protected:
33
34 void RegisterRef(lua_State* L, int arg);
35 void UnregisterRef();
36 void CopyRef(int ref);
37
38 int mRef = LUA_REFNIL;
39};
40
41template<typename T>
43{
44 T mFuncPointer = nullptr;
46};
Export macros for Polyphase Engine symbols.
#define POLYPHASE_API
Definition PolyphaseAPI.h:31
Definition Datum.h:164
Definition ScriptFunc.h:10
Definition ScriptFunc.h:43
ScriptFunc mScriptFunc
Definition ScriptFunc.h:45
T mFuncPointer
Definition ScriptFunc.h:44