public static void LogInfo(string message, params object[] args) { var msg = Prefix + String.Format(message, args); Debug.Log(msg); //if (inGameDebug) // DebugOutputPanel.AddMessage(PluginManager.MessageType.Message, msg); }
public override void OnLoadData() { if ((CSLTraffic.Options & OptionsManager.ModOptions.BetaTestRoadCustomizerTool) == OptionsManager.ModOptions.None || (CSLTraffic.Options & OptionsManager.ModOptions.GhostMode) == OptionsManager.ModOptions.GhostMode) { return; } Logger.LogInfo("Loading road data. Time: " + Time.realtimeSinceStartup); byte[] data = serializableDataManager.LoadData(LANE_DATA_ID); if (data == null) { Logger.LogInfo("No road data to load."); return; } MemoryStream memStream = new MemoryStream(); memStream.Write(data, 0, data.Length); memStream.Position = 0; BinaryFormatter binaryFormatter = new BinaryFormatter(); try { RoadManager.sm_lanes = (Lane[])binaryFormatter.Deserialize(memStream); FastList <ushort> nodesList = new FastList <ushort>(); foreach (Lane lane in RoadManager.sm_lanes) { if (lane == null) { continue; } if ((CSLTraffic.Options & OptionsManager.ModOptions.FixCargoTrucksNotSpawning) == OptionsManager.ModOptions.FixCargoTrucksNotSpawning && lane.m_vehicleTypes == (VehicleType.ServiceVehicles | VehicleType.PassengerCar)) { lane.m_vehicleTypes = VehicleType.All; } lane.UpdateArrows(); if (lane.ConnectionCount() > 0) { nodesList.Add(lane.m_nodeId); } if (lane.m_speed == 0) { NetSegment segment = NetManager.instance.m_segments.m_buffer[NetManager.instance.m_lanes.m_buffer[lane.m_laneId].m_segment]; NetInfo info = segment.Info; uint l = segment.m_lanes; int n = 0; while (l != lane.m_laneId && n < info.m_lanes.Length) { l = NetManager.instance.m_lanes.m_buffer[l].m_nextLane; n++; } if (n < info.m_lanes.Length) { lane.m_speed = info.m_lanes[n].m_speedLimit; } } } RoadCustomizerTool customizerTool = ToolsModifierControl.GetTool <RoadCustomizerTool>(); foreach (ushort nodeId in nodesList) { customizerTool.SetNodeMarkers(nodeId); } Logger.LogInfo("Finished loading road data. Time: " + Time.realtimeSinceStartup); } catch (Exception e) { Logger.LogError("Unexpected " + e.GetType().Name + " loading road data."); } finally { memStream.Close(); } }