public override object CloneObject(object aParent, Articy.Unity.ArticyObject aFirstClassParent)
        {
            OutputPin clone = new OutputPin();

            CloneProperties(clone, aFirstClassParent);
            return(clone);
        }
        protected void CloneProperties(object aClone, Articy.Unity.ArticyObject aFirstClassParent)
        {
            OutputPin newClone = ((OutputPin)(aClone));

            if ((Text != null))
            {
                newClone.Text = ((ArticyScriptInstruction)(Text.CloneObject(newClone, aFirstClassParent)));
            }
            newClone.Owner = Owner;
            List <OutgoingConnection> temp_Connections = new List <OutgoingConnection>();
            int i = 0;

            for (i = 0; (i < Connections.Count); i = (i + 1))
            {
                temp_Connections.Add(((OutgoingConnection)(Connections[i].CloneObject(newClone, aFirstClassParent))));
            }
            newClone.Connections     = temp_Connections;
            newClone.Id              = Id;
            newClone.OwnerInstanceId = aFirstClassParent.InstanceId;
        }