summaryrefslogtreecommitdiff
path: root/src/playercontroller.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/playercontroller.h')
-rw-r--r--src/playercontroller.h83
1 files changed, 83 insertions, 0 deletions
diff --git a/src/playercontroller.h b/src/playercontroller.h
new file mode 100644
index 0000000..388de3f
--- /dev/null
+++ b/src/playercontroller.h
@@ -0,0 +1,83 @@
+#ifndef PLAYERCONTROLLER_H
+#define PLAYERCONTROLLER_H
+
+#include <Godot.hpp>
+#include <RigidBody.hpp>
+
+namespace godot {
+
+class PlayerController : public RigidBody {
+ GODOT_CLASS(PlayerController, RigidBody)
+
+private:
+ String team;
+ int health;
+ Node *weapon;
+ Spatial *world;
+ float mouse_sensitivity;
+ float FOV;
+ Vector2 mouse_axis;
+ Spatial *head;
+ Spatial *neck;
+ Vector3 velocity;
+ Vector3 direction;
+ Vector3 move_axis;
+ Vector3 floorspeed;
+ bool jumping;
+ bool can_jump;
+ NavigationAgent nav;
+ float FLOOR_MAX_ANGLE;
+ float jump_height;
+ bool in_water;
+ float swim_speed;
+ float climb_speed;
+ bool controlling_machine;
+ RigidBody *machine;
+ bool is_player;
+ Spatial *ladder_m;
+ PhysicsDirectBodyState *player_state;
+ bool is_on_floor;
+ Vector3 floor_normal;
+ float acceleration;
+ float walk_speed;
+ float c_friction;
+ float air_control;
+
+
+public:
+ static void _register_methods();
+
+ PlayerController();
+ ~PlayerController();
+
+ void _init();
+
+ void _ready();
+ Dictionary get_init_info();
+ void mp_init(Dictionary init_info);
+ void set_phys_transform(Transform trfrm, Vector3 lvel);
+ void _process(float _delta);
+ void initiate_use();
+ void set_net_owner(int owner_id);
+ void deselect_character();
+ void take_control_of_machine(RigidBody slave_machine);
+ void lose_machine();
+ void _physics_process(float delta);
+ bool on_floor_test();
+ void _integrate_forces(PhysicsDirectBodyState *state);
+ void walk(float _delta);
+ void jump();
+ void swim(float _delta);
+ void enter_water();
+ void exit_water();
+ void mount_ladder(Spatial target_ladder);
+ void climb_ladder(float delta);
+ void leave_ladder();
+ void damage(int dmg_amt, String _type, Array shooter, String extra);
+ void remove_dead_character();
+ void net_apply_impulse(Vector3 impulse_v);
+
+};
+
+}
+#endif