Table of Contents

Class TrainsSimulation

Namespace
Game.Core.Trains
Assembly
Game.Content.dll
public class TrainsSimulation : IUpdatableSimulation, ISimulation
Inheritance
object
TrainsSimulation
Implements
Extension Methods

Constructors

TrainsSimulation(Ticks, TrainSimulationConfigs, TrainIslandCollection<IIslandDefinition>, IEnumerable<IIslandDefinition>, IReadOnlyRailColorRegistry, TrainsWagonCargo)

public TrainsSimulation(Ticks initialSimulationTime, TrainSimulationConfigs trainSimulationConfigs, TrainIslandCollection<IIslandDefinition> islands, IEnumerable<IIslandDefinition> rails, IReadOnlyRailColorRegistry railColorRegistry, TrainsWagonCargo trainsWagonCargo)

Parameters

initialSimulationTime Ticks
trainSimulationConfigs TrainSimulationConfigs
islands TrainIslandCollection<IIslandDefinition>
rails IEnumerable<IIslandDefinition>
railColorRegistry IReadOnlyRailColorRegistry
trainsWagonCargo TrainsWagonCargo

Fields

TrainsNavigationSimulator

public readonly TrainsNavigationSimulator TrainsNavigationSimulator

Field Value

TrainsNavigationSimulator

TrainsProductionSimulator

public readonly TrainsProductionSimulator TrainsProductionSimulator

Field Value

TrainsProductionSimulator

TrainsWagonCargo

public readonly TrainsWagonCargo TrainsWagonCargo

Field Value

TrainsWagonCargo

Properties

BuiltInWagonStates

[Obsolete]
public BuiltinWagonStates BuiltInWagonStates { get; }

Property Value

BuiltinWagonStates

NavigationPredictor

public ITrainNavigationPredictor NavigationPredictor { get; }

Property Value

ITrainNavigationPredictor

TrainSimulationTimeTracker

public ISimulationTimeProvider TrainSimulationTimeTracker { get; }

Property Value

ISimulationTimeProvider

Methods

AddCargoWagonFactory<TCargoData>(GlobalChunkCoordinate, ChunkDirection)

public void AddCargoWagonFactory<TCargoData>(GlobalChunkCoordinate coordinate, ChunkDirection direction) where TCargoData : IWagonCargoData

Parameters

coordinate GlobalChunkCoordinate
direction ChunkDirection

Type Parameters

TCargoData

AddCustomNavigationCoordinatorAfter<TComparedCoordinator, TCoordinator>(TCoordinator)

public void AddCustomNavigationCoordinatorAfter<TComparedCoordinator, TCoordinator>(TCoordinator coordinator) where TCoordinator : ITrainSimulationCoordinator, ITrainSimulationNavigationCoordinator

Parameters

coordinator TCoordinator

Type Parameters

TComparedCoordinator
TCoordinator

AddCustomNavigationCoordinatorBefore<TComparedCoordinator, TCoordinator>(TCoordinator)

public void AddCustomNavigationCoordinatorBefore<TComparedCoordinator, TCoordinator>(TCoordinator coordinator) where TCoordinator : ITrainSimulationCoordinator, ITrainSimulationNavigationCoordinator

Parameters

coordinator TCoordinator

Type Parameters

TComparedCoordinator
TCoordinator

AddCustomNavigationEventProcessor(INavigationEventProcessor)

public void AddCustomNavigationEventProcessor(INavigationEventProcessor navigationEventProcessor)

Parameters

navigationEventProcessor INavigationEventProcessor

AddFillerWagonFactory(GlobalChunkCoordinate, ChunkDirection)

public void AddFillerWagonFactory(GlobalChunkCoordinate coordinate, ChunkDirection direction)

Parameters

coordinate GlobalChunkCoordinate
direction ChunkDirection

AddIsland(IslandInstance)

public bool AddIsland(IslandInstance island)

Parameters

island IslandInstance

Returns

bool

AddTrainProducer(GlobalChunkCoordinate, GlobalChunkPivot, GlobalChunkPivot, RailColor)

public void AddTrainProducer(GlobalChunkCoordinate trainSpawnerLocation, GlobalChunkPivot input, GlobalChunkPivot output, RailColor color)

Parameters

trainSpawnerLocation GlobalChunkCoordinate
input GlobalChunkPivot
output GlobalChunkPivot
color RailColor

ClearContent()

public void ClearContent()

DestroyTrainFromTheOutside(TrainId)

[Obsolete("Temporary solution. This should be refactored in a way that we pass the lifetime to the event processors")]
public void DestroyTrainFromTheOutside(TrainId trainId)

Parameters

trainId TrainId

Dispose()

public void Dispose()

FindTrainWagonByIndex_Slow(TrainId, int)

public TrainWagonId FindTrainWagonByIndex_Slow(TrainId train, int wagonIdx)

Parameters

train TrainId
wagonIdx int

Returns

TrainWagonId

GetAllCargoOfType<T>(TrainId, ICollection<WagonCargoWithLocator<T>>)

public void GetAllCargoOfType<T>(TrainId trainId, ICollection<WagonCargoWithLocator<T>> collection) where T : IWagonCargoData

Parameters

trainId TrainId
collection ICollection<WagonCargoWithLocator<T>>

Type Parameters

T

GetAllTrains(Allocator)

public NativeArray<TrainId> GetAllTrains(Allocator allocator)

Parameters

allocator Allocator

Returns

NativeArray<TrainId>

GetDebugData(TrainId)

public TrainSimulationDebugData GetDebugData(TrainId id)

Parameters

id TrainId

Returns

TrainSimulationDebugData

GetTrainData(TrainId)

public TrainData GetTrainData(TrainId id)

Parameters

id TrainId

Returns

TrainData

GetTrainsProducedByProducerAt<TCollection>(GlobalChunkCoordinate, TCollection)

public void GetTrainsProducedByProducerAt<TCollection>(GlobalChunkCoordinate producerPosition, TCollection trainIds) where TCollection : ICollection<TrainId>

Parameters

producerPosition GlobalChunkCoordinate
trainIds TCollection

Type Parameters

TCollection

IsCargoIdOfType<TCargo>(TrainWagonCargoTypeId)

public bool IsCargoIdOfType<TCargo>(TrainWagonCargoTypeId typeId) where TCargo : IWagonCargoData

Parameters

typeId TrainWagonCargoTypeId

Returns

bool

Type Parameters

TCargo

IsProducerConfiguredCorrectly(GlobalChunkCoordinate)

public bool IsProducerConfiguredCorrectly(GlobalChunkCoordinate producerPosition)

Parameters

producerPosition GlobalChunkCoordinate

Returns

bool

IsWagonTransportingCargoOfType<T>(TrainId, int, out T)

public bool IsWagonTransportingCargoOfType<T>(TrainId train, int wagonIdx, out T cargo) where T : IWagonCargoData

Parameters

train TrainId
wagonIdx int
cargo T

Returns

bool

Type Parameters

T

IsWagonTransportingCargoOfType<T>(TrainWagonId, out T)

public bool IsWagonTransportingCargoOfType<T>(TrainWagonId wagonId, out T cargo) where T : IWagonCargoData

Parameters

wagonId TrainWagonId
cargo T

Returns

bool

Type Parameters

T

RegisterWagonCargo<TWagonCargoData>(IFactory<TWagonCargoData>)

public TrainWagonCargoTypeId RegisterWagonCargo<TWagonCargoData>(IFactory<TWagonCargoData> factory) where TWagonCargoData : class, IWagonCargoData

Parameters

factory IFactory<TWagonCargoData>

Returns

TrainWagonCargoTypeId

Type Parameters

TWagonCargoData

RemoveCargoWagonFactory(GlobalChunkCoordinate)

public void RemoveCargoWagonFactory(GlobalChunkCoordinate coordinate)

Parameters

coordinate GlobalChunkCoordinate

RemoveCustomNavigationCoordinator<TCoordinator>(TCoordinator)

public void RemoveCustomNavigationCoordinator<TCoordinator>(TCoordinator jumpCoordinator) where TCoordinator : ITrainSimulationCoordinator, ITrainSimulationNavigationCoordinator

Parameters

jumpCoordinator TCoordinator

Type Parameters

TCoordinator

RemoveCustomNavigationEventProcessor(INavigationEventProcessor)

public void RemoveCustomNavigationEventProcessor(INavigationEventProcessor navigationEventProcessor)

Parameters

navigationEventProcessor INavigationEventProcessor

RemoveIsland(IslandInstance)

public bool RemoveIsland(IslandInstance island)

Parameters

island IslandInstance

Returns

bool

RemoveTrainProducerAt(GlobalChunkCoordinate, GlobalChunkPivot)

public void RemoveTrainProducerAt(GlobalChunkCoordinate position, GlobalChunkPivot output)

Parameters

position GlobalChunkCoordinate
output GlobalChunkPivot

RespawnProducerTrains(GlobalChunkCoordinate)

public void RespawnProducerTrains(GlobalChunkCoordinate producerPosition)

Parameters

producerPosition GlobalChunkCoordinate

RestoreCargo<TCargo>(TrainId, int, TCargo)

public void RestoreCargo<TCargo>(TrainId trainId, int wagonIdx, TCargo cargo) where TCargo : IWagonCargoData

Parameters

trainId TrainId
wagonIdx int
cargo TCargo

Type Parameters

TCargo

RestoreSimulationTime(Ticks)

public void RestoreSimulationTime(Ticks trainSimulationTime)

Parameters

trainSimulationTime Ticks

RestoreTrainFromState(TrainState, out TrainId)

public bool RestoreTrainFromState(TrainState state, out TrainId trainId)

Parameters

state TrainState
trainId TrainId

Returns

bool

StoreTrainDataIntoState(TrainId)

public TrainState StoreTrainDataIntoState(TrainId id)

Parameters

id TrainId

Returns

TrainState

TimeBetweenTrainSpawns()

public float TimeBetweenTrainSpawns()

Returns

float

TrainProducerPositions(Allocator)

public NativeArray<GlobalChunkCoordinate> TrainProducerPositions(Allocator allocator)

Parameters

allocator Allocator

Returns

NativeArray<GlobalChunkCoordinate>

TrainWagonFactoryPositions(Allocator)

public NativeArray<GlobalChunkCoordinate> TrainWagonFactoryPositions(Allocator allocator)

Parameters

allocator Allocator

Returns

NativeArray<GlobalChunkCoordinate>

TryGetTrainProducerData(GlobalChunkCoordinate, out TrainProducerData)

public bool TryGetTrainProducerData(GlobalChunkCoordinate coordinate, out TrainProducerData trainData)

Parameters

coordinate GlobalChunkCoordinate
trainData TrainProducerData

Returns

bool

TryGetWagonFactoryData(GlobalChunkCoordinate, out WagonFactoryChainData)

public bool TryGetWagonFactoryData(GlobalChunkCoordinate coordinate, out WagonFactoryChainData wagonFactoryData)

Parameters

coordinate GlobalChunkCoordinate
wagonFactoryData WagonFactoryChainData

Returns

bool

Update(Ticks, Ticks)

public void Update(Ticks startTicks, Ticks deltaTicks)

Parameters

startTicks Ticks
deltaTicks Ticks