SpawnTrigger.cs
using Sandbox;
using System.Numerics;
public sealed class SpawnTrigger : Component, Component.ITriggerListener
{
public async void OnTriggerEnter( Collider other )
{
var player = other.Components.Get<GudeMovement>();
if ( player != null )
{
var gravity = player.Gravity;
var directionalInfluence = player.DirectionalInfluence;
var spawn = player.Spawned;
Log.Info( "Get Ready!!!" );
if ( spawn == true )
{
player.Rigidbody.Velocity = Vector3.Zero;
player.Gravity = 0;
player.DirectionalInfluence = 0;
await Task.DelaySeconds( 2 );
player.DirectionalInfluence = directionalInfluence;
player.Gravity = gravity;
}
}
}
public void OnTriggerExit( Collider other )
{
var player = other.Components.Get<GudeMovement>();
if ( player != null )
{
var spawn = player.Spawned;
Log.Info( "Left Trigger" );
if ( spawn == true )
{
player.Spawned = false;
}
}
}
}