Now root motion works much better; raft/boat climbing
This commit is contained in:
@@ -258,6 +258,14 @@ ECS::EventTriggerModule::EventTriggerModule(flecs::world &ecs)
|
||||
.entities
|
||||
.end(),
|
||||
"No body to entity mapping");
|
||||
flecs::entity obj_e =
|
||||
ECS::get<
|
||||
Body2Entity>()
|
||||
.entities
|
||||
.at(const_cast<
|
||||
btCollisionObject
|
||||
*>(
|
||||
other));
|
||||
ECS::get<
|
||||
LuaBase>()
|
||||
.mLua
|
||||
@@ -265,13 +273,12 @@ ECS::EventTriggerModule::EventTriggerModule(flecs::world &ecs)
|
||||
evt.event +
|
||||
"_enter",
|
||||
e,
|
||||
ECS::get<
|
||||
Body2Entity>()
|
||||
.entities
|
||||
.at(const_cast<
|
||||
btCollisionObject
|
||||
*>(
|
||||
other)));
|
||||
obj_e);
|
||||
obj_e.add<
|
||||
InTrigger>(
|
||||
e);
|
||||
e.add<TriggeredBy>(
|
||||
obj_e);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -283,14 +290,17 @@ ECS::EventTriggerModule::EventTriggerModule(flecs::world &ecs)
|
||||
while (it != body.contactBodies.end()) {
|
||||
if (currentContactBodies.find(*it) ==
|
||||
currentContactBodies.end()) {
|
||||
ECS::get<LuaBase>().mLua->call_handler(
|
||||
evt.event + "_exit", e,
|
||||
flecs::entity obj_e =
|
||||
ECS::get<Body2Entity>()
|
||||
.entities
|
||||
.at(const_cast<
|
||||
btCollisionObject
|
||||
*>(
|
||||
*it)));
|
||||
*it));
|
||||
ECS::get<LuaBase>().mLua->call_handler(
|
||||
evt.event + "_exit", e, obj_e);
|
||||
obj_e.remove<InTrigger>(e);
|
||||
e.remove<TriggeredBy>(obj_e);
|
||||
std::cout << "body exited" << std::endl;
|
||||
it = body.contactBodies.erase(it);
|
||||
if (it == body.contactBodies.end())
|
||||
|
||||
Reference in New Issue
Block a user