Jump to content

Sweeper MUST take the maximum amount of resources


skillcoder
  • Branch: Live Branch Version: Windows Known Issue

Now Sweeper can take only small amount of "grams" (GRAMS CARL!!!) of resource.

It's ridiculous.

It's hapening avery time.

in unloader have 87 kg of Granite and 13 kg of Dirt

And Sweeper takes Avery time latest resource BUT it MUST take Bigest amount or make FIFO queue.


Steps to Reproduce
You can make test by self
  • Like 1



User Feedback


Hi @skillcoder,

If you have a save file that is showing this behaviour, please upload it so we can take a look at your specific situation.

 

  • Like 2

Share this comment


Link to comment
Share on other sites

Ok. I create save.

After load u can see in Conveyor Reseptacle

4CLBZ1.png

But Sweeper take not Granite (which hit the unloader before all other items) (and mass of which more whan any other items in unloader)

It take Sandstone (40kg cuz on take it have alredy 40kg) BUT WHY Sandstone  ?

4E8aaB.png

It's not FIFO and nor maximum amount of resources storing in unloader (Conveyor Reseptacle)

And cuz this bug-decision happens constantly - if unloader full to 99.999999999kg we have this annoing BUG with GRAMS CARL.

Or even ZERO GRAMS!!!

 

Now you understand ?

Facking Sweeper.sav

I say - 

Sweeper MUST take the maximum amount of resources

or use FIFO queue on Conveyor Reseptacle and Conveyor Loader

Share this comment


Link to comment
Share on other sites

Changed Status to Known Issue

Hi @skillcoder,

Thanks for the save file, that was helpful in clarifying your problem.

if I understand correctly you're referring to your situation where the sweeper will continually take Sandstone from the receptacle for as long as Sandstone is refilled into the receptacle, and the other elements will not be taken out of the receptacle.

Part of the issue is because the Sandstone is being continually delivered to the receptacle, so there is always some available to be delivered. Another part is that all deliveries in ONI are "pull"-based.  Something makes a request for a delivery, and dupes (or auto-sweepers) will attempt to fulfill that delivery. There is no memory carried over between deliveries, so for as long as something is requesting Sandstone, Sandstone is a valid choice to pick up.

If there were no current requests for Sandstone, or if the requests for Granite or Copper Ore were higher priority, then those elements would be picked up instead.

This is definitely a limitation of our current system, we'll take a look at improving it in a future update.

 

  • Thanks 1

Share this comment


Link to comment
Share on other sites

I make video with problem illustration for you.

4Nzygw.png

Ok, now i understand reason of this problem.

But for sweeper's definitly need make Queue (FIFO) or add some workaround:

If receptacle generate (pull) request for incomed resource - check if receptacle alredy have more resurce amount alredy and replace real request (pull) with another resource with MAX amount alredy store in receptacle.

This hook definitly can implemented easely and it definitly resolve many problems with sweeper's (halt/stack/MILLIGRAMS CARL)

Edited by skillcoder

Share this comment


Link to comment
Share on other sites



Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
  • Create New...