#ifndef WEAPON_BASE_H #define WEAPON_BASE_H #include "scene/3d/node_3d.h" class AnimationPlayer; class PlayerCamera; class PlayerBody; class WeaponBase : public Node3D { GDCLASS(WeaponBase, Node3D); static void _bind_methods(); void ready(); protected: void _notification(int what); public: void set_anim(AnimationPlayer *player); AnimationPlayer *get_anim() const; PlayerCamera *get_camera() const; void set_body(PlayerBody *body); PlayerBody *get_body() const; virtual bool allows_running() const { return true; } virtual bool allows_jumping() const { return true; } virtual void notify_selected() {} private: AnimationPlayer *anim{ nullptr }; PlayerCamera *camera{ nullptr }; PlayerBody *body{ nullptr }; }; #endif // !WEAPON_BASE_H