public static void doAutomation(ushort lineID, TransportLine.Flags __state) { TLMUtils.doLog("OLD: " + __state + " ||| NEW: " + Singleton <TransportManager> .instance.m_lines.m_buffer[lineID].m_flags); if (lineID > 0 && (__state & TransportLine.Flags.Complete) == TransportLine.Flags.None && (__state & TransportLine.Flags.Temporary) == TransportLine.Flags.None) { if ((Singleton <TransportManager> .instance.m_lines.m_buffer[lineID].m_flags & TransportLine.Flags.Complete) != TransportLine.Flags.None && (Singleton <TransportManager> .instance.m_lines.m_buffer[lineID].m_flags & (TransportLine.Flags.Temporary)) == TransportLine.Flags.None) { if (TLMConfigWarehouse.getCurrentConfigBool(TLMConfigWarehouse.ConfigIndex.AUTO_COLOR_ENABLED)) { TLMController.instance.AutoColor(lineID); } if (TLMConfigWarehouse.getCurrentConfigBool(TLMConfigWarehouse.ConfigIndex.AUTO_NAME_ENABLED)) { TLMController.instance.AutoName(lineID); } TLMController.instance.LineCreationToolbox.incrementNumber(); TLMTransportLineExtension.instance.SafeCleanEntry(lineID); } } if ((Singleton <TransportManager> .instance.m_lines.m_buffer[lineID].m_flags & TransportLine.Flags.Complete) == TransportLine.Flags.None && (Singleton <TransportManager> .instance.m_lines.m_buffer[lineID].m_flags & TransportLine.Flags.CustomColor) != TransportLine.Flags.None ) { Singleton <TransportManager> .instance.m_lines.m_buffer[lineID].m_flags &= ~TransportLine.Flags.CustomColor; } }
public static void DoAutomation(ushort lineID, TransportLine.Flags __state) { LogUtils.DoLog("OLD: " + __state + " ||| NEW: " + Singleton <TransportManager> .instance.m_lines.m_buffer[lineID].m_flags); if (lineID > 0 && (__state & TransportLine.Flags.Complete) == TransportLine.Flags.None && (__state & TransportLine.Flags.Temporary) == TransportLine.Flags.None) { if ((Singleton <TransportManager> .instance.m_lines.m_buffer[lineID].m_flags & TransportLine.Flags.Complete) != TransportLine.Flags.None && (Singleton <TransportManager> .instance.m_lines.m_buffer[lineID].m_flags & (TransportLine.Flags.Temporary)) == TransportLine.Flags.None) { if (TLMBaseConfigXML.Instance.UseAutoColor) { TLMController.AutoColor(lineID); } if (TLMBaseConfigXML.Instance.UseAutoName) { TLMController.AutoName(lineID); } TLMController.Instance.LineCreationToolbox.IncrementNumber(); } } if ((Singleton <TransportManager> .instance.m_lines.m_buffer[lineID].m_flags & TransportLine.Flags.Complete) == TransportLine.Flags.None) { Singleton <TransportManager> .instance.m_lines.m_buffer[lineID].m_flags &= ~TransportLine.Flags.CustomColor; TLMTransportLineExtension.Instance.SafeCleanEntry(lineID); } }
private void ExportRoutes() { TransportManager transportManager = Singleton <TransportManager> .instance; TransportLine[] transportLines = transportManager.m_lines.m_buffer; foreach (TransportLine line in transportLines) { TransportLine.Flags lineFlags = line.m_flags; if (lineFlags.IsFlagSet(TransportLine.Flags.Created)) { List <OSMNode> generatedLines = CreateTransportLine(unindexedNodeOffset++, line); if (generatedLines != null) { osmNodes.AddRange(generatedLines); } } } }
public static void preDoAutomation(ushort lineID, ref TransportLine.Flags __state) { __state = Singleton <TransportManager> .instance.m_lines.m_buffer[lineID].m_flags; }
protected override void SimulationStepImpl(int subStep) { if (this.m_linesUpdated) { this.m_linesUpdated = false; int num = this.m_updatedLines.Length; for (int i = 0; i < num; i++) { ulong num2 = this.m_updatedLines[i]; if (num2 != 0uL) { for (int j = 0; j < 64; j++) { if ((num2 & 1uL << j) != 0uL) { ushort num3 = (ushort)(i << 6 | j); if (this.m_lines.m_buffer[(int)num3].m_flags != TransportLine.Flags.None) { if (BusTransportLineAI.UpdatePaths(ref this.m_lines.m_buffer[(int)num3], num3) && BusTransportLineAI.UpdateMeshData(ref this.m_lines.m_buffer[(int)num3], num3)) //if (this.m_lines.m_buffer[(int)num3].UpdatePaths(num3) && this.m_lines.m_buffer[(int)num3].UpdateMeshData(num3)) { num2 &= ~(1uL << j); } } else { num2 &= ~(1uL << j); } } } this.m_updatedLines[i] = num2; if (num2 != 0uL) { this.m_linesUpdated = true; } } } } if (this.m_patchesDirty) { this.m_patchesDirty = false; int num4 = this.m_patches.Length; for (int k = 0; k < num4; k++) { TransportPatch transportPatch = this.m_patches[k]; int num5 = 0; while (transportPatch != null) { if (transportPatch.m_isDirty) { transportPatch.UpdateMeshData(); } transportPatch = transportPatch.m_nextPatch; if (++num5 >= 100) { CODebugBase <LogChannel> .Error(LogChannel.Core, "Invalid list detected!\n" + Environment.StackTrace); break; } } } } if (subStep != 0) { int num6 = (int)(Singleton <SimulationManager> .instance.m_currentFrameIndex & 255u); int num7 = num6 * 1; int num8 = (num6 + 1) * 1 - 1; for (int l = num7; l <= num8; l++) { TransportLine.Flags flags = this.m_lines.m_buffer[l].m_flags; if ((flags & (TransportLine.Flags.Created | TransportLine.Flags.Temporary)) == TransportLine.Flags.Created) { this.m_lines.m_buffer[l].SimulationStep((ushort)l); } } if ((Singleton <SimulationManager> .instance.m_currentFrameIndex & 4095u) == 0u) { StatisticsManager instance = Singleton <StatisticsManager> .instance; StatisticBase statisticBase = instance.Acquire <StatisticArray>(StatisticType.AveragePassengers); for (int m = 0; m < 5; m++) { this.m_passengers[m].Update(); this.m_passengers[m].Reset(); statisticBase.Acquire <StatisticInt32>(m, 5).Set((int)(this.m_passengers[m].m_residentPassengers.m_averageCount + this.m_passengers[m].m_touristPassengers.m_averageCount)); } } } if (subStep <= 1) { int num9 = (int)(Singleton <SimulationManager> .instance.m_currentTickIndex & 1023u); int num10 = num9 * PrefabCollection <TransportInfo> .PrefabCount() >> 10; int num11 = ((num9 + 1) * PrefabCollection <TransportInfo> .PrefabCount() >> 10) - 1; for (int n = num10; n <= num11; n++) { TransportInfo prefab = PrefabCollection <TransportInfo> .GetPrefab((uint)n); if (prefab != null) { MilestoneInfo unlockMilestone = prefab.m_UnlockMilestone; if (unlockMilestone != null) { Singleton <UnlockManager> .instance.CheckMilestone(unlockMilestone, false, false); } } } } }
public static bool FlagSet(this TransportLine transportLine, TransportLine.Flags flag) { return((transportLine.m_flags & flag) == flag); }