Code/Vehicle/VehicleController.Client.cs
using Sandbox;
using System;
using System.Collections.Generic;
using System.Linq;
namespace Meteor.VehicleTool.Vehicle;
partial class VehicleController
{
public static IReadOnlyList<VehicleController> All => _internalPlayers;
public static List<VehicleController> _internalPlayers = [];
private Guid _guid;
[Sync( SyncFlags.FromHost )]
public Guid ConnectionID
{
get => _guid;
set
{
_guid = value;
Connection = Connection.Find( _guid );
if ( !_internalPlayers.Contains( this ) )
_internalPlayers.Add( this );
}
}
public Connection Connection { get; private set; }
public ulong SteamID => Connection.SteamId;
public string Name => Connection.DisplayName;
public void SetupConnection( Connection connection )
{
ConnectionID = connection.Id;
GameObject.Name = $"{Name} / {SteamID}";
}
public static VehicleController GetByID( Guid id )
=> _internalPlayers.FirstOrDefault( x => x.ConnectionID == id );
}