Exemplo n.º 1
0
        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;
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
 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
             });
         }
     }
 }
Exemplo n.º 4
0
 public override string GetStopName(ushort stopId, WTSLine lineObj)
 => TLMFacade.GetFullStationName(
     stopId,
     (ushort)lineObj.lineId,
Exemplo n.º 5
0
        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));
        }
Exemplo n.º 6
0
        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")));
            }
Exemplo n.º 7
0
 internal abstract Color GetLineColor(WTSLine lineObj);
Exemplo n.º 8
0
 internal abstract string GetLineName(WTSLine lineObj);
Exemplo n.º 9
0
 public abstract void MapLineDestinations(WTSLine lineObj);
Exemplo n.º 10
0
 public abstract string GetLineIdString(WTSLine lineObj);
Exemplo n.º 11
0
 public abstract string GetLineSortString(WTSLine lineObj);
Exemplo n.º 12
0
 public abstract string GetStopName(ushort stopId, WTSLine lineObj);
Exemplo n.º 13
0
 public abstract ushort GetStopBuildingInternal(ushort stopId, WTSLine lineObj);
Exemplo n.º 14
0
 public abstract Tuple <string, Color, string> GetLineLogoParameters(WTSLine lineObj);
Exemplo n.º 15
0
 public ITransportLineItemCache GetATransportLine(WTSLine id) => id.regional ? GetIntercityTransportLine(id.lineId) : (ITransportLineItemCache)GetCityTransportLine(id.lineId);