public static NodeFlagToggle Add(UIPanel parent, ushort nodeID, NetNodeExt.Flags flag) { var toggle = parent.AddUIComponent <NodeFlagToggle>(); toggle.flag_ = flag; toggle.nodeID_ = nodeID; ref var node = ref man_.NodeBuffer[nodeID];
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); } }
public static NetNodeExt.Flags GetUsedFlagsNode(ushort nodeID) { NetNodeExt.Flags ret = nodeID.ToNode().Info.GetMetaData()?.UsedCustomFlags.Node ?? 0; foreach (ushort segmentID in nodeID.ToNode().IterateSegments()) { ret |= segmentID.ToSegment().Info.GetMetaData()?.UsedCustomFlags.Node ?? 0; } return(ret); }
public bool CheckEndFlags( NetSegmentEnd.Flags tailFlags, NetSegmentEnd.Flags headFlags, NetNode.Flags tailNodeFlags, NetNode.Flags headNodeFlags, NetNodeExt.Flags tailNodeExtFlags, NetNodeExt.Flags headNodeExtFlags) { return (Tail.CheckFlags(tailFlags) & Head.CheckFlags(headFlags) & VanillaTailtNode.CheckFlags(tailNodeFlags) & VanillaHeadNode.CheckFlags(headNodeFlags) & TailtNode.CheckFlags(tailNodeExtFlags) & HeadNode.CheckFlags(headNodeExtFlags)); ; }
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);
public bool CheckFlags(NetNodeExt.Flags flags) => flags.CheckFlags(Required, Forbidden);
public static bool CheckFlags(this NetNodeExt.Flags value, NetNodeExt.Flags required, NetNodeExt.Flags forbidden) => (value & (required | forbidden)) == required;