internal void PurgeLine(WTSLine line) { string id = $"{line.ToExternalRefId()}"; if (!(m_transportLineAtlas[id] is null)) { m_transportLineAtlas.Remove(id); } (line.regional ? RegionalTransportLineCache : TransportLineCache).Remove(line.lineId); TransportIsDirty = true; }
protected static void FillStops(WTSLine lineObj, List <BridgeTLM.DestinationPoco> destinations) { if (destinations.Count == 0) { return; } var firstStop = destinations[0].stopId; var curStop = firstStop; var nextStop = TransportLine.GetNextStop(curStop); ushort prevStop = TransportLine.GetPrevStop(curStop); var destinationId = destinations[1 % destinations.Count].stopId; var destinationStr = destinations[1 % destinations.Count].stopName; var buildingSing = WriteTheSignsMod.Controller.BuildingPropsSingleton; do { var destinationInfo = destinations.Where(x => x.stopId == curStop).FirstOrDefault(); if (!(destinationInfo is null)) { var nextDest = destinations.IndexOf(destinationInfo) + 1; destinationId = destinations[nextDest % destinations.Count].stopId; destinationStr = destinations[nextDest % destinations.Count].stopName; if (destinationStr is null) { destinationStr = WriteTheSignsMod.Controller.ConnectorTLM.GetStopName(destinationId, lineObj); } } buildingSing.m_stopInformation[curStop] = new Xml.StopInformation { m_lineId = (ushort)lineObj.lineId, m_regionalLine = lineObj.regional, m_destinationId = destinationId, m_nextStopId = nextStop, m_previousStopId = prevStop, m_stopId = curStop, m_destinationString = destinationStr }; // LogUtils.DoWarnLog($"([{tl.m_lineNumber}] - {tl.Info}){buildingSing.m_stopInformation[curStop] } || { GetStopName(curStop, lineId)} || FS={firstStop} ({startStation}-{endStation})"); prevStop = curStop; curStop = nextStop; nextStop = TransportLine.GetNextStop(nextStop); } while (curStop != 0 && curStop != firstStop); }
public static void ClearCacheLineName(WTSLine line) { if (line.regional) { if (instance.m_cacheIntercityTransportLines.TryGetValue(line.lineId, out IntercityTransportLineItemCache cache)) { cache.PurgeCache(CacheErasingFlags.LineName, new InstanceID { NetNode = line.lineId }); } } else { if (instance.m_cacheTransportLines.TryGetValue(line.lineId, out CityTransportLineItemCache cache)) { cache.PurgeCache(CacheErasingFlags.LineName, new InstanceID { TransportLine = line.lineId }); } } }
public override string GetStopName(ushort stopId, WTSLine lineObj) => TLMFacade.GetFullStationName( stopId, (ushort)lineObj.lineId,
public override Tuple <string, Color, string> GetLineLogoParameters(WTSLine lineObj) { var result = TLMFacade.GetIconStringParameters((ushort)lineObj.lineId, lineObj.regional); return(Tuple.New(result.First, result.Second, result.Third)); }
public override Tuple <string, Color, string> GetLineLogoParameters(WTSLine lineObj) { if (!lineObj.regional) { Color lineColor = TransportManager.instance.GetLineColor((ushort)lineObj.lineId); LineIconSpriteNames lineIcon; switch (TransportManager.instance.m_lines.m_buffer[lineObj.lineId].Info.m_transportType) { case TransportInfo.TransportType.Bus: lineIcon = LineIconSpriteNames.K45_HexagonIcon; break; case TransportInfo.TransportType.Trolleybus: lineIcon = LineIconSpriteNames.K45_OvalIcon; break; case TransportInfo.TransportType.Helicopter: lineIcon = LineIconSpriteNames.K45_S05StarIcon; break; case TransportInfo.TransportType.Metro: lineIcon = LineIconSpriteNames.K45_SquareIcon; break; case TransportInfo.TransportType.Train: lineIcon = LineIconSpriteNames.K45_CircleIcon; break; case TransportInfo.TransportType.Ship: if (TransportManager.instance.m_lines.m_buffer[lineObj.lineId].Info.m_vehicleType == VehicleInfo.VehicleType.Ferry) { lineIcon = LineIconSpriteNames.K45_S08StarIcon; } else { lineIcon = LineIconSpriteNames.K45_DiamondIcon; } break; case TransportInfo.TransportType.Airplane: if (TransportManager.instance.m_lines.m_buffer[lineObj.lineId].Info.m_vehicleType == VehicleInfo.VehicleType.Blimp) { lineIcon = LineIconSpriteNames.K45_ParachuteIcon; } else { lineIcon = LineIconSpriteNames.K45_PentagonIcon; } break; case TransportInfo.TransportType.Tram: lineIcon = LineIconSpriteNames.K45_TrapezeIcon; break; case TransportInfo.TransportType.EvacuationBus: lineIcon = LineIconSpriteNames.K45_CrossIcon; break; case TransportInfo.TransportType.Monorail: lineIcon = LineIconSpriteNames.K45_RoundedSquareIcon; break; case TransportInfo.TransportType.Pedestrian: lineIcon = LineIconSpriteNames.K45_MountainIcon; break; case TransportInfo.TransportType.TouristBus: lineIcon = LineIconSpriteNames.K45_CameraIcon; break; default: lineIcon = LineIconSpriteNames.K45_S05StarIcon; break; } return(Tuple.New(KlyteResourceLoader.GetDefaultSpriteNameFor(lineIcon), lineColor, TransportManager.instance.m_lines.m_buffer[lineObj.lineId].m_lineNumber.ToString())); } else { ref NetNode node = ref NetManager.instance.m_nodes.m_buffer[lineObj.lineId]; return(Tuple.New(KlyteResourceLoader.GetDefaultSpriteNameFor(LineIconSpriteNames.K45_S10StarIcon), Color.gray, lineObj.lineId.ToString("00\n000"))); }
internal abstract Color GetLineColor(WTSLine lineObj);
internal abstract string GetLineName(WTSLine lineObj);
public abstract void MapLineDestinations(WTSLine lineObj);
public abstract string GetLineIdString(WTSLine lineObj);
public abstract string GetLineSortString(WTSLine lineObj);
public abstract string GetStopName(ushort stopId, WTSLine lineObj);
public abstract ushort GetStopBuildingInternal(ushort stopId, WTSLine lineObj);
public abstract Tuple <string, Color, string> GetLineLogoParameters(WTSLine lineObj);
public ITransportLineItemCache GetATransportLine(WTSLine id) => id.regional ? GetIntercityTransportLine(id.lineId) : (ITransportLineItemCache)GetCityTransportLine(id.lineId);