#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
