#ifndef WEAPON_INVENTORY_H #define WEAPON_INVENTORY_H #include "scene/main/node.h" #include "scene/resources/packed_scene.h" class PlayerBody; class WeaponBase; class WeaponInventory : public Node { GDCLASS(WeaponInventory, Node); static void _bind_methods(); void on_switch_input(); void stow_current_weapon(); void ready(); protected: void _notification(int what); public: void select_weapon(WeaponBase *next); WeaponBase *get_current_weapon() const; void pickup_weapon(Ref weapon_scene); void set_starting_weapon(Ref weapon_scene); Ref get_starting_weapon() const; void pickup_demo_pack(); bool try_use_demo_pack(); private: Node3D *weapon_parent{ nullptr }; unsigned current{ 0 }; LocalVector weapons{ nullptr, nullptr }; WeaponBase *current_weapon{ nullptr }; Ref starting_weapon{}; }; #endif // !WEAPON_INVENTORY_H