namespace Msp::Game {
+namespace CollisionLayer {
+
+enum
+{
+ STATIC,
+ MOVING
+};
+
+} // namespace CollisionLayer
+
+
PhysicsSystem::PhysicsSystem(Stage &s):
System(s),
event_observer(stage.get_event_bus()),
Handle<Transform> transform = i->entity->get_transform();
Physics::MotionType motion = (i->motion ? Physics::DYNAMIC : Physics::STATIC);
i->physics_body = make_unique<Physics::RigidBody>(world, i->shape->get_shape(), transform->get_position(), transform->get_rotation(), motion);
+ unsigned layer = (motion==Physics::STATIC ? CollisionLayer::STATIC : CollisionLayer::MOVING);
+ uint32_t collision_mask = (1<<CollisionLayer::STATIC) | (1<<CollisionLayer::MOVING);
+ i->physics_body->set_collisions(layer, collision_mask);
}
}
pending.clear();