public override Dictionary <TransferManager.TransferReason, Tuple <VehicleInfo.VehicleType, bool, bool> > GetManagedReasons(CargoStationAI ai, TransferManager.TransferOffer offer) { List <VehicleInfo.VehicleType> allowedTypes = new List <VehicleInfo.VehicleType>(); DepotAIOverrides.AddAllowedType(ai?.m_transportInfo?.m_transportType, allowedTypes); DepotAIOverrides.AddAllowedType(ai?.m_transportInfo2?.m_transportType, allowedTypes); IEnumerable <KeyValuePair <TransferManager.TransferReason, Tuple <VehicleInfo.VehicleType, bool, bool> > > result = new Dictionary <TransferManager.TransferReason, Tuple <VehicleInfo.VehicleType, bool, bool> >(); foreach (var type in allowedTypes) { switch (type) { case VehicleInfo.VehicleType.Train: result = result.Union(reasonsTrain); break; case VehicleInfo.VehicleType.Ship: result = result.Union(reasonsShip); break; case VehicleInfo.VehicleType.Plane: result = result.Union(reasonsPlane); break; } } return(result.ToDictionary(x => x.Key, x => x.Value)); }
public override bool AllowVehicleType(VehicleInfo.VehicleType type, TransportStationAI ai) { List <VehicleInfo.VehicleType> allowedTypes = new List <VehicleInfo.VehicleType>(); DepotAIOverrides.AddAllowedType(ai?.m_transportInfo?.m_transportType, allowedTypes); DepotAIOverrides.AddAllowedType(ai?.m_secondaryTransportInfo?.m_transportType, allowedTypes); return(allowedTypes.Contains(type)); }