Basically, phase one:
Code: Select all
for chunk in game.surfaces[1].get_chunks() do
local inserters = game.surfaces[1].find_entities_filtered{area = {{(chunk.x * 32), (chunk.y * 32)}, {(chunk.x * 32) +32, (chunk.y * 32) +32}}, type = "inserter"}
for i, inserter in pairs(inserters) do
inserter.pickup_position = {inserter.pickup_position.x, inserter.pickup_position.y}
inserter.drop_position = {inserter.drop_position.x, inserter.drop_position.y}
inserter.direction = inserter.direction
end
end
That's it, that entire code there in a migration lua script is the whole thing for phase 1! I even figured out a
Fast entity finding routine for scanning the whole known map!
Phase 2:
Update to the newer version of the mod that includes this json script
Code: Select all
{
"item":
[
["long-handed-burner-inserter", "burner-inserter"],
["fast-long-inserter", "fast-inserter"],
["fast-near-inserter", "fast-inserter"],
["fast-far-inserter", "fast-inserter"],
["filter-long-inserter", "filter-inserter"],
["filter-near-inserter", "filter-inserter"],
["filter-far-inserter", "filter-inserter"],
["filter-short-far-inserter", "filter-inserter"],
["filter-short-long-inserter", "filter-inserter"],
["filter-long-near-inserter", "filter-inserter"],
["filter-long-short-inserter", "filter-inserter"],
["express-long-inserter", "express-inserter"],
["express-near-inserter", "express-inserter"],
["express-far-inserter", "express-inserter"],
["express-short-far-inserter", "express-inserter"],
["express-short-long-inserter", "express-inserter"],
["express-long-near-inserter", "express-inserter"],
["express-long-short-inserter", "express-inserter"]
],
"recipe":
[
["long-handed-burner-inserter", "burner-inserter"],
["fast-long-inserter", "fast-inserter"],
["fast-near-inserter", "fast-inserter"],
["fast-far-inserter", "fast-inserter"],
["filter-long-inserter", "filter-inserter"],
["filter-near-inserter", "filter-inserter"],
["filter-far-inserter", "filter-inserter"],
["filter-short-far-inserter", "filter-inserter"],
["filter-short-long-inserter", "filter-inserter"],
["filter-long-near-inserter", "filter-inserter"],
["filter-long-short-inserter", "filter-inserter"],
["express-long-inserter", "express-inserter"],
["express-near-inserter", "express-inserter"],
["express-far-inserter", "express-inserter"],
["express-short-far-inserter", "express-inserter"],
["express-short-long-inserter", "express-inserter"],
["express-long-near-inserter", "express-inserter"],
["express-long-short-inserter", "express-inserter"]
],
"entity":
[
["long-handed-burner-inserter", "burner-inserter"],
["fast-long-inserter", "fast-inserter"],
["fast-near-inserter", "fast-inserter"],
["fast-far-inserter", "fast-inserter"],
["filter-long-inserter", "filter-inserter"],
["filter-near-inserter", "filter-inserter"],
["filter-far-inserter", "filter-inserter"],
["filter-short-far-inserter", "filter-inserter"],
["filter-short-long-inserter", "filter-inserter"],
["filter-long-near-inserter", "filter-inserter"],
["filter-long-short-inserter", "filter-inserter"],
["express-long-inserter", "express-inserter"],
["express-near-inserter", "express-inserter"],
["express-far-inserter", "express-inserter"],
["express-short-far-inserter", "express-inserter"],
["express-short-long-inserter", "express-inserter"],
["express-long-near-inserter", "express-inserter"],
["express-long-short-inserter", "express-inserter"]
]
}
All inserters in the world will be updated to base form of their inserter type, with all settings kept.
But blueprints using any of the old entity types will still be wrong.
The json script should replace the inserter entities with their base form, but the hand positions will be wrong.
the problem with scanning blueprints is... well, where are they? if they're in a player's inventory, it probably won't be too difficult to update those, but if they're in a box? scan every box to see if there's a blueprint in it? that's going to be too much work, and processing power to do, so.... I'll just say that all blueprints are universally broken. Besides, GotLag doesn't account for blueprints either.
Also this:
viewtopic.php?f=33&t=29349