45 lines
842 B
C++
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();
|
||
|
|
};
|