Pioneer
Loading...
Searching...
No Matches
LuaSerializer.h
Go to the documentation of this file.
1// Copyright © 2008-2023 Pioneer Developers. See AUTHORS.txt for details
2// Licensed under the terms of the GPL v3. See licenses/GPL-3.txt
3
4#ifndef _LUASERIALIZER_H
5#define _LUASERIALIZER_H
6
7#include "DeleteEmitter.h"
8#include "LuaManager.h"
9#include "LuaObject.h"
10#include "LuaRef.h"
11
12class Space;
13
15 friend class LuaObjectBase;
16 friend class LuaObject<LuaSerializer>;
17 friend void LuaRef::SaveToJson(Json &jsonObj);
18 friend void LuaRef::LoadFromJson(const Json &jsonObj);
19
20public:
21 void ToJson(Json &jsonObj);
22 void FromJson(const Json &jsonObj);
23
24 void SaveComponents(Json &jsonObj, Space *space);
25 void LoadComponents(const Json &jsonObj, Space *space);
26
27 void InitTableRefs();
28 void UninitTableRefs();
29
30private:
31 static int l_register(lua_State *l);
32 static int l_register_class(lua_State *l);
33
34 static void pickle_json(lua_State *l, int idx, Json &out, const std::string &key = "");
35 static void unpickle_json(lua_State *l, const Json &value);
36};
37
38#endif
nlohmann::json Json
Definition Json.h:8
Definition DeleteEmitter.h:16
Definition LuaObject.h:107
Definition LuaObject.h:235
void SaveToJson(Json &jsonObj)
Definition LuaRef.cpp:97
void LoadFromJson(const Json &jsonObj)
Definition LuaRef.cpp:121
Definition LuaSerializer.h:14
void SaveComponents(Json &jsonObj, Space *space)
Definition LuaSerializer.cpp:454
void UninitTableRefs()
Definition LuaSerializer.cpp:350
void InitTableRefs()
Definition LuaSerializer.cpp:336
void LoadComponents(const Json &jsonObj, Space *space)
Definition LuaSerializer.cpp:477
void ToJson(Json &jsonObj)
Definition LuaSerializer.cpp:364
void FromJson(const Json &jsonObj)
Definition LuaSerializer.cpp:404
Definition Space.h:19