This commit is contained in:
Brevven 2025-01-29 13:30:03 -08:00
parent 2505960272
commit eec32e2c40
5 changed files with 51 additions and 20 deletions

View file

@ -1,4 +1,9 @@
--------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------
Version: 2.1.4
Date: 2025-01-25
Changes:
- Other minor tweaks to improve compatibility and progression
---------------------------------------------------------------------------------------------------
Version: 2.1.3 Version: 2.1.3
Date: 2025-01-25 Date: 2025-01-25
Fixes: Fixes:

View file

@ -58,8 +58,17 @@ function list(event)
end end
end end
function util.add_command_handler()
script.on_event(defines.events.on_console_command, route)
end
function route(event)
if event.command == regenerate_command then regenerate_ore(event) end
if event.command == list_command then list(event) end
end
function util.add_list_command_handler() function util.add_list_command_handler()
script.on_event(defines.events.on_console_command, list) util.add_command_handler()
if not commands.commands[list_command] then if not commands.commands[list_command] then
commands.add_command(list_command, "", function() end) commands.add_command(list_command, "", function() end)
@ -134,7 +143,7 @@ Regenerates ore patches. If frequency/size/richness are provided, the planet wil
- Ores can sometimes overlap on regeneration. This can sometimes hide ore patches. If none seem to be made for a resource, regenerate just that resource and tweak frequency/size. - Ores can sometimes overlap on regeneration. This can sometimes hide ore patches. If none seem to be made for a resource, regenerate just that resource and tweak frequency/size.
]] ]]
function util.add_regenerate_command_handler() function util.add_regenerate_command_handler()
script.on_event(defines.events.on_console_command, regenerate_ore) util.add_command_handler()
if not commands.commands[regenerate_command] then if not commands.commands[regenerate_command] then
commands.add_command( regenerate_command, usage_regenerate, function() end) commands.add_command( regenerate_command, usage_regenerate, function() end)
@ -147,9 +156,9 @@ function regenerate_ore(event)
for w in event.parameters:gmatch("%S+") do table.insert(params, w) end for w in event.parameters:gmatch("%S+") do table.insert(params, w) end
if #params == 1 and params[1] == "all" then if #params == 1 and params[1] == "all" then
for _, resource in pairs(me.resources) do for _, resource in pairs(me.resources) do
if prototypes.entity[resource] then if prototypes.entity[resource[1]] then
game.print("Regenerating "..resource) game.print("Regenerating "..resource[1])
game.regenerate_entity(resource) game.regenerate_entity(resource[1])
end end
end end
return return
@ -164,17 +173,17 @@ function regenerate_ore(event)
game.print("Could not find surface for "..planet..". May not exist, or may not yet be explored.") game.print("Could not find surface for "..planet..". May not exist, or may not yet be explored.")
return return
end end
if resource == params[2] then if resource[1] == params[2] and resource[2] == planet then
if #params == 5 then if #params == 5 then
local settings = {frequency=params[3], size=params[4], richness=params[5]} local settings = {frequency=params[3], size=params[4], richness=params[5]}
local map_gen_settings = game.surfaces[planet].map_gen_settings local map_gen_settings = game.surfaces[planet].map_gen_settings
map_gen_settings.autoplace_controls[resource] = settings map_gen_settings.autoplace_controls[resource[1]] = settings
map_gen_settings.autoplace_settings.entity.settings[resource] = settings map_gen_settings.autoplace_settings.entity.settings[resource[1]] = settings
game.surfaces[planet].map_gen_settings = map_gen_settings game.surfaces[planet].map_gen_settings = map_gen_settings
game.print("Set "..resource.." on "..planet.." to "..serpent.line(settings)) game.print("Set "..resource[1].." on "..planet.." to "..serpent.line(settings))
end end
game.print("Regenerating "..resource) game.print("Regenerating "..resource[1])
game.surfaces[planet].regenerate_entity(resource) game.surfaces[planet].regenerate_entity(resource[1])
end end
end end
end end
@ -182,6 +191,7 @@ end
function util.ore_fix() function util.ore_fix()
ore_fix("nauvis") ore_fix("nauvis")
ore_fix("vulcanus")
if game.surfaces.tenebris then if game.surfaces.tenebris then
ore_fix("tenebris") ore_fix("tenebris")
end end
@ -189,14 +199,18 @@ end
function ore_fix(surface_name) function ore_fix(surface_name)
for _, resource in pairs(me.resources) do for _, resource in pairs(me.resources) do
local map_gen_settings = game.surfaces[surface_name].map_gen_settings if resource[2] == surface_name then
if map_gen_settings.autoplace_controls[resource] == nil then if game.surfaces[resource[2]] then
map_gen_settings.autoplace_controls[resource] = {} local map_gen_settings = game.surfaces[surface_name].map_gen_settings
if map_gen_settings.autoplace_controls[resource[1]] == nil then
map_gen_settings.autoplace_controls[resource[1]] = {}
end
if map_gen_settings.autoplace_settings.entity.settings[resource[1]] == nil then
map_gen_settings.autoplace_settings.entity.settings[resource[1]] = {}
end
game.surfaces[surface_name].map_gen_settings = map_gen_settings
end
end end
if map_gen_settings.autoplace_settings.entity.settings[resource] == nil then
map_gen_settings.autoplace_settings.entity.settings[resource] = {}
end
game.surfaces[surface_name].map_gen_settings = map_gen_settings
end end
end end

View file

@ -1543,6 +1543,16 @@ function util.add_minable_result(t, name, result)
end end
end end
function util.set_surface_property(surface, condition, value)
if not data.raw["surface-property"][condition] then return end
if data.raw.surface[surface] then
data.raw.surface[surface].surface_properties[condition] = value
end
if data.raw.planet[surface] then
data.raw.planet[surface].surface_properties[condition] = value
end
end
local function insert(nodes, node, value) local function insert(nodes, node, value)
table.insert(node, value) -- store as parameter table.insert(node, value) -- store as parameter
@ -1627,6 +1637,7 @@ end
function remove_prior_unlocks(tech, recipe) function remove_prior_unlocks(tech, recipe)
local technology = data.raw.technology[tech] local technology = data.raw.technology[tech]
if technology then if technology then
log("Removing prior unlocks for ".. tech)
util.remove_recipe_effect(tech, recipe) util.remove_recipe_effect(tech, recipe)
if technology.prerequisites then if technology.prerequisites then
for i, prerequisite in pairs(technology.prerequisites) do for i, prerequisite in pairs(technology.prerequisites) do
@ -1662,6 +1673,7 @@ function util.replace_ingredients_prior_to(tech, old, new, multiplier)
end end
function replace_ingredients_prior_to(tech, old, new, multiplier) function replace_ingredients_prior_to(tech, old, new, multiplier)
log("Replacing for tech "..tech)
local technology = data.raw.technology[tech] local technology = data.raw.technology[tech]
if technology then if technology then
if technology.effects then if technology.effects then

View file

@ -1,6 +1,6 @@
{ {
"name": "bztin", "name": "bztin",
"version": "2.1.3", "version": "2.1.4",
"factorio_version": "2.0", "factorio_version": "2.0",
"title": "Tin", "title": "Tin",
"author": "Brevven", "author": "Brevven",

2
me.lua
View file

@ -1,7 +1,7 @@
local me = {} local me = {}
me.name = "bztin" me.name = "bztin"
me.resources = {"tin-ore"} me.resources = {{"tin-ore", "nauvis"}}
me.list = {} me.list = {}
me.recipes = {"tin-plate", "solder", "organotins", me.recipes = {"tin-plate", "solder", "organotins",
"enriched-tin", "enriched-tin",