]> git.tdb.fi Git - libs/game.git/blobdiff - examples/bassteroids/source/ship.h
Add a controllable player ship to Bassteroids
[libs/game.git] / examples / bassteroids / source / ship.h
diff --git a/examples/bassteroids/source/ship.h b/examples/bassteroids/source/ship.h
new file mode 100644 (file)
index 0000000..52236cc
--- /dev/null
@@ -0,0 +1,30 @@
+#ifndef SHIP_H_
+#define SHIP_H_
+
+#include <msp/game/meshsource.h>
+#include "physicalentity.h"
+
+struct ShipSetup
+{
+       PhysicalSetup physical;
+       Msp::Game::MeshSourceSetup mesh;
+       float speed;
+       float turn_rate;
+};
+
+class Ship: public PhysicalEntity
+{
+public:
+       using Setup = ShipSetup;
+
+private:
+       const Setup &setup;
+       Msp::Game::Owned<Msp::Game::MeshSource> mesh;
+
+public:
+       Ship(Msp::Game::Handle<Msp::Game::Entity>, const Setup &);
+
+       const Setup &get_setup() const { return setup; }
+};
+
+#endif