public void ProcessExchanges() { if (Globals.UltraDebug) { Printer.Info($"[N{ParentNetwork.ID}] Procesing Exchanges..."); } if (Globals.UltraDebug) { Printer.Info($"[N{ParentNetwork.ID}] Are there connected input? " + (ConnectedInputs.Count > 0).ToString()); } if (ConnectedContainer != null && !ConnectedContainer.IsEmpty() && ConnectedInputs.Count > 0 && Signal.Equals("on")) { if (Globals.UltraDebug) { Printer.Info($"[N{ParentNetwork.ID}] Is output ({Print()}) empty? " + ConnectedContainer.IsEmpty().ToString()); } try { Thread thread = new Thread(new ThreadStart(StartExchage)); if (Globals.UltraDebug) { Printer.Info($"[N{ParentNetwork.ID}] CREATED NEW THREAD WITH ID [{thread.ManagedThreadId}]"); } DataAccess.GetDataAccess().Threads.Add(thread); thread.Start(); } catch (ThreadInterruptedException exception) { } } }
public override void UpdateFilter() { if (ConnectedContainer != null) { ConnectedContainer.UpdateFilter(Filter); } }
public Item GetItemFor(InputPipeNode input) { Item item = null; item = ConnectedContainer.GetItemForInput(input, Flux); return(item); }
public bool CanRecieveItems() { bool canReceive = false; if (ConnectedContainer.CanRecieveItems()) { canReceive = true; } return(canReceive); }
public bool CanSendItems(InputPipeNode input) { bool canSend = false; if (ConnectedContainer != null && ConnectedContainer.CanSendItems() && (input.CanRecieveItems() || input.ConnectedContainer.CanStackItems()) && StoredItem == null) { canSend = true; } return(canSend); }
public bool AddConnectedContainer(Node node) { bool added = false; if (Globals.UltraDebug) { Printer.Info($"[?] Adding {node.Name} container to {Print()} "); } if (Globals.UltraDebug) { Printer.Info($"[?] Alreadyhas a container? {ConnectedContainer != null}"); } if (ConnectedContainer == null && node is ContainerNode) { if (Globals.UltraDebug) { Printer.Info($"[?] Connecting adjacent container.."); } ContainerNode container = (ContainerNode)node; if (container.IOPipes.Count < 4) { ConnectedContainer = (ContainerNode)node; ConnectedContainer.AddIOPipe(this); if (Globals.UltraDebug) { Printer.Info($"[?] CONNECTED CONTAINER ADDED"); } } else { if (Globals.UltraDebug) { Printer.Info($"[?] Didnt add adj container"); } } } else { if (Globals.UltraDebug) { Printer.Info($"[?] Didnt add adj container"); } } UpdateSignal(); added = true; return(added); }
public bool RemoveConnectedContainer(Node node) { bool removed = false; if (Globals.UltraDebug) { Printer.Info($"[?] Removing {node.Name} container "); } if (ConnectedContainer != null && node is ContainerNode) { ConnectedContainer.RemoveIOPipe(this); ConnectedContainer = null; if (Globals.UltraDebug) { Printer.Info($"[?] CONNECTED CONTAINER REMOVED"); } removed = true; } UpdateSignal(); return(removed); }