swb_player/PlayerTriggerListener.cs
using SWB.Shared;

namespace SWB.Player;

[Group( "SWB" )]
[Title( "PlayerTriggerListener" )]
public class PlayerTriggerListener : Component, Component.ITriggerListener
{
	[Property] public PlayerBase Player { get; set; }
	[Property] public Collider Collider { get; set; }

	public void OnTriggerEnter( Collider other )
	{
		if ( other is null || Player.Noclip ) return;
		if ( other.Tags.Has( TagsHelper.Ladder ) && !Player.IsBot )
			Player.OnLadderEnter( other );
	}

	public void OnTriggerExit( Collider other )
	{
		if ( other is null || Player.Noclip ) return;
		if ( other.Tags.Has( TagsHelper.Ladder ) && !Player.IsBot )
			Player.OnLadderExit( other );
	}
}