aboutsummaryrefslogtreecommitdiffstats
path: root/code/pawn/component/FootprintTrackerComponent.cs
diff options
context:
space:
mode:
Diffstat (limited to 'code/pawn/component/FootprintTrackerComponent.cs')
-rw-r--r--code/pawn/component/FootprintTrackerComponent.cs41
1 files changed, 26 insertions, 15 deletions
diff --git a/code/pawn/component/FootprintTrackerComponent.cs b/code/pawn/component/FootprintTrackerComponent.cs
index 7a396d1..bc5fdc6 100644
--- a/code/pawn/component/FootprintTrackerComponent.cs
+++ b/code/pawn/component/FootprintTrackerComponent.cs
@@ -4,27 +4,39 @@ using Sandbox;
namespace MurderGame;
public class FootprintTrackerComponent : EntityComponent<Player>, ISingletonComponent
-{
- private TimeSince TimeSinceFootstep = 0;
+{
private bool FootstepLeft = true;
+ private TimeSince TimeSinceFootstep = 0;
public void Simulate( IClient cl )
{
- if (!Game.IsClient || TimeSinceFootstep < 0.25) return;
+ if ( !Game.IsClient || TimeSinceFootstep < 0.25 )
+ {
+ return;
+ }
+
TimeSinceFootstep = 0;
FootstepLeft = !FootstepLeft;
-
- var bystanders = Game.Clients.Where(c => (c.Pawn as Player)?.Team is Team.Bystander or Team.Detective);
-
- foreach (var bystander in bystanders)
+
+ var bystanders = Game.Clients.Where( c => (c.Pawn as Player)?.Team is Team.Bystander or Team.Detective );
+
+ foreach ( var bystander in bystanders )
{
- if (bystander.Pawn is not Player player) continue;
- if (player.Velocity.Length < 1) continue;
+ if ( bystander.Pawn is not Player player )
+ {
+ continue;
+ }
+
+ if ( player.Velocity.Length < 1 )
+ {
+ continue;
+ }
+
var start = player.Position + Vector3.Up;
var end = start + Vector3.Down * 20;
-
+
var tr = Trace.Ray( start, end )
- .Size( 2)
+ .Size( 2 )
.WithAnyTags( "solid" )
.Ignore( Entity )
.Run();
@@ -39,13 +51,12 @@ public class FootprintTrackerComponent : EntityComponent<Player>, ISingletonComp
: "materials/right_shoe_footprint.vmat";
var _ = new Footprint
{
- SpriteMaterial = Material.Load(material),
+ SpriteMaterial = Material.Load( material ),
SpriteScale = 24f,
- Position = player.Position + (Vector3.Up * 1f),
- Rotation = Rotation.LookAt(player.Velocity, tr.Normal).RotateAroundAxis( tr.Normal, 270 ),
+ Position = player.Position + Vector3.Up * 1f,
+ Rotation = Rotation.LookAt( player.Velocity, tr.Normal ).RotateAroundAxis( tr.Normal, 270 ),
Color = player.Color
};
}
}
-
}