示例#1
0
        private void Connect()
        {
            if (connected)
            {
                return;
            }
            LogicCircuitManager logicCircuitManager = Game.Instance.logicCircuitManager;
            UtilityNetworkManager <LogicCircuitNetwork, LogicWire> logicCircuitSystem = Game.Instance.logicCircuitSystem;

            connected = true;
            int outputCellOne = OutputCellOne;

            logicCircuitSystem.AddToNetworks(outputCellOne, this, true);
            outputOne = new LogicPortVisualizer(outputCellOne, LogicPortSpriteType.RibbonOutput);
            logicCircuitManager.AddVisElem(outputOne);
            int inputCellOne = InputCellOne;

            logicCircuitSystem.AddToNetworks(inputCellOne, inputOne, true);
            logicCircuitManager.AddVisElem((ILogicUIElement)inputOne);
            if (RequiresTwoInputs)
            {
                int inputCellTwo = InputCellTwo;
                logicCircuitSystem.AddToNetworks(inputCellTwo, inputTwo, true);
                logicCircuitManager.AddVisElem((ILogicUIElement)inputTwo);
            }
            RefreshAnimation();
        }
示例#2
0
        private void Disconnect()
        {
            if (!connected)
            {
                return;
            }
            LogicCircuitManager logicCircuitManager = Game.Instance.logicCircuitManager;
            UtilityNetworkManager <LogicCircuitNetwork, LogicWire> logicCircuitSystem = Game.Instance.logicCircuitSystem;

            connected = false;
            int outputCellOne = OutputCellOne;

            logicCircuitSystem.RemoveFromNetworks(outputCellOne, this, true);
            logicCircuitManager.RemoveVisElem(outputOne);
            outputOne = null;
            int inputCellOne = InputCellOne;

            logicCircuitSystem.RemoveFromNetworks(inputCellOne, inputOne, true);
            logicCircuitManager.RemoveVisElem((ILogicUIElement)inputOne);
            inputOne = null;
            if (RequiresTwoInputs)
            {
                int inputCellTwo = InputCellTwo;
                logicCircuitSystem.RemoveFromNetworks(inputCellTwo, inputTwo, true);
                logicCircuitManager.RemoveVisElem((ILogicUIElement)inputTwo);
                inputTwo = null;
            }
            RefreshAnimation();
        }
示例#3
0
    private void CreateVisualizers()
    {
        int  num  = Grid.PosToCell(base.transform.GetPosition());
        bool flag = num != cell;

        cell = num;
        if (!flag)
        {
            Rotatable component = GetComponent <Rotatable>();
            if ((UnityEngine.Object)component != (UnityEngine.Object)null)
            {
                Orientation orientation = component.GetOrientation();
                flag             = (orientation != this.orientation);
                this.orientation = orientation;
            }
        }
        if (flag)
        {
            DestroyVisualizers();
            if (outputPortInfo != null)
            {
                outputPorts = new List <ILogicUIElement>();
                for (int i = 0; i < outputPortInfo.Length; i++)
                {
                    Port port = outputPortInfo[i];
                    LogicPortVisualizer logicPortVisualizer = new LogicPortVisualizer(GetActualCell(port.cellOffset), port.spriteType);
                    outputPorts.Add(logicPortVisualizer);
                    Game.Instance.logicCircuitManager.AddVisElem(logicPortVisualizer);
                }
            }
            if (inputPortInfo != null)
            {
                inputPorts = new List <ILogicUIElement>();
                for (int j = 0; j < inputPortInfo.Length; j++)
                {
                    Port port2 = inputPortInfo[j];
                    LogicPortVisualizer logicPortVisualizer2 = new LogicPortVisualizer(GetActualCell(port2.cellOffset), port2.spriteType);
                    inputPorts.Add(logicPortVisualizer2);
                    Game.Instance.logicCircuitManager.AddVisElem(logicPortVisualizer2);
                }
            }
        }
    }
示例#4
0
 private void Connect()
 {
     if (!connected)
     {
         LogicCircuitManager logicCircuitManager = Game.Instance.logicCircuitManager;
         UtilityNetworkManager <LogicCircuitNetwork, LogicWire> logicCircuitSystem = Game.Instance.logicCircuitSystem;
         connected = true;
         int outputCell = base.OutputCell;
         logicCircuitSystem.AddToNetworks(outputCell, this, true);
         output = new LogicPortVisualizer(outputCell, LogicPortSpriteType.Output);
         logicCircuitManager.AddVisElem(output);
         int inputCellOne = base.InputCellOne;
         logicCircuitSystem.AddToNetworks(inputCellOne, inputOne, true);
         logicCircuitManager.AddVisElem(inputOne);
         if (base.RequiresTwoInputs)
         {
             int inputCellTwo = base.InputCellTwo;
             logicCircuitSystem.AddToNetworks(inputCellTwo, inputTwo, true);
             logicCircuitManager.AddVisElem(inputTwo);
         }
         RefreshAnimation();
     }
 }