mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-16 00:54:54 +00:00
add reload status to onNewDataBlock callback
and skip calling onremove/onadd if we're not reloading
This commit is contained in:
parent
2852b33cec
commit
2ae10c7ce1
28 changed files with 35 additions and 37 deletions
|
|
@ -345,7 +345,7 @@ bool Camera::onNewDataBlock( GameBaseData *dptr, bool reload )
|
||||||
if ( !mDataBlock || !Parent::onNewDataBlock( dptr, reload ) )
|
if ( !mDataBlock || !Parent::onNewDataBlock( dptr, reload ) )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
scriptOnNewDataBlock();
|
scriptOnNewDataBlock(reload);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -601,7 +601,7 @@ bool Debris::onNewDataBlock( GameBaseData *dptr, bool reload )
|
||||||
|
|
||||||
if (mDataBlock->isTempClone())
|
if (mDataBlock->isTempClone())
|
||||||
return true;
|
return true;
|
||||||
scriptOnNewDataBlock();
|
scriptOnNewDataBlock(reload);
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1127,7 +1127,7 @@ bool Explosion::onNewDataBlock( GameBaseData *dptr, bool reload )
|
||||||
|
|
||||||
if (mDataBlock->isTempClone())
|
if (mDataBlock->isTempClone())
|
||||||
return true;
|
return true;
|
||||||
scriptOnNewDataBlock();
|
scriptOnNewDataBlock(reload);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -474,7 +474,7 @@ bool Lightning::onNewDataBlock( GameBaseData *dptr, bool reload )
|
||||||
if ( !mDataBlock || !Parent::onNewDataBlock( dptr, reload ) )
|
if ( !mDataBlock || !Parent::onNewDataBlock( dptr, reload ) )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
scriptOnNewDataBlock();
|
scriptOnNewDataBlock(reload);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1131,7 +1131,7 @@ bool ParticleEmitter::onNewDataBlock( GameBaseData *dptr, bool reload )
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
scriptOnNewDataBlock();
|
scriptOnNewDataBlock(reload);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -254,7 +254,7 @@ bool ParticleEmitterNode::onNewDataBlock( GameBaseData *dptr, bool reload )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// Todo: Uncomment if this is a "leaf" class
|
// Todo: Uncomment if this is a "leaf" class
|
||||||
scriptOnNewDataBlock();
|
scriptOnNewDataBlock(reload);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -614,7 +614,7 @@ bool Precipitation::onNewDataBlock( GameBaseData *dptr, bool reload )
|
||||||
initMaterials();
|
initMaterials();
|
||||||
}
|
}
|
||||||
|
|
||||||
scriptOnNewDataBlock();
|
scriptOnNewDataBlock(reload);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -159,7 +159,7 @@ bool RibbonNode::onNewDataBlock( GameBaseData *dptr, bool reload )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// Todo: Uncomment if this is a "leaf" class
|
// Todo: Uncomment if this is a "leaf" class
|
||||||
scriptOnNewDataBlock();
|
scriptOnNewDataBlock(reload);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -451,7 +451,7 @@ bool Splash::onNewDataBlock( GameBaseData *dptr, bool reload )
|
||||||
if (!mDataBlock || !Parent::onNewDataBlock(dptr, reload))
|
if (!mDataBlock || !Parent::onNewDataBlock(dptr, reload))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
scriptOnNewDataBlock();
|
scriptOnNewDataBlock(reload);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -95,7 +95,7 @@ IMPLEMENT_CALLBACK( GameBaseData, onAdd, void, ( GameBase* obj ), ( obj ),
|
||||||
"}\n\n"
|
"}\n\n"
|
||||||
"@endtsexample\n" );
|
"@endtsexample\n" );
|
||||||
|
|
||||||
IMPLEMENT_CALLBACK( GameBaseData, onNewDataBlock, void, ( GameBase* obj ), ( obj ),
|
IMPLEMENT_CALLBACK( GameBaseData, onNewDataBlock, void, ( GameBase* obj, bool reload), ( obj, reload),
|
||||||
"@brief Called when the object has a new datablock assigned.\n\n"
|
"@brief Called when the object has a new datablock assigned.\n\n"
|
||||||
"@param obj the GameBase object\n\n"
|
"@param obj the GameBase object\n\n"
|
||||||
"@see onAdd for an example\n" );
|
"@see onAdd for an example\n" );
|
||||||
|
|
@ -512,12 +512,12 @@ void GameBase::scriptOnAdd()
|
||||||
mDataBlock->onAdd_callback( this );
|
mDataBlock->onAdd_callback( this );
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameBase::scriptOnNewDataBlock()
|
void GameBase::scriptOnNewDataBlock(bool reload)
|
||||||
{
|
{
|
||||||
// Script onNewDataBlock() must be called by the leaf class
|
// Script onNewDataBlock() must be called by the leaf class
|
||||||
// after everything is loaded.
|
// after everything is loaded.
|
||||||
if (mDataBlock && !isGhost())
|
if (mDataBlock && !isGhost())
|
||||||
mDataBlock->onNewDataBlock_callback( this );
|
mDataBlock->onNewDataBlock_callback( this, reload);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameBase::scriptOnRemove()
|
void GameBase::scriptOnRemove()
|
||||||
|
|
|
||||||
|
|
@ -115,7 +115,7 @@ public:
|
||||||
/// @{
|
/// @{
|
||||||
DECLARE_CALLBACK( void, onAdd, ( GameBase* obj ) );
|
DECLARE_CALLBACK( void, onAdd, ( GameBase* obj ) );
|
||||||
DECLARE_CALLBACK( void, onRemove, ( GameBase* obj ) );
|
DECLARE_CALLBACK( void, onRemove, ( GameBase* obj ) );
|
||||||
DECLARE_CALLBACK( void, onNewDataBlock, ( GameBase* obj ) );
|
DECLARE_CALLBACK( void, onNewDataBlock, ( GameBase* obj, bool reload) );
|
||||||
DECLARE_CALLBACK( void, onMount, ( SceneObject* obj, SceneObject* mountObj, S32 node ) );
|
DECLARE_CALLBACK( void, onMount, ( SceneObject* obj, SceneObject* mountObj, S32 node ) );
|
||||||
DECLARE_CALLBACK( void, onUnmount, ( SceneObject* obj, SceneObject* mountObj, S32 node ) );
|
DECLARE_CALLBACK( void, onUnmount, ( SceneObject* obj, SceneObject* mountObj, S32 node ) );
|
||||||
/// @}
|
/// @}
|
||||||
|
|
@ -299,7 +299,7 @@ public:
|
||||||
/// Executes the 'onNewDataBlock' script function for this object.
|
/// Executes the 'onNewDataBlock' script function for this object.
|
||||||
///
|
///
|
||||||
/// @note This must be called after everything is loaded.
|
/// @note This must be called after everything is loaded.
|
||||||
void scriptOnNewDataBlock();
|
void scriptOnNewDataBlock(bool reload = false);
|
||||||
|
|
||||||
/// Executes the 'onRemove' script function for this object.
|
/// Executes the 'onRemove' script function for this object.
|
||||||
/// @note This must be called while the object is still valid
|
/// @note This must be called while the object is still valid
|
||||||
|
|
|
||||||
|
|
@ -422,7 +422,7 @@ bool Item::onNewDataBlock( GameBaseData *dptr, bool reload )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (!mSubclassItemHandlesScene)
|
if (!mSubclassItemHandlesScene)
|
||||||
scriptOnNewDataBlock();
|
scriptOnNewDataBlock(reload);
|
||||||
|
|
||||||
if ( isProperlyAdded() )
|
if ( isProperlyAdded() )
|
||||||
_updatePhysics();
|
_updatePhysics();
|
||||||
|
|
|
||||||
|
|
@ -142,7 +142,7 @@ bool MissionMarker::onNewDataBlock( GameBaseData *dptr, bool reload )
|
||||||
mDataBlock = dynamic_cast<MissionMarkerData*>( dptr );
|
mDataBlock = dynamic_cast<MissionMarkerData*>( dptr );
|
||||||
if ( !mDataBlock || !Parent::onNewDataBlock( dptr, reload ) )
|
if ( !mDataBlock || !Parent::onNewDataBlock( dptr, reload ) )
|
||||||
return(false);
|
return(false);
|
||||||
scriptOnNewDataBlock();
|
scriptOnNewDataBlock(reload);
|
||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -181,7 +181,7 @@ bool PathCamera::onNewDataBlock( GameBaseData *dptr, bool reload )
|
||||||
if ( !mDataBlock || !Parent::onNewDataBlock( dptr, reload ) )
|
if ( !mDataBlock || !Parent::onNewDataBlock( dptr, reload ) )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
scriptOnNewDataBlock();
|
scriptOnNewDataBlock(reload);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -134,7 +134,7 @@ bool PathShape::onNewDataBlock(GameBaseData* dptr, bool reload)
|
||||||
if (!mDataBlock || !Parent::onNewDataBlock(dptr, reload))
|
if (!mDataBlock || !Parent::onNewDataBlock(dptr, reload))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
scriptOnNewDataBlock();
|
scriptOnNewDataBlock(reload);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1923,7 +1923,7 @@ bool Player::onNewDataBlock( GameBaseData *dptr, bool reload )
|
||||||
onScaleChanged();
|
onScaleChanged();
|
||||||
resetWorldBox();
|
resetWorldBox();
|
||||||
|
|
||||||
scriptOnNewDataBlock();
|
scriptOnNewDataBlock(reload);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -350,7 +350,7 @@ bool ProximityMine::onNewDataBlock( GameBaseData* dptr, bool reload )
|
||||||
if ( !mDataBlock || !Parent::onNewDataBlock( dptr, reload ) )
|
if ( !mDataBlock || !Parent::onNewDataBlock( dptr, reload ) )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
scriptOnNewDataBlock();
|
scriptOnNewDataBlock(reload);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -906,7 +906,7 @@ bool RigidShape::onNewDataBlock(GameBaseData* dptr, bool reload)
|
||||||
else
|
else
|
||||||
mRigid.setObjectInertia(mObjBox.maxExtents - mObjBox.minExtents);
|
mRigid.setObjectInertia(mObjBox.maxExtents - mObjBox.minExtents);
|
||||||
|
|
||||||
scriptOnNewDataBlock();
|
scriptOnNewDataBlock(reload);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -219,7 +219,7 @@ bool StaticShape::onNewDataBlock(GameBaseData* dptr, bool reload)
|
||||||
if (!mDataBlock || !Parent::onNewDataBlock(dptr, reload))
|
if (!mDataBlock || !Parent::onNewDataBlock(dptr, reload))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
scriptOnNewDataBlock();
|
scriptOnNewDataBlock(reload);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -465,7 +465,7 @@ bool Trigger::onNewDataBlock( GameBaseData *dptr, bool reload )
|
||||||
if ( !mDataBlock || !Parent::onNewDataBlock( dptr, reload ) )
|
if ( !mDataBlock || !Parent::onNewDataBlock( dptr, reload ) )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
scriptOnNewDataBlock();
|
scriptOnNewDataBlock(reload);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -545,7 +545,7 @@ bool AITurretShape::onNewDataBlock(GameBaseData* dptr, bool reload)
|
||||||
mShapeInstance->setTimeScale(mStateAnimThread,0);
|
mShapeInstance->setTimeScale(mStateAnimThread,0);
|
||||||
}
|
}
|
||||||
|
|
||||||
scriptOnNewDataBlock();
|
scriptOnNewDataBlock(reload);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -440,7 +440,7 @@ bool TurretShape::onNewDataBlock(GameBaseData* dptr, bool reload)
|
||||||
|
|
||||||
if (!mSubclassTurretShapeHandlesScene)
|
if (!mSubclassTurretShapeHandlesScene)
|
||||||
{
|
{
|
||||||
scriptOnNewDataBlock();
|
scriptOnNewDataBlock(reload);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
|
||||||
|
|
@ -407,7 +407,7 @@ bool FlyingVehicle::onNewDataBlock(GameBaseData* dptr, bool reload)
|
||||||
mJetThread[i] = 0;
|
mJetThread[i] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
scriptOnNewDataBlock();
|
scriptOnNewDataBlock(reload);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -549,7 +549,7 @@ bool HoverVehicle::onNewDataBlock(GameBaseData* dptr, bool reload)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Todo: Uncomment if this is a "leaf" class
|
// Todo: Uncomment if this is a "leaf" class
|
||||||
scriptOnNewDataBlock();
|
scriptOnNewDataBlock(reload);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -711,7 +711,7 @@ bool WheeledVehicle::onNewDataBlock(GameBaseData* dptr, bool reload)
|
||||||
mJetSound = SFX->createSource( mDataBlock->getWheeledVehicleSoundsProfile(WheeledVehicleData::JetSound), &getTransform() );
|
mJetSound = SFX->createSource( mDataBlock->getWheeledVehicleSoundsProfile(WheeledVehicleData::JetSound), &getTransform() );
|
||||||
}
|
}
|
||||||
|
|
||||||
scriptOnNewDataBlock();
|
scriptOnNewDataBlock(reload);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -206,7 +206,7 @@ bool afxSpellBook::onNewDataBlock(GameBaseData* dptr, bool reload)
|
||||||
if (!mDataBlock || !Parent::onNewDataBlock(dptr, reload))
|
if (!mDataBlock || !Parent::onNewDataBlock(dptr, reload))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
scriptOnNewDataBlock();
|
scriptOnNewDataBlock(reload);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1064,7 +1064,7 @@ bool afxParticleEmitter::onNewDataBlock(GameBaseData* dptr, bool reload)
|
||||||
if (mDataBlock->isTempClone())
|
if (mDataBlock->isTempClone())
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
scriptOnNewDataBlock();
|
scriptOnNewDataBlock(reload);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1108,7 +1108,7 @@ bool afxParticleEmitterVector::onNewDataBlock(GameBaseData* dptr, bool reload)
|
||||||
if (mDataBlock->isTempClone())
|
if (mDataBlock->isTempClone())
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
scriptOnNewDataBlock();
|
scriptOnNewDataBlock(reload);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1177,7 +1177,7 @@ bool afxParticleEmitterCone::onNewDataBlock(GameBaseData* dptr, bool reload)
|
||||||
if (mDataBlock->isTempClone())
|
if (mDataBlock->isTempClone())
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
scriptOnNewDataBlock();
|
scriptOnNewDataBlock(reload);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1294,7 +1294,7 @@ bool afxParticleEmitterPath::onNewDataBlock(GameBaseData* dptr, bool reload)
|
||||||
if (mDataBlock->isTempClone())
|
if (mDataBlock->isTempClone())
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
scriptOnNewDataBlock();
|
scriptOnNewDataBlock(reload);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -78,17 +78,15 @@ function spawnGameObject(%name, %addToScene)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
function GameBaseData::onNewDataBlock(%this, %obj)
|
function GameBaseData::onNewDataBlock(%this, %obj, %reload)
|
||||||
{
|
{
|
||||||
if (%obj.firstDataCheck)
|
if (%reload)
|
||||||
{
|
{
|
||||||
if(%this.isMethod("onRemove"))
|
if(%this.isMethod("onRemove"))
|
||||||
%this.onRemove(%obj);
|
%this.onRemove(%obj);
|
||||||
if(%this.isMethod("onAdd"))
|
if(%this.isMethod("onAdd"))
|
||||||
%this.onAdd(%obj);
|
%this.onAdd(%obj);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
%obj.firstDataCheck = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function saveGameObject(%name, %tamlPath, %scriptPath)
|
function saveGameObject(%name, %tamlPath, %scriptPath)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue