private void UpdateMass(HkRigidBody rigidBody) { if (!m_grid.IsStatic && !rigidBody.IsFixed && rigidBody.GetMotionType() != HkMotionType.Keyframed) { ProfilerShort.Begin("Update mass"); if (!MyPerGameSettings.Destruction) UpdateMassProperties(); ProfilerShort.End(); ProfilerShort.Begin("Set mass"); rigidBody.Mass = m_massProperties.Mass; rigidBody.SetMassProperties(ref m_massProperties); ProfilerShort.End(); } }
private void UpdateMass(HkRigidBody rigidBody, bool setMass = true) { if (!m_grid.IsStatic && !rigidBody.IsFixed && rigidBody.GetMotionType() != HkMotionType.Keyframed) { ProfilerShort.Begin("Update mass"); if (!MyPerGameSettings.Destruction) UpdateMassProperties(); ProfilerShort.End(); ProfilerShort.Begin("Set mass"); if (setMass) { if (m_grid.Physics.IsWelded || m_grid.Physics.WeldInfo.Children.Count != 0) { m_grid.Physics.WeldedRigidBody.SetMassProperties(ref m_massProperties); m_grid.Physics.WeldInfo.SetMassProps(m_massProperties); m_grid.Physics.UpdateMassProps(); } else { rigidBody.Mass = m_massProperties.Mass; rigidBody.SetMassProperties(ref m_massProperties); } } ProfilerShort.End(); } }