from @practicing01: trigger mounting

This commit is contained in:
AzaezelX 2020-07-10 15:50:25 -05:00
parent 55c95a6146
commit b8c3b515f8
2 changed files with 26 additions and 0 deletions

View file

@ -537,6 +537,13 @@ void Trigger::setTransform(const MatrixF & mat)
testObjects();
}
void Trigger::onUnmount( SceneObject *obj, S32 node )
{
Parent::onUnmount( obj, node );
// Make sure the client get's the final server pos.
setMaskBits(TransformMask | ScaleMask);
}
void Trigger::prepRenderImage( SceneRenderState *state )
{
// only render if selected or render flag is set
@ -695,6 +702,13 @@ void Trigger::processTick(const Move* move)
if (!mDataBlock->isClientSide && isClientObject())
return;
if (isMounted()) {
MatrixF mat;
mMount.object->getMountTransform( mMount.node, mMount.xfm, &mat );
setTransform(mat);
setRenderTransform(mat);
}
//
if (mObjects.size() == 0)
return;
@ -734,6 +748,15 @@ void Trigger::processTick(const Move* move)
}
}
void Trigger::interpolateTick(F32 delta)
{
if (isMounted()) {
MatrixF mat;
mMount.object->getRenderMountTransform( delta, mMount.node, mMount.xfm, &mat );
setRenderTransform(mat);
}
}
//--------------------------------------------------------------------------
U32 Trigger::packUpdate(NetConnection* con, U32 mask, BitStream* stream)