aboutsummaryrefslogtreecommitdiff
path: root/src/client/lua_api/scene/igeneric.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/lua_api/scene/igeneric.cpp')
-rw-r--r--src/client/lua_api/scene/igeneric.cpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/client/lua_api/scene/igeneric.cpp b/src/client/lua_api/scene/igeneric.cpp
index 51aaf66..fc32e83 100644
--- a/src/client/lua_api/scene/igeneric.cpp
+++ b/src/client/lua_api/scene/igeneric.cpp
@@ -11,6 +11,9 @@ extern "C" {
using namespace irr;
using namespace core;
using namespace scene;
+using namespace video;
+
+extern IrrlichtDevice* device;
static LISceneNode* toiscenenode(lua_State* L, int index){
LISceneNode* ret = (LISceneNode*)lua_touserdata(L,index);
@@ -39,6 +42,7 @@ int iscenegetpos(lua_State* L){
return 1;
}
+
int iscenesetpos(lua_State* L){
ISceneNode* i = toiscenenode(L,1)->n;
@@ -65,6 +69,15 @@ int iscenesetpos(lua_State* L){
vector3df pos = i->getAbsolutePosition();
printf("After setting pos, new pos is %f %f %f",pos.X,pos.Y,pos.Z);
-
- return 0;
+ return 0;
+}
+
+int iscenesetmaterial(lua_State* L){
+ ISceneNode* i = toiscenenode(L,1)->n;
+ const char* s = luaL_optstring(L,2,"error.png");
+ printf("Setting material to %s",s);
+ IVideoDriver* driver = device->getVideoDriver();
+ i->setMaterialTexture(0, driver->getTexture(s));
+
+ return 0;
}