Lephisto/src/llua_space.h
2013-11-14 05:01:25 +00:00

39 lines
977 B
C

#pragma once
#include "lua.h"
#include "space.h"
#define PLANET_METATABLE "Planet"
#define SYSTEM_METATABLE "System"
#define VECTOR_METATABLE "Vec2"
/* Lua wrappers. */
typedef struct LuaPlanet_s {
Planet* p;
} LuaPlanet;
typedef struct LuaSystem_s {
StarSystem* s;
} LuaSystem;
typedef struct LuaVector_s {
Vec2 vec;
} LuaVector;
/* Load the space library. */
int lua_loadSpace(lua_State* L, int readonly);
int lua_loadVector(lua_State* L);
/* Planet operations. */
LuaPlanet* lua_toplanet(lua_State* L, int ind);
LuaPlanet* lua_pushplanet(lua_State* L, LuaPlanet planet);
int lua_isplanet(lua_State* L, int ind);
/* System operations. */
LuaSystem* lua_tosystem(lua_State* L, int ind);
LuaSystem* lua_pushsystem(lua_State* L, LuaSystem sys);
int lua_issystem(lua_State* L, int ind);
/* Vector operations. */
LuaVector* lua_tovector(lua_State* L, int ind);
LuaVector* lua_pushvector(lua_State* L, LuaVector vec);
int lua_isvector(lua_State* L, int ind);