Beispiel #1
0
 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);
 }
Beispiel #2
0
 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();
 }
Beispiel #3
0
        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);
            }
        }
Beispiel #4
0
        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);
                }
            }
        }
Beispiel #5
0
        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);
        }