#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