Fixed physics system crash

This commit is contained in:
Antoine Pilote
2023-07-02 16:34:16 -04:00
parent 718e7c6997
commit ca989b9ba8
3 changed files with 42 additions and 44 deletions

View File

@@ -35,19 +35,19 @@ namespace Nuake {
{
BEGIN_SERIALIZE();
for (uint32_t i = 0; i < Hulls.size() - 1; i++)
{
json hullPointsJson;
//for (uint32_t i = 0; i < Hulls.size() - 1; i++)
//{
// json hullPointsJson;
const size_t hullSize = Hulls[i].size();
for (uint32_t j = 0; j < hullSize; j++)
{
hullPointsJson[j]["x"] = Hulls[i][j].x;
hullPointsJson[j]["y"] = Hulls[i][j].y;
hullPointsJson[j]["z"] = Hulls[i][j].z;
}
j["Hulls"][i] = hullPointsJson;
}
// size_t hullSize = Hulls[i].size();
// for (uint32_t j = 0; j < hullSize; j++)
// {
// hullPointsJson[j]["x"] = Hulls[i][j].x;
// hullPointsJson[j]["y"] = Hulls[i][j].y;
// hullPointsJson[j]["z"] = Hulls[i][j].z;
// }
// j["Hulls"][i] = hullPointsJson;
//}
j["IsSolid"] = IsSolid;
END_SERIALIZE();

View File

@@ -31,10 +31,5 @@ namespace Nuake {
Mass = j["Mass"];
return true;
}
void SyncWithTransform(TransformComponent& tc)
{
}
};
}

View File

@@ -87,12 +87,14 @@ namespace Nuake
}
}
const auto characterControllerView = m_Scene->m_Registry.view<TransformComponent, CharacterControllerComponent>();
for (auto e : characterControllerView)
{
auto [transformComponent, characterControllerComponent] = view.get<TransformComponent, RigidBodyComponent>(e);
//const auto characterControllerView = m_Scene->m_Registry.view<TransformComponent, CharacterControllerComponent>();
//for (auto e : characterControllerView)
//{
// Entity ent = Entity({ e, m_Scene });
// auto [transformComponent, ccc] = view.get<TransformComponent, CharacterControllerComponent>(e);
}
//auto& physicsObject = CreateRef<Physics::CharacterController>(ccc.);
//}
//// character controllers
//auto ccview = m_Scene->m_Registry.view<TransformComponent, CharacterControllerComponent>();
@@ -173,35 +175,36 @@ namespace Nuake
}
}
auto bspTriggerView = m_Scene->m_Registry.view<TransformComponent, BSPBrushComponent, TriggerZone>();
for (auto e : bspTriggerView)
{
auto [transform, brush, trigger] = bspTriggerView.get<TransformComponent, BSPBrushComponent, TriggerZone>(e);
trigger.GhostObject->ScanOverlap();
//auto bspTriggerView = m_Scene->m_Registry.view<TransformComponent, BSPBrushComponent, TriggerZone>();
//for (auto e : bspTriggerView)
//{
// auto [transform, brush, trigger] = bspTriggerView.get<TransformComponent, BSPBrushComponent, TriggerZone>(e);
// trigger.GhostObject->ScanOverlap();
brush.Targets.clear();
auto targetnameView = m_Scene->m_Registry.view<TransformComponent, NameComponent>();
for (auto e2 : targetnameView)
{
auto [ttransform, name] = targetnameView.get<TransformComponent, NameComponent>(e2);
// brush.Targets.clear();
// auto targetnameView = m_Scene->m_Registry.view<TransformComponent, NameComponent>();
// for (auto e2 : targetnameView)
// {
// auto [ttransform, name] = targetnameView.get<TransformComponent, NameComponent>(e2);
if (name.Name == brush.target) {
brush.Targets.push_back(Entity{ e2, m_Scene });
}
}
}
// if (name.Name == brush.target) {
// brush.Targets.push_back(Entity{ e2, m_Scene });
// }
// }
//}
auto physicGroup = m_Scene->m_Registry.view<TransformComponent, RigidBodyComponent>();
/*auto physicGroup = m_Scene->m_Registry.view<TransformComponent, RigidBodyComponent>();
for (auto e : physicGroup) {
auto [transform, rb] = physicGroup.get<TransformComponent, RigidBodyComponent>(e);
rb.SyncTransformComponent(&m_Scene->m_Registry.get<TransformComponent>(e));
}
}*/
auto ccGroup = m_Scene->m_Registry.view<TransformComponent, CharacterControllerComponent>();
for (auto e : ccGroup) {
auto [transform, rb] = ccGroup.get<TransformComponent, CharacterControllerComponent>(e);
rb.SyncWithTransform(m_Scene->m_Registry.get<TransformComponent>(e));
}
//auto ccGroup = m_Scene->m_Registry.view<TransformComponent, CharacterControllerComponent>();
//for (auto e : ccGroup) {
// auto [transform, rb] = ccGroup.get<TransformComponent, CharacterControllerComponent>(e);
// rb.SyncWithTransform(m_Scene->m_Registry.get<TransformComponent>(e));
//}
}
void PhysicsSystem::FixedUpdate(Timestep ts)