From 1d347e770fddcdd051890cdf070fd2779ab113bf Mon Sep 17 00:00:00 2001 From: Anson Bridges Date: Mon, 19 Sep 2022 17:44:22 -0400 Subject: problems: player controller perf, boat perf, NAVSERVER PERF --- src/playercontroller.h | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 src/playercontroller.h (limited to 'src/playercontroller.h') 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 +#include + +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 -- cgit v1.2.3