summaryrefslogtreecommitdiff
path: root/src/camera_controller/playercam.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/camera_controller/playercam.h')
-rw-r--r--src/camera_controller/playercam.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/camera_controller/playercam.h b/src/camera_controller/playercam.h
new file mode 100644
index 0000000..dd089de
--- /dev/null
+++ b/src/camera_controller/playercam.h
@@ -0,0 +1,43 @@
+#ifndef PLAYERCAMGDS_H
+#define PLAYERCAMGDS_H
+
+#include <Godot.hpp>
+#include <ClippedCamera.hpp>
+#include <RigidBody.hpp>
+#include <SpringArm.hpp>
+#include <Input.hpp>
+
+namespace godot {
+
+class PlayerCam : public ClippedCamera {
+ GODOT_CLASS(PlayerCam, ClippedCamera)
+
+private:
+ String mode;
+ Spatial* head;
+ Spatial* neck;
+ RigidBody* player;
+ SpringArm* arm;
+ Vector2 mouse_axis;
+ float mouse_sensitivity;
+
+public:
+ static void _register_methods();
+
+ PlayerCam();
+ ~PlayerCam();
+
+ void _init();
+
+ void _ready();
+ void _input(const Ref<InputEvent> event);
+ void attach(Node* new_parent, String c_mode, String extra_path = ".");
+ void mouse_firstperson();
+ void mouse_thirdperson();
+ void mouse_arm();
+ void mouse_freecam();
+
+};
+
+}
+#endif