diff --git a/Game.Server/BaseEntity.cs b/Game.Server/BaseEntity.cs index 2e8b26209..6c36c0e41 100644 --- a/Game.Server/BaseEntity.cs +++ b/Game.Server/BaseEntity.cs @@ -1886,6 +1886,9 @@ public void EntityText(int text_offset, ReadOnlySpan text, float duration, DebugOverlay.EntityTextAtPosition(origin, text_offset, text, duration, r, g, b, a); } + public virtual void DrawDebugGeometryOverlays() { + // todo + } public virtual int DrawDebugTextOverlays() { int offset = 1; if ((DebugOverlays & DebugOverlayBits.Text) != 0) { diff --git a/Game.Server/HL2/HL2_Player.cs b/Game.Server/HL2/HL2_Player.cs index 8176f8976..a24248bbe 100644 --- a/Game.Server/HL2/HL2_Player.cs +++ b/Game.Server/HL2/HL2_Player.cs @@ -432,7 +432,7 @@ bool TestHitboxes(Ray ray, uint fContentsMask, Trace tr) { throw new NotImplementedException(); } - void DrawDebugGeometryOverlays() { } + public override void DrawDebugGeometryOverlays() { } public void ExitLadder() { } diff --git a/Game.Server/PathTrack.cs b/Game.Server/PathTrack.cs index eb646fae8..7a9f48c18 100644 --- a/Game.Server/PathTrack.cs +++ b/Game.Server/PathTrack.cs @@ -2,6 +2,7 @@ using Source; using Source.Common; +using Source.Common.Engine; using Source.Common.Mathematics; using System.Numerics; @@ -182,6 +183,21 @@ public void TogglePath() { return path; } + public static PathTrack? Instance(Edict ent) { + BaseEntity? entity = BaseEntity.Instance(ent); + if (FClassnameIs(entity, "path_track")) + return (PathTrack?)entity; + return null; + } + + public override void DrawDebugGeometryOverlays() { + if ((DebugOverlays & (DebugOverlayBits.BBox | DebugOverlayBits.AbsBox)) != 0) + if (Next.IsValid()) + DebugOverlay.Line(GetAbsOrigin(), Next.Get()!.GetAbsOrigin(), 255, 100, 100, true, 0.0f); + + base.DrawDebugGeometryOverlays(); + } + void Project(PathTrack? start, PathTrack? end, ref Vector3 origin, float dist) { if (start != null && end != null) { Vector3 dir = end.GetLocalOrigin() - start.GetLocalOrigin(); diff --git a/Game.Server/Triggers.cs b/Game.Server/Triggers.cs index 6418ca7ff..11c0660c7 100644 --- a/Game.Server/Triggers.cs +++ b/Game.Server/Triggers.cs @@ -219,6 +219,22 @@ public void Enable() { } } + public override int DrawDebugTextOverlays() { + int text_offset = base.DrawDebugTextOverlays(); + + if ((DebugOverlays & DebugOverlayBits.Text) != 0) { + Span tempstr = stackalloc char[255]; + if (IsSolidFlagSet(SolidFlags.Trigger)) + strcpy(tempstr, "State: Enabled"); + else + strcpy(tempstr, "State: Disabled"); + EntityText(text_offset, tempstr, 0); + text_offset++; + } + + return text_offset; + } + //------------------------------------------------------------------------------ // Purpose : //------------------------------------------------------------------------------