示例#1
0
 public bool CheckFlags(NetSegmentExt.Flags flags,
                        NetSegmentEnd.Flags tailFlags,
                        NetSegmentEnd.Flags headFlags,
                        NetNode.Flags tailNodeFlags,
                        NetNode.Flags headNodeFlags,
                        NetNodeExt.Flags tailNodeExtFlags,
                        NetNodeExt.Flags headNodeExtFlags,
                        bool turnAround)
 {
     if (!turnAround)
     {
         return(Forward.CheckFlags(flags) && CheckEndFlags(
                    tailFlags: tailFlags,
                    headFlags: headFlags,
                    tailNodeFlags: tailNodeFlags,
                    headNodeFlags: headNodeFlags,
                    tailNodeExtFlags: tailNodeExtFlags,
                    headNodeExtFlags: headNodeExtFlags));
     }
     else
     {
         Helpers.Swap(ref tailFlags, ref headFlags);
         Helpers.Swap(ref tailNodeFlags, ref headNodeFlags);
         var ret = Backward.CheckFlags(flags) && CheckEndFlags(
             tailFlags: tailFlags,
             headFlags: headFlags,
             tailNodeFlags: tailNodeFlags,
             headNodeFlags: headNodeFlags,
             tailNodeExtFlags: tailNodeExtFlags,
             headNodeExtFlags: headNodeExtFlags);
         return(ret);
     }
 }
示例#2
0
        public static NetSegmentEnd.Flags GetUsedFlagsSegmentEnd(ushort segmentID, ushort nodeID)
        {
            NetSegmentEnd.Flags ret = segmentID.ToSegment().Info.GetMetaData()?.UsedCustomFlags.SegmentEnd ?? 0;

            // Considering that nodes are segment ends we don't need to take their flags into account.
            // ret |= nodeID.ToNode().Info.GetMetaData()?.UsedCustomFlags.SegmentEnd ?? 0;
            return(ret);
        }
        public static void Add(UIPanel parent, ushort segmentID, ushort nodeID, NetSegmentEnd.Flags flag)
        {
            var toggle = parent.AddUIComponent <SegmentEndFlagToggle>();

            toggle.flag_      = flag;
            toggle.segmentID_ = segmentID;
            toggle.nodeID_    = nodeID;
            ref var segmentEnd = ref man_.GetSegmentEnd(segmentID, nodeID);
示例#4
0
 public bool CheckEndFlags(
     NetSegmentEnd.Flags tailFlags,
     NetSegmentEnd.Flags headFlags,
     NetNode.Flags tailNodeFlags,
     NetNode.Flags headNodeFlags)
 {
     return
         (Tail.CheckFlags(tailFlags) &
          Head.CheckFlags(headFlags) &
          VanillaTailtNode.CheckFlags(tailNodeFlags) &
          VanillaHeadNode.CheckFlags(headNodeFlags));
 }
示例#5
0
 public bool CheckFlags(
     NetNodeExt.Flags nodeFlags, NetSegmentEnd.Flags segmentEndFlags,
     NetSegmentExt.Flags segmentFlags, NetSegment.Flags vanillaSegmentFlags) =>
 NodeFlags.CheckFlags(nodeFlags) && SegmentEndFlags.CheckFlags(segmentEndFlags) &&
 SegmentFlags.CheckFlags(segmentFlags) && VanillaSegmentFlags.CheckFlags(vanillaSegmentFlags);
示例#6
0
 public bool CheckFlags(NetSegmentEnd.Flags flags) => flags.CheckFlags(Required, Forbidden);
示例#7
0
 public static NetSegmentEnd.Flags GetUsedFlagsSegmentEnd(ushort segmentID, ushort nodeID)
 {
     NetSegmentEnd.Flags ret = segmentID.ToSegment().Info.GetMetaData()?.UsedCustomFlags.SegmentEnd ?? 0;
     ret |= nodeID.ToNode().Info.GetMetaData()?.UsedCustomFlags.SegmentEnd ?? 0;
     return(ret);
 }
示例#8
0
 public static bool CheckFlags(this NetSegmentEnd.Flags value, NetSegmentEnd.Flags required, NetSegmentEnd.Flags forbidden) =>
 (value & (required | forbidden)) == required;