Removed mBodyNode from CharacterBase
This commit is contained in:
@@ -29,8 +29,11 @@ CharacterAnimationModule::CharacterAnimationModule(flecs::world &ecs)
|
||||
if (!anim.configured) {
|
||||
int i, j;
|
||||
e.set<EventData>({});
|
||||
Ogre::SceneNode *n =
|
||||
ECS::get<CharacterModule>()
|
||||
.characterNodes.at(e);
|
||||
Ogre::Entity *ent = static_cast<Ogre::Entity *>(
|
||||
ch.mBodyNode->getAttachedObject(0));
|
||||
n->getAttachedObject(0));
|
||||
ent->getSkeleton()->setBlendMode(
|
||||
Ogre::ANIMBLEND_CUMULATIVE);
|
||||
Ogre::AnimationStateSet *animStateSet =
|
||||
@@ -197,10 +200,15 @@ CharacterAnimationModule::CharacterAnimationModule(flecs::world &ecs)
|
||||
ZoneScopedN("HandleRootMotionVelocity");
|
||||
if (eng.delta < 0.0000001f)
|
||||
return;
|
||||
if (!ch.mBodyNode)
|
||||
if (ECS::get<CharacterModule>().characterNodes.find(
|
||||
e) ==
|
||||
ECS::get<CharacterModule>().characterNodes.end())
|
||||
return;
|
||||
Ogre::Quaternion rot = ch.mBodyNode->getOrientation();
|
||||
Ogre::Vector3 pos = ch.mBodyNode->getPosition();
|
||||
const Ogre::SceneNode *n =
|
||||
ECS::get<CharacterModule>().characterNodes.at(
|
||||
e);
|
||||
Ogre::Quaternion rot = n->getOrientation();
|
||||
Ogre::Vector3 pos = n->getPosition();
|
||||
Ogre::Vector3 boneMotion = ch.mBoneMotion;
|
||||
v.velocity = Ogre::Vector3::ZERO;
|
||||
if (eng.delta <= 0.005)
|
||||
@@ -235,7 +243,7 @@ CharacterAnimationModule::CharacterAnimationModule(flecs::world &ecs)
|
||||
v.velocity.y = 0.0f;
|
||||
#endif
|
||||
OgreAssert(v.velocity.squaredLength() < 1000.0f,
|
||||
"Bad velocity setting");
|
||||
"Bad velocity setting " + Ogre::StringConverter::toString(safeDelta) + " " + Ogre::StringConverter::toString(boneMotion));
|
||||
});
|
||||
ecs.system<const EngineData, CharacterBase, AnimationControl,
|
||||
CharacterVelocity>("HandleRootMotion")
|
||||
@@ -244,8 +252,10 @@ CharacterAnimationModule::CharacterAnimationModule(flecs::world &ecs)
|
||||
CharacterBase &ch, AnimationControl &anim,
|
||||
CharacterVelocity &v) {
|
||||
ZoneScopedN("HandleRootMotion");
|
||||
#if 0
|
||||
if (!ch.mBodyNode)
|
||||
return;
|
||||
#endif
|
||||
if (eng.delta < 0.0000001f)
|
||||
return;
|
||||
OgreAssert(eng.delta > 0.0f, "Zero delta");
|
||||
|
||||
Reference in New Issue
Block a user