Internal
6 days ago
1.1 - 2.0
2.62K

Changelog

Version: 0.32.05
Date: 29.08.2025
  Changes:
    - Fix some code lint warinings
Version: 0.32.04
Date: 28.08.2025
  Bugfixes:
    - Radiation script. Post disabling mod w\ radioacive items can lead to panic.
Version: 0.32.03
Date: 28.08.2025
  Changes:
    - Rewrited: Code for [apm.lib.utils.entity.has.fuel_category]. Using strict typing.
Version: 0.32.02
Date: 24.08.2025
  Changes:
    - Added: [apm.lib.utils.assembler.get.crafting_categories]
Version: 0.32.01
Date: 13.08.2025
  Bugfixes:
    - Radioactive items with quality > normal don't trigger damage to player (by default get_items_count get only normal items).
Version: 0.32.00
Date: 10.08.2025
  Bugfixes:
    - Mod ignores enitites builded by script (for example: inserters were not be pushed to event queue).
    - Mod loss quality modifier for fuel with.
    - Mod loss quality with spilling items from containers.
  Changes:
    - Deleted: Code for [apm_starfall]. No longer supported.
    - Deleted: Code for [apm_recycling]. No longer supported.
    - Deleted: Code for apm's offshore pumps. With 2.0 it became legacy.
    - Rewrited: New double linked list based walker for inserters. Now used dllist to handle inserters queue.
    - Added: The burner isnerters now try find fuel from pickup entity or try use helded suitable fuel when it's out of fuel.
    - Added: Ash chaining logic. Now inserter can take ash from burnt result inventories (self or pickup) and put to target's same inventory.
    - Added: Ash auto transferring only starts when puckup inventory is full & target inventory is not full.
Version: 0.31.19
Date: 02.08.2025
  Bugfixes:
    - Fixed multiplayer error with command register action.
Version: 0.31.18
Date: 31.07.2025
  Features:
    - [apm.lib.utils.entity.set.hidden] Hide entity
Version: 0.31.17
Date: 31.07.2025
  Features:
    - [apm.lib.utils.entity.get.by_name] Find entity by name and group
    - [apm.lib.utils.entity.del.next_upgrade] Remove next_upgrade for selected entity
Version: 0.31.16
Date: 02.05.2025
  Features:
    - [apm.lib.utils.recipe.category.exists] Check recipe category
  Bugfixes:
    - [apm.lib.utils.assembler.add.crafting_categories] Can gracefully handle non-existing recipe category.
Version: 0.31.15
Date: 08.04.2025
  Bugfixes:
    - Some small refactoring.
Version: 0.31.14
Date: 07.04.2025
  Features:
    - [apm.lib.utils.planet.remove.resource] Remove resource from planet by name
    - [apm.lib.utils.planet.remove.everywhere_resource] Remove resource from all planets by name
    - [apm.lib.utils.resource.remove] Remove resource
Version: 0.31.13
Date: 06.04.2025
  Features:
    - [apm.lib.utils.spidertron.exist] Added spidertron fn.
Version: 0.31.12
Date: 01.04.2025
  Features:
    - [apm.lib.utils.patch.item.replace] Replace items in all inventories (control.lua)
    - [apm.lib.utils.patch.entity.replace] Replace entity on all surfaces (control.lua)
Version: 0.31.11
Date: 01.04.2025
  Bugfixes:
    - Some missing objects for target require calls.
Version: 0.31.10
Date: 10.01.2025
  Features:
    - [apm_lib_radiation_dmg_based_on_stack] Adding setting for scale radiation damage by item quantity.
Version: 0.31.09
Date: 03.01.2025
  Features:
    - [apm.lib.utils.technology.force.update_science_packs]
Version: 0.31.08
Date: 01.01.2025
  Bugfixes:
    - [apm.lib.utils.assembler.add.fluid_connections] Corrected input/output
    - [apm.lib.utils.assembler.set.hidden] Added hidden_in_factoriopedia
    - [apm.lib.utils.boiler.overhaul] Changed default values to be odd 1MW
    - [apm.lib.utils.recipe.ingredient.replace_all] Pass multiplier for ingredient
  Features:
    - [apm.lib.utils.recipe.ingredient.remove_by_ref]
    - [apm.lib.utils.recipe.ingredient.remove]
Version: 0.31.07
Date: 26.12.2024
  Changes:
    - apm.lib.utils.technology.add.science_pack_conditional: Adding optional skiplist.
Version: 0.31.06
Date: 25.12.2024
  Features:
    - apm.lib.utils.technology.find.by_prefix
  Bugfixes:
    - apm.lib.utils.technology.remove.science_packs_except
Version: 0.31.05
Date: 13.12.2024
  Features:
    - apm.lib.features.stack_size_ash
Version: 0.31.04
Date: 12.12.2024
  Features:
    - apm.lib.features.stack_size
    - Settings: apm_lib_stack_size default item's stack size (recommended: 200).
Version: 0.31.03
Date: 12.12.2024
  Features:
    - apm.lib.features
    - apm.lib.utils.item.overwrite.weight
    - apm.lib.utils.constants.value.weight
Version: 0.31.02
Date: 11.12.2024
  Features:
    - apm.lib.utils.recipe.has.ingredient_by_ref
    - apm.lib.utils.recipe.ingredient.mod_by_ref
    - apm.lib.utils.recipe.ingredient.get.count_by_ref
Version: 0.31.01
Date: 10.12.2024
  Features:
    - apm.lib.utils.item.mod.overwrite_weight_for_science_packs
    - All science pack are rewrited with default item's weight (1000).
    - apm.lib.utils.constants.weight
Version: 0.31.00
Date: 08.12.2024
  Optimizations:
    - A lot of base code...
Version: 0.30.27
Date: 07.12.2024
  Optimizations:
    - utils.car
    - utils.category
    - utils.character
    - utils.debug
    - utils.description
    - utils.equipment
  Bugfixes:
    - Burner car burnt_result_slot.
Version: 0.30.26
Date: 06.12.2024
  Optimizations:
    - Some code ...
Version: 0.30.25
Date: 06.12.2024
  Optimizations:
    - apm.lib.utils.assembler
Version: 0.30.24
Date: 05.12.2024
  Features:
    - apm.lib.utils.assembler.get.default_circuit_connector()
    - apm.lib.utils.assembler.get.default_circuit_wire_max_distance()
Version: 0.30.23
Date: 05.12.2024
  Bugfixes:
    - Inserters fn: blacklisted ash changed to any burnt result item
Version: 0.30.22
Date: 05.12.2024
  Bugfixes:
    - Inserters fn: bug: blacklisting ash was ignored
Version: 0.30.21
Date: 05.12.2024
  Bugfixes:
    - Inserters fn: calc_item_count panic
Version: 0.30.20
Date: 04.12.2024
  Features:
    - apm.lib.utils.technology.remove.science_packs_except
Version: 0.30.19
Date: 03.12.2024
  Features:
    - Frozen_patch utils
Version: 0.30.18
Date: 30.11.2024
  Optimizations:
    - apm.lib.utils.technology
Version: 0.30.17
Date: 29.11.2024
  Bugfixes:
    - module.limitation -> recipe.productivity
    - Recipe.result/normal/expensive removed
Version: 0.30.16
Date: 24.11.2024
  Features:
    - apm.lib.utils.assembler.add.crafting_categories fn
    - apm.lib.utils.category.exists fn
Version: 0.30.15
Date: 21.11.2024
  Bugfixes:
    - apm.lib.utils.assembler.mod.module_specification fixed
Version: 0.30.14
Date: 20.11.2024
  Bugfixes:
    - [apm_nuclear] Better centrifuge integration
Version: 0.30.13
Date: 19.11.2024
  Optimizations:
    - Dropped debug code
Version: 0.30.11
Date: 19.11.2024
  Bugfixes:
    - Technology.trigger.remove + technology.remove
Version: 0.30.10
Date: 19.11.2024
  Bugfixes:
    - Bug disabling recipe, which not hide it from factoriopedia (missed special field)
Version: 0.30.9
Date: 18.11.2024
  Bugfixes:
    - Bug with steam energy source doesn't consume pollution for AC
Version: 0.30.8
Date: 17.11.2024
  Bugfixes:
    - LuaSurface.spill_item_stack invalid params (changed API in 2.0+ game)
Version: 0.30.7
Date: 17.11.2024
  Optimizations:
    - Character crafting groups
Version: 0.30.6
Date: 17.11.2024
  Bugfixes:
    - apm_energy_addon: generate fns are updated
Version: 0.30.5
Date: 15.11.2024
  Bugfixes:
    - aai industry patch: fixed processing fuel recipe generator + valid recipe names
Version: 0.30.4
Date: 14.11.2024
  Bugfixes:
    - apm.lib.utils.item.remove can get nil instead target object
Version: 0.30.3
Date: 14.11.2024
  Changes:
    - Pumped version 0.30.3 (from 0.3 ...)
Version: 0.30.2
Date: 14.11.2024
  Changes:
    - Starting refactoring
    - Added new tech triggers fns
    - Dropped internal code for starting equipment
    - Integrate remote API for starting equipment, provided by "freeplay_starting_equipment"
    - Slowly adding LuaDoc support
    - Prerelease for apm_power test
  Bugfixes:
    - Bugs with release factorio 2.0
    - Icons function invalid size for sprites (tech, item icons, recipe icons & etc)
    - Fixed broken part of steam inserter leechers
Version: 0.30.1
Date: 01.11.2024
  Changes:
    - Fixed changed game events
    - Move from "global" to "storage" variables
  Compatibility:
    - Incompatibilities
Version: 0.30.0
Date: 01.11.2024
  Changes:
    - Minimal bootstrap adaptation for factorio 2.0
Version: 0.23.11
Date: 23.11.2023
  Changes:
    - Internal type logic extended w\ "ammo" entity type
Version: 0.23.10
Date: 28.07.2023
  Features:
    - New: apm.lib.utils.recipe.overwrite.localised_name
    - New: apm.lib.utils.recipe.overwrite.localised_description
Version: 0.23.09
Date: 28.07.2023
  Bugfixes:
    - apm.lib.utils.technology.remove.prerequisites_all
Version: 0.23.08
Date: 28.07.2023
  Features:
    - New fn: apm.lib.utils.technology.remove.prerequisites_all
Version: 0.23.07
Date: 23.06.2023
  Changes:
    - Modified: get_icon fn: return dummy icon if icon from entity was found, but invalid
Version: 0.23.06
Date: 23.06.2023
  Changes:
    - Modified: get_icon fn: return dummy icon if icon from entity was found, but invalid
Version: 0.23.05
Date: 11.12.2022
  Changes:
    - Added: added rail-planner type resolver for recipe
Version: 0.23.04
Date: 15.12.2022
  Compatibility:
    - Fixed: AAI compatibility (thx to notnotmelon & FI)
Version: 0.23.03
Date: 11.12.2022
  Changes:
    - Added: added module type resolver for recipe
Version: 0.23.02
Date: 07.05.2022
  Changes:
    - Added: sinkhole for fluids
Version: 0.23.01
Date: 11.01.2022
  Balancing:
    - Buffed: electric fuel acceleration bonus
Version: 0.23.00
Date: 11.01.2022
  Changes:
    - Synced: with other mods
Version: 0.19.50
Date: 23. 05. 2020
  Changes:
    - Unification of the version with the other mods
Version: 0.19.07
Date: 14. 02. 2020
  Minor Features:
    - Equipment manager for burner equipment:
      If a burner equipment is equipped in your armor, you can toggle the equipment manager on and off: default hotkey is ALT+W or use the icon shortcut in your quickbar
      If the equipment manager is enabled it will automatic fuel up any burner equipment using your personal inventory to a maximum of 10 items, as long as there is at least one fuel item left in it's slot. It will also transfer any residues to your personal inventory (like ash).
  Changes:
    - Some script optimizations.
Version: 0.19.06
Date: 10. 02. 2020
  Changes:
    - ./lib/local/initial.lua: added "bio-arboretum-3" to "apm_power" section.
Version: 0.19.05
Date: 06. 02. 2020
  Bugfixes:
    - Removed: ./lib/utils/description.lua: function: apm.lib.utils.description.item.fuel.update(item). No longer needed, base game added fuel burnt results to the item tooltip.
    - Removed: ./lib/utils/description.lua: function: apm.lib.utils.description.item.nuclear_fuel.update(item). No longer needed, base game added fuel burnt results to the item tooltip.
Version: 0.19.04
Date: 01. 02. 2020
  Bugfixes:
    - Typo in ./lib/scripts/equipment.lua
Version: 0.19.03
Date: 01. 02. 2020
  Changes:
    - ./lib/scripts/equipment.lua: added support for multiple alert messages from different burner equipments.
    - ./lib/scripts/equipment.lua: added a simple check if the burnt fuel inventory is blocked with the wrong burnt result.
    - New: ./lib/definitions.lua: same as my other mods all icon declarations are now in here.
Version: 0.19.02
Date: 26. 01. 2020
  Bugfixes:
    - Fixed: ./lib/utils/recycling.lua: function: metal_generation(): dynamic recycler tech icons, one had the wrong size applied.
    - Fixed: ./lib/scripts/starfall.lua: Meteorites will no longer land on water, I missed a chunk check.
  Changes:
    - Changed: ./lib/utils/recycling.lua: function: apm.lib.utils.recycling.metal.add(options): now uses a table with all arguments instead of positional arguments directly.
    - Removed: ./lib/utils/lab.lua: function: apm.lib.utils.lab.set.inputs()
Version: 0.19.01
Date: 23. 01. 2020
  Changes:
    - Fixed some icon related stuff in the code for better compatibility with other mods.
    - Implement hook to custom event form bobinserters and/or boblogistics. (fixes an issue if the position of an inserter was set facing away from a crafting machine (drop/pickup position), this could lead into a situation where my script desired to drop the inserter from the event table, because this position is invalid, and I had no clue if the inserter positions had changed again to a valid position.
Version: 0.19.00
Date: 21. 01. 2020
  Major Features:
    - Initial release for Factorio 0.18.0
Version: 0.18.19
Date: 19. 01. 2020
  Bugfixes:
    - Add a entity check to ./lib/utils/entity.lua: function: apm.lib.utils.entity.set.next_upgrade(entity, next_upgrade)
    - Removed debug log output in ./lib/scripts/init.lua: check_technologies(force)
    - Scripts: fixed some missing "local" declarations. (hopefully this will fix a very rare desync edge case)
  Changes:
    - Optimized initial script.
    - ./lib/utils/builder.lua: function: apm.lib.utils.builder.recipe.item.alternatives.add() added new optional statement "item_multi".
      This statement is used if the alternative is type: "item", to multiply the amount of ingredients and results by this value.
      Only use at the moment for "APM_CLEANING_SOLUTION" in "Amator Phasma's Recycling", to balance ingredients and results between "stone" and "crushed stone".
    - New: ./lib/utils/storage_tank.lua
    - New: ./lib/utils/storage_tank.lua: function: apm.lib.utils.storage_tank.exist(storage_tank_name)
    - New: ./lib/utils/storage_tank.lua: function: apm.lib.utils.storage_tank.set.hidden(storage_tank_name)
    - New: ./lib/utils/technology.lua: function: apm.lib.utils.technology.prerequisite.has.science_pack(technology_name, science_pack_name)
Version: 0.18.18
Date: 11. 07. 2020
  Changes:
    - New: ./lib/scripts/init.lua: function: add_technology_conditional(unlock_technology :: string, parent_technologies :: string or table)
    - New: ./lib/scripts/init.lua: local function: activate_technologies_conditional(force)
    - New: ./lib/utils/recipe.lua: function: apm.lib.utils.recipe.ingredient.remove_all(recipe_name)
    - New: ./lib/utils/boiler.lua: function: apm.lib.utils.boiler.set.next_upgrade(boiler_name, next_upgrade)
    - New: ./lib/utils/boiler.lua: function: apm.lib.utils.boiler.set.hidden(boiler_name)
    - New: ./lib/utils/entity.lua: function: apm.lib.utils.entity.set.next_upgrade(entity, next_upgrade)
    - New: ./lib/utils/generator.lua: function: apm.lib.utils.generator.set.next_upgrade(generator_name, next_upgrade)
    - New: ./lib/utils/generator.lua: function: apm.lib.utils.generator.set.hidden(generator_name)
    - Removed: redundant: ./lib/utils/technology.lua: function: apm.lib.utils.technology.mod.disable(technology_name)
      Use apm.lib.utils.technology.disable(technology_name) instead.
    - ./lib/scripts/init.lua: better support for loading into existing save files and loading other mods on top of it.
Version: 0.18.17
Date: 05. 01. 2020
  Changes:
    - New: ./lib/utils/equipment.lua
      Add a function for dynamic fuel requirement description for the prototype: "generator-equipment".
Version: 0.18.16
Date: 04. 01. 2020
  Major Features:
    - Added script support for equipment with burner property.
  Changes:
    - New: ./lib/utils/description.lua: function: apm.lib.utils.description.item.nuclear_fuel.update(item)
    - New: ./lib/utils/reactor.lua: function:  apm.lib.utils.reactor.overhaul_exceptions.add(reactor_name)
    - New: ./lib/utils/reactor.lua: function:  apm.lib.utils.reactor.overhaul_exceptions.remove(reactor_name)
    - ./lib/utils/item.lua: function: apm.lib.utils.item.add.radioactive_description(item_name, level) append result description if needed.
Version: 0.18.15
Date: 30. 12. 2019
  Changes:
    - Moved [fuel-category-name] for "chemical" to the mod apm_power.
Version: 0.18.14
Date: 29. 12. 2019
  Changes:
    - Inserters now leeching fuel from pickup and drop machines right after placing if possible.
    - All inserters can now leech up to 5 items, ignoring all stack size restrictions on this function.
Version: 0.18.13
Date: 28. 12. 2019
  Changes:
    - ./lib/utils/recycler.lua -> add support for "show always made in" setting.
    - ./lib/script/starfall.lua: code clean ups.
    - ./lib/script/inserter.lua: command: added: /inserter
    - New: ./lib/utils/description.lua: function: apm.lib.utils.car.add.fuel_category(car_name, category)
    - New: setting "Valid prototype targets" this exposes the valid prototyps for the inserter script to the user
Version: 0.18.12
Date: 26. 12. 2019
  Bugfixes:
    - Fix: ./lib/utils/assembler.lua: function: apm.lib.utils.assembler.get.fuel_categories() wrong log format.
    - Fix: ./lib/scripts/inserter.lua: won't pickup ash from burnt_inventory if bobinserters changes the position to something that is not x*90°
  Changes:
    - Optimizations: ./lib/scripts/inserter.lua
    - Changed: ./lib/scripts/inserter.lua: add support for sound volume templates, sound enable/disable per player.
    - New: ./lib/utils/assembler.lua: function: apm.lib.utils.assembler.mod.module_specification(assembler_name, value, allowed_effects)
    - Some more optimizations, bug fixes, removing of unnecessary code.
Version: 0.18.11
Date: 20. 12. 2019
  Changes:
    - Implement a log level startup-setting to reduce the log-spam if not needed:
      - 0: Errors
      - 1: Warnings
      - 2: Info
Version: 0.18.10
Date: 19. 12. 2019
  Changes:
    - New: ./lib/utils/description.lua: function: apm.lib.utils.description.item.fuel.update(item)
    - ./lib/utils/description.lua: function: apm.lib.utils.fuel.overhaul() now uses apm.lib.utils.description.item.fuel.update()
Version: 0.18.09
Date: 18. 12. 2019
  Changes:
    - Some optimizations, bug fixes, removing of unnecessary code.
    - ./lib/scripts/inserter.lua: added todo for next version of factorio, and removed an unnecessary condition.
Version: 0.18.08
Date: 16. 12. 2019
  Changes:
    - Some optimizations, bug fixes, removing of unnecessary code.
Version: 0.18.07
Date: 15. 12. 2019
  Bugfixes:
    - Fix: ./lib/scripts/starfall.lua: remove_surface(index)
  Changes:
    - Some optimizations, bug fixes, removing of unnecessary code.
    - New: ./lib/utils/technology.lua: function: apm.lib.utils.technology.find.technology_by_recipe(recipe_name)
Version: 0.18.06
Date: 14. 12. 2019
  Changes:
    - Some optimizations, bug fixes, removing of unnecessary code.
    - New: setting: "Radiation damage multiplier" for everyone who would like to die...
    - New: setting: "Maximum iterations over inventory slots per event"
Version: 0.18.05
Date: 12. 12. 2019
  Bugfixes:
    - Fix: ./lib/utils/entity.lua: function: apm.lib.utils.entity.has.fuel_category(entity, category): take default value into account if both fuel_category and fuel_categories are not specified.
    - Fix: ./lib/utils/entity.lua: function: apm.lib.utils.entity.add.fuel_category(entity, category): take default value into account if both fuel_category and fuel_categories are not specified.
    - Fix: ./lib/utils/fluid.lua: function: apm.lib.utils.fluid.remove(fluid_name): set hidden attribute to "true", remove wrong setter of flags attribute.
    - Fix: ./lib/utils/item.lua: function: apm.lib.utils.item.remove(item_name): set additional flags "hide-from-bonus-gui" and "hide-from-fuel-tooltip".
  Changes:
    - New: ./lib/utils/entity.lua: function: apm.lib.utils.entity.get.fuel_categories(entity)
    - ./lib/scripts/init.lua: now handels disabled recipes on init and update and remove them from crafting machines.
Version: 0.18.04
Date: 11. 12. 2019
  Bugfixes:
    - Fix: ./lib/utils/fuel.lua: function: apm.lib.utils.fuel.entities.add.category_with_conditional(): "nil" in logfile
    - Fix: that the "Hidden fuel item" is shown as fuel at the fuel_inventory tooltip
  Changes:
    - New: ./lib/scripts/init.lua: script for on _init and on_update to handel technologies, items, entities.
    - New: ./lib/utils/entity.lua: function: apm.lib.utils.entity.has.flag(entity, flag)
    - New: ./lib/utils/entity.lua: function: apm.lib.utils.entity.add.flag(entity, flag)
    - New: ./lib/utils/entity.lua: function: apm.lib.utils.entity.has.crafting_category(entity, category)
    - New: ./lib/utils/entity.lua: function: apm.lib.utils.entity.add.crafting_category(entity, category)
    - New: ./lib/utils/entity.lua: function: apm.lib.utils.entity.has.fuel_category(entity, category)
    - New: ./lib/utils/entity.lua: function: apm.lib.utils.entity.add.fuel_category(entity, category)
    - New: ./lib/utils/entities.lua: function: apm.lib.utils.entities.add.fuel_category_with_conditional(entity_type, conditional_category, category)
    - New: ./lib/utils/entities.lua: function: apm.lib.utils.entities.set.fuel_categoriy_to_all_with_condition(entity_type, conditional_category, categories)
    - New: ./lib/utils/entities.lua: function: apm.lib.utils.entities.set.fuel_categoriy_to_all(entity_type, categories)
    - New: ./lib/utils/car.lua: function: apm.lib.utils.car.set.fuel_category(car_name, categories)
    - New: ./lib/utils/assembler.lua: function: apm.lib.utils.assembler.set.hidden(assembler_name)
    - New: ./lib/utils/furnace.lua: function: apm.lib.utils.furnace.set.hidden(furnace_name)
    - New: ./lib/utils/mining_drill.lua: function: apm.lib.utils.mining_drill.set.hidden(mining_drill_name)
    - ./lib/utils/recipe.lua: function: apm.lib.utils.recipe.add_mainproduct_if_needed() added argument force_mainproduct(bool)
    - ./lib/utils/recipe.lua: function: apm.lib.utils.recipe.set.always_show_products() added argument category_condition(str)
    - ./lib/utils/recipe.lua: function: apm.lib.utils.recipe.set.always_show_made_in() added argument category_condition(str)
Version: 0.18.03
Date: 08. 12. 2019
  Changes:
    - ./lib/utils/description.lua: function: renamed ...entities.setup() to  ...entities.initial()
    - New: ./lib/utils/description.lua: function: apm.lib.utils.description.entities.setup(entity, entry_list)
      - A merged ..entities.setup() and ...entities.add_fuel_types() function, with additional conditions. The custom description for the fuel types only is shown if there are more than one fuel type accepted.
    - New: ./lib/utils/recipe.lua: function: apm.lib.utils.recipe.result.mod_temperature(recipe_name, result_name, condition_temperature, target_temperature)
Version: 0.18.02
Date: 08. 12. 2019
  Changes:
    - ./lib/scripts/inserter.lua: support for on_event(defines.events.on_entity_cloned)
    - ./lib/scripts/offshore_pump.lua: added forced: raise_built and raised_destroy
    - New: ./lib/scripts/radiation.lua: function: radiation.remote.list_items()
      - Returns a table with item names as key and radiation level as value
      - /c remote.call("apm_radiation", "list_items")
      - Example return: {"uranium-235"=2, "uranium-fuel-cell"=2, "used-up-uranium-fuel-cell"=3}
    - ./lib/scripts/starfall.lua: added basic support for the mod warptorio2
Version: 0.18.01
Date: 07. 12. 2019
  Changes:
    - Items: remove radiation from uranium-ore and uranium-238
    - Revamp: ./lib/scripts/starfall.lua: hardened and multi surface support added
    - New: ./lib/scripts/starfall.lua: function: starfall.remote.add_surface(index)
    - New: ./lib/scripts/starfall.lua: function: starfall.remote.remove_surface(index)
    - New: ./lib/scripts/starfall.lua: function: starfall.remote.add_event(surface_index, amount, time, range)
    - New: ./lib/scripts/starfall.lua: custom event: event_on_impact() -> event:
      - event.surface = Index of the LuaSurface
      - event.position = Types/Position of the impact center
Version: 0.18.00
Date: 04. 12. 2019
  Changes:
    - Revised scripts and functions.
Version: 0.17.98
Date: 09. 11. 2019
  Changes:
    - Revamp: ./lib/utils/builder.lua: its now dynamic and I can remove all the third party dependencies from my mods.
Version: 0.17.97
Date: 08. 11. 2019
  Changes:
    - More adjustments to the new tooltip UI (https://forums.factorio.com/viewtopic.php?f=3&t=77551)
    - Added new default icon definition: apm.lib.utils.icon.chunk_bg_w (White border / halo background)
    - Added new default icon definition: apm.lib.utils.icon.crushed_bg_w (White border / halo background)
    - Added new default icon definition: apm.lib.utils.icon.briquette_bg_w (White border / halo background)
Version: 0.17.96
Date: 04. 11. 2019
  Changes:
    - Adjustments to the new tooltip UI (https://forums.factorio.com/viewtopic.php?f=3&t=77551)
Version: 0.17.95
Date: 04. 11. 2019
  Bugfixes:
    - Fix wrong behavior with containers in certain cases for inserter fuel chains.
Version: 0.17.94
Date: 04. 11. 2019
  Bugfixes:
    - Burner inserter can now chain and leech fuel from "Burner pumps". (implemented a workaround for posible bug -> https://forums.factorio.com/viewtopic.php?f=7&t=77535) Sorry but you need to replace inserters on "Burner Pumps" after this patch.
  Changes:
    - Changed radiation damage by type: Low 2-4 dmg/4s; Medium 4-16 dmg/4s; High: 8-48 dmg/4s.
Version: 0.17.93
Date: 29. 10. 2019
  Changes:
    - Scripts adapted for "Amator Phasma's Recycling" and "Amator Phasma's Coal & Steam".
    - New: ./lib/util/technology.lua: function: apm.lib.utils.technology.force.recipe_for_unlock(technology_name, recipe_name)
    - New: ./prototypes/character_final_fixes.lua (for compatibility with bob's classes) inject my crafting_category: "apm_handcrafting_only" to "bob-character-miner". -> https://mods.factorio.com/mod/apm_power/discussion/5dbb3acc3d0f50000d272f23
Version: 0.17.92
Date: 26. 10. 2019
  Bugfixes:
    - Fix: missing file change: ./lib/util/description.lua
Version: 0.17.91
Date: 26. 10. 2019
  Bugfixes:
    - Fix: ./lib/util/description.lua: function: apm.lib.utils.description.entities.setup() add a check if the localised_description property is a table.
Version: 0.17.90
Date: 24. 10. 2019
  Bugfixes:
    - Fix: ./lib/util/recipe.lua: function: local function ingredient_mod_temperature(): indexing (a nil value) -> https://mods.factorio.com/mod/apm_nuclear/discussion/5db1ef88477bd4000b59fa5d
    - Fix: ./lib/util/car.lua: function: apm.lib.utils.car.get.fuel_categories(car_name): indexing (a nil value) -> https://mods.factorio.com/mod/apm_power/discussion/5db1f15d477bd4000c2b1fab
    - Fix: ./lib/util/car.lua: function: apm.lib.utils.locomotive.get.fuel_categories(locomotive_name): indexing (a nil value)
    - Fix: ./prototypes/smoke.lua
  Changes:
    - New: ./lib/util/item.lua: function: apm.lib.utils.item.has.burnt_result(item_name, burnt_result)
    - New: ./lib/util/item.lua: function: apm.lib.utils.item.replace.burnt_result(item_name, old_burnt_result, new_burnt_result)
    - New: ./lib/util/item.lua: function: apm.lib.utils.item.replace.burnt_results(old_burnt_result, new_burnt_result)
    - Update ./lib/util/icons.lua to use the new icon size from resource pack
Version: 0.17.89
Date: 22. 10. 2019
  Bugfixes:
    - Fix: ./lib/util/assembler.lua: function: apm.lib.utils.assembler.get.fuel_categories() -> wrong default return
    - Fix: ./lib/util/furnace.lua: function: apm.lib.utils.furnace.get.fuel_categories() -> wrong default return
    - Fix: ./lib/util/boiler.lua: apm.lib.utils.boiler.get.fuel_categories() -> wrong default return
    - Fix: ./lib/util/car.lua: apm.lib.utils.car.get.fuel_categories() -> wrong default return
    - Fix: ./lib/util/inserter.lua: apm.lib.utils.inserter.get.fuel_categories() -> wrong default return
    - Fix: ./lib/util/lab.lua: apm.lib.utils.lab.get.fuel_categories() -> wrong default return
    - Fix: ./lib/util/locomotive.lua: apm.lib.utils.locomotive.get.fuel_categories() -> wrong default return
    - Fix: ./lib/util/mining_drill.lua: apm.lib.utils.mining_drill.get.fuel_categories() -> wrong default return
    - Fix: ./lib/util/reactor.lua: apm.lib.utils.reactor.get.fuel_categories() -> wrong default return
    - Fix: ./lib/util/icon.lua: apm.lib.utils.icon.get.from_fluid(object_name) -> wrong function call
  Changes:
    - Code revamp: *.get.fuel_categories() and *.update_description() functions for better dynamic mod support
    - New: ./lib/util/item.lua: function: apm.lib.utils.item.overwrite.localised_name(item_name, localised_name)
    - New: ./lib/util/item.lua: function: apm.lib.utils.item.overwrite.localised_description(item_name, localised_description)
    - New: ./lib/util/technology.lua: function: apm.lib.utils.technology.overwrite.localised_name(technology_name, localised_name)
    - New: ./lib/util/technology.lua: function: apm.lib.utils.technology.overwrite.localised_description(technology_name, localised_description)
    - New: ./lib/util/generator.lua: function: apm.lib.utils.generator.get.fuel_categories(generator_name)
    - New: ./lib/util/generator.lua: function: apm.lib.utils.generator.update_description(generator_name)
    - New: ./lib/util/modules.lua: function: apm.lib.utils.modules.create.category(category_name)
    - New: ./lib/util/icon.lua: function: apm.lib.utils.icon.merge(icon_tables)
    - New: ./lib/util/icon.lua: function: apm.lib.utils.icons.mod(t_icons, scale, shift)
    - New: ./lib/util/icon.lua: function: apm.lib.utils.icon.get.from_recipe(object_name)
    - New: ./lib/util/icon.lua: function: apm.lib.utils.icon.get.from_tool(object_name)
    - Revamp: ./lib/util/description.lua: apm.lib.utils.description.entities.setup(entity)
    - Recipe-category: new "apm_nuclear_cooling_0"
    - Recipe-category: new "apm_electric_smelting"
    - New: ./lib/util/furnace.lua: function: apm.lib.utils.furnace.mod.category.add(furnace_name, category)
    - New: ./lib/util/builder.lua: function: apm.lib.utils.builder.recipe.item.alternatives.add(name, alternative, weighting)
    - New: ./lib/util/builder.lua: function: apm.lib.utils.builder.recipe.item.alternatives.get(name, weight_min, weight_max)
    - New: ./lib/util/builder.lua: function: apm.lib.utils.builder.recipe.item.simple(name, amount, weight_min, weight_max, fluid_multi)
    - New: ./lib/util/builder.lua: function: apm.lib.utils.builder.recipe.item.probability(name, amount_min, amount_max, probability, weight_min, weight_max, fluid_multi)
    - New: ./lib/util/builder.lua: function: apm.lib.utils.builder.recipe.item.name(name, weight_min, weight_max)
    - New: ./lib/util/category.lua: function: apm.lib.utils.category.change(group, subgroup, new_group, new_subgroup)
    - ./lib/util/category.lua: function: apm.lib.utils.starfall.ore.generate() -> use new icon fuctions
    - ./lib/script/starfall.lua: function: check_if_position_is_valid(surface, position) - check for resource on ground
    - New: ./lib/util/item.lua: function: apm.lib.utils.item.dummy() -> returns a dummy item
    - Recipe-category: renamed apm_crusher_with_fluid to apm_crusher_2
    - Recipe-category: renamed apm_crusher_with_tool to apm_crusher_3
    - Recipe-category: renamed apm_press_with_fluid to apm_press_2
    - Recipe-category: renamed apm_press_with_tool to apm_press_3
    - New: ./lib/util/fuel.lua: function: apm.lib.utils.fuel.entities.add.category_with_conditional(entity_type, conditional_category, category)
    - New: ./lib/util/fuel.lua: function: apm.lib.utils.fuel.overwrite_emissions_multiplier(item_name, emissions_multiplier)
  Deprecated:
    - Mark deprecated: ./lib/util/builder.lua: function: apm.lib.utils.builder.recipe.ingredient.alternatives.add()
    - Mark deprecated: ./lib/util/builder.lua: function: apm.lib.utils.builder.recipe.ingredient.alternatives.get()
    - Mark deprecated: ./lib/util/builder.lua: function: apm.lib.utils.builder.recipe.ingredient.simple()
    - Mark deprecated: ./lib/util/builder.lua: function: apm.lib.utils.builder.recipe.ingredient.probability()
    - Mark deprecated: ./lib/util/builder.lua: function: apm.lib.utils.builder.recipe.result.alternatives.add()
    - Mark deprecated: ./lib/util/builder.lua: function: apm.lib.utils.builder.recipe.result.alternatives.get()
    - Mark deprecated: ./lib/util/builder.lua: function: apm.lib.utils.builder.recipe.result.simple()
    - Mark deprecated: ./lib/util/builder.lua: function: apm.lib.utils.builder.recipe.result.probability()
  Deleted:
    - Deleted: ./lib/util/description.lua: apm.lib.utils.description.entities.include_list.add(entity_name) -> no longer needed
    - Deleted: ./lib/util/description.lua: apm.lib.utils.description.entities.include_list.remove(entity_name) -> no longer needed
Version: 0.17.88
Date: 03. 10. 2019
  Changes:
    - Related changes to modification in apm_power -> apm.lib.utils.fuel.overwrite_coal_fuel_value()
Version: 0.17.87
Date: 09. 08. 2019
  Bugfixes:
    - Fix: typo in the long description of the "Storage protection" setting.
  Changes:
    - Recipe-category: new: "apm_recycling_3"
    - Recipe-category: new: "apm_recycling_4"
    - apm.lib.utils.item.add.radioactive_description(), added optional level argument
Version: 0.17.86
Date: 09. 08. 2019
  Minor Features:
    - Removed: setting to hide mod info in the GUI (factorio has this option by it self)
Version: 0.17.85
Date: 08. 08. 2019
  Bugfixes:
    - Fix: ./lib/script/inserter.lua: function: calc_item_count() -> https://mods.factorio.com/mod/apm_lib/discussion/5d04023413ce08000cc5c4e6
  Minor Features:
    - New: ./lib/utils/patch/space_exploration.lua: function: apm.lib.utils.patch.space_exploration.block_from_space(prototype_type, prototype_name)
Version: 0.17.84
Date: 03. 06. 2019
  Bugfixes:
    - Changelog dates
    - Fix: ./lib/util/recipe.lua: function: apm.lib.utils.recipe.ingredient.replace(), check if the target item/fluid for the replacement is already in the ingredients list.
  Changes:
    - Refactoring some functions in ./lib/util/recipe.lua
Version: 0.17.83
Date: 02. 06. 2019
  Bugfixes:
    - ./lib/util/item.lua: function: apm.lib.utils.item.get_type(item_name, prefer_item): added a workaround for a special case: if this function found an ITEM and a FLUID with the same name, it will return FLUID by default and write it to the log() that it found both. It is possible to set the statement "prefer_item" to true, this will change this behavior and return ITEM in this case. -> https://mods.factorio.com/mod/apm_recycling/discussion/5cf2f5657bc50c000dab62c2
Version: 0.17.82
Date: 31. 05. 2019
  Bugfixes:
    - ./lib/script/radiation.lua: implement spairs() to sort the table with the radioactive items on iteration by highest radiation level first, to compare this with the player inventory. -> https://mods.factorio.com/mod/apm_nuclear/discussion/5cf0dee3b06445000c691c65
Version: 0.17.81
Date: 31. 05. 2019
  Minor Features:
    - New: ./lib/util/string.lua: function: apm.lib.utils.string.version_to_number(version)
  Bugfixes:
    - ./lib/util/icon.lua: function: apm.lib.utils.icon.mod(t_icon, scale, shift) add shift calculation.
  Changes:
    - ./lib/util/recipe.lua: function: apm.lib.utils.recipe.ingredient.mod() add statement: ingredient_amount_expensive (optional)
    - ./lib/util/recipe.lua: function: apm.lib.utils.recipe.energy_required.mod() add statement: value_expensive (optional)
Version: 0.17.80
Date: 28. 05. 2019
  Minor Features:
    - New: ./lib/util/recipe.lua: function: apm.lib.utils.recipe.result.remove_all(result_name)
Version: 0.17.79
Date: 26. 05. 2019
  Minor Features:
    - New: ./lib/util/recipe.lua: function: apm.lib.utils.recipe.ingredient.mod_temperature(recipe_name, ingredient_name, target_temperature)
    - New: ./lib/util/recipe.lua: function: apm.lib.utils.recipe.set.always_show_made_in(recipe_name, bool)
    - New: ./lib/util/recipe.lua: function: apm.lib.utils.recipe.set.always_show_products(recipe_name, bool)
    - New: ./lib/util/fluid.lua: function: apm.lib.utils.fluid.exist(fluid_name)
    - New: ./lib/util/fluid.lua: function: apm.lib.utils.fluid.remove(fluid_name)
    - New: ./lib/util/fluid.lua: function: apm.lib.utils.fluid.delete_hard(fluid_name)
Version: 0.17.78
Date: 24. 05. 2019
  Changes:
    - ./lib/util/barrel.lua: function: apm.lib.utils.barrel.generate() new statement bool: b_force
    - ./lib/util/barrel.lua: function: apm.lib.utils.barrel.generate() add check for version base: 0.17.43, after this no need for this function any more, base game now handels icon_size > 32 and icon defined as a table (icons).
Version: 0.17.77
Date: 24. 05. 2019
  Minor Features:
    - New: ./lib/util/builder.lua: function: apm.lib.utils.builder.recipe.ingredient.alternatives.add
    - New: ./lib/util/builder.lua: function: apm.lib.utils.builder.recipe.ingredient.alternatives.get(item_name)
    - New: ./lib/util/builder.lua: function: apm.lib.utils.builder.recipe.ingredient.simple(item_name, amount)
    - New: ./lib/util/builder.lua: function: apm.lib.utils.builder.recipe.ingredient.probability(item_name, amount_min, amount_max, probability)
    - New: ./lib/util/builder.lua: function: apm.lib.utils.builder.recipe.result.alternatives.add
    - New: ./lib/util/builder.lua: function: apm.lib.utils.builder.recipe.result.alternatives.get(item_name)
    - New: ./lib/util/builder.lua: function: apm.lib.utils.builder.recipe.result.simple(item_name, amount)
    - New: ./lib/util/builder.lua: function: apm.lib.utils.builder.recipe.result.probability(item_name, amount_min, amount_max, probability)
Version: 0.17.76
Date: 22. 05. 2019
  Minor Features:
    - Fuel-category: new: "apm_nuclear_deuterium"
Version: 0.17.75
Date: 21. 05. 2019
  Bugfixes:
    - Fixed wrong recipe probabilities (related to: https://forums.factorio.com/71014)
Version: 0.17.74
Date: 18. 05. 2019
  Minor Features:
    - Fuel-category: new: "apm_nuclear_uranium"
  Changes:
    - Remote interface: change: remote.call("apm_radiation", "add_item", __ITEM_NAME__, __LEVEL__) to register a radioactive item, add __LEVEL__ [1=less radioactive, 2=normal radioactive, 3=very radioactive]
  Bugfixes:
    - Fixed some translation typos
    - Fixed wrong string for barrel filling
Version: 0.17.73
Date: 17. 05. 2019
  Bugfixes:
    - Fix: ./lib/util/description.lua: function: apm.lib.utils.reactor.update_description() wrong energy_source.type
  Minor Features:
    - Fuel-category: new: "apm_nuclear_thorium"
  Changes:
    - ./lib/util/locomotive.lua: function: apm.lib.utils.assembler.centrifuge.overhaul() removed animation overwrites (for compatibility with bob's changes to this entity)
Version: 0.17.72
Date: 14. 05. 2019
  Bugfixes:
    - Removed some debug logs()
  Minor Features:
    - New: ./lib/util/description.lua: function: apm.lib.utils.description.entities.exclude_list.add(entity_name)
    - New: ./lib/util/description.lua: function: apm.lib.utils.description.entities.exclude_list.remove(entity_name)
Version: 0.17.71
Date: 12. 05. 2019
  Bugfixes:
    - Fix: ./lib/util/fuel.lua: function: apm.lib.utils.fuel.category.remap() now sets a default fuel category if none is defined.
    - Fix: ./lib/util/car.lua: function: apm.lib.utils.car.overhaul() fixed typo
    - Fix: typo in german translation (fuel-descriptions)
  Minor Features:
    - New: ./lib/util/fuel.lua: function: apm.lib.utils.fuel.entity.add.category(entity, category)
    - New: ./lib/util/car.lua: function: apm.lib.utils.car.get.fuel_categories(car_name)
    - New: ./lib/util/car.lua: function: apm.lib.utils.car.update_description(car_name)
    - New: ./lib/util/locomotive.lua: function: apm.lib.utils.locomotive.get.fuel_categories(car_name)
    - New: ./lib/util/locomotive.lua: function: apm.lib.utils.locomotive.update_description(locomotive_name)
    - Fuel-category: new: "apm_rocket"
  Changes:
    - ./lib/util/fuel.lua: function: apm.lib.utils.fuel.category.remap(entity, conditional_category, t_categories): now takes the entity instead of entity_name and entity_energy_source.
Version: 0.17.70
Date: 12. 05. 2019
  Minor Features:
    - New: ./lib/script/core.lua: function: core.player_insert_items_safe(entity, item_dict)
  Bugfixes:
    - Fix: ./lib/script/radiation.lua: function: check_inventory() crash if radioactive item from other mod is removed.
  Changes:
    - Adapted changes from apm_power
Version: 0.17.69
Date: 10. 05. 2019
  Minor Features:
    - Remote interface: new: remote.call("apm_radiation", "add_item", __ITEM_NAME__) to register a radioactive item
    - Remote interface: new: remote.call("apm_radiation", "remove_item", __ITEM_NAME__) to unregister a radioactive item
    - apm.lib.utils.item.add.radioactive_description(__ITEM_NAME__) to add the radioactive description to an item
  Changes:
    - Removed debug print from ./lib/utils/recipe.lua: function: apm.lib.utils.recipe.allow_productivity()
    - Replaced debug print with proper logging ./lib/utils/icon.lua: function: apm.lib.utils.icon.layer.replace()
Version: 0.17.68
Date: 08. 05. 2019
  Changes:
    - Recipe-category: new: "apm_centrifuge_2"
    - Recipe-category: new: "apm_sifting_0"
    - Recipe-category: new: "apm_sifting_2"
    - Recipe-category: new: "apm_sifting_3"
Version: 0.17.67
Date: 06. 05. 2019
  Minor Features:
    - New: ./lib/utils/recycling.lua: function: apm.lib.utils.recycling.scrap.add(recipe_name, scrap_metal, probability) :: probability is no optional, if not set the value from the settings is used
Version: 0.17.66
Date: 05. 05. 2019
  Minor Features:
    - New: ./lib/utils/modules.lua: function: apm.lib.utils.setting.get.starup(settings_name)
Version: 0.17.65
Date: 04. 05. 2019
  Bugfixes:
    - Fix: ./lib/utils/modules.lua: function: apm.lib.utils.recipe.allow_productivity() nil value with creative-mod modules
Version: 0.17.64
Date: 04. 05. 2019
  Minor Features:
    - New: ./lib/utils/modules.lua: function: apm.lib.utils.modules.exist(module_name)
    - New: ./lib/utils/modules.lua: function: apm.lib.utils.modules.has_productivity(module_name)
    - New: ./lib/utils/modules.lua: function: apm.lib.utils.recipe.allow_productivity(recipe_name)
Version: 0.17.63
Date: 04. 05. 2019
  Bugfixes:
    - Fix: ./lib/utils/recipe.lua: function: apm.lib.utils.recipe.overwrite.group() wrong log output
  Minor Features:
    - New: ./lib/utils/icon.lua: function: apm.lib.utils.icon.set.icons(object, icons)
    - New: ./lib/utils/recipe.lua: function: apm.lib.utils.recipe.set.icons(recipe_name, icons)
    - New: ./lib/utils/item.lua: function: apm.lib.utils.item.set.icons(item_name, icons)
Version: 0.17.62
Date: 04. 05. 2019
  Bugfixes:
    - Fix: moved missing files from "apm_resource_pack" to prevent a dependencies with it.
  Minor Features:
    - New: ./prototypes/signals.lua
    - New: ./lib/utils/description.lua: function: apm.lib.utils.description.entities.include_list.add(entity_name)
    - New: ./lib/utils/description.lua: function: apm.lib.utils.description.entities.include_list.remove(entity_name)
    - New: ./lib/utils/description.lua: function: apm.lib.utils.description.entities.add_fuel_types(entity, entry_list)
    - New: ./lib/utils/description.lua: function: apm.lib.utils.description.entities.setup(entity)
    - New: ./lib/utils/description.lua: function: apm.lib.utils.description.entities.update()
    - New: ./lib/utils/reactor.lua: function: apm.lib.utils.reactor.get.fuel_categories(reactor_name)
    - New: ./lib/utils/reactor.lua: function: apm.lib.utils.reactor.update_description(reactor_name)
    - New: ./lib/utils/mining_drill.lua: function: apm.lib.utils.mining_drill.get.fuel_categories(mining_drill_name)
    - New: ./lib/utils/mining_drill.lua: function: apm.lib.utils.mining_drill.update_description(mining_drill_name)
    - New: ./lib/utils/lab.lua: function: apm.lib.utils.lab.get.fuel_categories(lab_name)
    - New: ./lib/utils/lab.lua: function: apm.lib.utils.lab.update_description(lab_name)
    - New: ./lib/utils/inserter.lua: function: apm.lib.utils.inserter.get.fuel_categories(inserter_name)
    - New: ./lib/utils/inserter.lua: function: apm.lib.utils.inserter.update_description(inserter_name)
    - New: ./lib/utils/furnace.lua: function: apm.lib.utils.furnace.get.fuel_categories(furnace_name)
    - New: ./lib/utils/furnace.lua: function: apm.lib.utils.furnace.update_description(furnace_name)
    - New: ./lib/utils/assembler.lua: function: apm.lib.utils.assembler.get.fuel_categories(assembler_name)
    - New: ./lib/utils/assembler.lua: function: apm.lib.utils.assembler.update_description(assembler_name)
    - New: ./lib/utils/boiler.lua: function: apm.lib.utils.boiler.get.fuel_categories(boiler_name)
    - New: ./lib/utils/boiler.lua: function: apm.lib.utils.boiler.update_description(boiler_name)
    - New: ./lib/utils/item.lua: function: apm.lib.utils.item.add.radioactive_description(item_name)
    - New: ./prototypes/overwrites.lua
Version: 0.17.61
Date: 02. 05. 2019
  Changes:
    - Changed fuel category names
    - Changed some item description generation
Version: 0.17.60
Date: 02. 05. 2019
  Bugfixes:
    - ./lib/script/patch/angel.lua: function: replace_angel_burner_crusher(player)
Version: 0.17.59
Date: 01. 05. 2019
  Minor Features:
    - New: ./lib/script/offshore_pump.lua
    - New: ./lib/utils/tile.lua: function: apm.lib.utils.tile.unification(old_tile_name, new_tile_name)
    - Script: moved functions from "apm_nuclear" to this library
    - Setting: new: "Hide mod info from items and recipes in the GUI" hides the mod list on item info
  Changes:
    - Recipe-category: "apm_assembling" removed (replaced with default: basic-crafting)
    - ./lib/utils/recipe.lua: function:  apm.lib.utils.recycling.metal.add(): add statement: output_amount_overwrite
    - Updated for 0.17.35 API Changes
    - Updated dependencies
Version: 0.17.58
Date: 29. 04. 2019
  Minor Features:
    - New: ./lib/utils/fuel.lua: function: apm.lib.utils.fuel.get_base_fuel_value()
    - New: ./lib/utils/fuel.lua: function: apm.lib.utils.fuel.overwrite_coal_fuel_value()
    - New: ./lib/utils/player.lua: function: apm.lib.utils.player.crafting_category.add(crafting_category)
  Changes:
    - ./lib/utils/item.lua: function: apm.lib.utils.item.mod.fuel_overhaul replace with ./lib/utils/fuel.lua: function: apm.lib.utils.fuel.overhaul()
    - Recipe-category: new: "apm_handcrafting_only"
Version: 0.17.57
Date: 28. 04. 2019
  Bugfixes:
    - ./lib/utils/barrel.lua: function: apm.lib.utils.barrel.generate() wrong crafting category
  Minor Features:
    - ./lib/utils/recipe.lua: function: apm.lib.utils.recipe.result.count(recipe_name)
    - ./lib/utils/recipe.lua: function: apm.lib.utils.recipe.result.get_first_result(recipe_name)
    - ./lib/utils/recipe.lua: function: apm.lib.utils.recipe.set.icon(recipe_name, icon_path)
Version: 0.17.56
Date: 28. 04. 2019
  Minor Features:
    - New: ./lib/utils/barrel.lua: function: apm.lib.utils.barrel.new(c_name, empty_c_name, c_side_mask, c_hoop_top_mask, c_empty_side_mask, c_empty_top_mask, c_fill_side_mask, c_fill_top_mask, c_fill_icon, c_empty_icon)
    - New: ./lib/utils/barrel.lua: function: apm.lib.utils.barrel.generate(fluid_name) (generate barrel recipes for fluids with multi icon layer support)
  Changes:
    - ./lib/utils/recipe.lua: function: apm.lib.utils.recipe.ingredient.replace() add new statement "amount_multi"
    - Dependencies: removed apm_resource_pack (there is no need for it)
Version: 0.17.55
Date: 27. 04. 2019
  Major Features:
    - Removed all media files to apm_resource_pack
Version: 0.17.54
Date: 27. 04. 2019
  Bugfixes:
    - ./lib/utils/technology.lua: function: apm.lib.utils.technology.mod.unit_time(technology_name, time) wrong var used... :(
Version: 0.17.53
Date: 27. 04. 2019
  Minor Features:
    - New: ./lib/utils/recipe.lua: function: apm.lib.utils.recipe.has.result(recipe_name, result_name)
    - New: ./lib/utils/recipe.lua: function: apm.lib.utils.recipe.has.ingredient(recipe_name, ingredient_name)
    - New: ./lib/utils/recipe.lua: function: apm.lib.utils.recipe.result.add_with_probability(recipe_name, result_name, result_amount_min, result_amount_max, probability)
    - New: ./lib/utils/recipe.lua: function: apm.lib.utils.recipe.add_mainproduct_if_needed(recipe_name)
    - New: ./lib/utils/recipe.lua: function: apm.lib.utils.recipe.overwrite.group(recipe_name, group, subgroup, order)
  Changes:
    - ./lib/utils/recipe.lua: added item check in some functions (to prevent wrong use)
Version: 0.17.52
Date: 26. 04. 2019
  Bugfixes:
    - ./lib/utils/recycling.lua: function: metal_generation(name) -> bad argument #1 to "insert" (table expected, got nil) on .metal[name].tech_prerequisites
  Minor Features:
    - New: ./lib/utils/icon.lua: function: apm.lib.utils.icon.mod(t_icon, scale, shift)
    - New: ./lib/utils/technology.lua: function: apm.lib.utils.technology.set.heritage_science_packs_from_prerequisites(technology_name)
    - New: ./lib/utils/technology.lua: function: apm.lib.utils.technology.has.science_pack(technology_name, science_pack_name)
  Changes:
    - Icons updated (some) icons to 64px
Version: 0.17.51
Date: 26. 04. 2019
  Bugfixes:
    - Fixed a desync in ./lib/script/inserter.lua
Version: 0.17.50
Date: 25. 04. 2019
  Minor Features:
    - New: ./lib/utils/recipe.lua: apm.lib.utils.recipe.has.main_product(recipe_name)
    - New: ./lib/utils/recipe.lua: function: apm.lib.utils.recipe.set.main_product(recipe_name, result_old, result_new, force)
  Bugfixes:
    - Fix: ./lib/utils/recipe.lua: function: apm.lib.utils.recipe.result.replace(recipe_name, result_old, result_new) wrong main_product handling
Version: 0.17.49
Date: 25. 04. 2019
  Minor Features:
    - New: ./lib/utils/icon.lua: function: apm.lib.utils.icon.get.from_item(object_name) return: table or string
    - New: ./lib/utils/icon.lua: function: apm.lib.utils.icon.get.from_fluid(object_name) return: table or string
  Bugfixes:
    - Fix: ./lib/utils/recycling.lua: function: apm.lib.utils.recycling.metal.generation() now handles multilayer symbols correctly
  Changes:
    - ./lib/utils/recycling.lua: function: apm.lib.utils.recycling.scrap.generate() checked the recipe again, only do this in data update phase before, but what if... This should be better for compatibility with other mods if they delete a recipe in the final stage before me.
Version: 0.17.48
Date: 25. 04. 2019
  Bugfixes:
    - Fix: corrupt zip file!
Version: 0.17.47
Date: 25. 04. 2019
  Changes:
    - ./lib/utils/recycling.lua: add some description to functions
    - ./lib/utils/recycling.lua: function: apm.lib.utils.recycling.metal.generation() changed icon generation
    - New settings: Type: "Runtime-Global" -> "Safe lock": Default: activated, to force the default value for "Maximum inserter checks per tick"
Version: 0.17.46
Date: 24. 04. 2019
  Optimizations:
    - ./lib/script/inserter.lua reduced the inserter in the table by checks on build of inserters and entitys with a fuel_inventory, by the huge amount of dropped inserters, because of this condition, we need less iterations to overwatch (only important inserters now).
    - Decreased default value for inserter checks per tick to 15
Version: 0.17.45
Date: 24. 04. 2019
  Bugfixes:
    - Fix: removed an unused call in: ./lib/utils/item.lua: function: inserter_fix_check(t_object, pickup_target, drop_target)
    - Fix: ./lib/utils/item.lua: local: valid_targets typo in "mining-drill"
  Changes:
    - Decreased default value for inserter checks per tick to 20 after a good test session (reaction is slower but good enough) these reduce the computation time needed by this script, I think this is a good value.
Version: 0.17.44
Date: 23. 04. 2019
  Minor Features:
    - New: ./lib/utils/fuel.lua: function: apm.lib.utils.fuel.category.search(energy_source, category)
    - New: ./lib/utils/fuel.lua: function: apm.lib.utils.fuel.category.remap(entity_name, energy_source, conditional_category, t_categories)
    - New: ./lib/utils/fuel.lua: function: apm.lib.utils.fuel.set.categories(entity_type, conditional_category, t_categories)
Version: 0.17.43
Date: 22. 04. 2019
  Changes:
    - ./lib/utils/icon.lua: add: apm.lib.utils.icon.dynamics.lable_sw ("./graphics/icons/dynamics/apm_machine_lable_sw.png")
    - Recipe-category: add: "apm_steelworks"
Version: 0.17.42
Date: 21. 04. 2019
  Bugfixes:
    - ./lib/utils/item.lua: function: inserter_fix_check(t_object) add "lab" type to function
Version: 0.17.41
Date: 21. 04. 2019
  Bugfixes:
    - ./lib/utils/item.lua: function: inserter_fix_check(t_object), inserters now ignoring any entity thats not "assembling-machine" or "furnace", we don't need this functionality there.
    - ./lib/utils/item.lua: function: apm.lib.utils.inserter.burner.overhaul() removed emissions_per_minute (no support in the engine for this)
Version: 0.17.40
Date: 21. 04. 2019
  Minor Features:
    - New: ./lib/utils/item.lua: function: apm.lib.utils.item.is_type(item_name, item_type)
    - New: ./lib/utils/item.lua: function: apm.lib.utils.item.mod.stack_size(item_name, value, b_overwrite)
    - New: ./lib/utils/starfall.lua: function: apm.lib.utils.starfall.remove.ore(ore_name)
    - New: ./lib/utils/tile.lua: function: apm.lib.utils.tile.exist(tile_name)
    - New: ./lib/utils/tile.lua: function: apm.lib.utils.tile.get.layer(tile_name)
    - New: ./lib/utils/tile.lua: function: apm.lib.utils.tile.set.layer(tile_name, layer)
    - New: ./lib/utils/tile.lua: function: apm.lib.utils.tile.set.relation(tile_name, base_tile_name, relation)
    - New: ./lib/utils/recipe.lua: function: apm.lib.utils.recipe.category.create(category_name)
    - New: ./lib/utils/fuel.lua: function: apm.lib.utils.fuel.category.create(category_name)
    - New: file: ./prototypes/recipe-categories.lua
    - New: file: ./prototypes/fuel-categories.lua
  Changes:
    - ./lib/utils/mining_drill.lua: function: apm.lib.utils.mining_drill.burner.overhaul() changed resource_searching_radius starting from 0.99 on level 1
    - ./lib/utils/mining_drill.lua: function: apm.lib.utils.boiler.overhaul() -> base_emissions_per_minute reduced by 5
Version: 0.17.39
Date: 18. 04. 2019
  Bugfixes:
    - Fix: ./script error: Error while running event apm_lib::on_entity_died (ID 4) attempt to call field "on_remove" (a nil value)
Version: 0.17.38
Date: 18. 04. 2019
  Bugfixes:
    - Fix: ./lib/utils/item.lua: function: apm.lib.utils.item.mod.burnt_result() missing return and typo in log()
    - Fix: ./lib/utils/recycling.lua: function: apm.lib.utils.recycling.scrap.generate() missing test added
Version: 0.17.37
Date: 18. 04. 2019
  Minor Features:
    - New: ./lib/utils/lab.lua: function: apm.lib.utils.lab.add.science_pack(lab_name, science_pack)
    - New: ./lib/utils/lab.lua: function: apm.lib.utils.lab.set.inputs(lab_name, science_pack)
    - New: ./lib/utils/locomotive.lua: function: apm.lib.utils.locomotive.add.fuel_category(locomotive_name, fuel_category)
    - New: ./lib/utils/reactor.lua: function: apm.lib.utils.reactor.add.fuel_category(reactor_name, fuel_categorie)
    - New: ./lib/utils/reactor.lua: function: apm.lib.utils.reactor.set.fuel_categories(reactor_name, fuel_categories)
  Changes:
    - Hardened functions in ./lib/utils/assembler.lua
    - Hardened functions in ./lib/utils/boiler.lua
    - Hardened functions in ./lib/utils/bot.lua
    - Hardened functions in ./lib/utils/car.lua
    - Hardened functions in ./lib/utils/furnace.lua
    - Hardened functions in ./lib/utils/generator.lua
    - Hardened functions in ./lib/utils/inserter.lua
    - Hardened functions in ./lib/utils/item.lua
    - Hardened functions in ./lib/utils/lab.lua
    - Hardened functions in ./lib/utils/locomotive.lua
    - Hardened functions in ./lib/utils/mining_drill.lua
    - Hardened functions in ./lib/utils/modules.lua
    - Hardened functions in ./lib/utils/reactor.lua
    - Hardened functions in ./lib/utils/recipe.lua
    - Deprecated: ./lib/utils/lab.lua: function: apm.lib.utils.lab.inputs()
Version: 0.17.36
Date: 17. 04. 2019
  Minor Features:
    - New ./lib/utils/technology.lua: apm.lib.utils.technology.check_if_recipe_is_in_unlock(technology_name, recipe_name)
    - Add logging in ./lib/utils/technology.lua
    - Removed debug entries logging in ./lib/utils/technology.lua
    - Hardened ./lib/utils/technology.lua functions, against double prerequisites, double recipes for unlock, etc...
    - New settings: Type: "Runtime-Global" -> "Extended functions for inserter": Default: deactivated, this controls whether the inserter functions supplied by this mod are active or not, this setting is only available if you do not have installed an other mod from me that needs this feature like "Amator Phasma's Coal & Steam" or "Amator Phasma's Nuclear". Otherwise, you can control it yourself, whether you need it or not.
Version: 0.17.35
Date: 17. 04. 2019
  Minor Features:
    - New ./lib/utils/recycling.lua: function: apm.lib.utils.recycling.metal.exist(name)
    - New ./lib/utils/recycling.lua: function: apm.lib.utils.recycling.metal.remove(name)
    - New ./lib/utils/recycling.lua: function: apm.lib.utils.recycling.scrap.remove(recipe_name)
    - New ./lib/utils/recycling.lua: function: apm.lib.utils.recycling.scrap.generation()
    - Info: ./lib/utils/recycling.lua: function: apm.lib.utils.recycling.scrap.add() will no longer perform any changes
    - Info: ./lib/utils/recycling.lua: function: apm.lib.utils.recycling.scrap.generation() will now perform the changes for inserting scrap metal into recipes
    - Rename: apm.lib.utils.recycling.generation() to apm.lib.utils.recycling.metal.generation()
    - Add logging for ./lib/utils/recycling.lua: function: apm.lib.utils.recycling.metal.add()
    - Add logging for ./lib/utils/recycling.lua: function: apm.lib.utils.recycling.add.scrap_metal()
    - Add logging for ./lib/utils/recycling.lua: function: apm.lib.utils.recycling.scrap.generation()
    - Add logging for ./lib/utils/recycling.lua: function: apm.lib.utils.recycling.metal.generation()
Version: 0.17.34
Date: 17. 04. 2019
  Bugfixes:
    - Fix: ./lib/utils/assembler.lua: function: apm.lib.utils.assembler.centrifuge.overhaul() rearrange animation layer, to lay the pipe cover into the background
Version: 0.17.33
Date: 17. 04. 2019
  Bugfixes:
    - Fix: ./lib/utils/inserter.lua: function: convert_table() if user upgrades from very old version or after a mod remove (one with inserters)
Version: 0.17.32
Date: 16. 04. 2019
  Changes:
    - Source code clean ups
Version: 0.17.31
Date: 15. 04. 2019
  Bugfixes:
    - Fixed a bug where inserters can go stuck on moving if the fuel runs out in the moment of picking up an item
Version: 0.17.30
Date: 15. 04. 2019
  Optimizations:
    - Optimized: ./lib/script/inserter.lua code (reduce requirement of a expensive call) performance gain: average ~0.21ms up to 0.25ms on 100 inserter iterations/tick
Version: 0.17.29
Date: 15. 04. 2019
  Optimizations:
    - Optimized: ./lib/script/inserter.lua code (reduce required calls) performance gain: average ~0.1ms up to 0.13ms on 100 inserter iterations/tick
Version: 0.17.28
Date: 14. 04. 2019
  Bugfixes:
    - Fix startup crash: ./lib/utils/car.lua, ./lib/utils/locomotive.lua: (my stupidity), not every car or locomotive has a burner property -> https://mods.factorio.com/mod/apm_power/discussion/5cb37bef834c2a000b9e081c
  Compatibility:
    - ./lib/utils/item.lua: function: apm.lib.utils.item.mod.fuel_overhaul() -> I have changed the calculations for fuel values, based on coal, there was a logical failure in it. This can result in unexpected high fuel values for follow-up products (in the chain) if an other mod overwrites the coal value, like "Realistic Power" does. The calculations should now hardened against this. (If an other mod overwrites the base value of coal, my setting for the value might be not functional in this case).
Version: 0.17.27
Date: 14. 04. 2019
  Bugfixes:
    - Fix: property use: "emissions_per_minute" instead of "emissions_per_second_per_watt"  -> https://forums.factorio.com/viewtopic.php?f=3&t=69433
  Changes:
    - Settings: Maximum inserter checks per tick (apm_inserter_iterations): changed default to 50 from 100.
Version: 0.17.26
Date: 13. 04. 2019
  Minor Features:
    - New: ./lib/utils/recipe.lua: function: apm.lib.utils.recipe.energy_required.mod(recipe_name, value)
    - New: ./lib/utils/icon.lua: function: apm.lib.utils.icon.replace(icon_path_old, icon_path_new, icon_size, scale, shift, tint)
    - New: ./lib/utils/icon.lua: function: apm.lib.utils.icon.layer.replace(base_dn, layer, icon_path, icon_size, scale, shift, tint)
Version: 0.17.25
Date: 12. 04. 2019
  Bugfixes:
    - Fix: ./lib/utils/technology.lua: function: apm.lib.utils.technology.remove.prerequisites() can lead to load error because a test for a nil table was missing.
Version: 0.17.24
Date: 12. 04. 2019
  Minor Features:
    - New: ./lib/utils/recipe.lua: function: apm.lib.utils.recipe.category.overwrite_all(category_name_old, category_name_new)
  Compatibility:
    - Now compatible with Bio_Industries
Version: 0.17.23
Date: 11. 04. 2019
  Minor Features:
    - New: ./lib/utils/patch/aai.lua: function: apm.lib.utils.patch.aai.generate_vehicle_fuel() -> a modified version for the vehicle fuel generation
    - New: ./lib/script/patch/aai.lua: used at tick 2 to overwrite the burner assembler
  Compatibility:
    - Now compatible with aai-industry
Version: 0.17.22
Date: 10. 04. 2019
  Minor Features:
    - New: ./lib/utils/technology.lua: function: apm.lib.utils.technology.delete(technology_name) "will not really delete the technologie but disable it, hide it and remove it from all linked technologies"
Version: 0.17.21
Date: 09. 04. 2019
  Changes:
    - Settings: For "Maximum inserter checks per tick" settings, the possible minimum value has been changed to 0 instead of 10.
    - New icons: for icon generation: ./graphics/icons/dynamics/apm_chemical_flame_1.png, ./graphics/icons/dynamics/apm_chemical_flame_2.png, ./graphics/icons/dynamics/apm_chemical_flame_3.png.
Version: 0.17.20
Date: 09. 04. 2019
  Changes:
    - Some new basic image masks for use in other mods together.
Version: 0.17.19
Date: 08. 04. 2019
  Optimizations:
    - Optimized: ./lib/script/inserter.lua code (reduce required calls) performance gain: average ~0.14ms up to 0.22ms on 100 inserter iterations/tick.
Version: 0.17.18
Date: 06. 04. 2019
  Minor Features:
    - New: ./lib/utils/icon.lua: function: apm.lib.utils.icon.add_tier_lable(name, level).
  Changes:
    - Replaced icon: ./graphics/icons/dynamics/apm_brick.png.
    - Replaced icon: ./graphics/icons/dynamics/apm_chunk.png.
    - New icon: ./graphics/icons/dynamics/apm_crushed.png.
    - Replaced icon: ./graphics/icons/dynamics/apm_tier_1.png.
    - Replaced icon: ./graphics/icons/dynamics/apm_tier_2.png.
    - Replaced icon: ./graphics/icons/dynamics/apm_tier_3.png.
    - Replaced icon: ./graphics/icons/dynamics/apm_tier_4.png.
  Info:
    - Cleaning up the source code, file names, etc. (naming, comments, unneeded parts).
Version: 0.17.17
Date: 06. 04. 2019
  Changes:
    - ./lib/utils/recycling.lua: function: apm.lib.utils.recycling.metal.add() removed bool argument "b_separate_tech".
    - Added file LICENSE.
Version: 0.17.16
Date: 06. 04. 2019
  Minor Features:
    - New: ./lib/utils/bot.lua: apm.lib.utils.bot.logistic.exist(bot_name), apm.lib.utils.bot.construction.exist(bot_name), apm.lib.utils.bot.logistic.overhaul(bot_name, level), apm.lib.utils.bot.construction.overhaul(bot_name, level).
  Changes:
    - ./lib/utils/assembler.lua: function: apm.lib.utils.assembler.burner.overhaul() removed unused argument "level".
    - ./lib/utils/locomotive.lua: function: apm.lib.utils.locomotive.overhaul() changed base pollution/s to 2/300000 per watt.
    - ./lib/utils/car.lua: function: apm.lib.utils.car.overhaul() changed base pollution/s to 3/150000 per watt.
    - ./lib/utils/mining_drill.lua: function: apm.lib.utils.mining_drill.burner.overhaul() new formula to calculate pollution/s on burner mining drills.
Version: 0.17.15
Date: 05. 04. 2019
  Changes:
    - ./lib/utils/recycling.lua: function: apm.lib.utils.recycling.generation() added the possibility to translate all strings.
Version: 0.17.14
Date: 04. 04. 2019
  Changes:
    - ./lib/utils/car.lua: function: apm.lib.utils.car.overhaul_all() now has the following arguments: only_refined, only_petrol, only_electrical.
    - ./lib/utils/car.lua: function: apm.lib.utils.car.overhaul() now has the following arguments: car_name, only_refined, only_petrol, only_electrical.
    - ./lib/utils/car.lua: function: apm.lib.utils.car.overhaul() set default: fuel_categories = {"chemical"}.
    - ./lib/utils/locomotive.lua: function: apm.lib.utils.locomotive.overhaul_all() now has the following arguments: only_refined, only_petrol, only_electrical.
    - ./lib/utils/locomotive.lua: function: apm.lib.utils.locomotive.overhaul() now has the following arguments: locomotive_name, only_refined, only_petrol, only_electrical.
    - ./lib/utils/locomotive.lua: function: apm.lib.utils.locomotive.overhaul() set default: fuel_categories = {"chemical","apm_refined_chemical", "apm_petrol"}.
    - ./lib/utils/boiler.lua: function: apm.lib.utils.boiler.overhaul() set default: fuel_categories = {"apm_refined_chemical", "apm_petrol"}.
    - ./lib/utils/mining_drill.lua: function: apm.lib.utils.mining_drill.burner.overhaul() set default: fuel_categories = {"chemical","apm_refined_chemical", "apm_petrol"}.
    - ./lib/utils/item.lua: function new: apm.lib.utils.item.overwrite.battery(level, item_name, fuel_value, burnt_result).
Version: 0.17.13
Date: 01. 04. 2019
  Info:
    - Added new dynamic images for use in my other mods.
Version: 0.17.12
Date: 31. 03. 2019
  Bugfixes:
    - Fixed: ./lib/utils/recycling.lua: function: apm.lib.utils.recycling.generation(): Scrap iron/copper recycling not available without angels mods (https://mods.factorio.com/mod/apm_recycling/discussion/5ca11cc23f02c6000d4cb011).
Version: 0.17.11
Date: 31. 03. 2019
  Changes:
    - ./lib/utils/icons.lua: changed some internal names.
    - ./lib/utils/recycling.lua: function: apm.lib.utils.recycling.generation() removed unnecessary code.
    - ./lib/utils/recycling.lua: function: apm.lib.utils.recycling.generation() optimized technology generation.
    - ./lib/utils/recycling.lua: function: apm.lib.utils.recycling.metal.add() add new argument for technology generation.
    - Replaced some images with new ones.
    - ./lib/utils/mining_drill.lua: function: apm.lib.utils.mining_drill.burner.overhaul(mining_drill_name, level) - new calculations.
Version: 0.17.10
Date: 29. 03. 2019
  Bugfixes:
    - Hardened namespace for inner and outer function from "utils.xxx" to "apm.lib.utils.xxx" this should prevent crashes if other mods can overwrite utils.
    - ./lib/utils/recycler.lua: function: apm.lib.utils.recycling.add.scrap_metal(recipe_name, scrap_metal, probability) refactoring and hardened against special cases that can lead to loading crashes with other mods.
Version: 0.17.09
Date: 28. 03. 2019
  Bugfixes:
    - ./lib/utils/starfall.lua: function: utils.starfall.generate() categorize resources by harvest types: with and without fluid.
    - ./lib/script/starfall.lua: function: create_impact() on game start only use resources without the need for fluid to harvest.
  Minor Features:
    - New setting: to change the number of inserter checks performed by the script per tick (default: 100).
Version: 0.17.08
Date: 27. 03. 2019
  Minor Features:
    - New: ./lib/utils/car.lua: function: utils.car.overwrite(car_name, level, only_refined)
    - New: ./lib/utils/car.lua: function: utils.car.overhaul_all(only_refined)
    - New: ./lib/utils/locomotive.lua: function: utils.locomotive.overwrite(locomotive_name, level, only_refined)
    - New: ./lib/utils/locomotive.lua: function: utils.car.overhaul_all(only_refined)
Version: 0.17.07
Date: 27. 03. 2019
  Minor Features:
    - New: ./lib/utils/item.lua: function: utils.item.overwrite.group
  Changes:
    - Improved some scripts.
  Bugfixes:
    - ./lib/utils/recipe.lua: function: utils.recipe.result.replace(recipe_name, result_old, result_new) in some cases forget to set value for main_product.
Version: 0.17.06
Date: 24. 03. 2019
  Bugfixes:
    - ./lib/utils/recipe.lua: function: convert_ingredients, removed copy and paste artifact.
Version: 0.17.05
Date: 23. 03. 2019
  Bugfixes:
    - ./lib/script/inserter.lua: function: check_filter' now handels blacklist and whitelist setting as expected.
Version: 0.17.04
Date: 23. 03. 2019
  Minor Features:
    - New: ./lib/utils/recipe.lua: "replace_all(ingredient_old, ingredient_new)" replace "ingredient_old" with "ingredient_new" in all recipes.
Version: 0.17.03
Date: 23. 03. 2019
  Bugfixes:
    - Fixed a failure that the inserter script wasn't running.
Version: 0.17.02
Date: 23. 03. 2019
  Info:
    - Added new scripts for use in other mods.
Version: 0.17.01
Date: 16. 03. 2019
  Major Features:
    - Initial release.