Table of Contents

Class VehicleService

Namespace
Uncreated.Warfare.Vehicles
Assembly
Uncreated.Warfare.dll
[Priority(-3)]
public class VehicleService : ILayoutHostedService, IEventListener<VehicleDespawned>
Inheritance
VehicleService
Implements
Inherited Members

Constructors

VehicleService(IServiceProvider, ILogger<VehicleService>, VehicleInfoStore, VehicleSpawnerStore, VehicleSeatRestrictionService)

public VehicleService(IServiceProvider serviceProvider, ILogger<VehicleService> logger, VehicleInfoStore vehicleInfoStore, VehicleSpawnerStore vehicleSpawnerStore, VehicleSeatRestrictionService vehicleSeatRestrictionService)

Parameters

serviceProvider IServiceProvider
logger ILogger<VehicleService>
vehicleInfoStore VehicleInfoStore
vehicleSpawnerStore VehicleSpawnerStore
vehicleSeatRestrictionService VehicleSeatRestrictionService

Fields

MaxBatteryCharge

public const ushort MaxBatteryCharge = 10000

Field Value

ushort

VehicleSpawnOffset

public const float VehicleSpawnOffset = 5

Field Value

float

Properties

Vehicles

public IReadOnlyList<WarfareVehicle> Vehicles { get; }

Property Value

IReadOnlyList<WarfareVehicle>

Methods

DeleteAllVehiclesAsync(CancellationToken)

Remove all vehicles and clean up spawn information and items.

public UniTask<int> DeleteAllVehiclesAsync(CancellationToken token = default)

Parameters

token CancellationToken

Returns

UniTask<int>

DeleteVehicleAsync(InteractableVehicle, CancellationToken)

Remove one vehicle and clean up spawn information and items.

public UniTask DeleteVehicleAsync(InteractableVehicle vehicle, CancellationToken token = default)

Parameters

vehicle InteractableVehicle
token CancellationToken

Returns

UniTask

DeregisterWarfareVehicle(InteractableVehicle)

public WarfareVehicle? DeregisterWarfareVehicle(InteractableVehicle vehicle)

Parameters

vehicle InteractableVehicle

Returns

WarfareVehicle

GetVehicle(InteractableVehicle)

public WarfareVehicle GetVehicle(InteractableVehicle vehicle)

Parameters

vehicle InteractableVehicle

Returns

WarfareVehicle

HandleEvent(VehicleDespawned, IServiceProvider)

public void HandleEvent(VehicleDespawned e, IServiceProvider serviceProvider)

Parameters

e VehicleDespawned
serviceProvider IServiceProvider

RefillTrunkItems(WarfareVehicle, IReadOnlyCollection<TrunkItem>, bool)

public void RefillTrunkItems(WarfareVehicle warfareVehicle, IReadOnlyCollection<WarfareVehicleInfo.TrunkItem> trunkItems, bool dropItemsOnGroundIfNoSpace = true)

Parameters

warfareVehicle WarfareVehicle
trunkItems IReadOnlyCollection<WarfareVehicleInfo.TrunkItem>
dropItemsOnGroundIfNoSpace bool

RegisterWarfareVehicle(InteractableVehicle)

public WarfareVehicle RegisterWarfareVehicle(InteractableVehicle vehicle)

Parameters

vehicle InteractableVehicle

Returns

WarfareVehicle

Spawn a vehicle with the given information.

public UniTask<WarfareVehicle> SpawnVehicleAsync(IAssetLink<VehicleAsset> vehicle, Vector3 position, Quaternion rotation, CSteamID owner = default, CSteamID group = default, Color32 paintColor = default, bool locked = true, CancellationToken token = default)

Parameters

vehicle IAssetLink<VehicleAsset>
position Vector3
rotation Quaternion
owner CSteamID
group CSteamID
paintColor Color32
locked bool
token CancellationToken

Returns

UniTask<WarfareVehicle>

Exceptions

AssetNotFoundException

Unable to find the vehicle asset.

Exception

Game failed to spawn the vehicle.

SpawnVehicleAsync(VehicleSpawner, CancellationToken)

Spawn a vehicle at a given vehicle spawner.

public UniTask<WarfareVehicle> SpawnVehicleAsync(VehicleSpawner spawner, CancellationToken token = default)

Parameters

spawner VehicleSpawner
token CancellationToken

Returns

UniTask<WarfareVehicle>

Exceptions

AssetNotFoundException

Unable to find the vehicle asset.

NotSupportedException

There's already a linked vehicle to the spawner.

RecordsNotFoundException

Unable to find any WarfareVehicleInfo for the vehicle.

InvalidOperationException

The spawner buildable doesn't exist. -OR- Failed to unlink or link the vehicle to it's spawn.

Exception

Game failed to spawn the vehicle.

TryMovePlayerToEmptySeat(WarfarePlayer)

public UniTask<bool> TryMovePlayerToEmptySeat(WarfarePlayer player)

Parameters

player WarfarePlayer

Returns

UniTask<bool>