Tramway SDK
script.h
Go to the documentation of this file.
1// Tramway Drifting and Dungeon Exploration Simulator SDK Runtime
2
3#ifndef TRAM_SDK_FRAMEWORK_SCRIPT_H
4#define TRAM_SDK_FRAMEWORK_SCRIPT_H
5
6#include <framework/value.h>
7#include <vector>
8
9namespace tram::Script {
10
11void SetGlobal(name_t name, value_t value);
13void SetFunction(name_t name, std::vector<Type> parameters, value_t (*function)(valuearray_t));
14value_t CallFunction(name_t name, std::vector<Value> parameters);
15value_t Evaluate(const char* code);
16
17class Interface {
18public:
19 virtual name_t GetName() = 0;
20 virtual value_t GetGlobal(name_t name) = 0;
21 virtual void SetGlobal(name_t name, value_t value) = 0;
22 virtual void SetFunction(name_t name, std::vector<Type> parameters, value_t (*function)(valuearray_t)) = 0;
23 virtual value_t CallFunction(name_t name, std::vector<Value> parameters) = 0;
24
25 virtual void LoadScript(const char* path) = 0;
26 virtual value_t Evaluate(const char* code) = 0;
27};
28
29void SetInterface(Interface* language);
30void LoadScript(const char* path);
31
32void Init();
33
34}
35
36#endif // TRAM_SDK_FRAMEWORK_SCRIPT_H
Definition: script.h:17
virtual void LoadScript(const char *path)=0
virtual value_t CallFunction(name_t name, std::vector< Value > parameters)=0
virtual value_t GetGlobal(name_t name)=0
virtual name_t GetName()=0
virtual void SetGlobal(name_t name, value_t value)=0
virtual value_t Evaluate(const char *code)=0
virtual void SetFunction(name_t name, std::vector< Type > parameters, value_t(*function)(valuearray_t))=0
Definition: value.h:314
Generic, type-safe union.
Definition: value.h:18
std::vector< Type > parameters
Definition: lua.cpp:155
Scripting API.
void SetGlobal(name_t name, value_t value)
Definition: script.cpp:48
void Init()
Definition: script.cpp:86
void SetFunction(name_t name, std::vector< Type > parameters, value_t(*function)(valuearray_t))
Definition: script.cpp:56
value_t Evaluate(const char *code)
Definition: script.cpp:64
value_t GetGlobal(name_t name)
Definition: script.cpp:52
void LoadScript(const char *path)
Definition: script.cpp:82
void SetInterface(Interface *new_language)
Definition: script.cpp:78
value_t CallFunction(name_t name, std::vector< Value > parameters)
Definition: script.cpp:60
Value value_t
Definition: event.h:21
ValueArray valuearray_t
Definition: value.h:325
UID name_t
Definition: uid.h:43
Interned string type.
Definition: uid.h:10