1212#include " Game-Lib/ECS/Util/MessageBuilderUtil.h"
1313#include " Game-Lib/ECS/Util/Transforms.h"
1414#include " Game-Lib/ECS/Util/Network/NetworkUtil.h"
15+ #include " Game-Lib/Rendering/Debug/DebugRenderer.h"
16+ #include " Game-Lib/Rendering/GameRenderer.h"
1517#include " Game-Lib/Scripting/Util/ZenithUtil.h"
1618
19+ #include < Base/CVarSystem/CVarSystem.h>
1720#include < Base/Memory/Bytebuffer.h>
1821#include < Base/Util/DebugHandler.h>
1922
2831#include < entt/entt.hpp>
2932#include < tracy/Tracy.hpp>
3033
34+ AutoCVar_ShowFlag CVAR_DebugDrawTriggers (CVarCategory::Client | CVarCategory::Rendering, " debugDrawTriggers" , " debug draw triggers" , ShowFlag::DISABLED);
35+
3136namespace ECS ::Systems
3237{
3338 bool IsTransformInAABB (const Components::Transform& transform, const Components::WorldAABB& aabb)
@@ -143,5 +148,29 @@ namespace ECS::Systems
143148 proximityTrigger.playersInside .erase (playerEntity);
144149 triggerList.erase (triggerEntity);
145150 }
151+
152+ // Debug draw triggers
153+ if (CVAR_DebugDrawTriggers.Get () == ShowFlag::ENABLED)
154+ {
155+ DebugRenderer* debugRenderer = ServiceLocator::GetGameRenderer ()->GetDebugRenderer ();
156+
157+ auto triggersView = registry.view <Components::Transform, Components::AABB, Components::ProximityTrigger>();
158+ triggersView.each ([&](entt::entity triggerEntity, Components::Transform triggerTransform, Components::AABB& triggerAABB, Components::ProximityTrigger& proximityTrigger)
159+ {
160+ vec3 position = triggerTransform.GetWorldPosition ();
161+ Color color = proximityTrigger.playersInside .contains (playerEntity) ? Color::Green : Color::Red;
162+
163+ bool isAABBTrigger = false ; // For when we support spherical AABBs
164+ if (isAABBTrigger)
165+ {
166+ debugRenderer->DrawAABB3D (position, triggerAABB.extents , color);
167+ }
168+ else
169+ {
170+ f32 radius = glm::max (glm::max (triggerAABB.extents .x , triggerAABB.extents .y ), triggerAABB.extents .z ); // Probably get the radius in a better way if we have proper spherical triggers
171+ debugRenderer->DrawSphere3D (position, radius, 8 , color);
172+ }
173+ });
174+ }
146175 }
147176}
0 commit comments