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); }
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"); } }