bz-regenerate command
This commit is contained in:
parent
d2d5652978
commit
eb2ee2cae6
4 changed files with 64 additions and 1 deletions
|
|
@ -1,4 +1,9 @@
|
||||||
---------------------------------------------------------------------------------------------------
|
---------------------------------------------------------------------------------------------------
|
||||||
|
Version: 2.0.3
|
||||||
|
Date: 2024-12-29
|
||||||
|
Changes:
|
||||||
|
- Added "/bz-regenerate" command for regenerating ore patches, especially useful when adding to an existing game
|
||||||
|
---------------------------------------------------------------------------------------------------
|
||||||
Version: 2.0.2
|
Version: 2.0.2
|
||||||
Date: 2024-12-28
|
Date: 2024-12-28
|
||||||
Changes:
|
Changes:
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ local me = require("me")
|
||||||
|
|
||||||
local util = {}
|
local util = {}
|
||||||
util.me = me
|
util.me = me
|
||||||
|
local regenerate_command = "bz-regenerate"
|
||||||
|
|
||||||
function decode(data)
|
function decode(data)
|
||||||
if type(data) == "string" then return data end
|
if type(data) == "string" then return data end
|
||||||
|
|
@ -95,6 +96,62 @@ function util.warptorio2_expansion_helper()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local usage = [[
|
||||||
|
Usage: /bz-regenerate all
|
||||||
|
or /bz-regenerate <planet> <resource> [<frequency> <size> <richness>]
|
||||||
|
planet must be an internal name like nauvis
|
||||||
|
resource must be an internal name like lead-ore or titanium-ore
|
||||||
|
frequency, size, and richness are optional, but all or none must be provided, and each should be a number between 0.166 and 6, where 1 is default setting.
|
||||||
|
Regenerates ore patches. If frequency/size/richness are provided, the planet will use those settings from now on, as well.
|
||||||
|
- Separate arguments with spaces, do not use < >, [ ], quotes or other symbols
|
||||||
|
- This action can take a while for larger maps!
|
||||||
|
- Ores can sometimes overlap on regeneration.
|
||||||
|
]]
|
||||||
|
function util.add_regenerate_command_handler()
|
||||||
|
script.on_event(defines.events.on_console_command, regenerate_ore)
|
||||||
|
|
||||||
|
if not commands.commands[regenerate_command] then
|
||||||
|
commands.add_command( regenerate_command, usage, function() end)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function regenerate_ore(event)
|
||||||
|
if event.command == regenerate_command then
|
||||||
|
local params = {}
|
||||||
|
for w in event.parameters:gmatch("%S+") do table.insert(params, w) end
|
||||||
|
if #params == 1 and params[1] == "all" then
|
||||||
|
for _, resource in pairs(me.resources) do
|
||||||
|
game.print("Regenerating "..resource)
|
||||||
|
game.regenerate_entity(resource)
|
||||||
|
end
|
||||||
|
return
|
||||||
|
end
|
||||||
|
if not (#params == 2 or #params == 5) then
|
||||||
|
game.print(usage)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
local planet = params[1]
|
||||||
|
for _, resource in pairs(me.resources) do
|
||||||
|
if not game.surfaces[planet] then
|
||||||
|
game.print("Could not find surface for "..planet..". May not exist, or may not yet be explored.")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
if resource == params[2] then
|
||||||
|
if #params == 5 then
|
||||||
|
local settings = {frequency=params[3], size=params[4], richness=params[5]}
|
||||||
|
local map_gen_settings = game.surfaces[planet].map_gen_settings
|
||||||
|
map_gen_settings.autoplace_controls[resource] = settings
|
||||||
|
map_gen_settings.autoplace_settings.entity.settings[resource] = settings
|
||||||
|
game.surfaces[planet].map_gen_settings = map_gen_settings
|
||||||
|
game.print("Set "..resource.." on "..planet.." to "..serpent.line(settings))
|
||||||
|
end
|
||||||
|
game.print("Regenerating "..resource)
|
||||||
|
game.surfaces[planet].regenerate_entity(resource)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
function util.ore_fix()
|
function util.ore_fix()
|
||||||
ore_fix("nauvis")
|
ore_fix("nauvis")
|
||||||
if game.surfaces.tenebris then
|
if game.surfaces.tenebris then
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
local util = require("control-util")
|
local util = require("control-util")
|
||||||
|
|
||||||
script.on_configuration_changed(util.ore_fix)
|
script.on_configuration_changed(util.ore_fix)
|
||||||
|
util.add_regenerate_command_handler()
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "bzlead",
|
"name": "bzlead",
|
||||||
"version": "2.0.2",
|
"version": "2.0.3",
|
||||||
"factorio_version": "2.0",
|
"factorio_version": "2.0",
|
||||||
"title": "Lead",
|
"title": "Lead",
|
||||||
"author": "Brevven",
|
"author": "Brevven",
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue