aboutsummaryrefslogtreecommitdiff
path: root/src/client/lua_api/scene/icamera.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/lua_api/scene/icamera.cpp')
-rw-r--r--src/client/lua_api/scene/icamera.cpp76
1 files changed, 39 insertions, 37 deletions
diff --git a/src/client/lua_api/scene/icamera.cpp b/src/client/lua_api/scene/icamera.cpp
index 14f9283..3c5e2b0 100644
--- a/src/client/lua_api/scene/icamera.cpp
+++ b/src/client/lua_api/scene/icamera.cpp
@@ -21,7 +21,6 @@ using namespace core;
extern IrrlichtDevice* device;
-
static LISceneNode* checkiscenecamera(lua_State* L, int index){
void* ud = luaL_checkudata(L,index,"scene.iscenecamera");
luaL_argcheck(L,ud != NULL, index, "'scene.iscenecamera' expected");
@@ -46,49 +45,51 @@ static LISceneNode* checkismayacamera(lua_State* L){
*/
static int newiscenemayacamera(lua_State* L){
- printf("createing maya camera!\n");
- ISceneManager* smgr = device->getSceneManager();
- ICameraSceneNode* cam = smgr->addCameraSceneNodeMaya();
- printf("cam is %p",cam);
- LISceneNode* lcam = (LISceneNode*)lua_newuserdata(L, sizeof(LISceneNode));
- int tref = luaL_ref(L,LUA_REGISTRYINDEX);
-
- //Set it's metatable
- luaL_getmetatable(L, "scene.iscenemayacamera");
- lua_setmetatable(L, -2);
-
- //Create the struct
- lcam->n = cam;
- lcam->funcmap = hashmap_new();
- lcam->type = "iscenemayacamera";
-
- //Free up anything made in this function
- //free(label);
-
- //Put it on top and return it
- lua_rawgeti(L,LUA_REGISTRYINDEX,tref);
- return 1;
+ printf("createing maya camera!\n");
+ ISceneManager* smgr = device->getSceneManager();
+ ICameraSceneNode* cam = smgr->addCameraSceneNodeMaya();
+ printf("cam is %p",cam);
+ lua_newtable(L);//{}
+ lua_pushlightuserdata(L,cam);
+ lua_setfield(L,-2,"node");
+ //LISceneNode* lcam = (LISceneNode*)lua_newuserdata(L, sizeof(LISceneNode));
+ //int tref = luaL_ref(L,LUA_REGISTRYINDEX);
+
+ //Set it's metatable
+ luaL_getmetatable(L, "scene.iscenemayacamera");
+ lua_setmetatable(L, -2);
+
+ //Create the struct
+ //lcam->n = cam;
+ //lcam->funcmap = hashmap_new();
+ //lcam->type = "iscenemayacamera";
+
+ //Free up anything made in this function
+ //free(label);
+
+ //Put it on top and return it
+ //lua_rawgeti(L,LUA_REGISTRYINDEX,tref);
+ return 1;
}
// ifpscamera.new()
static int newiscenefpscamera(lua_State* L){//
ISceneManager* smgr = device->getSceneManager();
ICameraSceneNode* cam = smgr->addCameraSceneNodeFPS();
- LISceneNode* lcam = (LISceneNode*)lua_newuserdata(L, sizeof(LISceneNode));//userdata_scenenode
- int tref = luaL_ref(L,LUA_REGISTRYINDEX);//
- lua_rawgeti(L,LUA_REGISTRYINDEX,tref);//userdata_scenenode
+ lua_newtable(L);//{}
+ lua_pushlightuserdata(L,cam);//{},ud_cam
+ lua_setfield(L,-2,"node");
+ //LISceneNode* lcam = (LISceneNode*)lua_newuserdata(L, sizeof(LISceneNode));//userdata_scenenode
//Set it's metatable
luaL_getmetatable(L, "scene.ifpscamera");//userdata_scenenode,scene.ifpscamera
lua_setmetatable(L, -2);//userdata_scenenode
//Create the struct
- lcam->n = cam;
- lcam->funcmap = hashmap_new();
- lcam->type = "iscenefpscamera";
+ //lcam->n = cam;
+ //lcam->funcmap = hashmap_new();
+ //lcam->type = "iscenefpscamera";
- //Put it on top and return it
- //lua_rawgeti(L,LUA_REGISTRYINDEX,tref);
return 1;
}
@@ -154,9 +155,10 @@ static int newiscenecamera(lua_State* L){
}
static const luaL_reg icamera_m[] = {
- {"getpos", iscenegetpos},
- {"setpos", iscenesetpos},
-// {"remove", removeiguielement},
+ {"getpos", iscenegetpos},
+ {"setpos", iscenesetpos},
+ {"getangle", iscenegetangle},
+ {"setangle", iscenesetangle},
{0, 0},
};
@@ -168,8 +170,7 @@ static const luaL_reg ifpscamera_m[] = {
{0,0},
};
-void icamera_register(lua_State* L, IrrlichtDevice* d){
- device = d;
+void icamera_register(lua_State* L){
luaL_newmetatable(L, "scene.icamera");//scene.icamera
lua_newtable(L);//scene.icamera, {}
@@ -180,6 +181,7 @@ void icamera_register(lua_State* L, IrrlichtDevice* d){
luaL_newmetatable(L, "scene.imayacamera");//scene.imayacamera
lua_newtable(L);//scene.imayascamera,{}
luaL_register(L,NULL,imayacamera_m);//scene.imayascamera,{}
+ luaL_register(L,NULL,icamera_m);//scene.imayascamera,{}
lua_setfield(L,-2,"__index");//scene.imayascamera
lua_pop(L,1);//
@@ -198,5 +200,5 @@ void icamera_register(lua_State* L, IrrlichtDevice* d){
lua_pushcfunction(L,newiscenemayacamera);//{},newiscenemayacamera()
lua_setfield(L,-2,"newmayacamera");//{}
printf("\"scene\" was set!\n");
- //lua_pop(L,1);
+ lua_pop(L,1);//
}