Skip to content

Providers' priority ignored due to distance #73

Description

@mitasamodel

Bug description
Trains choose the provider station with lower priority (-1000) even if there is another station with higher priority (+1000).

I have 2 providers stations with different priorities: +1000 and -1000. The "-1000" station is near the depot and requester station, the "+1000" station is far away.
Expected behavior: trains go to "+1000" station if there are items (above threshold), train limit is not exceeded.
What happens: trains more often go to "-1000" station first, they will go to "+1000" station only if "-1000" station gets unavailable (no items / train limits exceeded).

To Reproduce

  1. Place a depot.
  2. Place a provider station near the depot, set the priority to "-1000".
  3. Place a requester station not far away.
  4. Place another provider far away, set the priority to "+1000".
  5. Fill both providers with items (full).
  6. Set the requester station to request these items.
  7. Train will go to nearest "-1000" station instead of intended farthest "+1000".

Setup image
Image

LTN version
3.1.0

Part of the log

544.797 ... (UpdateStop) [5] - Privider_1 {1 (0x1)} provides item,electronic-circuit 157908(1000) stacks: 789(0), priority: -1000, min length: 0, max length: 0, trains en route: 
544.831 ... (UpdateStop) [5] - Provider_2 {1 (0x1)} provides item,electronic-circuit 127872(1000) stacks: 639(0), priority: 1000, min length: 0, max length: 0, trains en route: 

544.965 ... (OnTick) [6] - Available train capacity: 360 item stacks, 0 fluid capacity.
544.965 ... (OnTick) [6] - 57226 parsing request 1/1
544.965 ... (RequestProcessor:processRequest) [5] - request 1/1: 8000(1000) item,electronic-circuit to Sarge852 {1 (0x1)} priority: 0 min length: 0 max length: 0
544.965 ... (update_dispatcher_provided) [5] -   item,electronic-circuit, 8000 in 40 stacks
544.966 ... (TrainLeaves) [5] - Train [8] "PuppetMuncher": left Depot [39] "Depot".

544.997 ... (OnTick) [6] - Available train capacity: 240 item stacks, 0 fluid capacity.

545.264 ... (UpdateStop) [5] - Privider_1 {1 (0x1)} updating provided count with delivery: item,electronic-circuit 158124-8000=150124
545.264 ... (UpdateStop) [5] - Privider_1 {1 (0x1)} provides item,electronic-circuit 150124(1000) stacks: 750(0), priority: -1000, min length: 0, max length: 0, trains en route: 8
545.297 ... (UpdateStop) [5] - Provider_2 {1 (0x1)} provides item,electronic-circuit 128088(1000) stacks: 640(0), priority: 1000, min length: 0, max length: 0, trains en route: 
545.331 ... (UpdateStop) [5] - Sarge852 {1 (0x1)} updating requested count with delivery: item,electronic-circuit -8000+8000=0

Full log file
factorio-previous.log

Save file
testLTN_Dispatch_Before.zip
The game is saved in editor mode (time is stopped).
Enable the combinator at requester station, the train will go to the wrong provider station.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions