Adds logical check to skip animated statics when baking selection to mesh.

This commit is contained in:
Areloch 2020-08-16 02:16:19 -05:00
parent 81777348c8
commit b6a3fb05d9
2 changed files with 15 additions and 2 deletions

View file

@ -284,6 +284,8 @@ public:
void updateMaterials(); void updateMaterials();
bool isAnimated() { return mPlayAmbient; }
private: private:
virtual void onStaticModified(const char* slotName, const char* newValue = NULL); virtual void onStaticModified(const char* slotName, const char* newValue = NULL);
protected: protected:

View file

@ -3910,8 +3910,18 @@ bool WorldEditor::makeSelectionAMesh(const char *filename)
{ {
SceneObject *pObj = dynamic_cast< SceneObject* >( ( *mSelected )[i] ); SceneObject *pObj = dynamic_cast< SceneObject* >( ( *mSelected )[i] );
if (pObj) if (pObj)
{
//Minor sanity check to avoid baking animated shapes
TSStatic* staticShape = dynamic_cast<TSStatic*>(pObj);
if (staticShape)
{
if (staticShape->isAnimated() && staticShape->hasAnim())
continue;
}
objectList.push_back(pObj); objectList.push_back(pObj);
} }
}
if ( objectList.empty() ) if ( objectList.empty() )
return false; return false;
@ -3956,6 +3966,7 @@ bool WorldEditor::makeSelectionAMesh(const char *filename)
for (S32 i = 0; i < objectList.size(); i++) for (S32 i = 0; i < objectList.size(); i++)
{ {
SceneObject *pObj = objectList[i]; SceneObject *pObj = objectList[i];
if (!pObj->buildExportPolyList(&exportData, pObj->getWorldBox(), pObj->getWorldSphere())) if (!pObj->buildExportPolyList(&exportData, pObj->getWorldBox(), pObj->getWorldSphere()))
Con::warnf("colladaExportObjectList() - object %i returned no geometry.", pObj->getId()); Con::warnf("colladaExportObjectList() - object %i returned no geometry.", pObj->getId());
} }