public static bool ClearLaneConnections(uint laneId) { bool result = false; Lane lane = GetLane(laneId); if (lane != null) { result = true; foreach (uint connectionId in GetLaneConnections(laneId)) { result &= lane.RemoveConnection(connectionId); } ToolsModifierControl.GetTool <RoadCustomizerTool>().SetNodeMarkers(lane.m_nodeId, true); } return(result); }
public static Lane CreateLane(uint laneId) { Lane lane = new Lane() { m_laneId = laneId }; NetSegment segment = NetManager.instance.m_segments.m_buffer[NetManager.instance.m_lanes.m_buffer[laneId].m_segment]; NetInfo netInfo = segment.Info; int laneCount = netInfo.m_lanes.Length; int laneIndex = 0; for (uint l = segment.m_lanes; laneIndex < laneCount && l != 0; laneIndex++) { if (l == laneId) { break; } l = NetManager.instance.m_lanes.m_buffer[l].m_nextLane; } if (laneIndex < laneCount) { NetInfoLane netInfoLane = netInfo.m_lanes[laneIndex] as NetInfoLane; if (netInfoLane != null) { lane.m_vehicleTypes = netInfoLane.m_allowedVehicleTypes; } lane.m_speed = netInfo.m_lanes[laneIndex].m_speedLimit; } NetManager.instance.m_lanes.m_buffer[laneId].m_flags |= Lane.CONTROL_BIT; sm_lanes[laneId] = lane; return(lane); }
public static bool CheckLaneConnection(this NetInfo.Lane laneInfo, ExtendedVehicleType vehicleType, uint from, uint to) { if ((vehicleType & sm_routedUnits) == 0) { return(true); } if ((laneInfo.m_vehicleType & VehicleInfo.VehicleType.Car) == VehicleInfo.VehicleType.None) { return(true); } // Quick fix for tram if ((laneInfo.m_vehicleType & VehicleInfo.VehicleType.Tram) != VehicleInfo.VehicleType.None) { return(true); } Lane lane = GetLane(from); return(lane.ConnectsTo(to)); }
public static bool CheckLaneConnection(uint from, uint to) { Lane lane = GetLane(from); return(lane.ConnectsTo(to)); }
public static uint[] GetLaneConnections(uint laneId) { Lane lane = GetLane(laneId); return(lane.GetConnectionsAsArray()); }
public static bool RemoveLaneConnection(uint laneId, uint connectionId) { Lane lane = GetLane(laneId); return(lane.RemoveConnection(connectionId)); }