UGDK
src/module/ugdk/action/entityproxy.h
Go to the documentation of this file.
00001 #ifndef MODULE_PROXY_ENTITY_H_
00002 #define MODULE_PROXY_ENTITY_H_
00003 
00004 #include <ugdk/action/entity.h>
00005 #include <ugdk/script/baseproxy.h>
00006 #include <list>
00007 #include <module/ugdk/action/sceneproxy.h>
00008 
00009 namespace ugdk {
00010 namespace action {
00011 
00012 class EntityProxy;
00013 
00014 class EntityProxy : public Entity, public ugdk::script::BaseProxy<EntityProxy> {
00015 public:
00016     EntityProxy(const ugdk::script::VirtualObj& proxy) : ugdk::script::BaseProxy<EntityProxy>(proxy) {}
00017     
00018         virtual bool to_be_removed() const {
00019                 ugdk::script::VirtualObj to_be_removed = proxy_["to_be_removed"];
00020                 if (to_be_removed)
00021                         return to_be_removed.value<bool>();
00022                 return to_be_removed_; 
00023         }
00024 
00025     virtual void Update(double dt) {
00026                 if (to_be_removed())    return;
00027         ugdk::script::VirtualObj vdt = ugdk::script::VirtualObj(proxy_.wrapper());
00028         vdt.set_value(dt);
00029         std::list<ugdk::script::VirtualObj> args;
00030         args.push_back(vdt);
00031         ( proxy_ | "Update" )(args);
00032     }
00033 
00034     virtual void OnSceneAdd(Scene* scene) {
00035         std::list<ugdk::script::VirtualObj> args;
00036 
00037         SceneProxy* sceneproxy = dynamic_cast<SceneProxy*>(scene);
00038         if (sceneproxy != NULL) {
00039             args.push_back( sceneproxy->get_proxy_vobj() );
00040         }
00041         else {
00042             ugdk::script::VirtualObj vscene = ugdk::script::VirtualObj(proxy_.wrapper());
00043             vscene.set_value<Scene*>(scene);
00044             args.push_back( vscene );
00045         }
00046 
00047         if(proxy_["OnSceneAdd"])
00048             ( proxy_ | "OnSceneAdd" )(args);
00049     }
00050     
00051 };
00052 
00053 }
00054 }
00055 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines