import "msp/game/setups"; enum ColliderType { value CIRCLE; value BOX; }; component Collider { field type ColliderType { default "CIRCLE"; }; field radius float { default "1.0f"; }; field size vector2 { default "1.0f, 1.0f"; }; }; component RigidBody { field mass float { default "1.0f"; }; field moment_of_inertia float { default "0.5f"; }; }; entity Physical { field fixture bool { default "false"; }; field body RigidBody; field collider Collider; }; component HitPoints { field max_hits uint { default "1"; }; field vulnerable_to uint { default "~0U"; }; }; component DamageSource { field amount uint { default "1"; }; field type uint { default "0"; }; }; entity Hittable { field immortal bool { default "false"; }; field damaging bool { default "false"; }; field hits HitPoints; field damage DamageSource; }; entity Playfield { field size vector2; }; entity Ship { field physical Physical; field mesh MeshSource; field speed float; field turn_rate float; }; entity Bullet { field physical Physical; field hittable Hittable; field mesh MeshSource; }; entity Asteroid { field physical Physical; field hittable Hittable; field mesh MeshSource; };