Files
integration/luprex/syscpp/world.cpp

45 lines
842 B
C++

#include "world.hpp"
#include "idalloc.hpp"
LuaDefineType(World);
World::~World() {
}
void World::init(lua_State *L) {
LuaVar world;
LuaStack LS(L, world);
LS.newpointer(world, new World, false);
LS.setfield(LuaRegistry, "world", world);
}
World *World::fetch(lua_State *L) {
LuaVar world;
LuaStack LS(L, world);
LS.getfield(world, LuaRegistry, "world");
World *w = LS.ckuserdata<World>(world);
LS.result();
return w;
}
LuaDefine(world_init, "c") {
World::init(L);
return 0;
}
LuaDefine(world_setid, "c") {
LuaArg id;
LuaStack LS(L, id);
World *w = World::fetch(L);
w->id_ = LS.ckinteger(id);
return LS.result();
}
LuaDefine(world_getid, "c") {
LuaRet id;
LuaStack LS(L, id);
World *w = World::fetch(L);
LS.set(id, w->id_);
return LS.result();
};