]> git.tdb.fi Git - libs/game.git/blobdiff - examples/bassteroids/source/setups.mgs
Use the setup generator to create setup structs
[libs/game.git] / examples / bassteroids / source / setups.mgs
diff --git a/examples/bassteroids/source/setups.mgs b/examples/bassteroids/source/setups.mgs
new file mode 100644 (file)
index 0000000..66ba9e3
--- /dev/null
@@ -0,0 +1,74 @@
+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;
+};