public static void FastUpdateAllRoadJunctions() { Log.Called(); for (ushort nodeID = 0; nodeID < NetManager.MAX_NODE_COUNT; ++nodeID) { if (!NetUtil.IsNodeValid(nodeID)) { continue; } if (!nodeID.ToNode().m_flags.IsFlagSet(NetNode.Flags.Junction)) { continue; } if (!nodeID.ToNode().Info.IsRoad()) { continue; } nodeID.ToNode().UpdateNode(nodeID); NetManager.instance.UpdateNodeFlags(nodeID); NetManager.instance.UpdateNodeRenderer(nodeID, true); foreach (ushort segmentID in NetUtil.IterateNodeSegments(nodeID)) { segmentID.ToSegment().UpdateSegment(segmentID); NetManager.instance.UpdateSegmentFlags(segmentID); NetManager.instance.UpdateSegmentRenderer(segmentID, true); } } }
/// <summary> /// returns a list of all segments sourceSegmentID is connected to including itself /// if uturn is allowed. /// </summary> /// <param name="sourceSegmentID"></param> /// <param name="nodeID"></param> /// <returns></returns> public static FastSegmentList GetTargetSegments(ushort sourceSegmentID, ushort nodeID) { var ret = new FastSegmentList(); foreach (ushort targetSegmentID in NetUtil.IterateNodeSegments(nodeID)) { if (DoesSegmentGoToSegment(sourceSegmentID, targetSegmentID, nodeID)) { ret.Add(targetSegmentID); } } return(ret); }
public static void UpdateAllNetworkRenderers() { Log.Called(); for (ushort nodeID = 0; nodeID < NetManager.MAX_NODE_COUNT; ++nodeID) { if (!NetUtil.IsNodeValid(nodeID)) { continue; } if (!nodeID.ToNode().m_flags.IsFlagSet(NetNode.Flags.Junction)) { continue; } NetManager.instance.UpdateNodeRenderer(nodeID, true); foreach (ushort segmentID in NetUtil.IterateNodeSegments(nodeID)) { NetManager.instance.UpdateSegmentRenderer(segmentID, true); } } }