mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-01-19 12:14:45 +00:00
trip onadd in additional places
by request, adds a per object-instance onadd for datablocks if an object instance *also* defines a class. be mindful not to mix up which namespace is in use there, as you can not tag two different core class instances the same scripted class implements the same with the same restrictions for simobjects in general
This commit is contained in:
parent
0fb68936f9
commit
4f639a16b5
|
|
@ -125,6 +125,11 @@ IMPLEMENT_CALLBACK( GameBase, setControl, void, ( bool controlled ), ( controlle
|
|||
"client controls this object.\n" );
|
||||
|
||||
|
||||
IMPLEMENT_CALLBACK(GameBase, onAdd, void, (SimObjectId ID), (ID),
|
||||
"Called when this ScriptObject is added to the system.\n"
|
||||
"@param ID Unique object ID assigned when created (%this in script).\n"
|
||||
);
|
||||
|
||||
GameBaseData::GameBaseData()
|
||||
{
|
||||
mCategory = StringTable->EmptyString();
|
||||
|
|
@ -518,6 +523,7 @@ void GameBase::scriptOnAdd()
|
|||
// everything is ready.
|
||||
if (mDataBlock && !isGhost())
|
||||
mDataBlock->onAdd_callback( this );
|
||||
onAdd_callback(getId());
|
||||
}
|
||||
|
||||
void GameBase::scriptOnNewDataBlock(bool reload)
|
||||
|
|
|
|||
|
|
@ -469,6 +469,8 @@ private:
|
|||
void _onDatablockModified();
|
||||
protected:
|
||||
void onScopeIdChange() override { setMaskBits(ScopeIdMask); }
|
||||
|
||||
DECLARE_CALLBACK(void, onAdd, (SimObjectId ID));
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -88,6 +88,16 @@ EndImplementBitfieldType;
|
|||
|
||||
IMPLEMENT_CONOBJECT( SimObject );
|
||||
|
||||
IMPLEMENT_CALLBACK(SimObject, onAdd, void, (SimObjectId ID), (ID),
|
||||
"Called when this SimObject is added to the system, if the className is set to something\n"
|
||||
"@param ID Unique object ID assigned when created (%this in script).\n"
|
||||
);
|
||||
|
||||
IMPLEMENT_CALLBACK(SimObject, onRemove, void, (SimObjectId ID), (ID),
|
||||
"Called when this SimObject is removed from the system, if the className is set to something\n"
|
||||
"@param ID Unique object ID assigned when created (%this in script).\n"
|
||||
);
|
||||
|
||||
// See full description in the new CHM manual
|
||||
ConsoleDocClass( SimObject,
|
||||
"@brief Base class for almost all objects involved in the simulation.\n\n"
|
||||
|
|
@ -1689,6 +1699,8 @@ bool SimObject::onAdd()
|
|||
|
||||
linkNamespaces();
|
||||
|
||||
onAdd_callback(getId());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -1698,6 +1710,8 @@ void SimObject::onRemove()
|
|||
{
|
||||
mFlags.clear(Added);
|
||||
|
||||
onRemove_callback(getId());
|
||||
|
||||
unlinkNamespaces();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -987,6 +987,9 @@ class SimObject: public ConsoleObject, public TamlCallbacks
|
|||
DECLARE_CALLBACK(void, onInspectPostApply, (SimObject* obj));
|
||||
DECLARE_CALLBACK(void, onSelected, (SimObject* obj));
|
||||
DECLARE_CALLBACK(void, onUnselected, (SimObject* obj));
|
||||
|
||||
DECLARE_CALLBACK(void, onAdd, (SimObjectId ID));
|
||||
DECLARE_CALLBACK(void, onRemove, (SimObjectId ID));
|
||||
|
||||
static SimObject* __findObject( const char* id ) { return Sim::findObject( id ); }
|
||||
static const char* __getObjectId( ConsoleObject* object )
|
||||
|
|
|
|||
Loading…
Reference in a new issue