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 bool RemoveConnectedInput(InputPipeNode input) { bool removed = false; if (ConnectedInputs.Keys.Contains(input)) { removed = true; ConnectedInputs.Remove(input); } return(removed); }
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); }
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"); } }