/// <summary> /// Refreshes network prefab renders for all 'dirty' networks and calls a recalculation of any Network Skins 2 skins. /// </summary> internal static void Update() { // Need to do this for each segment instance, so iterate through all segments. NetSegment[] segments = NetManager.instance.m_segments.m_buffer; for (ushort i = 0; i < segments.Length; ++i) { // Local reference. NetSegment segment = segments[i]; // Check that this is a valid network in the dirty list. if (segment.m_flags != NetSegment.Flags.None && DirtyList.Contains(segment.Info)) { // Match - update segment render. NetManager.instance.UpdateSegmentRenderer(i, true); } } // Recalculate any Network Skins 2 applied skins. ModUtils.NS2Recalculate(); // Clear dirty prefabs list. DirtyList.Clear(); }
/// <summary> /// Refreshes network prefab renders for all 'dirty' networks and calls a recalculation of any Network Skins 2 skins. /// </summary> internal static void Update() { // Need to do this for each segment instance, so iterate through all segments. NetSegment[] segments = NetManager.instance.m_segments.m_buffer; for (ushort i = 0; i < segments.Length; ++i) { // Local reference. NetSegment segment = segments[i]; // Check that this is a valid network in the dirty list. if (segment.m_flags != NetSegment.Flags.None && DirtyList.Contains(segment.Info)) { // Match - update segment render via simulation thread, creating local buildingID reference to avoid race condition. ushort segmentID = i; Singleton <SimulationManager> .instance.AddAction(delegate { Singleton <NetManager> .instance.UpdateSegmentRenderer(segmentID, true); }); } } // Recalculate any Network Skins 2 applied skins. ModUtils.NS2Recalculate(); // Clear dirty prefabs list. DirtyList.Clear(); }