aboutsummaryrefslogtreecommitdiff
path: root/src/client/lua_api/scene
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/lua_api/scene')
-rw-r--r--src/client/lua_api/scene/icamera.cpp221
-rw-r--r--src/client/lua_api/scene/icamera.hpp2
-rw-r--r--src/client/lua_api/scene/ilight.cpp2
-rw-r--r--src/client/lua_api/scene/imesh.cpp2
4 files changed, 102 insertions, 125 deletions
diff --git a/src/client/lua_api/scene/icamera.cpp b/src/client/lua_api/scene/icamera.cpp
index e53de83..14f9283 100644
--- a/src/client/lua_api/scene/icamera.cpp
+++ b/src/client/lua_api/scene/icamera.cpp
@@ -21,29 +21,32 @@ 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");
return (LISceneNode*) ud;
}
+/*
static LISceneNode* checkiscenecamera(lua_State* L){
return checkiscenecamera(L,1);
}
+*/
static LISceneNode* checkismayacamera(lua_State* L, int index){
void* ud = luaL_checkudata(L,index,"scene.iscenemayacamera");
luaL_argcheck(L,ud != NULL, index, "'scene.iscenemayacamera' expected");
return (LISceneNode*) ud;
}
-
+/*
static LISceneNode* checkismayacamera(lua_State* L){
return checkismayacamera(L,1);
}
+*/
static int newiscenemayacamera(lua_State* L){
printf("createing maya camera!\n");
- int nargs = lua_gettop(L);
ISceneManager* smgr = device->getSceneManager();
ICameraSceneNode* cam = smgr->addCameraSceneNodeMaya();
printf("cam is %p",cam);
@@ -67,157 +70,133 @@ static int newiscenemayacamera(lua_State* L){
return 1;
}
-static int newiscenefpscamera(lua_State* L){
- printf("createing fps camera!\n");
- int nargs = lua_gettop(L);
- ISceneManager* smgr = device->getSceneManager();
- ICameraSceneNode* cam = smgr->addCameraSceneNodeFPS();
- 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.iscenefpscamera");
- lua_setmetatable(L, -2);
+// 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
- //Create the struct
- lcam->n = cam;
- lcam->funcmap = hashmap_new();
- lcam->type = "iscenefpscamera";
+ //Set it's metatable
+ luaL_getmetatable(L, "scene.ifpscamera");//userdata_scenenode,scene.ifpscamera
+ lua_setmetatable(L, -2);//userdata_scenenode
- //Free up anything made in this function
- //free(label);
+ //Create the struct
+ 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;
+ //lua_rawgeti(L,LUA_REGISTRYINDEX,tref);
+ return 1;
}
//iscenecamera.new(Vector position, Vector lookat, parrent)
static int newiscenecamera(lua_State* L){
- printf("Createing camera!\n");
- int nargs = lua_gettop(L);
- //The position of the camera
- int startx = luaL_optint(L,1,0);
- int starty = luaL_optint(L,2,0);
- int startz = luaL_optint(L,3,0);
- int endx = luaL_optint(L,4,startx+100);
- int endy = luaL_optint(L,5,starty+100);
- int endz = luaL_optint(L,6,startz+100);
-
- //Label and tooltip
- wchar_t* label;
- const char* labelopt = luaL_optstring(L,5,"Label");
- int bls = strlen(labelopt);
- label = (wchar_t*)malloc(sizeof(wchar_t)*(bls));
- mbstowcs(label,labelopt,bls);
- printf("Got the string option\n");
-
- //If the element has a parrent
- int parent = -1;
- if(nargs >= 6){
- parent = luaL_optint(L,7,0);
- printf("got the parrent\n");
- }
-
-
- //Create the camera
- ISceneManager* smgr = device->getSceneManager();
- //IGUIEnvironment* env = device->getGUIEnvironment();
- //printf("Createing button with data %d %d %d %d, %p, %d, %s, %s\n", startx,starty,endx,endy,guielements[parent],gui_elenum,button_label,button_tooltip);
+ printf("Createing camera!\n");
+ int nargs = lua_gettop(L);
+ //The position of the camera
+ int startx = luaL_optint(L,1,0);
+ int starty = luaL_optint(L,2,0);
+ int startz = luaL_optint(L,3,0);
+ int endx = luaL_optint(L,4,startx+100);
+ int endy = luaL_optint(L,5,starty+100);
+ int endz = luaL_optint(L,6,startz+100);
+
+ //Label and tooltip
+ wchar_t* label;
+ const char* labelopt = luaL_optstring(L,5,"Label");
+ int bls = strlen(labelopt);
+ label = (wchar_t*)malloc(sizeof(wchar_t)*(bls));
+ mbstowcs(label,labelopt,bls);
+ printf("Got the string option\n");
+
+ //If the element has a parrent
+ if(nargs >= 6){
+ printf("got the parrent\n");
+ }
+
+
+ //Create the camera
+ ISceneManager* smgr = device->getSceneManager();
+ //IGUIEnvironment* env = device->getGUIEnvironment();
+ //printf("Createing button with data %d %d %d %d, %p, %d, %s, %s\n", startx,starty,endx,endy,guielements[parent],gui_elenum,button_label,button_tooltip);
//Create the label
- //IGUIStaticText* llabel = (IGUIStaticText*) env->addStaticText(label,core::rect<s32>(startx,starty,endx,endy),false,false, guielements[parent], gui_elenum++, false);
- ICameraSceneNode* cam = smgr->addCameraSceneNode(0, vector3df(startx,starty,startz), vector3df(endx,endy,endz));
- printf("Registered the camera!\n");
+ //IGUIStaticText* llabel = (IGUIStaticText*) env->addStaticText(label,core::rect<s32>(startx,starty,endx,endy),false,false, guielements[parent], gui_elenum++, false);
+ ICameraSceneNode* cam = smgr->addCameraSceneNode(0, vector3df(startx,starty,startz), vector3df(endx,endy,endz));
+ printf("Registered the camera!\n");
//Register it's callback
- //registerguicallback(llabel,EGET_ELEMENT_HOVERED,iguilabelevent);
+ //registerguicallback(llabel,EGET_ELEMENT_HOVERED,iguilabelevent);
//Create it's lua representation
- LISceneNode* lcam = (LISceneNode*)lua_newuserdata(L, sizeof(LISceneNode));
- int tref = luaL_ref(L,LUA_REGISTRYINDEX);
- //iguielements[lcam] = tref;
- //lua_rawgeti(L,LUA_REGISTRYINDEX,tref);//Put it back on the stack since luaL_ref pops the object.
+ LISceneNode* lcam = (LISceneNode*)lua_newuserdata(L, sizeof(LISceneNode));
+ int tref = luaL_ref(L,LUA_REGISTRYINDEX);
+ //iguielements[lcam] = tref;
+ //lua_rawgeti(L,LUA_REGISTRYINDEX,tref);//Put it back on the stack since luaL_ref pops the object.
//Set it's metatable
- luaL_getmetatable(L, "scene.iscenecamera");
- lua_setmetatable(L, -2);
+ luaL_getmetatable(L, "scene.iscenecamera");
+ lua_setmetatable(L, -2);
//Create the struct
- lcam->n = cam;
- lcam->funcmap = hashmap_new();
- lcam->type = "iscenecamera";
+ lcam->n = cam;
+ lcam->funcmap = hashmap_new();
+ lcam->type = "iscenecamera";
//Free up anything made in this function
- //free(label);
+ //free(label);
//Put it on top and return it
- lua_rawgeti(L,LUA_REGISTRYINDEX,tref);
- return 1;
+ lua_rawgeti(L,LUA_REGISTRYINDEX,tref);
+ return 1;
}
-static const luaL_reg icamera_f[] = {
- {"new", newiscenecamera},
-// {"gethandeler", guigethandeler},
-// {"sethandeler", guisethandeler},
- {0,0},
-};
-
static const luaL_reg icamera_m[] = {
- {"getpos", iscenegetpos},
- {"setpos", iscenesetpos},
-// {"move", moveiguielement},
-// {"settext", setiguitext},
-// {"remove", removeiguielement},
- {0, 0},
-};
-
-static const luaL_reg imayacamera_f[] = {
- {"new", newiscenemayacamera},
- {0,0},
+ {"getpos", iscenegetpos},
+ {"setpos", iscenesetpos},
+// {"remove", removeiguielement},
+ {0, 0},
};
static const luaL_reg imayacamera_m[] = {
{0,0},
};
-static const luaL_reg ifpscamera_f[] = {
- {"new", newiscenefpscamera},
- {0,0},
-};
-
static const luaL_reg ifpscamera_m[] = {
{0,0},
};
-int icamera_register(lua_State* L, IrrlichtDevice* d){
-
- device = d;
-
- printf("icamera registered\n");
-
- luaL_newmetatable(L, "scene.icamera");
- luaL_register(L,"icamera",icamera_f);
-
- lua_pushstring(L,"__index");
- lua_pushstring(L,"gethandeler");
- lua_gettable(L,-3);
- lua_settable(L,-4);
-
- lua_pushstring(L,"__newindex");
- lua_pushstring(L,"sethandeler");
- lua_gettable(L,-3);
- lua_settable(L,-4);
-
- luaL_register(L, NULL, icamera_m);
- //End of camera
-
- //Start of maya camera
- luaL_newmetatable(L,"scene.imayacamera");
- luaL_register(L,"imayacamera",imayacamera_f);
-
- luaL_newmetatable(L,"scene.ifpscamera");
- luaL_register(L,"ifpscamera",ifpscamera_f);
-
- return 1;
+void icamera_register(lua_State* L, IrrlichtDevice* d){
+ device = d;
+
+ luaL_newmetatable(L, "scene.icamera");//scene.icamera
+ lua_newtable(L);//scene.icamera, {}
+ luaL_register(L,NULL,icamera_m);//scene.icamera, {}
+ lua_setfield(L,-2,"__index");//scene.icamera
+ lua_pop(L,1);//
+
+ luaL_newmetatable(L, "scene.imayacamera");//scene.imayacamera
+ lua_newtable(L);//scene.imayascamera,{}
+ luaL_register(L,NULL,imayacamera_m);//scene.imayascamera,{}
+ lua_setfield(L,-2,"__index");//scene.imayascamera
+ lua_pop(L,1);//
+
+ luaL_newmetatable(L,"scene.ifpscamera");//scene.ifpscamera
+ lua_newtable(L);//scene.ifpscamera, {}
+ luaL_register(L,NULL,ifpscamera_m);//scene.ifpscamera,{}
+ luaL_register(L,NULL,icamera_m);//scene.ifpscamera,{}
+ lua_setfield(L,-2,"__index");//scene.ifpscamera
+ lua_pop(L,1);//
+
+ lua_getglobal(L,"scene");//{}
+ lua_pushcfunction(L,newiscenecamera);//{},newiscenecamera()
+ lua_setfield(L,-2,"newcamera");//{}
+ lua_pushcfunction(L,newiscenefpscamera);//{},newiscenefpscamera()
+ lua_setfield(L,-2,"newfpscamera");//{}
+ lua_pushcfunction(L,newiscenemayacamera);//{},newiscenemayacamera()
+ lua_setfield(L,-2,"newmayacamera");//{}
+ printf("\"scene\" was set!\n");
+ //lua_pop(L,1);
}
diff --git a/src/client/lua_api/scene/icamera.hpp b/src/client/lua_api/scene/icamera.hpp
index 15525f8..38874e3 100644
--- a/src/client/lua_api/scene/icamera.hpp
+++ b/src/client/lua_api/scene/icamera.hpp
@@ -8,4 +8,4 @@ extern "C" {
}
#include <irrlicht.h>
-int icamera_register(lua_State* L, irr::IrrlichtDevice* d);
+void icamera_register(lua_State* L, irr::IrrlichtDevice* d);
diff --git a/src/client/lua_api/scene/ilight.cpp b/src/client/lua_api/scene/ilight.cpp
index df01dd3..2511999 100644
--- a/src/client/lua_api/scene/ilight.cpp
+++ b/src/client/lua_api/scene/ilight.cpp
@@ -108,7 +108,7 @@ int ilight_register(lua_State* L, IrrlichtDevice* d){
device = d;
- printf("icamera registered\n");
+ printf("ilight registered\n");
luaL_newmetatable(L, "scene.ilight");
diff --git a/src/client/lua_api/scene/imesh.cpp b/src/client/lua_api/scene/imesh.cpp
index bbb0017..1a1c28b 100644
--- a/src/client/lua_api/scene/imesh.cpp
+++ b/src/client/lua_api/scene/imesh.cpp
@@ -97,8 +97,6 @@ int imesh_register(lua_State* L, IrrlichtDevice* d){
device = d;
- printf("imesh registered\n");
-
luaL_newmetatable(L, "scene.imesh");
luaL_register(L,"imesh",imesh_f);