Vector3 getStation(ushort lineId, ushort stopId, ItemClass.SubService ss, out string stationName, out List <ushort> linhas, out string airport, out string harbor, out string taxiStand, out string regionalTrainStation, out string cableCarStation, out string prefix) { NetManager nm = Singleton <NetManager> .instance; BuildingManager bm = Singleton <BuildingManager> .instance; NetNode nn = nm.m_nodes.m_buffer[(int)stopId]; stationName = TLMLineUtils.getStationName(stopId, lineId, ss, out ItemClass.Service servFound, out ItemClass.SubService subServFound, out prefix, out ushort buildingId); //paradas proximas (metro e trem) TransportManager tm = Singleton <TransportManager> .instance; TransportInfo thisLineInfo = tm.m_lines.m_buffer[(int)nn.m_transportLine].Info; TransportLine thisLine = tm.m_lines.m_buffer[(int)nn.m_transportLine]; linhas = new List <ushort>(); Vector3 location = nn.m_position; if (buildingId > 0 && ss == subServFound) { location = Singleton <BuildingManager> .instance.m_buildings.m_buffer[buildingId].CalculateSidewalkPosition(); } TLMLineUtils.GetNearLines(location, 120f, ref linhas); airport = String.Empty; taxiStand = String.Empty; harbor = String.Empty; regionalTrainStation = String.Empty; cableCarStation = string.Empty; if (TLMCW.getCurrentConfigBool(TLMCW.ConfigIndex.TRAIN_SHOW_IN_LINEAR_MAP)) { ushort trainStation = TLMUtils.FindBuilding(location != Vector3.zero ? location : nn.m_position, 120f, ItemClass.Service.PublicTransport, ItemClass.SubService.PublicTransportTrain, null, Building.Flags.None, Building.Flags.Untouchable | Building.Flags.Downgrading); if (trainStation > 0) { InstanceID iid = default(InstanceID); iid.Building = trainStation; regionalTrainStation = bm.GetBuildingName(trainStation, iid); } } if (TLMCW.getCurrentConfigBool(TLMCW.ConfigIndex.PLANE_SHOW_IN_LINEAR_MAP)) { ushort airportId = TLMUtils.FindBuilding(location != Vector3.zero ? location : nn.m_position, 120f, ItemClass.Service.PublicTransport, ItemClass.SubService.PublicTransportPlane, new TransferManager.TransferReason[] { TransferManager.TransferReason.PassengerPlane }, Building.Flags.None, Building.Flags.Untouchable); if (airportId > 0) { InstanceID iid = default(InstanceID); iid.Building = airportId; airport = bm.GetBuildingName(airportId, iid); } } if (TLMCW.getCurrentConfigBool(TLMCW.ConfigIndex.SHIP_SHOW_IN_LINEAR_MAP)) { ushort harborId = TLMUtils.FindBuilding(location != Vector3.zero ? location : nn.m_position, 120f, ItemClass.Service.PublicTransport, ItemClass.SubService.PublicTransportShip, new TransferManager.TransferReason[] { TransferManager.TransferReason.PassengerShip }, Building.Flags.None, Building.Flags.Untouchable); if (harborId > 0) { InstanceID iid = default(InstanceID); iid.Building = harborId; harbor = bm.GetBuildingName(harborId, iid); } } if (TLMCW.getCurrentConfigBool(TLMCW.ConfigIndex.TAXI_SHOW_IN_LINEAR_MAP)) { ushort taxiId = TLMUtils.FindBuilding(location != Vector3.zero ? location : nn.m_position, 50f, ItemClass.Service.PublicTransport, ItemClass.SubService.PublicTransportTaxi, null, Building.Flags.None, Building.Flags.Untouchable); if (taxiId > 0) { InstanceID iid = default(InstanceID); iid.Building = taxiId; taxiStand = bm.GetBuildingName(taxiId, iid); } } if (TLMCW.getCurrentConfigBool(TLMCW.ConfigIndex.CABLE_CAR_SHOW_IN_LINEAR_MAP)) { ushort cableCarId = TLMUtils.FindBuilding(location != Vector3.zero ? location : nn.m_position, 120f, ItemClass.Service.PublicTransport, ItemClass.SubService.PublicTransportCableCar, null, Building.Flags.None, Building.Flags.Untouchable); if (cableCarId > 0) { InstanceID iid = default(InstanceID); iid.Building = cableCarId; cableCarStation = bm.GetBuildingName(cableCarId, iid); } } return(location); }