Exemplo n.º 1
0
 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)
         {
         }
     }
 }
Exemplo n.º 2
0
 public override void UpdateFilter()
 {
     if (ConnectedContainer != null)
     {
         ConnectedContainer.UpdateFilter(Filter);
     }
 }
Exemplo n.º 3
0
        public Item GetItemFor(InputPipeNode input)
        {
            Item item = null;

            item = ConnectedContainer.GetItemForInput(input, Flux);
            return(item);
        }
Exemplo n.º 4
0
        public bool CanRecieveItems()
        {
            bool canReceive = false;

            if (ConnectedContainer.CanRecieveItems())
            {
                canReceive = true;
            }
            return(canReceive);
        }
Exemplo n.º 5
0
        public bool CanSendItems(InputPipeNode input)
        {
            bool canSend = false;

            if (ConnectedContainer != null && ConnectedContainer.CanSendItems() &&
                (input.CanRecieveItems() || input.ConnectedContainer.CanStackItems()) &&
                StoredItem == null)
            {
                canSend = true;
            }
            return(canSend);
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        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);
        }