示例#1
0
        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);
                }
            }
        }
示例#2
0
        /// <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);
        }
示例#3
0
 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);
         }
     }
 }