public static void Transfer(ElectricalPort source, ElectricalPort target, bool connected = true)
        {
            if (source == null || target == null)
            {
                return;
            }

            ElectricalWireProperty.Transfer(source.wireProperty, target.wireProperty, connected);
        }
        public void Update()
        {
            switch (type)
            {
            case WireType.None:
            case WireType.Illegal: break;

            case WireType.Digital:
                DigitalOutput dout = digitalOutputs[0];
                foreach (var p in digitalInputs)
                {
                    p.value = dout.value;
                }
                break;

            case WireType.Electrical:
                ElectricalOutput eout = electricalOutputs[0];
                ElectricalWireProperty.Transfer(eout.wireProperty, new List <ElectricalWireProperty>(from i in electricalInputs select i.wireProperty));
                break;

            default: break;
            }
        }