Index: /branches/new_class_id/src/lib/graphics/effects/cloud_effect.cc
===================================================================
--- /branches/new_class_id/src/lib/graphics/effects/cloud_effect.cc	(revision 9745)
+++ /branches/new_class_id/src/lib/graphics/effects/cloud_effect.cc	(revision 9746)
@@ -50,8 +50,8 @@
 
 CREATE_SCRIPTABLE_CLASS(CloudEffect, CloudEffect::classID(),
-                        addMethod("skyColor", ExecutorLua4<CloudEffect,float,float,float,float>(&CloudEffect::shellSkyColor))
-                        ->addMethod("cloudColor", ExecutorLua4<CloudEffect,float,float,float,float>(&CloudEffect::shellCloudColor))
-                        ->addMethod("activate", ExecutorLua0<CloudEffect>(&CloudEffect::activate))
-                        ->addMethod("deactivate", ExecutorLua0<CloudEffect>(&CloudEffect::deactivate))
+                        addMethod("skyColor", Executor4<CloudEffect, lua_State*,float,float,float,float>(&CloudEffect::shellSkyColor))
+                        ->addMethod("cloudColor", Executor4<CloudEffect, lua_State*,float,float,float,float>(&CloudEffect::shellCloudColor))
+                        ->addMethod("activate", Executor0<CloudEffect, lua_State*>(&CloudEffect::activate))
+                        ->addMethod("deactivate", Executor0<CloudEffect, lua_State*>(&CloudEffect::deactivate))
                        );
 
Index: /branches/new_class_id/src/lib/graphics/effects/fog_effect.cc
===================================================================
--- /branches/new_class_id/src/lib/graphics/effects/fog_effect.cc	(revision 9745)
+++ /branches/new_class_id/src/lib/graphics/effects/fog_effect.cc	(revision 9746)
@@ -21,4 +21,5 @@
 #include "script_class.h"
 #include "cloud_effect.h"
+#include "debug.h"
 
 ObjectListDefinition(FogEffect);
@@ -32,8 +33,8 @@
 
 CREATE_SCRIPTABLE_CLASS(FogEffect, FogEffect::classID(),
-                        addMethod("fadeIn", ExecutorLua0<FogEffect>(&FogEffect::fadeInFog))
-                            ->addMethod("fadeOut", ExecutorLua0<FogEffect>(&FogEffect::fadeOutFog))
-                            ->addMethod("activate", ExecutorLua0<FogEffect>(&FogEffect::activate))
-                            ->addMethod("deactivate", ExecutorLua0<FogEffect>(&FogEffect::deactivate))
+                        addMethod("fadeIn", Executor0<FogEffect, lua_State*>(&FogEffect::fadeInFog))
+                            ->addMethod("fadeOut", Executor0<FogEffect, lua_State*>(&FogEffect::fadeOutFog))
+                            ->addMethod("activate", Executor0<FogEffect, lua_State*>(&FogEffect::activate))
+                            ->addMethod("deactivate", Executor0<FogEffect, lua_State*>(&FogEffect::deactivate))
                        );
 
Index: /branches/new_class_id/src/lib/graphics/effects/lightning_effect.cc
===================================================================
--- /branches/new_class_id/src/lib/graphics/effects/lightning_effect.cc	(revision 9745)
+++ /branches/new_class_id/src/lib/graphics/effects/lightning_effect.cc	(revision 9746)
@@ -27,4 +27,5 @@
 #include "cloud_effect.h"
 #include "script_class.h"
+#include "debug.h"
 #include "class_id_DEPRECATED.h"
 
@@ -35,6 +36,6 @@
 
 CREATE_SCRIPTABLE_CLASS(LightningEffect, LightningEffect::classID(),
-                        addMethod("activate", ExecutorLua0<LightningEffect>(&LightningEffect::activate))
-                            ->addMethod("deactivate", ExecutorLua0<LightningEffect>(&LightningEffect::deactivate))
+                        addMethod("activate", Executor0<LightningEffect, lua_State*>(&LightningEffect::activate))
+                            ->addMethod("deactivate", Executor0<LightningEffect, lua_State*>(&LightningEffect::deactivate))
                        );
 
Index: /branches/new_class_id/src/lib/graphics/effects/rain_effect.cc
===================================================================
--- /branches/new_class_id/src/lib/graphics/effects/rain_effect.cc	(revision 9745)
+++ /branches/new_class_id/src/lib/graphics/effects/rain_effect.cc	(revision 9746)
@@ -30,4 +30,5 @@
 #include "cloud_effect.h"
 #include "script_class.h"
+#include "debug.h"
 
 #include "class_id_DEPRECATED.h"
@@ -44,8 +45,8 @@
 
 CREATE_SCRIPTABLE_CLASS(RainEffect, RainEffect::classID(),
-                        addMethod("startRaining", ExecutorLua0<RainEffect>(&RainEffect::startRaining))
-                            ->addMethod("stopRaining", ExecutorLua0<RainEffect>(&RainEffect::stopRaining))
-                            ->addMethod("activate", ExecutorLua0<RainEffect>(&RainEffect::activate))
-                            ->addMethod("deactivate", ExecutorLua0<RainEffect>(&RainEffect::deactivate))
+                        addMethod("startRaining", Executor0<RainEffect, lua_State*>(&RainEffect::startRaining))
+                            ->addMethod("stopRaining", Executor0<RainEffect, lua_State*>(&RainEffect::stopRaining))
+                            ->addMethod("activate", Executor0<RainEffect, lua_State*>(&RainEffect::activate))
+                            ->addMethod("deactivate", Executor0<RainEffect, lua_State*>(&RainEffect::deactivate))
                        );
 
Index: /branches/new_class_id/src/lib/graphics/effects/snow_effect.cc
===================================================================
--- /branches/new_class_id/src/lib/graphics/effects/snow_effect.cc	(revision 9745)
+++ /branches/new_class_id/src/lib/graphics/effects/snow_effect.cc	(revision 9746)
@@ -38,6 +38,6 @@
 
 CREATE_SCRIPTABLE_CLASS(SnowEffect, SnowEffect::classID(),
-                            addMethod("activate", ExecutorLua0<SnowEffect>(&SnowEffect::activate))
-                            ->addMethod("deactivate", ExecutorLua0<SnowEffect>(&SnowEffect::deactivate))
+                            addMethod("activate", Executor0<SnowEffect, lua_State*>(&SnowEffect::activate))
+                            ->addMethod("deactivate", Executor0<SnowEffect, lua_State*>(&SnowEffect::deactivate))
                        );
 
Index: /branches/new_class_id/src/lib/script_engine/script.cc
===================================================================
--- /branches/new_class_id/src/lib/script_engine/script.cc	(revision 9745)
+++ /branches/new_class_id/src/lib/script_engine/script.cc	(revision 9746)
@@ -26,8 +26,8 @@
 
 CREATE_SCRIPTABLE_CLASS(Script, Script::classID(),
-                    addMethod("addObject", ExecutorLua2<Script,const std::string&, const std::string& >(&Script::addObject))
-                    ->addMethod("registerClass", ExecutorLua1<Script,const std::string&>(&Script::registerClass))
-                    ->addMethod("selectFunction", ExecutorLua2ret<Script, bool, const std::string&, int >(&Script::selectFunction))
-                    ->addMethod("executeFunction", ExecutorLua0ret<Script,bool >(&Script::executeFunction))
+                    addMethod("addObject", Executor2<Script, lua_State*,const std::string&, const std::string& >(&Script::addObject))
+                    ->addMethod("registerClass", Executor1<Script, lua_State*,const std::string&>(&Script::registerClass))
+                    ->addMethod("selectFunction", Executor2ret<Script, lua_State*, bool, const std::string&, int >(&Script::selectFunction))
+                    ->addMethod("executeFunction", Executor0ret<Script, lua_State*,bool >(&Script::executeFunction))
                      );
 
Index: /branches/new_class_id/src/lib/script_engine/script_method.h
===================================================================
--- /branches/new_class_id/src/lib/script_engine/script_method.h	(revision 9745)
+++ /branches/new_class_id/src/lib/script_engine/script_method.h	(revision 9746)
@@ -9,6 +9,6 @@
 #include <vector>
 
-#include "executor/executor_lua.h"
-
+#include "executor/executor_lua_state.h"
+#include "executor/executor_member.h"
 
 class ScriptMethod
Index: /branches/new_class_id/src/lib/util/Makefile.am
===================================================================
--- /branches/new_class_id/src/lib/util/Makefile.am	(revision 9745)
+++ /branches/new_class_id/src/lib/util/Makefile.am	(revision 9746)
@@ -8,5 +8,4 @@
 libORXexecutor_a_SOURCES = \
 		executor/executor.cc \
-		executor/executor_lua.cc \
 		executor/executor_lua_state.cc \
 		executor/executor_substring.cc
@@ -49,5 +48,4 @@
 		executor/executor.h \
 		executor/executor_xml.h \
-		executor/executor_lua.h \
 		executor/executor_lua_state.h \
 		executor/executor_substring.h \
Index: /branches/new_class_id/src/lib/util/executor/executor_generic.h
===================================================================
--- /branches/new_class_id/src/lib/util/executor/executor_generic.h	(revision 9745)
+++ /branches/new_class_id/src/lib/util/executor/executor_generic.h	(revision 9746)
@@ -74,8 +74,6 @@
    */
   __EXECUTOR_FUNCTIONAL_NAME(0,) (void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)() __EXECUTOR_FUNCTIONAL_CONST )
-      : Executor<CallType, BaseClass>(false, __EXECUTOR_FUNCTIONAL_FUNCTIONTYPE)
-  {
-    this->functionPointer = functionPointer;
-  };
+      : Executor<CallType, BaseClass>(false, __EXECUTOR_FUNCTIONAL_FUNCTIONTYPE), functionPointer(functionPointer)
+  {};
 
   /**
@@ -118,8 +116,6 @@
    */
   __EXECUTOR_FUNCTIONAL_NAME(1,) (void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0) __EXECUTOR_FUNCTIONAL_CONST)
-      : Executor<CallType, BaseClass>(false, ExecutorParamType<type0>(), __EXECUTOR_FUNCTIONAL_FUNCTIONTYPE)
-  {
-    this->functionPointer = functionPointer;
-  };
+      : Executor<CallType, BaseClass>(false, ExecutorParamType<type0>(), __EXECUTOR_FUNCTIONAL_FUNCTIONTYPE), functionPointer(functionPointer)
+  {};
 
   /**
@@ -163,8 +159,6 @@
    */
   __EXECUTOR_FUNCTIONAL_NAME(2,) (void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0, type1) __EXECUTOR_FUNCTIONAL_CONST)
-      : Executor<CallType, BaseClass>(false, ExecutorParamType<type0>(), ExecutorParamType<type1>(), __EXECUTOR_FUNCTIONAL_FUNCTIONTYPE)
-  {
-    this->functionPointer = functionPointer;
-  };
+      : Executor<CallType, BaseClass>(false, ExecutorParamType<type0>(), ExecutorParamType<type1>(), __EXECUTOR_FUNCTIONAL_FUNCTIONTYPE), functionPointer(functionPointer)
+  {};
 
   /**
@@ -209,8 +203,6 @@
    */
   __EXECUTOR_FUNCTIONAL_NAME(3,) (void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0, type1, type2) __EXECUTOR_FUNCTIONAL_CONST)
-      : Executor<CallType, BaseClass>(false, ExecutorParamType<type0>(), ExecutorParamType<type1>(), ExecutorParamType<type2>(), __EXECUTOR_FUNCTIONAL_FUNCTIONTYPE)
-  {
-    this->functionPointer = functionPointer;
-  };
+      : Executor<CallType, BaseClass>(false, ExecutorParamType<type0>(), ExecutorParamType<type1>(), ExecutorParamType<type2>(), __EXECUTOR_FUNCTIONAL_FUNCTIONTYPE), functionPointer(functionPointer)
+  {};
 
   /**
@@ -256,8 +248,6 @@
    */
   __EXECUTOR_FUNCTIONAL_NAME(4,) (void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0, type1, type2, type3) __EXECUTOR_FUNCTIONAL_CONST)
-      : Executor<CallType, BaseClass>(false, ExecutorParamType<type0>(), ExecutorParamType<type1>(), ExecutorParamType<type2>(), ExecutorParamType<type3>(), __EXECUTOR_FUNCTIONAL_FUNCTIONTYPE)
-  {
-    this->functionPointer = functionPointer;
-  };
+      : Executor<CallType, BaseClass>(false, ExecutorParamType<type0>(), ExecutorParamType<type1>(), ExecutorParamType<type2>(), ExecutorParamType<type3>(), __EXECUTOR_FUNCTIONAL_FUNCTIONTYPE), functionPointer(functionPointer)
+  {};
 
   /**
@@ -304,8 +294,6 @@
    */
   __EXECUTOR_FUNCTIONAL_NAME(5,) (void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0, type1, type2, type3, type4) __EXECUTOR_FUNCTIONAL_CONST)
-      : Executor<CallType, BaseClass>(false, ExecutorParamType<type0>(), ExecutorParamType<type1>(), ExecutorParamType<type2>(), ExecutorParamType<type3>(), ExecutorParamType<type4>(), __EXECUTOR_FUNCTIONAL_FUNCTIONTYPE)
-  {
-    this->functionPointer = functionPointer;
-  };
+      : Executor<CallType, BaseClass>(false, ExecutorParamType<type0>(), ExecutorParamType<type1>(), ExecutorParamType<type2>(), ExecutorParamType<type3>(), ExecutorParamType<type4>(), __EXECUTOR_FUNCTIONAL_FUNCTIONTYPE), functionPointer(functionPointer)
+  {};
 
   /**
@@ -334,3 +322,128 @@
 };
 
+
+////////////////////
+//// 0 & RETURN ////
+////////////////////
+//! @brief ExecutorClass, that can execute Functions with one parameter.
+template<class T, typename CallType, typename ret, template<typename> class Evaluater = ExecutorEvaluater, class BaseClass = BaseObject>
+class __EXECUTOR_FUNCTIONAL_NAME(0,ret) : public Executor<CallType, BaseClass>
+{
+private:
+  /** @brief the FunctioPointer. */
+  ret (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)() __EXECUTOR_FUNCTIONAL_CONST;
+
+public:
+  /**
+   * @brief constructs the Executor.
+   * @param __EXECUTOR_FUNCTIONAL_FUNCTION_POINTER the FunctionPointer to the Calling Function.
+   */
+  __EXECUTOR_FUNCTIONAL_NAME(0,ret) (ret (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)() __EXECUTOR_FUNCTIONAL_CONST)
+      : Executor<CallType, BaseClass>(true, __EXECUTOR_FUNCTIONAL_FUNCTIONTYPE), functionPointer(functionPointer)
+  {};
+
+  /**
+     * @brief executes the Functional
+     * @param object the Object the action should be executed on.
+     * @param eval the CallType to get the Parameters from.
+   */
+  virtual void operator()(BaseObject* object, CallType& eval = Evaluater<CallType>::defaultValue()) const
+  {
+    Evaluater<CallType>().template storeRet<ret>(eval, (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)());
+  };
+
+  /**
+     * @brief copies the Executor
+     * @returns a new Executor that's a copy of this one.
+   */
+  virtual Executor<CallType, BaseClass>* clone() const
+  {
+    return  new __EXECUTOR_FUNCTIONAL_NAME(0,ret)<T, CallType, ret>(this->functionPointer);
+  };
+};
+
+////////////////////
+//// 1 & RETURN ////
+////////////////////
+//! @brief ExecutorClass, that can execute Functions with one parameter.
+template<class T, typename CallType, typename ret, typename type0, template<typename> class Evaluater = ExecutorEvaluater, class BaseClass = BaseObject>
+class __EXECUTOR_FUNCTIONAL_NAME(1,ret) : public Executor<CallType, BaseClass>
+{
+private:
+  /** @brief the FunctioPointer. */
+  ret (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0) __EXECUTOR_FUNCTIONAL_CONST;
+
+public:
+  /**
+   * @brief constructs the Executor.
+   * @param __EXECUTOR_FUNCTIONAL_FUNCTION_POINTER the FunctionPointer to the Calling Function.
+   */
+  __EXECUTOR_FUNCTIONAL_NAME(1,ret) (ret (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0) __EXECUTOR_FUNCTIONAL_CONST)
+      : Executor<CallType, BaseClass>(true, ExecutorParamType<type0>(), __EXECUTOR_FUNCTIONAL_FUNCTIONTYPE), functionPointer(functionPointer)
+  {};
+
+  /**
+     * @brief executes the Functional
+     * @param object the Object the action should be executed on.
+     * @param eval the CallType to get the Parameters from.
+   */
+  virtual void operator()(BaseObject* object, CallType& eval = Evaluater<CallType>::defaultValue()) const
+  {
+    Evaluater<CallType>().template storeRet<ret>(eval, (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(
+          Evaluater<CallType>().template operator()<type0, 0>(eval, this->defaultValue)));
+  };
+
+  /**
+     * @brief copies the Executor
+     * @returns a new Executor that's a copy of this one.
+   */
+  virtual Executor<CallType, BaseClass>* clone() const
+  {
+    return  new __EXECUTOR_FUNCTIONAL_NAME(1,ret)<T, CallType, ret, type0>(this->functionPointer);
+  };
+};
+
+
+////////////////////
+//// 1 & RETURN ////
+////////////////////
+//! @brief ExecutorClass, that can execute Functions with one parameter.
+template<class T, typename CallType, typename ret, typename type0, typename type1, template<typename> class Evaluater = ExecutorEvaluater, class BaseClass = BaseObject>
+class __EXECUTOR_FUNCTIONAL_NAME(2,ret) : public Executor<CallType, BaseClass>
+{
+private:
+  /** @brief the FunctioPointer. */
+  ret (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0, type1) __EXECUTOR_FUNCTIONAL_CONST;
+
+public:
+  /**
+   * @brief constructs the Executor.
+   * @param __EXECUTOR_FUNCTIONAL_FUNCTION_POINTER the FunctionPointer to the Calling Function.
+   */
+  __EXECUTOR_FUNCTIONAL_NAME(2,ret) (ret (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0, type1) __EXECUTOR_FUNCTIONAL_CONST)
+      : Executor<CallType, BaseClass>(true, ExecutorParamType<type0>(), __EXECUTOR_FUNCTIONAL_FUNCTIONTYPE), functionPointer(functionPointer)
+  {};
+
+  /**
+     * @brief executes the Functional
+     * @param object the Object the action should be executed on.
+     * @param eval the CallType to get the Parameters from.
+   */
+  virtual void operator()(BaseObject* object, CallType& eval = Evaluater<CallType>::defaultValue()) const
+  {
+    Evaluater<CallType>().template storeRet<ret>(eval, (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(
+          Evaluater<CallType>().template operator()<type0, 0>(eval, this->defaultValue),
+          Evaluater<CallType>().template operator()<type1, 1>(eval, this->defaultValue)));
+  };
+
+  /**
+     * @brief copies the Executor
+     * @returns a new Executor that's a copy of this one.
+   */
+  virtual Executor<CallType, BaseClass>* clone() const
+  {
+    return  new __EXECUTOR_FUNCTIONAL_NAME(2,ret)<T, CallType, ret, type0, type1>(this->functionPointer);
+  };
+};
+
 #endif /* __EXECUTOR_FUNCTIONAL_NAME */
Index: /branches/new_class_id/src/lib/util/executor/executor_lua_state.h
===================================================================
--- /branches/new_class_id/src/lib/util/executor/executor_lua_state.h	(revision 9745)
+++ /branches/new_class_id/src/lib/util/executor/executor_lua_state.h	(revision 9746)
@@ -66,4 +66,9 @@
     return (fromLua<ToType>(CallValue, index));
   }
+  template <typename ToType>
+  void storeRet(lua_State*& state, ToType value)
+  {
+    toLua<ToType>(state, value);
+  }
   static lua_State*& defaultValue() { static lua_State* nullState; return nullState; };
 };
Index: /branches/new_class_id/src/story_entities/game_world.cc
===================================================================
--- /branches/new_class_id/src/story_entities/game_world.cc	(revision 9745)
+++ /branches/new_class_id/src/story_entities/game_world.cc	(revision 9746)
@@ -64,6 +64,6 @@
 ObjectListDefinition(GameWorld);
 CREATE_SCRIPTABLE_CLASS(GameWorld, GameWorld::classID(),
-                        addMethod("setPlaymode", ExecutorLua1<GameWorld,const std::string&>(&GameWorld::setPlaymode))
-                        ->addMethod("setSoundtrack", ExecutorLua1<GameWorld, const std::string&>(&GameWorld::setSoundtrack))
+			addMethod("setPlaymode", Executor1<GameWorld, lua_State*,const std::string&>(&GameWorld::setPlaymode))
+                        ->addMethod("setSoundtrack", Executor1<GameWorld, lua_State*, const std::string&>(&GameWorld::setSoundtrack))
                        );
 
Index: /branches/new_class_id/src/world_entities/creatures/fps_player.cc
===================================================================
--- /branches/new_class_id/src/world_entities/creatures/fps_player.cc	(revision 9745)
+++ /branches/new_class_id/src/world_entities/creatures/fps_player.cc	(revision 9746)
@@ -47,8 +47,8 @@
 #include "script_class.h"
 CREATE_SCRIPTABLE_CLASS(FPSPlayer, FPSPlayer::classID(),
-                        addMethod("setAbsCoor", ExecutorLua3<PNode,float,float,float>(&PNode::setAbsCoor))
-                            ->addMethod("getAbsCoorX", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorX))
-                            ->addMethod("getAbsCoorY", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorY))
-                            ->addMethod("getAbsCoorZ", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorZ))
+			addMethod("setAbsCoor", Executor3<PNode, lua_State*,float,float,float>(&PNode::setAbsCoor))
+			    ->addMethod("getAbsCoorX", Executor0ret<PNode, lua_State*, float>(&PNode::getAbsCoorX))
+			    ->addMethod("getAbsCoorY", Executor0ret<PNode, lua_State*, float>(&PNode::getAbsCoorY))
+			    ->addMethod("getAbsCoorZ", Executor0ret<PNode, lua_State*, float>(&PNode::getAbsCoorZ))
                        );
 
Index: /branches/new_class_id/src/world_entities/environments/mapped_water.cc
===================================================================
--- /branches/new_class_id/src/world_entities/environments/mapped_water.cc	(revision 9745)
+++ /branches/new_class_id/src/world_entities/environments/mapped_water.cc	(revision 9746)
@@ -33,12 +33,12 @@
 
 CREATE_SCRIPTABLE_CLASS(MappedWater, MappedWater::classID(),
-                        addMethod("waterUV", ExecutorLua2<MappedWater, float, float>(&MappedWater::fadeWaterUV))
-                      ->addMethod("waterFlow", ExecutorLua2<MappedWater, float, float>(&MappedWater::fadeWaterFlow))
-                      ->addMethod("shineSize", ExecutorLua2<MappedWater, float, float>(&MappedWater::fadeShineSize))
-                      ->addMethod("shineStrength", ExecutorLua2<MappedWater, float, float>(&MappedWater::fadeShineStrength))
-                      ->addMethod("reflStrength", ExecutorLua2<MappedWater, float, float>(&MappedWater::fadeReflStrength))
-                      ->addMethod("refraction", ExecutorLua2<MappedWater, float, float>(&MappedWater::fadeRefraction))
-                      ->addMethod("waterHeight", ExecutorLua2<MappedWater, float, float>(&MappedWater::fadeWaterHeight))
-                      ->addMethod("waterColor", ExecutorLua4<MappedWater, float, float, float, float>(&MappedWater::fadeWaterColor)));
+                        addMethod("waterUV", Executor2<MappedWater, lua_State*, float, float>(&MappedWater::fadeWaterUV))
+                        ->addMethod("waterFlow", Executor2<MappedWater, lua_State*, float, float>(&MappedWater::fadeWaterFlow))
+                        ->addMethod("shineSize", Executor2<MappedWater, lua_State*, float, float>(&MappedWater::fadeShineSize))
+                        ->addMethod("shineStrength", Executor2<MappedWater, lua_State*, float, float>(&MappedWater::fadeShineStrength))
+                        ->addMethod("reflStrength", Executor2<MappedWater, lua_State*, float, float>(&MappedWater::fadeReflStrength))
+                        ->addMethod("refraction", Executor2<MappedWater, lua_State*, float, float>(&MappedWater::fadeRefraction))
+                        ->addMethod("waterHeight", Executor2<MappedWater, lua_State*, float, float>(&MappedWater::fadeWaterHeight))
+                        ->addMethod("waterColor", Executor4<MappedWater, lua_State*, float, float, float, float>(&MappedWater::fadeWaterColor)));
 
 
Index: /branches/new_class_id/src/world_entities/npcs/attractor_mine.cc
===================================================================
--- /branches/new_class_id/src/world_entities/npcs/attractor_mine.cc	(revision 9745)
+++ /branches/new_class_id/src/world_entities/npcs/attractor_mine.cc	(revision 9746)
@@ -38,10 +38,10 @@
 #include "script_class.h"
 CREATE_SCRIPTABLE_CLASS(AttractorMine, AttractorMine::classID(),
-                        addMethod("setName", ExecutorLua1<BaseObject,const std::string&>(&BaseObject::setName))
-                       //Coordinates
-                        ->addMethod("setAbsCoor", ExecutorLua3<PNode,float,float,float>(&PNode::setAbsCoor))
-                        ->addMethod("getAbsCoorX", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorX))
-                        ->addMethod("getAbsCoorY", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorY))
-                        ->addMethod("getAbsCoorZ", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorZ))
+                        addMethod("setName", Executor1<BaseObject, lua_State*,const std::string&>(&BaseObject::setName))
+                        //Coordinates
+                        ->addMethod("setAbsCoor", Executor3<PNode, lua_State*,float,float,float>(&PNode::setAbsCoor))
+                        ->addMethod("getAbsCoorX", Executor0ret<PNode, lua_State*, float>(&PNode::getAbsCoorX))
+                        ->addMethod("getAbsCoorY", Executor0ret<PNode, lua_State*, float>(&PNode::getAbsCoorY))
+                        ->addMethod("getAbsCoorZ", Executor0ret<PNode, lua_State*, float>(&PNode::getAbsCoorZ))
                        );
 
Index: /branches/new_class_id/src/world_entities/npcs/gate.cc
===================================================================
--- /branches/new_class_id/src/world_entities/npcs/gate.cc	(revision 9745)
+++ /branches/new_class_id/src/world_entities/npcs/gate.cc	(revision 9746)
@@ -38,11 +38,11 @@
 #include "script_class.h"
 CREATE_SCRIPTABLE_CLASS(Gate, Gate::classID(),
-                            addMethod("hide", ExecutorLua0<WorldEntity>(&WorldEntity::hide))
-                            ->addMethod("unhide", ExecutorLua0<WorldEntity>(&WorldEntity::unhide))
-                            ->addMethod("destroy", ExecutorLua0<Gate>(&Gate::destroy))
-                            ->addMethod("setAbsCoor", ExecutorLua3<PNode,float,float,float>(&PNode::setAbsCoor))
-                            ->addMethod("getAbsCoorX", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorX))
-                            ->addMethod("getAbsCoorY", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorY))
-                            ->addMethod("getAbsCoorZ", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorZ))
+			addMethod("hide", Executor0<WorldEntity, lua_State*>(&WorldEntity::hide))
+			    ->addMethod("unhide", Executor0<WorldEntity, lua_State*>(&WorldEntity::unhide))
+			    ->addMethod("destroy", Executor0<Gate, lua_State*>(&Gate::destroy))
+			    ->addMethod("setAbsCoor", Executor3<PNode, lua_State*,float,float,float>(&PNode::setAbsCoor))
+			    ->addMethod("getAbsCoorX", Executor0ret<PNode, lua_State*, float>(&PNode::getAbsCoorX))
+			    ->addMethod("getAbsCoorY", Executor0ret<PNode, lua_State*, float>(&PNode::getAbsCoorY))
+			    ->addMethod("getAbsCoorZ", Executor0ret<PNode, lua_State*, float>(&PNode::getAbsCoorZ))
                        );
 
Index: /branches/new_class_id/src/world_entities/npcs/generic_npc.cc
===================================================================
--- /branches/new_class_id/src/world_entities/npcs/generic_npc.cc	(revision 9745)
+++ /branches/new_class_id/src/world_entities/npcs/generic_npc.cc	(revision 9746)
@@ -39,20 +39,20 @@
 CREATE_SCRIPTABLE_CLASS(GenericNPC, GenericNPC::classID(),
                         // Move
-                        addMethod("walkTo", ExecutorLua3<GenericNPC,float,float,float>(&GenericNPC::walkTo))
-                        ->addMethod("runTo", ExecutorLua3<GenericNPC,float,float,float>(&GenericNPC::runTo))
-                        ->addMethod("turnTo", ExecutorLua1<GenericNPC,float>(&GenericNPC::turnTo))
-                        ->addMethod("finalGoalReached", ExecutorLua0ret<GenericNPC,bool>(&GenericNPC::finalGoalReached))
-                        ->addMethod("stop", ExecutorLua0<GenericNPC>(&GenericNPC::stop))
-                        ->addMethod("resume", ExecutorLua0<GenericNPC>(&GenericNPC::resume))
-                        ->addMethod("playAnimation", ExecutorLua2<GenericNPC,int,int>(&GenericNPC::playAnimation))
+                        addMethod("walkTo", Executor3<GenericNPC, lua_State*,float,float,float>(&GenericNPC::walkTo))
+                        ->addMethod("runTo", Executor3<GenericNPC, lua_State*,float,float,float>(&GenericNPC::runTo))
+                        ->addMethod("turnTo", Executor1<GenericNPC, lua_State*,float>(&GenericNPC::turnTo))
+                        ->addMethod("finalGoalReached", Executor0ret<GenericNPC, lua_State*,bool>(&GenericNPC::finalGoalReached))
+                        ->addMethod("stop", Executor0<GenericNPC, lua_State*>(&GenericNPC::stop))
+                        ->addMethod("resume", Executor0<GenericNPC, lua_State*>(&GenericNPC::resume))
+                        ->addMethod("playAnimation", Executor2<GenericNPC, lua_State*,int,int>(&GenericNPC::playAnimation))
                         // Display
-                        ->addMethod("hide", ExecutorLua0<WorldEntity>(&WorldEntity::hide))
-                        ->addMethod("unhide", ExecutorLua0<WorldEntity>(&WorldEntity::unhide))
+                        ->addMethod("hide", Executor0<WorldEntity, lua_State*>(&WorldEntity::hide))
+                        ->addMethod("unhide", Executor0<WorldEntity, lua_State*>(&WorldEntity::unhide))
                         // Coordinates
-                        ->addMethod("getAbsCoorX", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorX))
-                        ->addMethod("getAbsCoorY", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorY))
-                        ->addMethod("getAbsCoorZ", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorZ))
-                        ->addMethod("setAbsCoor", ExecutorLua3<PNode,float,float,float>(&PNode::setAbsCoor))
-                        ->addMethod("setAbsDir", ExecutorLua4<PNode,float,float,float,float>(&PNode::setAbsDir))
+                        ->addMethod("getAbsCoorX", Executor0ret<PNode, lua_State*, float>(&PNode::getAbsCoorX))
+                        ->addMethod("getAbsCoorY", Executor0ret<PNode, lua_State*, float>(&PNode::getAbsCoorY))
+                        ->addMethod("getAbsCoorZ", Executor0ret<PNode, lua_State*, float>(&PNode::getAbsCoorZ))
+                        ->addMethod("setAbsCoor", Executor3<PNode, lua_State*,float,float,float>(&PNode::setAbsCoor))
+                        ->addMethod("setAbsDir", Executor4<PNode, lua_State*,float,float,float,float>(&PNode::setAbsDir))
                        );
 
@@ -234,5 +234,5 @@
         this->setAnimationSpeed(0.5f);
       }
-        break;
+      break;
       case Run:
       {
@@ -247,5 +247,5 @@
         this->setAnimationSpeed(1.0f);
       }
-        break;
+      break;
       case Crouch:
       {
@@ -260,18 +260,18 @@
         this->setAnimationSpeed(1.0f);
       }
-        break;
+      break;
       case LookAt:
-        if( this->getAnimation() != STAND)
-          this->setAnimation(STAND, MD2_ANIM_LOOP);
-        break;
+      if( this->getAnimation() != STAND)
+        this->setAnimation(STAND, MD2_ANIM_LOOP);
+      break;
       case Shoot:
-        if( this->getAnimation() != STAND)
-          this->setAnimation(STAND, MD2_ANIM_LOOP);
-        break;
+      if( this->getAnimation() != STAND)
+        this->setAnimation(STAND, MD2_ANIM_LOOP);
+      break;
 
       default:
-        if( this->getAnimation() != STAND)
-          this->setAnimation(STAND, MD2_ANIM_LOOP);
-        break;
+      if( this->getAnimation() != STAND)
+        this->setAnimation(STAND, MD2_ANIM_LOOP);
+      break;
 
     }
@@ -307,5 +307,5 @@
         this->setAnimationSpeed(0.5f);
       }
-        break;
+      break;
       case Run:
       {
@@ -320,5 +320,5 @@
         this->setAnimationSpeed(1.0f);
       }
-        break;
+      break;
       case Crouch:
       {
@@ -333,5 +333,5 @@
         this->setAnimationSpeed(1.0f);
       }
-        break;
+      break;
       case LookAt:
       {
@@ -339,14 +339,14 @@
           this->setAnimation(STAND, MD2_ANIM_LOOP);
       }
-        break;
+      break;
       case Shoot:
-        if( this->getAnimation() != STAND)
+      if( this->getAnimation() != STAND)
         this->setAnimation(STAND, MD2_ANIM_LOOP);
-        break;
+      break;
 
       default:
-        if( this->getAnimation() != STAND)
+      if( this->getAnimation() != STAND)
         this->setAnimation(STAND, MD2_ANIM_LOOP);
-        break;
+      break;
 
     }
@@ -510,18 +510,18 @@
     {
       case Walk:
+      {
+        Vector dest = currentAnimation.v - this->getAbsCoor();
+        dest.y = 0.0f;
+        if (dest.len() < .5)
         {
-          Vector dest = currentAnimation.v - this->getAbsCoor();
-          dest.y = 0.0f;
-          if (dest.len() < .5)
-          {
-            this->nextStep();
-          }
-          else
-          {
-            Vector move = dest.getNormalized() * currentAnimation.speed * dt;
-            this->shiftCoor(move);
-          }
+          this->nextStep();
         }
-        break;
+        else
+        {
+          Vector move = dest.getNormalized() * currentAnimation.speed * dt;
+          this->shiftCoor(move);
+        }
+      }
+      break;
 
       case Run:
@@ -552,15 +552,15 @@
 
       case TurnTo:
-        //Quaternion direction = this->
-        break;
+      //Quaternion direction = this->
+      break;
 
       case LookAt:
-        break;
+      break;
 
       case Shoot:
-        break;
+      break;
 
       default:
-        break;
+      break;
 
     }
@@ -572,5 +572,5 @@
     this->fallVelocity += 300.0f * dt;
     //velocity -= Vector(0.0, 1.0, 0.0) * this->fallVelocity;
-   // PRINTF(0)("%s is not on ground\n", this->getName());
+    // PRINTF(0)("%s is not on ground\n", this->getName());
     this->shiftCoor(Vector(0, -this->fallVelocity * dt,0));
 
Index: /branches/new_class_id/src/world_entities/script_trigger.cc
===================================================================
--- /branches/new_class_id/src/world_entities/script_trigger.cc	(revision 9745)
+++ /branches/new_class_id/src/world_entities/script_trigger.cc	(revision 9746)
@@ -19,25 +19,25 @@
 
 #include "state.h"
-
+#include "debug.h"
 ObjectListDefinition(ScriptTrigger);
 
 CREATE_SCRIPTABLE_CLASS(ScriptTrigger, ScriptTrigger::classID(),
             // Coordinates
-             addMethod("setAbsCoor", ExecutorLua3<PNode,float,float,float>(&PNode::setAbsCoor))
-             ->addMethod("getAbsCoorX", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorX))
-             ->addMethod("getAbsCoorY", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorY))
-             ->addMethod("getAbsCoorZ", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorZ))
+			addMethod("setAbsCoor", Executor3<PNode, lua_State*,float,float,float>(&PNode::setAbsCoor))
+			    ->addMethod("getAbsCoorX", Executor0ret<PNode, lua_State*, float>(&PNode::getAbsCoorX))
+			    ->addMethod("getAbsCoorY", Executor0ret<PNode, lua_State*, float>(&PNode::getAbsCoorY))
+			    ->addMethod("getAbsCoorZ", Executor0ret<PNode, lua_State*, float>(&PNode::getAbsCoorZ))
             //Properties
-             ->addMethod("setName", ExecutorLua1<BaseObject, const std::string&>(&BaseObject::setName))
-             ->addMethod("setTarget", ExecutorLua1<ScriptTrigger, const std::string&>(&ScriptTrigger::setTarget))
-             ->addMethod("setTriggerParent", ExecutorLua1<ScriptTrigger, const std::string&>(&ScriptTrigger::setTriggerParent))
-             ->addMethod("setTriggerRemains", ExecutorLua1<ScriptTrigger, bool>(&ScriptTrigger::setTriggerRemains))
-             ->addMethod("setActiveOnCreation", ExecutorLua1<ScriptTrigger, bool>(&ScriptTrigger::setActiveOnCreation))
-             ->addMethod("setInvert", ExecutorLua1<ScriptTrigger, bool>(&ScriptTrigger::setInvert))
-             ->addMethod("setRadius", ExecutorLua1<ScriptTrigger, float>(&ScriptTrigger::setRadius))
-             ->addMethod("setScript", ExecutorLua1<ScriptTrigger, const std::string&>(&ScriptTrigger::setScript))
-             ->addMethod("setFunction", ExecutorLua1<ScriptTrigger, const std::string&>(&ScriptTrigger::setFunction))
-             ->addMethod("setDebugDraw", ExecutorLua1<ScriptTrigger, bool>(&ScriptTrigger::setDebugDraw))
-             ->addMethod("setAddToScript", ExecutorLua1<ScriptTrigger, bool>(&ScriptTrigger::setAddToScript))
+			    ->addMethod("setName", Executor1<BaseObject, lua_State*, const std::string&>(&BaseObject::setName))
+			    ->addMethod("setTarget", Executor1<ScriptTrigger, lua_State*, const std::string&>(&ScriptTrigger::setTarget))
+			    ->addMethod("setTriggerParent", Executor1<ScriptTrigger, lua_State*, const std::string&>(&ScriptTrigger::setTriggerParent))
+			    ->addMethod("setTriggerRemains", Executor1<ScriptTrigger, lua_State*, bool>(&ScriptTrigger::setTriggerRemains))
+			    ->addMethod("setActiveOnCreation", Executor1<ScriptTrigger, lua_State*, bool>(&ScriptTrigger::setActiveOnCreation))
+			    ->addMethod("setInvert", Executor1<ScriptTrigger, lua_State*, bool>(&ScriptTrigger::setInvert))
+			    ->addMethod("setRadius", Executor1<ScriptTrigger, lua_State*, float>(&ScriptTrigger::setRadius))
+			    ->addMethod("setScript", Executor1<ScriptTrigger, lua_State*, const std::string&>(&ScriptTrigger::setScript))
+			    ->addMethod("setFunction", Executor1<ScriptTrigger, lua_State*, const std::string&>(&ScriptTrigger::setFunction))
+			    ->addMethod("setDebugDraw", Executor1<ScriptTrigger, lua_State*, bool>(&ScriptTrigger::setDebugDraw))
+			    ->addMethod("setAddToScript", Executor1<ScriptTrigger, lua_State*, bool>(&ScriptTrigger::setAddToScript))
              );
 
Index: /branches/new_class_id/src/world_entities/space_ships/helicopter.cc
===================================================================
--- /branches/new_class_id/src/world_entities/space_ships/helicopter.cc	(revision 9745)
+++ /branches/new_class_id/src/world_entities/space_ships/helicopter.cc	(revision 9746)
@@ -39,10 +39,10 @@
 #include "script_class.h"
 CREATE_SCRIPTABLE_CLASS(Helicopter, Helicopter::classID(),
-                        addMethod("moveUp", ExecutorLua1<Helicopter,bool>(&Helicopter::moveUp))
-                            ->addMethod("moveDown", ExecutorLua1<Helicopter,bool>(&Helicopter::moveDown))
-                            ->addMethod("setAbsCoor", ExecutorLua3<PNode,float,float,float>(&PNode::setAbsCoor))
-                            ->addMethod("getAbsCoorX", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorX))
-                            ->addMethod("getAbsCoorY", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorY))
-                            ->addMethod("getAbsCoorZ", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorZ))
+			addMethod("moveUp", Executor1<Helicopter, lua_State*,bool>(&Helicopter::moveUp))
+			    ->addMethod("moveDown", Executor1<Helicopter, lua_State*,bool>(&Helicopter::moveDown))
+			    ->addMethod("setAbsCoor", Executor3<PNode, lua_State*,float,float,float>(&PNode::setAbsCoor))
+			    ->addMethod("getAbsCoorX", Executor0ret<PNode, lua_State*, float>(&PNode::getAbsCoorX))
+			    ->addMethod("getAbsCoorY", Executor0ret<PNode, lua_State*, float>(&PNode::getAbsCoorY))
+			    ->addMethod("getAbsCoorZ", Executor0ret<PNode, lua_State*, float>(&PNode::getAbsCoorZ))
 
                        );
Index: /branches/new_class_id/src/world_entities/space_ships/hover.cc
===================================================================
--- /branches/new_class_id/src/world_entities/space_ships/hover.cc	(revision 9745)
+++ /branches/new_class_id/src/world_entities/space_ships/hover.cc	(revision 9746)
@@ -40,10 +40,10 @@
 #include "script_class.h"
 CREATE_SCRIPTABLE_CLASS(Hover, Hover::classID(),
-                        addMethod("hasPlayer", ExecutorLua0ret<Playable,bool>(&Playable::hasPlayer))
+			addMethod("hasPlayer", Executor0ret<Playable, lua_State*,bool>(&Playable::hasPlayer))
                         //Coordinates
-                        ->addMethod("setAbsCoor", ExecutorLua3<PNode,float,float,float>(&PNode::setAbsCoor))
-                        ->addMethod("getAbsCoorX", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorX))
-                        ->addMethod("getAbsCoorY", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorY))
-                        ->addMethod("getAbsCoorZ", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorZ))
+			    ->addMethod("setAbsCoor", Executor3<PNode, lua_State*,float,float,float>(&PNode::setAbsCoor))
+			    ->addMethod("getAbsCoorX", Executor0ret<PNode, lua_State*, float>(&PNode::getAbsCoorX))
+			    ->addMethod("getAbsCoorY", Executor0ret<PNode, lua_State*, float>(&PNode::getAbsCoorY))
+			    ->addMethod("getAbsCoorZ", Executor0ret<PNode, lua_State*, float>(&PNode::getAbsCoorZ))
                        );
 
Index: /branches/new_class_id/src/world_entities/space_ships/space_ship.cc
===================================================================
--- /branches/new_class_id/src/world_entities/space_ships/space_ship.cc	(revision 9745)
+++ /branches/new_class_id/src/world_entities/space_ships/space_ship.cc	(revision 9746)
@@ -59,15 +59,15 @@
 #include "script_class.h"
 CREATE_SCRIPTABLE_CLASS(SpaceShip, SpaceShip::classID(),
-                        addMethod("hasPlayer", ExecutorLua0ret<Playable,bool>(&Playable::hasPlayer))
-                        ->addMethod("fire", ExecutorLua1<Playable, bool>(&Playable::fire))
-                        ->addMethod("loadModel", ExecutorLua2<WorldEntity,const std::string& ,float>(&WorldEntity::loadModel2))
-                        ->addMethod("setName", ExecutorLua1<BaseObject,const std::string&>(&BaseObject::setName))
-                        ->addMethod("hide", ExecutorLua0<WorldEntity>(&WorldEntity::hide))
-                        ->addMethod("unhide", ExecutorLua0<WorldEntity>(&WorldEntity::unhide))
-                       //Coordinates
-                        ->addMethod("setAbsCoor", ExecutorLua3<PNode,float,float,float>(&PNode::setAbsCoor))
-                        ->addMethod("getAbsCoorX", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorX))
-                        ->addMethod("getAbsCoorY", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorY))
-                        ->addMethod("getAbsCoorZ", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorZ))
+                        addMethod("hasPlayer", Executor0ret<Playable, lua_State*,bool>(&Playable::hasPlayer))
+                        ->addMethod("fire", Executor1<Playable, lua_State*, bool>(&Playable::fire))
+                        ->addMethod("loadModel", Executor2<WorldEntity, lua_State*,const std::string& ,float>(&WorldEntity::loadModel2))
+                        ->addMethod("setName", Executor1<BaseObject, lua_State*,const std::string&>(&BaseObject::setName))
+                        ->addMethod("hide", Executor0<WorldEntity, lua_State*>(&WorldEntity::hide))
+                        ->addMethod("unhide", Executor0<WorldEntity, lua_State*>(&WorldEntity::unhide))
+                        //Coordinates
+                        ->addMethod("setAbsCoor", Executor3<PNode, lua_State*,float,float,float>(&PNode::setAbsCoor))
+                        ->addMethod("getAbsCoorX", Executor0ret<PNode, lua_State*, float>(&PNode::getAbsCoorX))
+                        ->addMethod("getAbsCoorY", Executor0ret<PNode, lua_State*, float>(&PNode::getAbsCoorY))
+                        ->addMethod("getAbsCoorZ", Executor0ret<PNode, lua_State*, float>(&PNode::getAbsCoorZ))
                        );
 
@@ -118,5 +118,5 @@
 void SpaceShip::init()
 {
-//  this->setRelDir(Quaternion(M_PI, Vector(1,0,0)));
+  //  this->setRelDir(Quaternion(M_PI, Vector(1,0,0)));
   this->registerObject(this, SpaceShip::_objectList);
 
@@ -147,5 +147,5 @@
   controlVelocityY = 150;
   shipInertia = 1.5;
-//  cycle = 0.0;
+  //  cycle = 0.0;
 
   this->setHealthMax(100);
@@ -158,14 +158,14 @@
   this->pitchDir = this->getAbsDir();
 
-//   GLGuiButton* button = new GLGuiPushButton();
-//    button->show();
-//    button->setLabel("orxonox");
-//    button->setBindNode(this);
-//     GLGuiBar* bar = new GLGuiBar();
-//     bar->show();
-//     bar->setValue(7.0);
-//     bar->setMaximum(10);
-//     bar->setSize2D( 20, 100);
-//     bar->setAbsCoor2D( 10, 200);
+  //   GLGuiButton* button = new GLGuiPushButton();
+  //    button->show();
+  //    button->setLabel("orxonox");
+  //    button->setBindNode(this);
+  //     GLGuiBar* bar = new GLGuiBar();
+  //     bar->show();
+  //     bar->setValue(7.0);
+  //     bar->setMaximum(10);
+  //     bar->setSize2D( 20, 100);
+  //     bar->setAbsCoor2D( 10, 200);
 
   //add events to the eventlist
@@ -202,13 +202,13 @@
   this->getWeaponManager().setSlotPosition(5, Vector(-1.5, -.5, -.5));
   this->getWeaponManager().setSlotDirection(5, Quaternion(+M_PI_4*.5-M_PI, Vector(1,0,0)));
-//
-   this->getWeaponManager().setSlotPosition(6, Vector(-1, 0.0, 0));
-   this->getWeaponManager().setSlotCapability(6, WTYPE_ALLDIRS | WTYPE_DIRECTIONAL);
-   //
-//   this->getWeaponManager().setSlotPosition(8, Vector(-2.5, -0.3, -2.0));
-//   this->getWeaponManager().setSlotDirection(8, Quaternion(-M_PI, Vector(1,0,0)));
-//
-//   this->getWeaponManager().setSlotPosition(9, Vector(-2.5, -0.3, 2.0));
-//   this->getWeaponManager().setSlotDirection(9, Quaternion(+M_PI, Vector(1,0,0)));:
+  //
+  this->getWeaponManager().setSlotPosition(6, Vector(-1, 0.0, 0));
+  this->getWeaponManager().setSlotCapability(6, WTYPE_ALLDIRS | WTYPE_DIRECTIONAL);
+  //
+  //   this->getWeaponManager().setSlotPosition(8, Vector(-2.5, -0.3, -2.0));
+  //   this->getWeaponManager().setSlotDirection(8, Quaternion(-M_PI, Vector(1,0,0)));
+  //
+  //   this->getWeaponManager().setSlotPosition(9, Vector(-2.5, -0.3, 2.0));
+  //   this->getWeaponManager().setSlotDirection(9, Quaternion(+M_PI, Vector(1,0,0)));:
 
   this->getWeaponManager().getFixedTarget()->setParent(this);
@@ -312,5 +312,4 @@
 void SpaceShip::collidesWith(WorldEntity* entity, const Vector& location)
 {
-
 }
 
@@ -334,5 +333,5 @@
 
   if( ( xMouse != 0 || yMouse != 0 ) && this->getOwner() == SharedNetworkData::getInstance()->getHostID() )
-   {
+  {
     if (xMouse > controlVelocityX) xMouse = controlVelocityX;
     else if (xMouse < -controlVelocityX) xMouse = -controlVelocityX;
@@ -344,13 +343,13 @@
     mouseDir *= (Quaternion(-M_PI/4*xMouse*mouseSensitivity, Vector(0,1,0))*Quaternion(-M_PI/4*yMouse*mouseSensitivity*yInvert, Vector(0,0,1))*pitchDir);
     xMouse = yMouse = 0;
-   }
-
-
-//   if( this != State::getPlayer()->getControllable())
-//     return;
+  }
+
+
+  //   if( this != State::getPlayer()->getControllable())
+  //     return;
 
   // spaceship controlled movement fire(bool bF){ this->bFire = bF;}
   //if (this->getOwner() == this->getHostID())
-    this->calculateVelocity(time);
+  this->calculateVelocity(time);
 
 
@@ -365,8 +364,8 @@
 
   //orient the spaceship in direction of the mouse
-   rotQuat = Quaternion::quatSlerp( this->getAbsDir(), mouseDir, 0.5);//fabsf(time)*shipInertia);
-   if (this->getAbsDir().distance(rotQuat) > 0.00000000000001)
+  rotQuat = Quaternion::quatSlerp( this->getAbsDir(), mouseDir, 0.5);//fabsf(time)*shipInertia);
+  if (this->getAbsDir().distance(rotQuat) > 0.00000000000001)
     this->setAbsDir( rotQuat);
-   //this->setAbsDirSoft(mouseDir,5);
+  //this->setAbsDirSoft(mouseDir,5);
 
   // this is the air friction (necessary for a smooth control)
@@ -390,5 +389,5 @@
   this->shiftCoor(move);
 
-//   PRINTF(0)("id of %s is: %i\n", this->getName(), this->getOMListNumber());
+  //   PRINTF(0)("id of %s is: %i\n", this->getName(), this->getOMListNumber());
 
 }
@@ -411,26 +410,26 @@
 
   if( this->bUp )
-   {
-     //this->shiftCoor(this->getAbsDirX());
-      //accel += (this->getAbsDirX())*2;
-      accel += (this->getAbsDirX())*acceleration;
-
-   }
+  {
+    //this->shiftCoor(this->getAbsDirX());
+    //accel += (this->getAbsDirX())*2;
+    accel += (this->getAbsDirX())*acceleration;
+
+  }
 
   if( this->bDown )
-   {
-     //this->shiftCoor((this->getAbsDirX())*-1);
-     //accel -= (this->getAbsDirX())*2;
+  {
+    //this->shiftCoor((this->getAbsDirX())*-1);
+    //accel -= (this->getAbsDirX())*2;
     //if(velocity.len() > 50)
-     accel -= (this->getAbsDirX())*0.5*acceleration;
-
-
-
-   }
+    accel -= (this->getAbsDirX())*0.5*acceleration;
+
+
+
+  }
 
   if( this->bLeft/* > -this->getRelCoor().z*2*/)
   {
     this->shiftDir(Quaternion(time, Vector(0,1,0)));
-//    accel -= rightDirection;
+    //    accel -= rightDirection;
     //velocityDir.normalize();
     //rot +=Vector(1,0,0);
@@ -451,5 +450,5 @@
   {
     mouseDir *= Quaternion(-time*2, Vector(1,0,0));
-//    accel -= rightDirection;
+    //    accel -= rightDirection;
     //velocityDir.normalize();
     //rot +=Vector(1,0,0);
@@ -469,5 +468,5 @@
     this->shiftDir(Quaternion(time, Vector(0,0,1)));
 
-//    accel += upDirection;
+    //    accel += upDirection;
     //velocityDir.normalize();
     //rot += Vector(0,0,1);
@@ -497,7 +496,7 @@
 
   if( event.type == KeyMapper::PEV_LEFT)
-      this->bRollL = event.bPressed;
+    this->bRollL = event.bPressed;
   else if( event.type == KeyMapper::PEV_RIGHT)
-      this->bRollR = event.bPressed;
+    this->bRollR = event.bPressed;
   else if( event.type == KeyMapper::PEV_FORWARD)
     this->bUp = event.bPressed; //this->shiftCoor(0,.1,0);
Index: /branches/new_class_id/src/world_entities/space_ships/spacecraft_2d.cc
===================================================================
--- /branches/new_class_id/src/world_entities/space_ships/spacecraft_2d.cc	(revision 9745)
+++ /branches/new_class_id/src/world_entities/space_ships/spacecraft_2d.cc	(revision 9746)
@@ -43,11 +43,11 @@
 
 CREATE_SCRIPTABLE_CLASS(Spacecraft2D, Spacecraft2D::classID(),
-                        addMethod("hasPlayer", ExecutorLua0ret<Playable,bool>(&Playable::hasPlayer))
+			addMethod("hasPlayer", Executor0ret<Playable, lua_State*,bool>(&Playable::hasPlayer))
                         //Coordinates
-                        ->addMethod("setAbsCoor", ExecutorLua3<PNode,float,float,float>(&PNode::setAbsCoor))
-                        ->addMethod("getAbsCoorX", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorX))
-                        ->addMethod("getAbsCoorY", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorY))
-                        ->addMethod("getAbsCoorZ", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorZ))
-                        ->addMethod("setAirFriction", ExecutorLua1<Spacecraft2D, float>(&Spacecraft2D::setAirFriction))
+			    ->addMethod("setAbsCoor", Executor3<PNode, lua_State*,float,float,float>(&PNode::setAbsCoor))
+			    ->addMethod("getAbsCoorX", Executor0ret<PNode, lua_State*, float>(&PNode::getAbsCoorX))
+			    ->addMethod("getAbsCoorY", Executor0ret<PNode, lua_State*, float>(&PNode::getAbsCoorY))
+			    ->addMethod("getAbsCoorZ", Executor0ret<PNode, lua_State*, float>(&PNode::getAbsCoorZ))
+			    ->addMethod("setAirFriction", Executor1<Spacecraft2D, lua_State*, float>(&Spacecraft2D::setAirFriction))
                        );
 
Index: /branches/new_class_id/src/world_entities/test_entity.cc
===================================================================
--- /branches/new_class_id/src/world_entities/test_entity.cc	(revision 9745)
+++ /branches/new_class_id/src/world_entities/test_entity.cc	(revision 9746)
@@ -26,5 +26,5 @@
 
 #include "test_entity.h"
-
+#include "debug.h"
 
 #include "interactive_model.h"
@@ -41,9 +41,8 @@
 #include "script_class.h"
 CREATE_SCRIPTABLE_CLASS(TestEntity, TestEntity::classID(),
-                            addMethod("setAbsCoor", ExecutorLua3<PNode,float,float,float>(&PNode::setAbsCoor))
-                            ->addMethod("getAbsCoorX", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorX))
-                            ->addMethod("getAbsCoorY", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorY))
-                            ->addMethod("getAbsCoorZ", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorZ))
-
+                        addMethod("setAbsCoor", Executor3<PNode, lua_State*,float,float,float>(&PNode::setAbsCoor))
+                        ->addMethod("getAbsCoorX", Executor0ret<PNode, lua_State*, float>(&PNode::getAbsCoorX))
+                        ->addMethod("getAbsCoorY", Executor0ret<PNode, lua_State*, float>(&PNode::getAbsCoorY))
+                        ->addMethod("getAbsCoorZ", Executor0ret<PNode, lua_State*, float>(&PNode::getAbsCoorZ))
                        );
 
@@ -92,6 +91,6 @@
 
   LoadParam(root, "md2animation", this, TestEntity, setAnim)
-      .describe("sets the animation of the md2 model")
-      .defaultValues(1);
+  .describe("sets the animation of the md2 model")
+  .defaultValues(1);
 
 }
