---------------------------------------------------------------------------------------------------
Version: 1.0.46
Date: 2022-11-27
  Changed:
    - Major changes to landfill behaviour that results in a much better experience. Constructrons will now build landfill as they move toward the construction area creating a path.
  Fixed:
    - Constructrons and Stations would not be registered when construction jobs were disabled.
---------------------------------------------------------------------------------------------------
Version: 1.0.45
Date: 2022-11-13
  Fixed:
    - A bug which caused Constructrons to work on the wrong surface.
---------------------------------------------------------------------------------------------------
Version: 1.0.44
Date: 2022-11-11
  Changed:
    - Made the experience of Constructron staging a bit better when logistic requests were delayed.
    - Code Cleanup.
---------------------------------------------------------------------------------------------------
Version: 1.0.43
Date: 2022-11-10
  Changed:
    - Removed periodic Constructron checks, now available Constructrons will be checked as needed.
---------------------------------------------------------------------------------------------------
Version: 1.0.42
Date: 2022-11-08
  Fixed:
    - A crash upgrading miniloaders and other items with mismatching prototype names.
---------------------------------------------------------------------------------------------------
Version: 1.0.41
Date: 2022-11-03
  Changed:
    - Reverted back to pre 1.0.30 method of unused chunk processing for optimization purposes.
    - Cleaned up a lot of unused information in the chunk tables for optimization purposes.
    - Added interval reset to the Constructron checks.
  Fixed:
    - Pre v1.0.21 save game migration bug.
---------------------------------------------------------------------------------------------------
Version: 1.0.40
Date: 2022-10-30
  Fixed:
    - A bug that caused only the first Constructron to be checked.
---------------------------------------------------------------------------------------------------
Version: 1.0.39
Date: 2022-10-30
  Fixed:
    - Constructrons getting stuck on ghosts that cannot be fulfilled due to missing inventory.
  Changed:
    - Disabled the Constructron job grouping. Whilst a cool feature, this change will make it easier to develop and has no negative impacts to how the mod works.
    - Optimized frequent check occuring on all Constructrons. Constructrons will now be checked in a queued format eliminating a cpu spike when hundreds of Constructrons were placed.
---------------------------------------------------------------------------------------------------
Version: 1.0.38
Date: 2022-10-21
  Fixed:
    - A crash when train rails were detected in the new build_done check behaviour
---------------------------------------------------------------------------------------------------
Version: 1.0.37
Date: 2022-10-20
  Changed:
    - Additional changes to deconstruct_done behaviour.
    - Added a graceful wrapup of deconstruction jobs when the inventory has no remaining free slots. Instead of the job carrying on like normal, the Constructron will walk back to the station and queue another job.
    - Changed build_done check behaviour. It now checks if there is more to build in the area instead of only basing it off the bot statuses.
    - Changed upgrade_done check behaviour. It now checks if there is more to build in the area instead of only basing it off the bot statuses.
    - Removed overally verbose logging from pathfinder.
    - Added Dynamic Robot Queues to optional mods. This is an excelent companion mod to increase bot throughput without any changes to the game and minimal performance loss. https://mods.factorio.com/mod/dynamic-robot-queues
    - [SE] Added "Cannot be placed on:" description in Constructron tooltip. - Thanks Stringweasel!
---------------------------------------------------------------------------------------------------
Version: 1.0.36
Date: 2022-10-8
  Changed:
    - Changed deconstruction_done check behaviour. It now checks if there is more to deconstruct in the area instead of only basing it off the bot statuses.
    - Jobs will no longer be assigned to Constructrons that are awaiting robots to fly back to them.
---------------------------------------------------------------------------------------------------
Version: 1.0.35
Date: 2022-09-16
  Changed:
    - Added Space Exploration as an optional dependency for Stringweasel.
---------------------------------------------------------------------------------------------------
Version: 1.0.34
Date: 2022-08-27
  Changed:
    - New, hopefully more fitting and unique, mod thumbnail.
    - Added a new setting to control wether a Constructron will clear all bots from it's inventory after a job is done. Bots will get requested at the beginning of a new job with this enabled.
---------------------------------------------------------------------------------------------------
Version: 1.0.33
Date: 2022-08-19
  Changed:
    - Enabled the ability to repair at any percentage for high health buildings that get damaged only slightly.
    - Minor setting rename.
---------------------------------------------------------------------------------------------------
Version: 1.0.32
Date: 2022-07-20
  Fixes:
    - Fixed a bug that disabled deconstruction when items-on-ground is disabled.
---------------------------------------------------------------------------------------------------
Version: 1.0.31
Date: 2022-07-9
  Fixes:
    - Fixed a crash when recalling Constructrons when no stations are present on the surface.
    - Fixed unwanted behaviour with internal troubleshooting commands.
---------------------------------------------------------------------------------------------------
Version: 1.0.30
Date: 2022-06-4
  Fixes:
    - Fixed multiplayer desyncs by disabling the pathfinder cache in path requests.
    - Fixed a job loop in very specific circumstances.
  Improvements:
    - Constructrons will now spread out randomly around a station when there are more than 10 Constructrons on a surface.
---------------------------------------------------------------------------------------------------
Version: 1.0.29
Date: 2022-05-25
  Fixes:
    - Fix a bug that caused entities marked for deconstruction to not be actioned after a reset all command.
---------------------------------------------------------------------------------------------------
Version: 1.0.28
Date: 2022-05-23
  Improvements:
    - Added better visualisation to single entity chunk checks for deconstruction & upgrades.
  Fixes:
    - Fixed a bug that caused build/deconstruction/upgrade checks to miss entities.
---------------------------------------------------------------------------------------------------
Version: 1.0.27
Date: 2022-05-22
  Fixes:
    - Fixed crash with 'lastpos' variable not being set in jobs that existed prior to v1.0.26.
---------------------------------------------------------------------------------------------------
Version: 1.0.26
Date: 2022-05-22
  Improvements:
    - Anti-stuck / waypoint orbiting / pathfinding reattempts added which will find new paths during landfill jobs as they become available.
    - Prioritized deconstruction jobs after reset command is given.
    - Added extra validation to go_to_position action.
  Fixes:
    - Fixed an issue that prevented landfill from being enabled through the mod settings menu.
---------------------------------------------------------------------------------------------------
Version: 1.0.25
Date: 2022-05-15
  Fixes:
    - Optimized the get_service_stations function when unit_numbers were extremely high to fix very slow responses in the function and even game freezes.
---------------------------------------------------------------------------------------------------
Version: 1.0.24
Date: 2022-05-14
  Fixes:
    - Bugfix in deconstruction checks to fix unremoved trees and rocks.
---------------------------------------------------------------------------------------------------
Version: 1.0.23
Date: 2022-05-11
  Fixes:
    - Bugfix for Rocket Constructrun not responding to scripting due to entity placement filters.
    - Bugfix for entity counts not subtracting at time of removal which caused a crash when Constructrons performed a check and had no robots in inventory.
---------------------------------------------------------------------------------------------------
Version: 1.0.22
Date: 2022-05-6
  New Features:
    - New setting: entities_per_tick - control how many items are processed into jobs per tick. Higher numbers requires more initial compute with large blueprints.
    - Added /ctron stats command for further diagnostics.
    - Added /ctron clear inventory command.
  Improvements:
    - Optimizations to job assignment process with a significant amount of Constructrons.
    - Optimizations through out other parts of job assignment process.
    - Optimizations to on_built event.
    - Optimizations to inventory calculations.
  Fixes:
    - Bugfix in /ctron reset all command whilst recalling the Constructrons.
    - Bugfix after surface deletion.
---------------------------------------------------------------------------------------------------
Version: 1.0.21
Date: 2022-05-1
  New Features:
    - Rocket Constructron for Space Exporation. This must be enabled in the startup settings and is only placable in space zones. WIP.
  Improvements:
    - Commands! enable|disable|reset|clear. Please see the mod portal page for info.
    - Performance improvements in entity processing and Constructron checks.
  Fixes:
    - Minor bugfix with unit status not clearing after it was picked up/destroyed.
    - Bugfix for Constructrons requesting more than one path at once.
    - Bugfix for landfill not being constructed after toggling the setting.
    - Bugfix for LTN like entities that cannot be crafted by the player.
---------------------------------------------------------------------------------------------------
Version: 1.0.20
Date: 2022-04-15
  Fixes:
    - Changed chunk calculation assumptions back to original value to decrease the chance of missing entities.
    - Bugfix in migration script which only occurred in older saves.
---------------------------------------------------------------------------------------------------
Version: 1.0.19
Date: 2022-04-10
  Improvements:
    - Added a check to detect entities that may have been missed during an upgrade job.
    - Moved missed entity messages to debug instead of game chat.
    - Added a game alert when a Constructrons logistic request is not fulfilled within 30 seconds by default.
    - Added a setting to control after how long the alert is displayed.
    - Items on the ground that get marked for deconstruction will now be actioned.
    - Added a toggle option in startup settings that toggles deconstruction of items on ground.
  Fixes:
    - Fixed a bug that caused Rocks and trees to be excluded from deconstruction jobs.
    - Construction robots will now be cleared from inventory if the count exceeds desired_robot_count.
  Known issues:
    - After job time out, Constructrons will attempt to finish the build or deconstruction queue even if the inventory is full.
    - If something happens to the Constructron during an active job it continues as if nothing is wrong. There are checks in place to queue another job however.
---------------------------------------------------------------------------------------------------
Version: 1.0.18
Date: 2022-04-03
  Experimental:
    - Added the ability to construct landfill and landfill like tiles! READ NOTES!
  Improvements:
    - Reregistered and recounted all entities on all surfaces to reduce the chances of crashes occuring from entites previously placed on older versions of the mod.
    - Added force checks to various actions such as construct, deconstruct and upgrade to accomodate AbandonedRuins mod and Auto-Deconstruct mod.
    - Added force to chunk checks so other forces entities will not be considered when a ghost is placed from another force.
    - Expanded minimum chunk check range so item-request-proxies / missing modules would be found in single entity construction if they got missed somehow.
  Fixes:
    - Various crashes due to lack of entity validation.
  Notes:
    - Landfill can be enabled or disabled through the mod settings menu.
    - Landfill functionality is highly experimental and does not represent the finished product.
    - Landfill is best constructed in small jobs close to the shore. It is highly recommended to have atleast a few Constructrons placed.
    - Constructrons will obviously not be able to reach entities/tiles in the middle of a lake and will cause Construnctrons to become stuck if this is done.
    - Constructing landfill will likely cause inefficient behaviour of Constructrons until the job is complete.
  Known issues:
    - After job time out, Constructrons will attempt to finish the build or deconstruction queue even if the inventory is full.
    - If something happens to the Constructron during an active job it continues as if nothing is wrong. There are checks in place to queue another job however.
---------------------------------------------------------------------------------------------------
Version: 1.0.17
Date: 2022-03-26
  Fixes:
    - Fixed job assignment function exit when previous surfaces had no available Constructrons.
  Known issues:
    - After job time out, Constructrons will attempt to finish the build or deconstruction queue even if the inventory is full.
    - If something happens to the Constructron during an active job it continues as if nothing is wrong. There are checks in place to queue another job however.
    - The Landfill-like tiles are not constructed as this requires changes to the pathing calculation.
---------------------------------------------------------------------------------------------------
Version: 1.0.16
Date: 2022-03-25
  Fixes:
    - Fixed queue backlogs that were created if a player performed an action on a lot of entities and then undone the changes
  Known issues:
    - After job time out, Constructrons will attempt to finish the build or deconstruction queue even if the inventory is full.
    - If something happens to the Constructron during an active job it continues as if nothing is wrong. There are checks in place to queue another job however.
    - The Landfill-like tiles are not constructed as this requires changes to the pathing calculation.
---------------------------------------------------------------------------------------------------
Version: 1.0.15
Date: 2022-03-21
  Fixes:
    - Added validation to pathfinder to prevent a crash.
    - Bug fixes in chunk check processes.
  Known issues:
    - After job time out, Constructrons will attempt to finish the build or deconstruction queue even if the inventory is full.
    - If something happens to the Constructron during an active job it continues as if nothing is wrong. There are checks in place to queue another job however.
    - The Landfill-like tiles are not constructed as this requires changes to the pathing calculation.
---------------------------------------------------------------------------------------------------
Version: 1.0.14
Date: 2022-03-21
  Improvements:
    - Constructrons can now repair entities! This is OFF by default - toggle this in the mod settings.
    - v3 pathfinder has been introduced for better path finding!
    - A mod settings to control how low an entity can get before a repair job is triggered has been added.
    - Startup mod settings have been added which gives the ability to toggle construct, rebuild, deconstruct, upgrade and repair jobs.
    - Debug text no longer has a random offset.
  Fixes:
    - Map mod settings now update in game.
  Notes:
    - The Constructron colour whilst performing a repair job is charcoal.
    - Any pre-existing damage on entities will not be repaired. The repair jobs are triggered by on_entity_damaged.
    - Constructrons that are already on the way to repair an entity that dies will still proceed as the job is already in progress.
    - Constructrons that are already on the way to repair an entity that gets repaired by a local robot will still proceed as the job is already in progress.
    - If you find there are too many repair jobs that are fulfilled by robots the advice is to lower the repair % or toggle the repair jobs to OFF.
  Known issues:
    - After job time out, Constructrons will attempt to finish the build or deconstruction queue even if the inventory is full.
    - If something happens to the Constructron during an active job it continues as if nothing is wrong. There are checks in place to queue another job however.
    - The Landfill-like tiles are not constructed as this requires changes to the pathing calculation.
---------------------------------------------------------------------------------------------------
Version: 1.0.13
Date: 2022-03-11
  Improvements:
    - Countless amounts of code cleanup and refactoring all thanks to Karoschl!
    - Constructron waypoint circling should be detected and reset.
  Krastorio2:
    - Tesla coils should now target Constructrons
  Known issues:
    - After job time out, Constructrons will attempt to finish the build or deconstruction queue even if the inventory is full.
    - If something happens to the Constructron during an active job it continues as if nothing is wrong. There are checks in place to queue another job however.
    - The Landfill-like tiles are not constructed as this requires changes to the pathing calculation.
---------------------------------------------------------------------------------------------------
Version: 1.0.12
Date: 2022-03-11
  Improvements:
    - Compatibility with Packing Tape
  Known issues:
    - After job time out, Constructrons will attempt to finish the build or deconstruction queue even if the inventory is full.
    - If something happens to the Constructron during an active job it continues as if nothing is wrong. There are checks in place to queue another job however.
    - The Landfill-like tiles are not constructed as this requires changes to the pathing calculation.
---------------------------------------------------------------------------------------------------
Version: 1.0.11
Date: 2022-03-09
  Improvements:
    - Constructrons are now painted grey(idle) when placed or cloned to another surface.
  Fixes:
    - Resolved a crash in Constructron staging when no stations were placed.
    - Resolved a crash in go_to_position retry when a companion was no longer valid.
    - Fixed companion Constructrons not resetting thier status after the leader became invalid.
  Known issues:
    - After job time out, Constructrons will attempt to finish the build or deconstruction queue even if the inventory is full.
    - If something happens to the Constructron during an active job it continues as if nothing is wrong. There are checks in place to queue another job however.
    - The Landfill-like tiles are not constructed as this requires changes to the pathing calculation.
---------------------------------------------------------------------------------------------------
Version: 1.0.10
Date: 2022-03-08
  Improvements:
    - Chunk checks now finds item-request-proxy / unfulfilled modules and will queue another job.
  Fixes:
    - Resolved a crash when a Constructron companion was no longer valid.
    - Resolved 'calculate_required_inventory_slot_count' crash.
  Known issues:
    - After job time out, Constructrons will attempt to finish the build or deconstruction queue even if the inventory is full.
    - If something happens to the Constructron during an active job it continues as if nothing is wrong. There are checks in place to queue another job however.
    - The Landfill-like tiles are not constructed as this requires changes to the pathing calculation.
---------------------------------------------------------------------------------------------------
Version: 1.0.9
Date: 2022-03-05
  Improvements:
    - The mod will now detect unbuilt ghost tiles after a build job.
    - Constructron pathing now takes into account the smallest gaps(1 tile) between water to path through.
    - Garbage collection on path requests that fail to navigate to destination.
  Fixes:
    - Resolved a crash in 1.0.7 migrations with invalid entities.
  Known issues:
    - After job time out, Constructrons will attempt to finish the build or deconstruction queue even if the inventory is full.
    - If something happens to the Constructron during an active job it continues as if nothing is wrong. There are checks in place to queue another job however.
    - The Landfill-like tiles are not constructed as this requires changes to the pathing calculation.
---------------------------------------------------------------------------------------------------
Version: 1.0.8
Date: 2022-02-26
  Improvements:
    - Surface support! using this mod with Space Exploration is now possible.
    - Visual debuging! Massive improvements to the debug view so it is alot more obvious to see what a Constructron is doing.
    - Constructrons will now request/refill robots based on two new mod settings, robot_name and robot_count.
    - Service Stations now have a new look.
    - Construction and Deconstruction jobs will now be fulfilled by another Constructron after the original stops existing.
    - Deconstruction jobs now have better logic to detect when a Constructrons inventory is full. The process is much faster but still needs work.
    - Added Fuzzy pathing logic to assist when entities are placed in tight places or when using mods like MazeRibbon018.
    - Constructrons will now retry move actions after a few seconds instead of max_jobtime.
    - Constructrons and Service Stations are now registered entities so their removal will be captured regardless of how they are removed.
  Fixes:
    - Resolved the 'next_station' crash when only one Service Station was placed.
    - Resolved an issue with unconstructucted rails being detected by the post job check.
  Space Exploration notes:
    - Space platform tiles are not constructed at this time for the same reason as Landfill.
    - Constructrons do not travel between surfaces themselves.
  Misc:
    - A discord has been created for discussions, ideas, bugs etc. https://discord.gg/m9TDSsH3u2
  Known issues:
    - After job time out, Constructrons will attempt to finish the build or deconstruction queue even if the inventory is full.
    - If something happens to the Constructron during an active job it continues as if nothing is wrong. There are checks in place to queue another job however.
    - The Landfill-like tiles are not constructed as this requires changes to the pathing calculation.
---------------------------------------------------------------------------------------------------
Version: 1.0.7
Date: 2022-02-09
  Improvements:
    - Added the ability to construct tiles! Landfill (and others like Landfill) is unfortunately still not possible at this stage. Landfill is specifically ignored.
    - Significantly more validation is performed at all job stages to prevent crashes.
    - Added event listening for when mods add modules to an entity (i.e Module Inerter) so Constructrons will now build modules even if a ghost is not created.
    - Constructrons will now move to other service stations in hope of fulfilling their logistic request at the new station after max_jobtime is reached. More logic to be added to make this smarter later.
    - Added Krastorio 2 support with equipment grids in Constructrons.
  Fixes:
    - Clean up service stations and constructrons that are destroyed which will prevent crashes at various stages.
    - Clean up service stations that are removed by bots which will prevent crashes at various stages.
    - Constructrons will now retry to move into position after overshooting its destination due to moving too fast after max_jobtime is reached.
    - Constructrons will now retry to move into position after max_jobtime if a player interferes with the Contructron either by driving the Constructron or using a connected Spidertron Remote to it.
  Known issues:
    - After job time out, Constructrons will attempt to finish the build or deconstruction queue even if the inventory is full.
    - If something happens to the Constructron during an active job it continues as if nothing is wrong. There are checks in place to queue another job however.
    - The Landfill tile is not constructed as this requires changes to the pathing calculation.

---------------------------------------------------------------------------------------------------
Version: 1.0.6
Date: 2022-01-30
  Improvements:
    - Deconstruction jobs now adhere to the same 5 second(default) delay to allow for robots to deconstruct the entities.
    - Upgrade jobs now adhere to the same 5 second(default) delay to allow for robots to upgrade the entities.
    - Job start delay is now configurable. Allow more or less time for robots to finish building before a job is queued.
    - Ghosts created by other mods (such as Recursive Blueprints) will now be built.
    - Entities created by other mods that are not buildable by the player, like those found in Logistic Train Network(LTN) will now be skipped from logistic requests.
---------------------------------------------------------------------------------------------------
Version: 1.0.5
Date: 2022-01-25
  Improvements:
    - Contructrons will now rebuild entities that die. I.e are destroyed by biters or players.
    - Constructrons will now go back for items missed during a deconstruction job.
    - Alternate recipes. An easy mode and normal mode. Toggle this from the game menu > settings > mod settings > startup.
---------------------------------------------------------------------------------------------------
Version: 1.0.4
Date: 2022-01-13
  Fixes:
    - Linear constructron job assignment.
  Improvements:
    - Contructrons no longer will start a job without a roboport and at least one bot allowing time to place and fit equipment.
---------------------------------------------------------------------------------------------------
Version: 1.0.3
Date: 2022-01-12
  Fixes:
    - Crash on Constructron placement.
  Improvements:
    - Major performance improvements to ghost and deconstruction entity processing.
    - Ability to set maximum amount of time a job can take before timing out and returning home in the mod settings. Default is 2 minutes.
    - Code refactoring.
  Known issues:
    - After job time out, Constructrons will attempt to finish the build or deconstruction queue when the inventory is full.
    - Missed ghosts and deconstructions will no longer be considered by Contructrons until the entity is deconstructed again.
---------------------------------------------------------------------------------------------------
Version: 1.0.2
Date: 2022-01-10
  Fixes:
    - Mining a Constructron gives the player a Spidertron instead.
    - Partially fixed deconstruction process when Constructron inventory fills. Constructrons will not get stuck any more eliminating manual intervention.
  Known issues:
    - Constructrons will attempt to finish the deconstruction queue when the inventory is full.
    - Missed deconstructions will no longer be considered by Contructrons until the entity is deconstructed again.
    - Placing Constructrons whilst there are active jobs may cause a crash.
  Other:
    - Inception of debug mode.
---------------------------------------------------------------------------------------------------
Version: 1.0.1
Date: 2022-01-09
  Fixes:
    - Crash on mining a Constructron whilst there are active jobs.
