diff --git a/modules/wave_survival/map_region.cpp b/modules/wave_survival/map_region.cpp new file mode 100644 index 00000000..e266b2f9 --- /dev/null +++ b/modules/wave_survival/map_region.cpp @@ -0,0 +1,7 @@ +#include "map_region.h" + +String const MapRegion::sig_phase_changed{ "phase_changed" }; + +void MapRegion::_bind_methods() { + ADD_SIGNAL(MethodInfo(sig_phase_changed, PropertyInfo(Variant::BOOL, "hunt_phase"))); +} diff --git a/modules/wave_survival/map_region.h b/modules/wave_survival/map_region.h new file mode 100644 index 00000000..01ff6cf2 --- /dev/null +++ b/modules/wave_survival/map_region.h @@ -0,0 +1,18 @@ +#ifndef MAP_REGION_H +#define MAP_REGION_H + +#include "scene/3d/physics/area_3d.h" + +class MapRegion : public Area3D { + GDCLASS(MapRegion, Area3D); + static void _bind_methods(); + +private: + float awareness{ 0.f }; + bool hunt_phase{ false }; + +public: + static String const sig_phase_changed; +}; + +#endif // !MAP_REGION_H diff --git a/modules/wave_survival/register_types.cpp b/modules/wave_survival/register_types.cpp index 440a1885..36c120c9 100644 --- a/modules/wave_survival/register_types.cpp +++ b/modules/wave_survival/register_types.cpp @@ -22,6 +22,7 @@ #include "wave_survival/state.h" #include "wave_survival/state_machine.h" #include "wave_survival/weapon_base.h" +#include "wave_survival/map_region.h" #include "wave_survival/weapon_inventory.h" #include "wave_survival/weapons/revolver.h" #include "wave_survival/weapons/rifle.h" @@ -57,6 +58,7 @@ void initialize_wave_survival_module(ModuleInitializationLevel p_level) { GDREGISTER_CLASS(SoundEventNode); GDREGISTER_CLASS(MuzzleEffect); GDREGISTER_RUNTIME_CLASS(HeadsUpDisplay); + GDREGISTER_RUNTIME_CLASS(MapRegion); memnew(SoundEventPatchboard); Engine::get_singleton()->add_singleton(Engine::Singleton(SoundEventPatchboard::get_class_static(), SoundEventPatchboard::get_singleton()));