Esempio n. 1
0
        public bool AddConnectedInput(InputPipeNode input)
        {
            bool added = false;

            if (Globals.UltraDebug)
            {
                Printer.Info($"[N{ParentNetwork.ID}] Does {Print()} have a valid adjacent container? " + (ConnectedContainer != null).ToString());
            }
            if (Globals.UltraDebug)
            {
                Printer.Info($"[N{ParentNetwork.ID}] Does {input.Print()} have a valid adjacent container? " + (input.ConnectedContainer != null).ToString());
            }
            if (ConnectedContainer != null && input.ConnectedContainer != null)
            {
                List <PipeNode> path;
                path = GetPath(input);
                if (path.Count > 0)
                {
                    added = true;
                    ConnectedInputs.Add(input, path);
                    var t = new Thread(() => AnimateConnection(path));
                    t.Start();
                    DataAccess.GetDataAccess().Threads.Add(t);
                }
            }
            return(added);
        }
Esempio n. 2
0
        public bool RemoveConnectedInput(InputPipeNode input)
        {
            bool removed = false;

            if (ConnectedInputs.Keys.Contains(input))
            {
                removed = true;
                ConnectedInputs.Remove(input);
            }
            return(removed);
        }
Esempio n. 3
0
        public override bool RemoveAllAdjacents()
        {
            bool removed = false;

            foreach (KeyValuePair <Side, Node> adj in Adjacents.ToList())
            {
                if (adj.Value != null)
                {
                    removed = true;
                    RemoveAdjacent(adj.Key, adj.Value);
                }
            }
            ConnectedInputs.Clear();
            return(removed);
        }
Esempio n. 4
0
        public void RegisterListener(InputPlug input, OutputPlug output)
        {
            if (!ConnectedInputs.ContainsKey(output.Path.ToString()))
            {
                ConnectedInputs.Add(output.Path.ToString(), new List <InputPlug>());
            }

            if (!ConnectedInputs[output.Path.ToString()].Contains(input))
            {
                ConnectedInputs[output.Path.ToString()].Add(input);
                Endpoint.RegisterListenerNode(this);
                Endpoint.CheckPolling();

                if (input.Owner.Endpoint != output.Owner.Endpoint)
                {
                    Endpoint.Log("In plug connection request");
                    Endpoint.PlugConnectionRequest(input, output);
                }
            }
            else
            {
                Endpoint.Log("Plug is already connected");
            }
        }