Пример #1
0
            public static void IdleSupply(MyAssembler __instance) {
          
                if (!(__instance is MyAssembler assembler))
                    return;

                if (assembler.IsQueueEmpty && assembler.HasInventory)
                {
                    //figure out how to see if assembler is even connected to conveyors cause f**k me 
                    if (//assembler.f****e)
                    {
                        try
                        {
                            
                            var group =assembler.CubeGrid.BigOwners;
                            var me =group.First();
                            MyInventory inventory = assembler.GetInventory();
                            if ((double) inventory.VolumeFillFactor >= 0.990000009536743)
                                return;
                            MyGridConveyorSystem.PullAllItemsForConnector((IMyConveyorEndpointBlock) assembler, inventory, me, AssemblerSupplyChainPlugin.Instance.MAX_ITEMS_TO_PULL_IN_ONE_TICK);

                        }
                        catch (Exception e)
                        {
                            Log.Fatal("f**k my whole life" + e);
                        }
                    }    
                    
                    
                    /*MyInventory inventory = assembler.GetInventory();
                    if (inventory.GetItemsCount() <= 0)
                        return;
                    var blocks = assembler.CubeGrid.GridSystems.ConveyorSystem.
                    assembler.CubeGrid.GridSystems.ConveyorSystem.PullItems(_inventoryConstraint, MyFixedPoint.MaxValue, blocks, inventory );*/

                    

                    // this probably just yeets the contents of the assembler
                    //assembler.Components.Remove<MyInventory>();


                    /*MyGridConveyorSystem.PushAnyRequest((inventory) this, inventory);
                    if (assembler.GetInventory() == null)
                    {
                        MyInventory myInventory = new MyInventory(assembler.InventorySize.Volume, this.m_conveyorSorterDefinition.InventorySize, MyInventoryFlags.CanSend);
                        assembler.Components.Add<MyInventoryBase>((MyInventoryBase) myInventory);
                        myInventory.Init(builderConveyorSorter.Inventory);
                    }
                    var a = assembler.OutputInventory.InventoryId;
                    var i = assembler.ConveyorEndpoint.CubeBlock.InventoryCount;
                    assembler.Components.Clear();
                    assembler.drainall();
                    MyConveyorSorter sorter;
                    sorter.DrainAll = true;*/
                }

                return;
            }