00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #ifndef __DUSTY_DRIVER_H__
00033 #define __DUSTY_DRIVER_H__
00034
00035 #include <irrlicht.h>
00036 #include "dustyengine.h"
00037
00038 namespace DustyEngine
00039 {
00040 class RandGen;
00041 class TaskTree;
00042 class TimeServer;
00043 class Entity;
00044
00046
00052 class DUSTYENGINE_API DustyDriver : public irr::IUnknown
00053 {
00054 public:
00056
00058 DustyDriver(irr::IrrlichtDevice * device);
00059
00061 virtual ~DustyDriver();
00062
00064 DustyEngine::RandGen * GetRandGen()
00065 {
00066 return randGen;
00067 }
00068
00070 DustyEngine::TaskTree * GetTaskTree()
00071 {
00072 return taskTree;
00073 }
00074
00076 irr::IrrlichtDevice * GetIrrlichtDevice()
00077 {
00078 return irrDevice;
00079 }
00080
00082 Entity * CreateEntity();
00083
00085 void DestroyEntity(Entity * e);
00086
00088 Entity * GetEntityByNode(irr::scene::ISceneNode * node);
00089
00090 private:
00091 irr::IrrlichtDevice * irrDevice;
00092
00093 DustyEngine::RandGen * randGen;
00094 DustyEngine::TaskTree * taskTree;
00095
00096 irr::core::list<Entity*> entities;
00097 };
00098 }
00099
00100 #endif
00101