summaryrefslogtreecommitdiff
path: root/src/camera_controller/playercam.h
diff options
context:
space:
mode:
authorAnson Bridges <bridges.anson@gmail.com>2022-09-19 17:44:22 -0400
committerAnson Bridges <bridges.anson@gmail.com>2022-09-19 17:44:22 -0400
commit1d347e770fddcdd051890cdf070fd2779ab113bf (patch)
tree6501fb000509819b7ba58df15c9a831c8bdc44fb /src/camera_controller/playercam.h
parent2fd755132f526c48fed2c1867530526971e1cf19 (diff)
problems: player controller perf, boat perf, NAVSERVER PERF
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