New ScriptTickObject

ScriptTickObject is a ScriptObject that adds callbacks for tick and
frame events.  Use setProcessTicks() to enable or disable the
onInterpolateTick() and onProcessTick() callbacks.  The
callOnAdvanceTime property determines if the onAdvanceTime() callback is
called.
This commit is contained in:
DavidWyand-GG 2013-01-22 17:09:14 -05:00
parent 1d4ed1da0f
commit b56f8674cd
2 changed files with 148 additions and 15 deletions

View file

@ -27,8 +27,12 @@
#include "console/consoleInternal.h"
#endif
#ifndef _ITICKABLE_H_
#include "core/iTickable.h"
#endif
//-----------------------------------------------------------------------------
// Script object placeholder
// ScriptObject
//-----------------------------------------------------------------------------
class ScriptObject : public SimObject
@ -46,4 +50,51 @@ public:
DECLARE_CALLBACK(void, onRemove, (SimObjectId ID));
};
//-----------------------------------------------------------------------------
// ScriptTickObject
//-----------------------------------------------------------------------------
class ScriptTickObject : public ScriptObject, public virtual ITickable
{
typedef ScriptObject Parent;
protected:
bool mCallOnAdvanceTime;
public:
ScriptTickObject();
static void initPersistFields();
bool onAdd();
void onRemove();
virtual void interpolateTick( F32 delta );
virtual void processTick();
virtual void advanceTime( F32 timeDelta );
DECLARE_CONOBJECT(ScriptTickObject);
DECLARE_CALLBACK(void, onInterpolateTick, (F32 delta) );
DECLARE_CALLBACK(void, onProcessTick, () );
DECLARE_CALLBACK(void, onAdvanceTime, (F32 timeDelta) );
};
//-----------------------------------------------------------------------------
// ScriptGroup
//-----------------------------------------------------------------------------
class ScriptGroup : public SimGroup
{
typedef SimGroup Parent;
public:
ScriptGroup();
bool onAdd();
void onRemove();
DECLARE_CONOBJECT(ScriptGroup);
DECLARE_CALLBACK(void, onAdd, (SimObjectId ID) );
DECLARE_CALLBACK(void, onRemove, (SimObjectId ID));
};
#endif