wave-survival/modules/wave_survival/weapon_inventory.h

38 lines
861 B
C++

#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<PackedScene> weapon_scene);
void set_starting_weapon(Ref<PackedScene> weapon_scene);
Ref<PackedScene> get_starting_weapon() const;
private:
Node3D *weapon_parent{ nullptr };
unsigned current{ 0 };
LocalVector<WeaponBase *> weapons{ nullptr, nullptr };
WeaponBase *current_weapon{ nullptr };
Ref<PackedScene> starting_weapon{};
};
#endif // !WEAPON_INVENTORY_H