#ifndef DAYDREAM_CPHYSICS_H #define DAYDREAM_CPHYSICS_H #include "Core/Component.h" namespace dd { namespace CollisionLayer { enum Type { Pad = 1 << 0, Ball = 1 << 1, Brick = 1 << 2, Water = 1 << 3, PowerUp = 1 << 4, Other = 1 << 5, Wall = 1 << 6, LifeBuoy = 1 << 7, Projectile = 1 << 8 }; } namespace CollisionType { enum Type { Static = 0, Kinematic = 1, Dynamic = 2, }; } namespace Components { struct Physics: public Component { CollisionType::Type CollisionType = CollisionType::Type::Static; bool Calculate = false; float GravityScale = 0.f; float Density = 20.f; CollisionLayer::Type Category = CollisionLayer::Type::Other; CollisionLayer::Type Mask = static_cast( CollisionLayer::Pad | CollisionLayer::Ball | CollisionLayer::Brick | CollisionLayer::Water | CollisionLayer::PowerUp | CollisionLayer::Wall | CollisionLayer::LifeBuoy | CollisionLayer::Other ); }; } } #endif //DAYDREAM_CPHYSICS_H