Example #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;
            }
Example #2
0
 void assembler_CurrentModeChanged(MyAssembler assembler)
 {
     Debug.Assert(m_selectedAssembler == assembler);
     SelectModeButton(assembler.DisassembleEnabled);
     RefreshRepeatMode(assembler.RepeatEnabled);
     RefreshSlaveMode(assembler.IsSlave);
     RefreshProgress();
     RefreshAssemblerModeView();
     RefreshMaterialsPreview();
 }
Example #3
0
        private void UnregisterAssemblerEvents(MyAssembler assembler)
        {
            if (assembler == null)
            {
                return;
            }

            m_selectedAssembler.CurrentModeChanged              -= assembler_CurrentModeChanged;
            m_selectedAssembler.QueueChanged                    -= assembler_QueueChanged;
            m_selectedAssembler.CurrentProgressChanged          -= assembler_CurrentProgressChanged;
            m_selectedAssembler.CurrentStateChanged             -= assembler_CurrentStateChanged;
            assembler.InputInventory.ContentsChanged            -= InputInventory_ContentsChanged;
            m_selectedAssembler.OutputInventory.ContentsChanged -= OutputInventory_ContentsChanged;
        }
Example #4
0
        private void SelectAndShowAssembler(MyAssembler assembler)
        {
            UnregisterAssemblerEvents(m_selectedAssembler);
            m_selectedAssembler = assembler;
            RegisterAssemblerEvents(assembler);

            RefreshRepeatMode(assembler.RepeatEnabled);
            RefreshSlaveMode(assembler.IsSlave);
            SelectModeButton(assembler.DisassembleEnabled);
            UpdateBlueprintClassGui();
            RefreshQueue();
            RefreshInventory();
            RefreshProgress();
            RefreshAssemblerModeView();
        }
Example #5
0
        internal void Close()
        {
            UnregisterEvents();
            UnregisterAssemblerEvents(m_selectedAssembler);

            m_assemblersByKey.Clear();
            m_blueprintButtonGroup.Clear();
            m_modeButtonGroup.Clear();

            m_selectedAssembler  = null;
            m_controlsParent     = null;
            m_terminalSystem     = null;
            m_comboboxAssemblers = null;

            m_dragAndDrop     = null;
            m_dragAndDropInfo = null;
        }
        private void UnregisterAssemblerEvents(MyAssembler assembler)
        {
            if (assembler == null)
            {
                return;
            }

            m_selectedAssembler.CurrentModeChanged     -= assembler_CurrentModeChanged;
            m_selectedAssembler.QueueChanged           -= assembler_QueueChanged;
            m_selectedAssembler.CurrentProgressChanged -= assembler_CurrentProgressChanged;
            m_selectedAssembler.CurrentStateChanged    -= assembler_CurrentStateChanged;
            if (assembler.InputInventory != null) // can be null on unload and close
            {
                assembler.InputInventory.ContentsChanged -= InputInventory_ContentsChanged;
            }
            if (m_selectedAssembler.OutputInventory != null)
            {
                m_selectedAssembler.OutputInventory.ContentsChanged -= OutputInventory_ContentsChanged;
            }
        }
Example #7
0
 void assembler_CurrentStateChanged(MyAssembler obj)
 {
     Debug.Assert(obj == m_selectedAssembler);
     RefreshProgress();
 }
Example #8
0
 void assembler_CurrentProgressChanged(MyAssembler assembler)
 {
     Debug.Assert(assembler == m_selectedAssembler);
     RefreshProgress();
 }