diff options
Diffstat (limited to 'src/player_controller/playercontroller.h')
| -rw-r--r-- | src/player_controller/playercontroller.h | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/src/player_controller/playercontroller.h b/src/player_controller/playercontroller.h new file mode 100644 index 0000000..402f7d3 --- /dev/null +++ b/src/player_controller/playercontroller.h @@ -0,0 +1,93 @@ +#ifndef PLAYERCONTROLLER_H +#define PLAYERCONTROLLER_H + +#include "playercam.h" +#include <Godot.hpp> +#include <RigidBody.hpp> +#include <RayCast.hpp> +#include <NavigationAgent.hpp> +#include <PhysicsDirectBodyState.hpp> +#include <Label3D.hpp> +#include <SceneTree.hpp> +#include <Viewport.hpp> +#include <ClippedCamera.hpp> + +namespace godot { + +class PlayerController : public RigidBody { + GODOT_CLASS(PlayerController, RigidBody) + +private: + String team; + int health; + Node *weapon; + Spatial *world; + PlayerCam *cam; + float mouse_sensitivity; + float FOV; + Vector2 mouse_axis; + Spatial *head; + Spatial *neck; + RayCast *useray; + Label3D *nametag; + Vector3 velocity; + Vector3 direction; + Vector2 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 |
