Eketek's Routing and Pathfinding Mod

by Eketek

Components to generate routing and pathfinding signals

Content
5 years ago
0.16 - 0.17
9
Circuit network

Changelog

1.0.3
Relaxed a couple crazy requirements ("Circuit Board 2" and "Chemical Science Pack") when Pyanodon's Coal Processing & associated mods are loaded.

1.0.2
Updated for Factorio 0.17

1.0.1
The reset signal has been changed to -2,000,000,000 (to make it easier to recognize and type, as well as to allow its direct use to cancel out signals in simple designs)
(-2^31 underflows easily, causing simple node controllers to want to transfer 2^31 items instead of 0)
  

1.0.0
This mod is now considered stable and complete.

Upgraded the programmer art.  The routing machines now have color, texture, shadow, and no LEDs.

When processing multiple types of items within a single tick, the pathfinder now takes into account the estimated congestion caused by routing of previous items processed within that tick.


0.1.7
Changed the node and link icons (this is to avoid potential confusion between node & link item-signals and node & link virtual-signals).


0.1.6
Added a mass-cancellation function.  (send to controller: Auto-select signal with a value of -1)
Mass-cancellation triggers a complete routing system reset (spams every possible cancel signal at every link and node, so that, if the nodes
are set up properly, all item transfers will be de-scheduled)
This attempts to avoid trashing UPS by spreading the reset out across many several ticks.
The controller will ignore all signals sent to it during the reset.


0.1.5
Found and corrected an error that destabilized the network scanning operation.


0.1.4
Fixed the transfer cancellation function.


0.1.3
The constant combinator GUIs attached to link and node entities have been disabled (but, for convenience, left as-is for the controller)

Fixed routing technology text

Added a base path cost (increases the "path cost" of every transfer across any link).  
Default base path cost is 100
The base path cost can be altered by sending the path cost modifier signal to the Controller (or setting it directly on the controller)


0.1.2
Better error message handling:
Added a message display setting to the controller.  
The mod no longer spews up error messages unless the controller is set to show them.
Error messages are now only shown to members of the force that owns the controller.

Controller settings are now handled as continuous signals.  If settings are pulsed or otherwise removed from its input, the setting will
revert to its default next tick.

Automatically generated NodeIDs are now a bit more predictible, using the smallest available ID.

Adjusted the mod to aim for a mid-game introduction
Set crafting costs
attached a "technology" to routing components.

Item destruction and deconstruction was not actually being tracked.  It is now.

Applied a naming convention to named modded components, restructured mod data.

Note:  for some unknown reason, the migration for 0.1.2 resulted in a few random identifiers from disabled mods getting in the 
"Migrated Content" display.  The migration should work regardless, and when those mods were enabled, the display gave the expected 
information instead and nothing unusual happened.


0.1.1
Corrected the pathfinding logic, so that it will actually find the cheapest path instead of merely pretending to do so.

Added an automated routing function.  Sending the new "Route Anything" signal to the controller triggers a function which automatically scans 
for and triggers routing operations.  It searches for and routes the most "neglected" items on the network.
  
Exposed the bulk transfer subdivision logic through a pair of signals which can be pulsed into the controller.  When large transfers from a
provider to a requester are scheduled, the transfer is subdivided.  Each portion of the transfer is run through the pathfinder separately
and the transfer amounts are internally added to the path cost, raising the cost of subsequent transfers along the entire path.  This causes
the pathfinder to start preferring alternate paths, making it more likely to spread large transfers across multiple paths (with the intent of 
alleviating congestion and making better use of the logistic system).  However, this also greatly increases the cost of the computation.
One property is a threshold - the minimum size of a transfer before the subdivision logic is triggered.  
The other property is a maximum number of subdivisions
     
Link combinators now accept transfer limits
  A link with a transfer limit will be regarded as invalid when scheduling a transfer of an amount of an item which is larger than the limit.  
  This can be used to keep low-throughput shortcuts free of congestion from bulk transfers.

All routing signals have become non-routeable.  


0.1.0 [Initial Release]