예제 #1
0
    public static ActActConnection createActActConnection(string id, string idSource, string idTarget, ActActConnection.commands sourceCommand, ActActConnection.commands targetCommand)
    {
        ActActConnection c = null;

        Item source = ItemManager.getInstance().getItem(idSource);
        Item target = ItemManager.getInstance().getItem(idTarget);

        if (source is Actuator && target is Actuator)
        {
            c = new ActActConnection(id, (Actuator)source, (Actuator)target, sourceCommand, targetCommand);
        }
        if (c != null)
        {
            ConnectionManager.getInstance().getConnections().Add(id, c);
        }

        return(c);
    }
        public void OnInputClicked(InputClickedEventData eventData)
        {
            //Needs: LineID, Source Name, Target Name, Source Operation, Target Operation

            bool exists = false;

            if (ConnectionManager.getInstance().getConnections().ContainsKey(LineID))
            {
                exists = true;
            }

            ActActFensterName = this.gameObject.transform.parent.name;
            ActActFenster     = this.gameObject.transform.parent.gameObject;

            ActActConnection.commands sourceCommand;
            ActActConnection.commands targetCommand;

            bool opSource = ActActFenster.GetComponent <LogicActActInput>().GetSourceStatus(); //false = off, true = on
            bool opTarget = ActActFenster.GetComponent <LogicActActInput>().GetTargetStatus(); //false = off, true = on

            if (!opSource)
            {
                sourceCommand = ActActConnection.commands.OFF;
            }
            else
            {
                sourceCommand = ActActConnection.commands.ON;
            }
            if (!opTarget)
            {
                targetCommand = ActActConnection.commands.OFF;
            }
            else
            {
                targetCommand = ActActConnection.commands.ON;
            }

            Item source = ItemManager.getInstance().getItem(SourceNamelong);
            Item target = ItemManager.getInstance().getItem(TargetNamelong);

            if (source is Actuator && target is Actuator)
            {
                Actuator aSource = (Actuator)source;
                Actuator aTarget = (Actuator)target;
                if (!exists)
                {
                    ActActConnection c = ConnectionCreator.createActActConnection(LineID, SourceNamelong, TargetNamelong, sourceCommand, targetCommand);
                }

                ConnectionManager.getInstance().startConnection(LineID);
                if (sourceCommand.Equals(ActActConnection.commands.ON))
                {
                    StartCoroutine(aSource.sendON());
                    ConnectionManager.getInstance().stopConnection(LineID);
                }
                else if (sourceCommand.Equals(ActActConnection.commands.OFF))
                {
                    StartCoroutine(aSource.sendOFF());
                    ConnectionManager.getInstance().stopConnection(LineID);
                }

                if (targetCommand.Equals(ActActConnection.commands.ON))
                {
                    StartCoroutine(aTarget.sendON());
                    ConnectionManager.getInstance().stopConnection(LineID);
                }
                else if (targetCommand.Equals(ActActConnection.commands.OFF))
                {
                    StartCoroutine(aTarget.sendOFF());
                    ConnectionManager.getInstance().stopConnection(LineID);
                }
            }

            //ActActFenster.transform.GetChild(1).transform.localScale = new Vector3(0.1f, 0.1f, 0.1f);
            //this.transform.localScale = new Vector3(0, 0, 0);
        }