public static void WriteConnectData(BinaryWriter writer, ConnectData connectData) { writer.Write(connectData.fromObjId); writer.Write(connectData.fromSlot); writer.Write(connectData.toObjId); writer.Write(connectData.toSlot); writer.Write(connectData.offset); writer.Write(connectData.isOutput); }
public static void ReadConnectData(BinaryReader reader, ref ConnectData connectData) { connectData.fromObjId = reader.ReadInt32(); connectData.fromSlot = reader.ReadInt32(); connectData.toObjId = reader.ReadInt32(); connectData.toSlot = reader.ReadInt32(); connectData.offset = reader.ReadInt32(); connectData.isOutput = reader.ReadBoolean(); }
public static void ReadConnects(BinaryReader reader, ref List <ConnectData> connects) { int count = reader.ReadInt32(); connects.Capacity = count; for (int i = 0; i < count; ++i) { ConnectData connData = new ConnectData(); ReadConnectData(reader, ref connData); connects.Add(connData); } }
public static void WriteConnects(BinaryWriter writer, List <ConnectData> connects) { int count = 0; if (connects == null || connects.Count == 0) { writer.Write(count); } else { count = connects.Count; writer.Write(count); for (int i = 0; i < count; ++i) { ConnectData connData = connects[i]; WriteConnectData(writer, connData); } } }
public static bool IsConnectExists(ConnectData connect, List <ConnectData> connects, bool checkSelf = true) { if (connects != null && connects.Count > 0) { foreach (var iter in connects) { //完全相等 if (checkSelf && iter.fromObjId == connect.fromObjId && iter.toObjId == connect.toObjId && iter.fromSlot == connect.fromSlot && iter.toSlot == connect.toSlot && iter.isOutput == connect.isOutput) { return(true); } //反向连接。连接是相互的,只保留一个就可以了。 if (iter.fromObjId == connect.toObjId && iter.toObjId == connect.fromObjId && iter.fromSlot == connect.toSlot && iter.toSlot == connect.fromSlot && iter.isOutput != connect.isOutput) { return(true); } } } return(false); }