00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __CEL_PL_ENTITYTEMP__
00021 #define __CEL_PL_ENTITYTEMP__
00022
00023 #include "cstypes.h"
00024 #include "csutil/scf.h"
00025 #include "csutil/strset.h"
00026 #include "csutil/set.h"
00027 #include "csgeom/vector2.h"
00028 #include "csgeom/vector3.h"
00029 #include "csutil/cscolor.h"
00030
00031 #include "physicallayer/datatype.h"
00032
00033 struct iCelEntity;
00034 struct iCelPropertyClassTemplate;
00035 struct iCelPropertyClass;
00036 struct iCelParameterBlock;
00037
00041 struct iCelEntityTemplate : public virtual iBase
00042 {
00043 SCF_INTERFACE (iCelEntityTemplate, 0, 0, 1);
00044
00049 virtual iObject* QueryObject () = 0;
00050
00055 virtual const char* GetName () const = 0;
00056
00061 virtual void SetName (const char* n) = 0;
00062
00066 virtual iCelPropertyClassTemplate* CreatePropertyClassTemplate () = 0;
00067
00074 virtual void SetBehaviour (const char* layer, const char* behaviour) = 0;
00075
00079 virtual const char* GetBehaviourLayer () const = 0;
00080
00084 virtual const char* GetBehaviour () const = 0;
00085
00091 virtual void AddMessage (const char* msgid, iCelParameterBlock* params) = 0;
00092
00098 virtual void AddClass (csStringID cls) = 0;
00099
00103 virtual void RemoveClass (csStringID cls) = 0;
00104
00108 virtual bool HasClass (csStringID cls) = 0;
00109
00113 virtual const csSet<csStringID>& GetClasses () const = 0;
00114 };
00115
00120 struct iCelPropertyClassTemplate : public virtual iBase
00121 {
00122 SCF_INTERFACE (iCelPropertyClassTemplate, 0, 0, 1);
00123
00127 virtual void SetName (const char* name) = 0;
00128
00132 virtual const char* GetName () const = 0;
00133
00140 virtual void SetTag (const char* tagname) = 0;
00141
00146 virtual const char* GetTag () const = 0;
00147
00152 virtual void SetPropertyVariable (csStringID propertyID, celDataType type,
00153 const char* varname) = 0;
00154
00167 virtual void SetProperty (csStringID propertyID, long value) = 0;
00168
00172 virtual void SetProperty (csStringID propertyID, float value) = 0;
00173
00177 virtual void SetProperty (csStringID propertyID, bool value) = 0;
00178
00182 virtual void SetProperty (csStringID propertyID, const char* value) = 0;
00183
00187 virtual void SetProperty (csStringID propertyID, const csVector2& value) = 0;
00188
00192 virtual void SetProperty (csStringID propertyID, const csVector3& value) = 0;
00193
00197 virtual void SetProperty (csStringID propertyID, const csColor& value) = 0;
00198
00202 virtual void SetProperty (csStringID propertyID,
00203 iCelPropertyClass* value) = 0;
00204
00208 virtual void SetProperty (csStringID propertyID, iCelEntity* entity) = 0;
00209
00214 virtual void PerformAction (csStringID actionID,
00215 iCelParameterBlock* params) = 0;
00216 };
00217
00218 #endif // __CEL_PL_ENTITYTEMP__
00219