wave-survival/modules/wave_survival/player_interactor.h

31 lines
737 B
C++

#ifndef PLAYER_INTERACTOR_H
#define PLAYER_INTERACTOR_H
#include "scene/3d/physics/shape_cast_3d.h"
class Interactable;
class PlayerInteractor : public ShapeCast3D {
GDCLASS(PlayerInteractor, ShapeCast3D);
static void _bind_methods();
void highlight_removed();
void activate();
void ready();
void process(double delta);
protected:
void _notification(int what);
public:
virtual PackedStringArray get_configuration_warnings() const override;
void pickup_demo_pack();
bool try_use_demo_pack();
private:
int num_demo_packs{ 0 };
Interactable *interactable{ nullptr };
Callable on_highlight_removed{ callable_mp(this, &self_type::highlight_removed) };
static String activate_method_name;
};
#endif // !PLAYER_INTERACTOR_H