From 37469373281e81f952cfdb6329bf6127909b6926 Mon Sep 17 00:00:00 2001 From: zerostarm Date: Thu, 23 Feb 2023 11:45:08 -0600 Subject: [PATCH 01/26] Added a setting for Landblock mode --- SeaBlock/settings.lua | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/SeaBlock/settings.lua b/SeaBlock/settings.lua index 8ef183cb..c2ae5560 100644 --- a/SeaBlock/settings.lua +++ b/SeaBlock/settings.lua @@ -20,3 +20,14 @@ if mods["LandfillPainting"] then }, }) end + +data:extend({ + { + type = "bool-setting", + name = "Landblock-mode-Seablock-setting", + setting_type = "startup", + default_value = false + } +}) + + From b74d0451a24ed11f522070bb1ea103f6e2f0aa14 Mon Sep 17 00:00:00 2001 From: zerostarm Date: Thu, 23 Feb 2023 11:56:11 -0600 Subject: [PATCH 02/26] Added If statement for Landblock-mode --- SeaBlock/data-final-fixes/mapgen.lua | 36 +++++++++++++++------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/SeaBlock/data-final-fixes/mapgen.lua b/SeaBlock/data-final-fixes/mapgen.lua index f7ad3c9f..b117191f 100644 --- a/SeaBlock/data-final-fixes/mapgen.lua +++ b/SeaBlock/data-final-fixes/mapgen.lua @@ -3,12 +3,6 @@ for k, v in pairs(data.raw.resource) do v.autoplace = nil end --- No spawners -for k, v in pairs(data.raw["unit-spawner"]) do - v.autoplace = nil - v.control = nil -end - -- No trees for k, v in pairs(data.raw.tree) do if @@ -31,18 +25,26 @@ for k, v in pairs(data.raw["simple-entity"]) do seablock.lib.add_flag("simple-entity", v.name, "not-deconstructable") end -local keepcontrols = {} -local turrets = data.raw["turret"] -for turret_name, turret in pairs(turrets) do - if turret.autoplace and turret.autoplace.control then - keepcontrols[turret.autoplace.control] = true +if settings.startup["Landblock-mode-Seablock"] == false then + -- No spawners + for k, v in pairs(data.raw["unit-spawner"]) do + v.autoplace = nil + v.control = nil end -end - -local controls = data.raw["autoplace-control"] -for k, v in pairs(controls) do - if k ~= "enemy-base" and not keepcontrols[k] then - controls[k] = nil + + local keepcontrols = {} + local turrets = data.raw["turret"] + for turret_name, turret in pairs(turrets) do + if turret.autoplace and turret.autoplace.control then + keepcontrols[turret.autoplace.control] = true + end + end + + local controls = data.raw["autoplace-control"] + for k, v in pairs(controls) do + if k ~= "enemy-base" and not keepcontrols[k] then + controls[k] = nil + end end end From 1df05cbd80d8adbc8a893b9e1868f1cb9f30c396 Mon Sep 17 00:00:00 2001 From: zerostarm Date: Thu, 23 Feb 2023 11:57:33 -0600 Subject: [PATCH 03/26] Fixed Name of setting --- SeaBlock/data-final-fixes/mapgen.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SeaBlock/data-final-fixes/mapgen.lua b/SeaBlock/data-final-fixes/mapgen.lua index b117191f..7643638d 100644 --- a/SeaBlock/data-final-fixes/mapgen.lua +++ b/SeaBlock/data-final-fixes/mapgen.lua @@ -25,7 +25,7 @@ for k, v in pairs(data.raw["simple-entity"]) do seablock.lib.add_flag("simple-entity", v.name, "not-deconstructable") end -if settings.startup["Landblock-mode-Seablock"] == false then +if settings.startup["Landblock-mode-Seablock-setting"] == false then -- No spawners for k, v in pairs(data.raw["unit-spawner"]) do v.autoplace = nil From fd35c4e5a281b7c5b8250b81fe99b12cdbbe273e Mon Sep 17 00:00:00 2001 From: zerostarm Date: Thu, 23 Feb 2023 13:23:48 -0600 Subject: [PATCH 04/26] Found last mapgen bit and updated En Locale --- SeaBlock/locale/en/SeaBlock.cfg | 1 + SeaBlock/mapgen.lua | 857 ++++++++++++++++---------------- 2 files changed, 431 insertions(+), 427 deletions(-) diff --git a/SeaBlock/locale/en/SeaBlock.cfg b/SeaBlock/locale/en/SeaBlock.cfg index 215613ca..18a8bb58 100644 --- a/SeaBlock/locale/en/SeaBlock.cfg +++ b/SeaBlock/locale/en/SeaBlock.cfg @@ -61,6 +61,7 @@ sb-lab-tool=Craft a lab to complete this research [mod-setting-name] sb-default-landfill=Default landfill type bobmods-assembly-multipurposefurnaces=Recipe furnaces +Landblock-mode-Seablock-setting=Landblock mode (Keeps Recipes the same changes mapgen to normal-ish) [string-mod-setting] sb-default-landfill-landfill-dirt-4=[img=item/landfill-dirt-4]Dirt diff --git a/SeaBlock/mapgen.lua b/SeaBlock/mapgen.lua index e3cafabd..ee1bed5e 100644 --- a/SeaBlock/mapgen.lua +++ b/SeaBlock/mapgen.lua @@ -31,450 +31,453 @@ data.raw.tile["sand-5"].vehicle_friction_modifier = 1.8 data.raw.tile["landfill"].vehicle_friction_modifier = 1.8 -for _, v in pairs(data.raw.tile) do - v.autoplace = nil -end +if settings.startup["Landblock-mode-Seablock-setting"] == false then --- Want player to collide with cliffs --- Want player to collide with water --- Don't want cliffs to collide with water --- Water tile's default collision mask includes player-layer and item-layer --- So use train-layer as a substitute player-layer -data.raw.cliff["cliff"].collision_mask = { "object-layer", "train-layer", "not-colliding-with-itself" } + for _, v in pairs(data.raw.tile) do + v.autoplace = nil + end -local octaves = -3 -local persistence = 0.2 -local waterline = 9.4 -local elevation_scale = 5 -local function scale_elevation(x) - return (x - waterline) * elevation_scale + waterline -end --- low lying sand -data.raw.tile["sand-4"].autoplace = { - peaks = { - { -- Around cliff islands - influence = 5, - elevation_optimal = 0.3 * elevation_scale + waterline, - elevation_range = 0.3 * elevation_scale, - elevation_max_range = 0.3 * elevation_scale, - }, - { - influence = 0.77 * 8, -- Worm islands - min_influence = 0, - noise_layer = "enemy-base", - noise_octaves_difference = octaves, - noise_persistence = persistence, - tier_from_start_optimal = 8, - tier_from_start_max_range = 40, - tier_from_start_top_property_limit = 8, - }, - { -- Not in starting area - influence = -5, - starting_area_weight_optimal = 1, - starting_area_weight_range = 0, - starting_area_weight_max_range = 0, - }, - { - influence = 100, -- ... except for starting tile - min_influence = 0, - distance_optimal = 0, - distance_range = 0.1, - distance_max_range = 0.1, - }, - { - influence = -5, - }, - }, -} + -- Want player to collide with cliffs + -- Want player to collide with water + -- Don't want cliffs to collide with water + -- Water tile's default collision mask includes player-layer and item-layer + -- So use train-layer as a substitute player-layer + data.raw.cliff["cliff"].collision_mask = { "object-layer", "train-layer", "not-colliding-with-itself" } --- highground sand -data.raw.tile["sand-5"].autoplace = { - peaks = { - { - influence = 5, - min_influence = 0, - elevation_optimal = scale_elevation(15), - elevation_range = 5 * elevation_scale, - elevation_max_range = 5 * elevation_scale, - tier_from_start_optimal = 0.1, - tier_from_start_range = 0, - tier_from_start_max_range = 0, - tier_from_start_top_property_limit = 0.1, - }, - { - influence = 0.65, -- starting area garden islands - min_influence = 0, - max_influence = 1, - noise_layer = "enemy-base", - noise_octaves_difference = octaves, - noise_persistence = persistence, - tier_from_start_optimal = 0, - tier_from_start_range = 0.1, - tier_from_start_max_range = 0.1, - }, - { - influence = 1, - max_influence = 0, - starting_area_weight_optimal = 1, - starting_area_weight_range = 0, - starting_area_weight_max_range = 0, - }, - { - influence = -100, -- not on starting tile - max_influence = 0, - distance_optimal = 0, - distance_range = 3, - distance_max_range = 3, - }, - }, -} + local octaves = -3 + local persistence = 0.2 + local waterline = 9.4 + local elevation_scale = 5 + local function scale_elevation(x) + return (x - waterline) * elevation_scale + waterline + end + -- low lying sand + data.raw.tile["sand-4"].autoplace = { + peaks = { + { -- Around cliff islands + influence = 5, + elevation_optimal = 0.3 * elevation_scale + waterline, + elevation_range = 0.3 * elevation_scale, + elevation_max_range = 0.3 * elevation_scale, + }, + { + influence = 0.77 * 8, -- Worm islands + min_influence = 0, + noise_layer = "enemy-base", + noise_octaves_difference = octaves, + noise_persistence = persistence, + tier_from_start_optimal = 8, + tier_from_start_max_range = 40, + tier_from_start_top_property_limit = 8, + }, + { -- Not in starting area + influence = -5, + starting_area_weight_optimal = 1, + starting_area_weight_range = 0, + starting_area_weight_max_range = 0, + }, + { + influence = 100, -- ... except for starting tile + min_influence = 0, + distance_optimal = 0, + distance_range = 0.1, + distance_max_range = 0.1, + }, + { + influence = -5, + }, + }, + } -local plant_elevation_range = 9.9 * elevation_scale -data.raw.tree["desert-garden"].autoplace = { - max_probability = 0.2, - random_probability_penalty = 0.05, - sharpness = 1, - peaks = { - { - influence = 1, - min_influence = 0, - elevation_optimal = scale_elevation(20), - elevation_range = plant_elevation_range, - elevation_max_range = plant_elevation_range, - }, - { - influence = 0.31, -- Trial and error value to generate size that approximately matches starting area islands - min_influence = 0, - max_influence = 1, - noise_layer = "enemy-base", - noise_octaves_difference = octaves, - noise_persistence = persistence, - tier_from_start_optimal = 0, - tier_from_start_range = 0.1, - tier_from_start_max_range = 0.1, - }, - { - influence = 1, - max_influence = 0, - noise_layer = "desert-garden-noise", - noise_persistence = 0.8, - noise_octaves_difference = -0.5, - }, - }, - order = "yc", - tile_restriction = { "sand-5" }, -} + -- highground sand + data.raw.tile["sand-5"].autoplace = { + peaks = { + { + influence = 5, + min_influence = 0, + elevation_optimal = scale_elevation(15), + elevation_range = 5 * elevation_scale, + elevation_max_range = 5 * elevation_scale, + tier_from_start_optimal = 0.1, + tier_from_start_range = 0, + tier_from_start_max_range = 0, + tier_from_start_top_property_limit = 0.1, + }, + { + influence = 0.65, -- starting area garden islands + min_influence = 0, + max_influence = 1, + noise_layer = "enemy-base", + noise_octaves_difference = octaves, + noise_persistence = persistence, + tier_from_start_optimal = 0, + tier_from_start_range = 0.1, + tier_from_start_max_range = 0.1, + }, + { + influence = 1, + max_influence = 0, + starting_area_weight_optimal = 1, + starting_area_weight_range = 0, + starting_area_weight_max_range = 0, + }, + { + influence = -100, -- not on starting tile + max_influence = 0, + distance_optimal = 0, + distance_range = 3, + distance_max_range = 3, + }, + }, + } -data.raw.tree["temperate-garden"].autoplace = { - max_probability = 0.2, - random_probability_penalty = 0.05, - peaks = { - { - influence = 1, - min_influence = 0, - elevation_optimal = scale_elevation(20), - elevation_range = plant_elevation_range, - elevation_max_range = plant_elevation_range, - }, - { - influence = 1, - max_influence = 0, - noise_layer = "temperate-garden-noise", - noise_persistence = 0.8, - noise_octaves_difference = -0.5, - }, - }, - order = "ya", - tile_restriction = { "sand-5" }, -} + local plant_elevation_range = 9.9 * elevation_scale + data.raw.tree["desert-garden"].autoplace = { + max_probability = 0.2, + random_probability_penalty = 0.05, + sharpness = 1, + peaks = { + { + influence = 1, + min_influence = 0, + elevation_optimal = scale_elevation(20), + elevation_range = plant_elevation_range, + elevation_max_range = plant_elevation_range, + }, + { + influence = 0.31, -- Trial and error value to generate size that approximately matches starting area islands + min_influence = 0, + max_influence = 1, + noise_layer = "enemy-base", + noise_octaves_difference = octaves, + noise_persistence = persistence, + tier_from_start_optimal = 0, + tier_from_start_range = 0.1, + tier_from_start_max_range = 0.1, + }, + { + influence = 1, + max_influence = 0, + noise_layer = "desert-garden-noise", + noise_persistence = 0.8, + noise_octaves_difference = -0.5, + }, + }, + order = "yc", + tile_restriction = { "sand-5" }, + } -data.raw.tree["swamp-garden"].autoplace = { - max_probability = 0.05, - peaks = { - { - influence = 1, - min_influence = 0, - elevation_optimal = scale_elevation(20), - elevation_range = plant_elevation_range, - elevation_max_range = plant_elevation_range, - }, - }, - order = "yb", - tile_restriction = { "sand-5" }, -} + data.raw.tree["temperate-garden"].autoplace = { + max_probability = 0.2, + random_probability_penalty = 0.05, + peaks = { + { + influence = 1, + min_influence = 0, + elevation_optimal = scale_elevation(20), + elevation_range = plant_elevation_range, + elevation_max_range = plant_elevation_range, + }, + { + influence = 1, + max_influence = 0, + noise_layer = "temperate-garden-noise", + noise_persistence = 0.8, + noise_octaves_difference = -0.5, + }, + }, + order = "ya", + tile_restriction = { "sand-5" }, + } -data.raw.tree["desert-tree"].autoplace = { - max_probability = 0.1, - random_probability_penalty = 0.025, - sharpness = 1, - peaks = { - { - influence = 1, - min_influence = 0, - elevation_optimal = scale_elevation(20), - elevation_range = plant_elevation_range, - elevation_max_range = plant_elevation_range, - }, - { - influence = 0.31, -- Trial and error value to generate size that approximately matches starting area islands - min_influence = 0, - max_influence = 1, - noise_layer = "enemy-base", - noise_octaves_difference = octaves, - noise_persistence = persistence, - tier_from_start_optimal = 0, - tier_from_start_range = 0.1, - tier_from_start_max_range = 0.1, - }, - { - influence = 1, - max_influence = 0, - noise_layer = "desert-tree-noise", - noise_persistence = 0.8, - noise_octaves_difference = -0.5, - }, - }, - order = "za", - tile_restriction = { "sand-5" }, -} -data.raw.tree["temperate-tree"].autoplace = { - max_probability = 0.1, - random_probability_penalty = 0.025, - peaks = { - { - influence = 1, - min_influence = 0, - elevation_optimal = scale_elevation(20), - elevation_range = plant_elevation_range, - elevation_max_range = plant_elevation_range, - }, - { - influence = 1, - max_influence = 0, - noise_layer = "temperate-tree-noise", - noise_persistence = 0.8, - noise_octaves_difference = -0.5, - }, - }, - order = "zc", - tile_restriction = { "sand-5" }, -} + data.raw.tree["swamp-garden"].autoplace = { + max_probability = 0.05, + peaks = { + { + influence = 1, + min_influence = 0, + elevation_optimal = scale_elevation(20), + elevation_range = plant_elevation_range, + elevation_max_range = plant_elevation_range, + }, + }, + order = "yb", + tile_restriction = { "sand-5" }, + } -data.raw.tree["swamp-tree"].autoplace = { - max_probability = 0.05, - peaks = { - { - influence = 1, - min_influence = 0, - elevation_optimal = scale_elevation(20), - elevation_range = plant_elevation_range, - elevation_max_range = plant_elevation_range, - }, - { - influence = 1, - max_influence = 0, - noise_layer = "swamp-tree-noise", - noise_persistence = 0.8, - noise_octaves_difference = -0.5, - }, - }, - order = "zb", - tile_restriction = { "sand-5" }, -} + data.raw.tree["desert-tree"].autoplace = { + max_probability = 0.1, + random_probability_penalty = 0.025, + sharpness = 1, + peaks = { + { + influence = 1, + min_influence = 0, + elevation_optimal = scale_elevation(20), + elevation_range = plant_elevation_range, + elevation_max_range = plant_elevation_range, + }, + { + influence = 0.31, -- Trial and error value to generate size that approximately matches starting area islands + min_influence = 0, + max_influence = 1, + noise_layer = "enemy-base", + noise_octaves_difference = octaves, + noise_persistence = persistence, + tier_from_start_optimal = 0, + tier_from_start_range = 0.1, + tier_from_start_max_range = 0.1, + }, + { + influence = 1, + max_influence = 0, + noise_layer = "desert-tree-noise", + noise_persistence = 0.8, + noise_octaves_difference = -0.5, + }, + }, + order = "za", + tile_restriction = { "sand-5" }, + } + data.raw.tree["temperate-tree"].autoplace = { + max_probability = 0.1, + random_probability_penalty = 0.025, + peaks = { + { + influence = 1, + min_influence = 0, + elevation_optimal = scale_elevation(20), + elevation_range = plant_elevation_range, + elevation_max_range = plant_elevation_range, + }, + { + influence = 1, + max_influence = 0, + noise_layer = "temperate-tree-noise", + noise_persistence = 0.8, + noise_octaves_difference = -0.5, + }, + }, + order = "zc", + tile_restriction = { "sand-5" }, + } -data.raw.tile["water"].autoplace = { - peaks = { - { - influence = 0.1, -- shallow water around cliff islands - min_influence = 0, - elevation_optimal = -2 * elevation_scale + waterline, - elevation_range = 2.5 * elevation_scale, - elevation_max_range = 2.5 * elevation_scale, - }, - { - influence = 0.77 * 2, -- around worm islands - min_influence = 0, - max_influence = 1, - noise_layer = "enemy-base", - noise_octaves_difference = octaves, - noise_persistence = persistence, - }, - { - influence = 5, -- around starting tile - min_influence = 0, - distance_optimal = 0, - distance_range = 5, - distance_max_range = 5, - }, - }, -} + data.raw.tree["swamp-tree"].autoplace = { + max_probability = 0.05, + peaks = { + { + influence = 1, + min_influence = 0, + elevation_optimal = scale_elevation(20), + elevation_range = plant_elevation_range, + elevation_max_range = plant_elevation_range, + }, + { + influence = 1, + max_influence = 0, + noise_layer = "swamp-tree-noise", + noise_persistence = 0.8, + noise_octaves_difference = -0.5, + }, + }, + order = "zb", + tile_restriction = { "sand-5" }, + } -data.raw.tile["deepwater"].autoplace = { - peaks = { - { - influence = 0.01, - }, - }, -} + data.raw.tile["water"].autoplace = { + peaks = { + { + influence = 0.1, -- shallow water around cliff islands + min_influence = 0, + elevation_optimal = -2 * elevation_scale + waterline, + elevation_range = 2.5 * elevation_scale, + elevation_max_range = 2.5 * elevation_scale, + }, + { + influence = 0.77 * 2, -- around worm islands + min_influence = 0, + max_influence = 1, + noise_layer = "enemy-base", + noise_octaves_difference = octaves, + noise_persistence = persistence, + }, + { + influence = 5, -- around starting tile + min_influence = 0, + distance_optimal = 0, + distance_range = 5, + distance_max_range = 5, + }, + }, + } -data.raw.fish["alien-fish-1"].autoplace = { - peaks = { - { - influence = -0.1, - max_influence = 0, - noise_layer = "enemy-base", - noise_octaves_difference = octaves, - noise_persistence = persistence, - }, - { - influence = 0.01, - }, - }, -} + data.raw.tile["deepwater"].autoplace = { + peaks = { + { + influence = 0.01, + }, + }, + } -data.raw.fish["alien-fish-2"].autoplace = { - peaks = { - { - influence = 0.02, - min_influence = 0, - noise_layer = "enemy-base", - noise_octaves_difference = octaves, - noise_persistence = persistence, - }, - }, -} + data.raw.fish["alien-fish-1"].autoplace = { + peaks = { + { + influence = -0.1, + max_influence = 0, + noise_layer = "enemy-base", + noise_octaves_difference = octaves, + noise_persistence = persistence, + }, + { + influence = 0.01, + }, + }, + } -data.raw.fish["alien-fish-3"].autoplace = { - peaks = { - { - influence = 0.015, - min_influence = 0, - elevation_optimal = scale_elevation(10), - elevation_range = 5 * elevation_scale, - elevation_max_range = 5 * elevation_scale, - tier_from_start_optimal = 0.1, - tier_from_start_range = 0, - tier_from_start_max_range = 0, - tier_from_start_top_property_limit = 0.1, - }, - }, -} + data.raw.fish["alien-fish-2"].autoplace = { + peaks = { + { + influence = 0.02, + min_influence = 0, + noise_layer = "enemy-base", + noise_octaves_difference = octaves, + noise_persistence = persistence, + }, + }, + } -local noise = require("noise") -local tne = noise.to_noise_expression -local enemy_random_seed = 1 -local function new_random_seed() - enemy_random_seed = enemy_random_seed + 1 - return enemy_random_seed -end -local function worm_autoplace(distance, probability, order, falloff, control_name) - local d = noise.var("distance") - noise.var("starting_area_radius") - local p = noise.clamp((d - distance * 128) / 128, 0, 1) - if falloff then - p = p * noise.clamp(((distance + 2) * 128 - d) / 128, 0, 1) - end - p = p * noise.clamp((waterline - noise.var("elevation")), 0, 1) - p = p * probability - p = noise.random_penalty(p, probability * 0.5, { - x = noise.var("x") + new_random_seed(), - }) + data.raw.fish["alien-fish-3"].autoplace = { + peaks = { + { + influence = 0.015, + min_influence = 0, + elevation_optimal = scale_elevation(10), + elevation_range = 5 * elevation_scale, + elevation_max_range = 5 * elevation_scale, + tier_from_start_optimal = 0.1, + tier_from_start_range = 0, + tier_from_start_max_range = 0, + tier_from_start_top_property_limit = 0.1, + }, + }, + } - return { - control = control_name, - order = order, - force = "enemy", - probability_expression = p, - richness_expression = tne(1), - } -end + local noise = require("noise") + local tne = noise.to_noise_expression + local enemy_random_seed = 1 + local function new_random_seed() + enemy_random_seed = enemy_random_seed + 1 + return enemy_random_seed + end + local function worm_autoplace(distance, probability, order, falloff, control_name) + local d = noise.var("distance") - noise.var("starting_area_radius") + local p = noise.clamp((d - distance * 128) / 128, 0, 1) + if falloff then + p = p * noise.clamp(((distance + 2) * 128 - d) / 128, 0, 1) + end + p = p * noise.clamp((waterline - noise.var("elevation")), 0, 1) + p = p * probability + p = noise.random_penalty(p, probability * 0.5, { + x = noise.var("x") + new_random_seed(), + }) -data.raw.turret["small-worm-turret"].autoplace = worm_autoplace(0, 1, "z", true, "enemy-base") -data.raw.turret["medium-worm-turret"].autoplace = worm_autoplace(1, 1, "y", true, "enemy-base") -if data.raw.turret["bob-big-explosive-worm-turret"] then - data.raw.turret["bob-big-explosive-worm-turret"].autoplace = worm_autoplace(1.5, 0.5, "v", false, "enemy-base") -end -if data.raw.turret["bob-big-fire-worm-turret"] then - data.raw.turret["bob-big-fire-worm-turret"].autoplace = worm_autoplace(1.5, 0.5, "v", false, "enemy-base") -end -if data.raw.turret["bob-big-poison-worm-turret"] then - data.raw.turret["bob-big-poison-worm-turret"].autoplace = worm_autoplace(1.5, 0.5, "v", false, "enemy-base") -end -if data.raw.turret["bob-big-piercing-worm-turret"] then - data.raw.turret["bob-big-piercing-worm-turret"].autoplace = worm_autoplace(1.5, 0.5, "v", false, "enemy-base") -end -if data.raw.turret["bob-big-electric-worm-turret"] then - data.raw.turret["bob-big-electric-worm-turret"].autoplace = worm_autoplace(1.5, 0.5, "v", false, "enemy-base") -end -if data.raw.turret["bob-giant-worm-turret"] then - data.raw.turret["bob-giant-worm-turret"].autoplace = worm_autoplace(2, 0.6, "u", false, "enemy-base") -end -if data.raw.turret["behemoth-worm-turret"] then - data.raw.turret["big-worm-turret"].autoplace = worm_autoplace(1.5, 0.5, "v", false, "enemy-base") - data.raw.turret["behemoth-worm-turret"].autoplace = worm_autoplace(2, 0.2, "t", false, "enemy-base") -else - data.raw.turret["big-worm-turret"].autoplace = worm_autoplace(2, 1, "v", false, "enemy-base") -end -data.raw.tree["puffer-nest"].autoplace = worm_autoplace(0, 0.01, "s", false) + return { + control = control_name, + order = order, + force = "enemy", + probability_expression = p, + richness_expression = tne(1), + } + end -for _, v in pairs(data.raw.turret) do - v.map_generator_bounding_box = nil -end + data.raw.turret["small-worm-turret"].autoplace = worm_autoplace(0, 1, "z", true, "enemy-base") + data.raw.turret["medium-worm-turret"].autoplace = worm_autoplace(1, 1, "y", true, "enemy-base") + if data.raw.turret["bob-big-explosive-worm-turret"] then + data.raw.turret["bob-big-explosive-worm-turret"].autoplace = worm_autoplace(1.5, 0.5, "v", false, "enemy-base") + end + if data.raw.turret["bob-big-fire-worm-turret"] then + data.raw.turret["bob-big-fire-worm-turret"].autoplace = worm_autoplace(1.5, 0.5, "v", false, "enemy-base") + end + if data.raw.turret["bob-big-poison-worm-turret"] then + data.raw.turret["bob-big-poison-worm-turret"].autoplace = worm_autoplace(1.5, 0.5, "v", false, "enemy-base") + end + if data.raw.turret["bob-big-piercing-worm-turret"] then + data.raw.turret["bob-big-piercing-worm-turret"].autoplace = worm_autoplace(1.5, 0.5, "v", false, "enemy-base") + end + if data.raw.turret["bob-big-electric-worm-turret"] then + data.raw.turret["bob-big-electric-worm-turret"].autoplace = worm_autoplace(1.5, 0.5, "v", false, "enemy-base") + end + if data.raw.turret["bob-giant-worm-turret"] then + data.raw.turret["bob-giant-worm-turret"].autoplace = worm_autoplace(2, 0.6, "u", false, "enemy-base") + end + if data.raw.turret["behemoth-worm-turret"] then + data.raw.turret["big-worm-turret"].autoplace = worm_autoplace(1.5, 0.5, "v", false, "enemy-base") + data.raw.turret["behemoth-worm-turret"].autoplace = worm_autoplace(2, 0.2, "t", false, "enemy-base") + else + data.raw.turret["big-worm-turret"].autoplace = worm_autoplace(2, 1, "v", false, "enemy-base") + end + data.raw.tree["puffer-nest"].autoplace = worm_autoplace(0, 0.01, "s", false) -data:extend({ - { - type = "noise-layer", - name = "desert-tree-noise", - }, - { - type = "noise-layer", - name = "temperate-tree-noise", - }, - { - type = "noise-layer", - name = "swamp-tree-noise", - }, - { - type = "noise-layer", - name = "desert-garden-noise", - }, - { - type = "noise-layer", - name = "temperate-garden-noise", - }, - { - type = "noise-layer", - name = "swamp-garden-noise", - }, -}) + for _, v in pairs(data.raw.turret) do + v.map_generator_bounding_box = nil + end -local function make_basis_noise_function(seed0, seed1, outscale0, inscale0) - outscale0 = outscale0 or 1 - inscale0 = inscale0 or 1 / outscale0 - return function(x, y, inscale, outscale) - return tne({ - type = "function-application", - function_name = "factorio-basis-noise", - arguments = { - x = tne(x), - y = tne(y), - seed0 = tne(seed0), - seed1 = tne(seed1), - input_scale = tne((inscale or 1) * inscale0), - output_scale = tne((outscale or 1) * outscale0), - }, - }) - end -end + data:extend({ + { + type = "noise-layer", + name = "desert-tree-noise", + }, + { + type = "noise-layer", + name = "temperate-tree-noise", + }, + { + type = "noise-layer", + name = "swamp-tree-noise", + }, + { + type = "noise-layer", + name = "desert-garden-noise", + }, + { + type = "noise-layer", + name = "temperate-garden-noise", + }, + { + type = "noise-layer", + name = "swamp-garden-noise", + }, + }) -data.raw["noise-expression"]["cliffiness"].expression = noise.define_noise_function(function(x, y, tile, map) - local t = noise.clamp((tile.tier - 0.2) * noise.ceil(noise.var("control-setting:cliffs:richness:multiplier")), 0, 1) -- No cliffs in starting area - return 100 * t -end) -data.raw["noise-expression"]["elevation"].expression = noise.define_noise_function(function(x, y, tile, map) - x = x + 40000 - y = y - local v = make_basis_noise_function(map.seed, 5, 6, 1 / 64)(x, y) - v = noise.max(v, 0) - v = (v * elevation_scale) - (waterline * (elevation_scale - 1)) -- Increase gradient for cliffs while leaving waterline unchanged - return v -end) + local function make_basis_noise_function(seed0, seed1, outscale0, inscale0) + outscale0 = outscale0 or 1 + inscale0 = inscale0 or 1 / outscale0 + return function(x, y, inscale, outscale) + return tne({ + type = "function-application", + function_name = "factorio-basis-noise", + arguments = { + x = tne(x), + y = tne(y), + seed0 = tne(seed0), + seed1 = tne(seed1), + input_scale = tne((inscale or 1) * inscale0), + output_scale = tne((outscale or 1) * outscale0), + }, + }) + end + end + + data.raw["noise-expression"]["cliffiness"].expression = noise.define_noise_function(function(x, y, tile, map) + local t = noise.clamp((tile.tier - 0.2) * noise.ceil(noise.var("control-setting:cliffs:richness:multiplier")), 0, 1) -- No cliffs in starting area + return 100 * t + end) + data.raw["noise-expression"]["elevation"].expression = noise.define_noise_function(function(x, y, tile, map) + x = x + 40000 + y = y + local v = make_basis_noise_function(map.seed, 5, 6, 1 / 64)(x, y) + v = noise.max(v, 0) + v = (v * elevation_scale) - (waterline * (elevation_scale - 1)) -- Increase gradient for cliffs while leaving waterline unchanged + return v + end) +end \ No newline at end of file From 8f7e347b9b864902d0eaa9745717f010f9b3006e Mon Sep 17 00:00:00 2001 From: zerostarm Date: Thu, 23 Feb 2023 13:41:49 -0600 Subject: [PATCH 05/26] Added no trees and no minerals modes --- SeaBlock/data-final-fixes/mapgen.lua | 44 +++++++++++++++------------- SeaBlock/locale/en/SeaBlock.cfg | 4 ++- SeaBlock/mapgen.lua | 2 +- SeaBlock/settings.lua | 18 +++++++++++- 4 files changed, 44 insertions(+), 24 deletions(-) diff --git a/SeaBlock/data-final-fixes/mapgen.lua b/SeaBlock/data-final-fixes/mapgen.lua index 7643638d..e763b41b 100644 --- a/SeaBlock/data-final-fixes/mapgen.lua +++ b/SeaBlock/data-final-fixes/mapgen.lua @@ -1,31 +1,33 @@ +if settings.startup["No-minerals-mode-setting"].value == true then -- No resource placement for k, v in pairs(data.raw.resource) do v.autoplace = nil end --- No trees -for k, v in pairs(data.raw.tree) do - if - k ~= "temperate-garden" - and k ~= "desert-garden" - and k ~= "swamp-garden" - and k ~= "temperate-tree" - and k ~= "desert-tree" - and k ~= "swamp-tree" - and k ~= "puffer-nest" - then - v.autoplace = nil - seablock.lib.add_flag("tree", v.name, "not-deconstructable") - end -end +if settings.startup["No-trees-mode-setting"].value == true then + -- No trees + for k, v in pairs(data.raw.tree) do + if + k ~= "temperate-garden" + and k ~= "desert-garden" + and k ~= "swamp-garden" + and k ~= "temperate-tree" + and k ~= "desert-tree" + and k ~= "swamp-tree" + and k ~= "puffer-nest" + then + v.autoplace = nil + seablock.lib.add_flag("tree", v.name, "not-deconstructable") + end + end --- No rocks -for k, v in pairs(data.raw["simple-entity"]) do - v.autoplace = nil - seablock.lib.add_flag("simple-entity", v.name, "not-deconstructable") + -- No rocks + for k, v in pairs(data.raw["simple-entity"]) do + v.autoplace = nil + seablock.lib.add_flag("simple-entity", v.name, "not-deconstructable") + end end - -if settings.startup["Landblock-mode-Seablock-setting"] == false then +if settings.startup["Landblock-mode-Seablock-setting"].value == false then -- No spawners for k, v in pairs(data.raw["unit-spawner"]) do v.autoplace = nil diff --git a/SeaBlock/locale/en/SeaBlock.cfg b/SeaBlock/locale/en/SeaBlock.cfg index 18a8bb58..b6028f02 100644 --- a/SeaBlock/locale/en/SeaBlock.cfg +++ b/SeaBlock/locale/en/SeaBlock.cfg @@ -61,7 +61,9 @@ sb-lab-tool=Craft a lab to complete this research [mod-setting-name] sb-default-landfill=Default landfill type bobmods-assembly-multipurposefurnaces=Recipe furnaces -Landblock-mode-Seablock-setting=Landblock mode (Keeps Recipes the same changes mapgen to normal-ish) +Landblock-mode-Seablock-setting=Landblock mode (Keeps Recipes the same changes mapgen to normal-ish) (Default=unchecked) +No-minerals-mode-setting=Setting to turn on normal resource production for mod incompatabilities (Default=checked) +No-trees-mode-setting=Setting to turn on normal tree/rock growth for mod incompatabilities (Default=checked) [string-mod-setting] sb-default-landfill-landfill-dirt-4=[img=item/landfill-dirt-4]Dirt diff --git a/SeaBlock/mapgen.lua b/SeaBlock/mapgen.lua index ee1bed5e..9082855e 100644 --- a/SeaBlock/mapgen.lua +++ b/SeaBlock/mapgen.lua @@ -31,7 +31,7 @@ data.raw.tile["sand-5"].vehicle_friction_modifier = 1.8 data.raw.tile["landfill"].vehicle_friction_modifier = 1.8 -if settings.startup["Landblock-mode-Seablock-setting"] == false then +if settings.startup["Landblock-mode-Seablock-setting"].value == false then for _, v in pairs(data.raw.tile) do v.autoplace = nil diff --git a/SeaBlock/settings.lua b/SeaBlock/settings.lua index c2ae5560..47304fdf 100644 --- a/SeaBlock/settings.lua +++ b/SeaBlock/settings.lua @@ -30,4 +30,20 @@ data:extend({ } }) - +data:extend({ + { + type = "bool-setting", + name = "No-minerals-mode-setting", + setting_type = "startup", + default_value = true + } +}) + +data:extend({ + { + type = "bool-setting", + name = "No-trees-mode-setting", + setting_type = "startup", + default_value = true + } +}) \ No newline at end of file From 2e16f348f525ede5d6e4e23f8aef48a1f03ccd3a Mon Sep 17 00:00:00 2001 From: zerostarm Date: Thu, 23 Feb 2023 14:01:54 -0600 Subject: [PATCH 06/26] Added more if's for No Minerals setting --- SeaBlock/data-final-fixes/mapgen.lua | 7 ++++--- SeaBlock/data-updates/coal.lua | 8 +++++--- SeaBlock/data-updates/misc.lua | 14 ++++++++------ 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/SeaBlock/data-final-fixes/mapgen.lua b/SeaBlock/data-final-fixes/mapgen.lua index e763b41b..52c7b9e9 100644 --- a/SeaBlock/data-final-fixes/mapgen.lua +++ b/SeaBlock/data-final-fixes/mapgen.lua @@ -1,7 +1,8 @@ if settings.startup["No-minerals-mode-setting"].value == true then --- No resource placement -for k, v in pairs(data.raw.resource) do - v.autoplace = nil + -- No resource placement + for k, v in pairs(data.raw.resource) do + v.autoplace = nil + end end if settings.startup["No-trees-mode-setting"].value == true then diff --git a/SeaBlock/data-updates/coal.lua b/SeaBlock/data-updates/coal.lua index bd5e1604..ef24f8c0 100644 --- a/SeaBlock/data-updates/coal.lua +++ b/SeaBlock/data-updates/coal.lua @@ -24,9 +24,11 @@ seablock.lib.moveeffect("pellet-coke", "angels-coal-cracking", "angels-coal-proc data.raw.item["carbon"].fuel_emissions_multiplier = nil data.raw.item["carbon"].fuel_value = nil data.raw.item["carbon"].fuel_category = nil -data.raw.item["coal"].fuel_emissions_multiplier = nil -data.raw.item["coal"].fuel_value = nil -data.raw.item["coal"].fuel_category = nil +if settings.startup["No-minerals-mode-setting"].value == true then + data.raw.item["coal"].fuel_emissions_multiplier = nil + data.raw.item["coal"].fuel_value = nil + data.raw.item["coal"].fuel_category = nil +end data.raw.item["coal-crushed"].fuel_value = nil data.raw.item["coal-crushed"].fuel_category = nil diff --git a/SeaBlock/data-updates/misc.lua b/SeaBlock/data-updates/misc.lua index fd2bdbef..696e8241 100644 --- a/SeaBlock/data-updates/misc.lua +++ b/SeaBlock/data-updates/misc.lua @@ -63,12 +63,14 @@ end -- Remove resources so mining recipes don't show in FNEI -- Have to leave at least one resource or game will not load -for k, v in pairs(data.raw["resource"]) do - if k == "coal" then - v.minable.result = nil - v.minable.results = nil - else - data.raw["resource"][k] = nil +if settings.startup["No-minerals-mode-setting"].value == true then + for k, v in pairs(data.raw["resource"]) do + if k == "coal" then + v.minable.result = nil + v.minable.results = nil + else + data.raw["resource"][k] = nil + end end end From adb4abcc4a4156399a414bdb2b2ef28fe9ad69e8 Mon Sep 17 00:00:00 2001 From: zerostarm Date: Thu, 23 Feb 2023 20:59:39 -0600 Subject: [PATCH 07/26] got the mineral and no trees working not landblock Landblock needs to have spawners but they aren't showing for some reason --- SeaBlock/data-final-fixes/mapgen.lua | 61 +- .../data-final-fixes/unobtainable_items.lua | 5 +- SeaBlock/mapgen.lua | 638 +++++++++--------- 3 files changed, 375 insertions(+), 329 deletions(-) diff --git a/SeaBlock/data-final-fixes/mapgen.lua b/SeaBlock/data-final-fixes/mapgen.lua index 52c7b9e9..bacfc9f8 100644 --- a/SeaBlock/data-final-fixes/mapgen.lua +++ b/SeaBlock/data-final-fixes/mapgen.lua @@ -1,3 +1,4 @@ +--header if settings.startup["No-minerals-mode-setting"].value == true then -- No resource placement for k, v in pairs(data.raw.resource) do @@ -28,33 +29,65 @@ if settings.startup["No-trees-mode-setting"].value == true then seablock.lib.add_flag("simple-entity", v.name, "not-deconstructable") end end + if settings.startup["Landblock-mode-Seablock-setting"].value == false then -- No spawners for k, v in pairs(data.raw["unit-spawner"]) do v.autoplace = nil v.control = nil end - - local keepcontrols = {} - local turrets = data.raw["turret"] - for turret_name, turret in pairs(turrets) do - if turret.autoplace and turret.autoplace.control then - keepcontrols[turret.autoplace.control] = true - end +end + + +local keepcontrols = {} +local turrets = data.raw["turret"] +for turret_name, turret in pairs(turrets) do +if turret.autoplace and turret.autoplace.control then + keepcontrols[turret.autoplace.control] = true +end +end + +if settings.startup["Landblock-mode-Seablock-setting"].value == true then +local enemies = data.raw["unit-spawner"] +for enemies_name, turret in pairs(enemies) do +if turret.autoplace and turret.autoplace.control then + keepcontrols[turret.autoplace.control] = true +end +end +end + +if settings.startup["No-minerals-mode-setting"].value == false then +local resources = data.raw["resource"] +for resource_name, turret in pairs(resources) do + if turret.autoplace and turret.autoplace.control then + keepcontrols[turret.autoplace.control] = true + end +end +end + +if settings.startup["No-trees-mode-setting"].value == false then +local trees = data.raw["tree"] +for tree_name, turret in pairs(trees) do + if turret.autoplace and turret.autoplace.control then + keepcontrols[turret.autoplace.control] = true end - - local controls = data.raw["autoplace-control"] - for k, v in pairs(controls) do - if k ~= "enemy-base" and not keepcontrols[k] then - controls[k] = nil - end +end +end + +local controls = data.raw["autoplace-control"] +--if settings.startup["No-minerals-mode-setting"].value == true then +--if settings.startup["No-trees-mode-setting"].value == true then +for k, v in pairs(controls) do + if k ~= "enemy-base" and not keepcontrols[k] then + controls[k] = nil end end + local presets = data.raw["map-gen-presets"]["default"] for k, v in pairs(presets) do -- Check for order as this is a manditory property for a MapGenPreset (so we skip type and name) if k ~= "default" and k ~= "marathon" and v.order then data.raw["map-gen-presets"]["default"][k] = nil end -end +end \ No newline at end of file diff --git a/SeaBlock/data-final-fixes/unobtainable_items.lua b/SeaBlock/data-final-fixes/unobtainable_items.lua index 41cee794..e17ad345 100644 --- a/SeaBlock/data-final-fixes/unobtainable_items.lua +++ b/SeaBlock/data-final-fixes/unobtainable_items.lua @@ -106,7 +106,7 @@ for _, v in ipairs({ "bio-tile", "burner-generator", "burner-mining-drill", - "coal", +--"coal", "coal-crushed", "diesel-fuel", "diesel-fuel-barrel", @@ -125,6 +125,9 @@ for _, v in ipairs({ }) do unobtainable[v] = {} end +if settings.startup["No-minerals-mode-setting"].value == true then + unobtainable["coal"] = {} +end -- unobtainable[key] -> { { a, and b, and .. }, or { c, ... } or, { d, and e, and f, ...}... } -- a,b,c... are items which if craftable imply key is also craftable and should not be removed diff --git a/SeaBlock/mapgen.lua b/SeaBlock/mapgen.lua index 9082855e..b6a9fdd1 100644 --- a/SeaBlock/mapgen.lua +++ b/SeaBlock/mapgen.lua @@ -31,9 +31,17 @@ data.raw.tile["sand-5"].vehicle_friction_modifier = 1.8 data.raw.tile["landfill"].vehicle_friction_modifier = 1.8 -if settings.startup["Landblock-mode-Seablock-setting"].value == false then - for _, v in pairs(data.raw.tile) do +local octaves = -3 +local persistence = 0.2 +local waterline = 9.4 +local elevation_scale = 5 +local function scale_elevation(x) + return (x - waterline) * elevation_scale + waterline +end + +if settings.startup["Landblock-mode-Seablock-setting"].value == false then + for k, v in pairs(data.raw.tile) do v.autoplace = nil end @@ -44,13 +52,6 @@ if settings.startup["Landblock-mode-Seablock-setting"].value == false then -- So use train-layer as a substitute player-layer data.raw.cliff["cliff"].collision_mask = { "object-layer", "train-layer", "not-colliding-with-itself" } - local octaves = -3 - local persistence = 0.2 - local waterline = 9.4 - local elevation_scale = 5 - local function scale_elevation(x) - return (x - waterline) * elevation_scale + waterline - end -- low lying sand data.raw.tile["sand-4"].autoplace = { peaks = { @@ -130,160 +131,7 @@ if settings.startup["Landblock-mode-Seablock-setting"].value == false then }, }, } - - local plant_elevation_range = 9.9 * elevation_scale - data.raw.tree["desert-garden"].autoplace = { - max_probability = 0.2, - random_probability_penalty = 0.05, - sharpness = 1, - peaks = { - { - influence = 1, - min_influence = 0, - elevation_optimal = scale_elevation(20), - elevation_range = plant_elevation_range, - elevation_max_range = plant_elevation_range, - }, - { - influence = 0.31, -- Trial and error value to generate size that approximately matches starting area islands - min_influence = 0, - max_influence = 1, - noise_layer = "enemy-base", - noise_octaves_difference = octaves, - noise_persistence = persistence, - tier_from_start_optimal = 0, - tier_from_start_range = 0.1, - tier_from_start_max_range = 0.1, - }, - { - influence = 1, - max_influence = 0, - noise_layer = "desert-garden-noise", - noise_persistence = 0.8, - noise_octaves_difference = -0.5, - }, - }, - order = "yc", - tile_restriction = { "sand-5" }, - } - - data.raw.tree["temperate-garden"].autoplace = { - max_probability = 0.2, - random_probability_penalty = 0.05, - peaks = { - { - influence = 1, - min_influence = 0, - elevation_optimal = scale_elevation(20), - elevation_range = plant_elevation_range, - elevation_max_range = plant_elevation_range, - }, - { - influence = 1, - max_influence = 0, - noise_layer = "temperate-garden-noise", - noise_persistence = 0.8, - noise_octaves_difference = -0.5, - }, - }, - order = "ya", - tile_restriction = { "sand-5" }, - } - - data.raw.tree["swamp-garden"].autoplace = { - max_probability = 0.05, - peaks = { - { - influence = 1, - min_influence = 0, - elevation_optimal = scale_elevation(20), - elevation_range = plant_elevation_range, - elevation_max_range = plant_elevation_range, - }, - }, - order = "yb", - tile_restriction = { "sand-5" }, - } - - data.raw.tree["desert-tree"].autoplace = { - max_probability = 0.1, - random_probability_penalty = 0.025, - sharpness = 1, - peaks = { - { - influence = 1, - min_influence = 0, - elevation_optimal = scale_elevation(20), - elevation_range = plant_elevation_range, - elevation_max_range = plant_elevation_range, - }, - { - influence = 0.31, -- Trial and error value to generate size that approximately matches starting area islands - min_influence = 0, - max_influence = 1, - noise_layer = "enemy-base", - noise_octaves_difference = octaves, - noise_persistence = persistence, - tier_from_start_optimal = 0, - tier_from_start_range = 0.1, - tier_from_start_max_range = 0.1, - }, - { - influence = 1, - max_influence = 0, - noise_layer = "desert-tree-noise", - noise_persistence = 0.8, - noise_octaves_difference = -0.5, - }, - }, - order = "za", - tile_restriction = { "sand-5" }, - } - data.raw.tree["temperate-tree"].autoplace = { - max_probability = 0.1, - random_probability_penalty = 0.025, - peaks = { - { - influence = 1, - min_influence = 0, - elevation_optimal = scale_elevation(20), - elevation_range = plant_elevation_range, - elevation_max_range = plant_elevation_range, - }, - { - influence = 1, - max_influence = 0, - noise_layer = "temperate-tree-noise", - noise_persistence = 0.8, - noise_octaves_difference = -0.5, - }, - }, - order = "zc", - tile_restriction = { "sand-5" }, - } - - data.raw.tree["swamp-tree"].autoplace = { - max_probability = 0.05, - peaks = { - { - influence = 1, - min_influence = 0, - elevation_optimal = scale_elevation(20), - elevation_range = plant_elevation_range, - elevation_max_range = plant_elevation_range, - }, - { - influence = 1, - max_influence = 0, - noise_layer = "swamp-tree-noise", - noise_persistence = 0.8, - noise_octaves_difference = -0.5, - }, - }, - order = "zb", - tile_restriction = { "sand-5" }, - } - + data.raw.tile["water"].autoplace = { peaks = { { @@ -319,165 +167,327 @@ if settings.startup["Landblock-mode-Seablock-setting"].value == false then }, } - data.raw.fish["alien-fish-1"].autoplace = { - peaks = { - { - influence = -0.1, - max_influence = 0, - noise_layer = "enemy-base", - noise_octaves_difference = octaves, - noise_persistence = persistence, - }, - { - influence = 0.01, - }, - }, - } - data.raw.fish["alien-fish-2"].autoplace = { - peaks = { - { - influence = 0.02, - min_influence = 0, - noise_layer = "enemy-base", - noise_octaves_difference = octaves, - noise_persistence = persistence, - }, - }, - } +local plant_elevation_range = 9.9 * elevation_scale +data.raw.tree["desert-garden"].autoplace = { + max_probability = 0.2, + random_probability_penalty = 0.05, + sharpness = 1, + peaks = { + { + influence = 1, + min_influence = 0, + elevation_optimal = scale_elevation(20), + elevation_range = plant_elevation_range, + elevation_max_range = plant_elevation_range, + }, + { + influence = 0.31, -- Trial and error value to generate size that approximately matches starting area islands + min_influence = 0, + max_influence = 1, + noise_layer = "enemy-base", + noise_octaves_difference = octaves, + noise_persistence = persistence, + tier_from_start_optimal = 0, + tier_from_start_range = 0.1, + tier_from_start_max_range = 0.1, + }, + { + influence = 1, + max_influence = 0, + noise_layer = "desert-garden-noise", + noise_persistence = 0.8, + noise_octaves_difference = -0.5, + }, + }, + order = "yc", + tile_restriction = { "sand-5" }, +} - data.raw.fish["alien-fish-3"].autoplace = { - peaks = { - { - influence = 0.015, - min_influence = 0, - elevation_optimal = scale_elevation(10), - elevation_range = 5 * elevation_scale, - elevation_max_range = 5 * elevation_scale, - tier_from_start_optimal = 0.1, - tier_from_start_range = 0, - tier_from_start_max_range = 0, - tier_from_start_top_property_limit = 0.1, - }, - }, - } +data.raw.tree["temperate-garden"].autoplace = { + max_probability = 0.2, + random_probability_penalty = 0.05, + peaks = { + { + influence = 1, + min_influence = 0, + elevation_optimal = scale_elevation(20), + elevation_range = plant_elevation_range, + elevation_max_range = plant_elevation_range, + }, + { + influence = 1, + max_influence = 0, + noise_layer = "temperate-garden-noise", + noise_persistence = 0.8, + noise_octaves_difference = -0.5, + }, + }, + order = "ya", + tile_restriction = { "sand-5" }, +} - local noise = require("noise") - local tne = noise.to_noise_expression - local enemy_random_seed = 1 - local function new_random_seed() - enemy_random_seed = enemy_random_seed + 1 - return enemy_random_seed - end - local function worm_autoplace(distance, probability, order, falloff, control_name) - local d = noise.var("distance") - noise.var("starting_area_radius") - local p = noise.clamp((d - distance * 128) / 128, 0, 1) - if falloff then - p = p * noise.clamp(((distance + 2) * 128 - d) / 128, 0, 1) - end - p = p * noise.clamp((waterline - noise.var("elevation")), 0, 1) - p = p * probability - p = noise.random_penalty(p, probability * 0.5, { - x = noise.var("x") + new_random_seed(), - }) +data.raw.tree["swamp-garden"].autoplace = { + max_probability = 0.05, + peaks = { + { + influence = 1, + min_influence = 0, + elevation_optimal = scale_elevation(20), + elevation_range = plant_elevation_range, + elevation_max_range = plant_elevation_range, + }, + }, + order = "yb", + tile_restriction = { "sand-5" }, +} - return { - control = control_name, - order = order, - force = "enemy", - probability_expression = p, - richness_expression = tne(1), - } - end +data.raw.tree["desert-tree"].autoplace = { + max_probability = 0.1, + random_probability_penalty = 0.025, + sharpness = 1, + peaks = { + { + influence = 1, + min_influence = 0, + elevation_optimal = scale_elevation(20), + elevation_range = plant_elevation_range, + elevation_max_range = plant_elevation_range, + }, + { + influence = 0.31, -- Trial and error value to generate size that approximately matches starting area islands + min_influence = 0, + max_influence = 1, + noise_layer = "enemy-base", + noise_octaves_difference = octaves, + noise_persistence = persistence, + tier_from_start_optimal = 0, + tier_from_start_range = 0.1, + tier_from_start_max_range = 0.1, + }, + { + influence = 1, + max_influence = 0, + noise_layer = "desert-tree-noise", + noise_persistence = 0.8, + noise_octaves_difference = -0.5, + }, + }, + order = "za", + tile_restriction = { "sand-5" }, +} +data.raw.tree["temperate-tree"].autoplace = { + max_probability = 0.1, + random_probability_penalty = 0.025, + peaks = { + { + influence = 1, + min_influence = 0, + elevation_optimal = scale_elevation(20), + elevation_range = plant_elevation_range, + elevation_max_range = plant_elevation_range, + }, + { + influence = 1, + max_influence = 0, + noise_layer = "temperate-tree-noise", + noise_persistence = 0.8, + noise_octaves_difference = -0.5, + }, + }, + order = "zc", + tile_restriction = { "sand-5" }, +} - data.raw.turret["small-worm-turret"].autoplace = worm_autoplace(0, 1, "z", true, "enemy-base") - data.raw.turret["medium-worm-turret"].autoplace = worm_autoplace(1, 1, "y", true, "enemy-base") - if data.raw.turret["bob-big-explosive-worm-turret"] then - data.raw.turret["bob-big-explosive-worm-turret"].autoplace = worm_autoplace(1.5, 0.5, "v", false, "enemy-base") - end - if data.raw.turret["bob-big-fire-worm-turret"] then - data.raw.turret["bob-big-fire-worm-turret"].autoplace = worm_autoplace(1.5, 0.5, "v", false, "enemy-base") - end - if data.raw.turret["bob-big-poison-worm-turret"] then - data.raw.turret["bob-big-poison-worm-turret"].autoplace = worm_autoplace(1.5, 0.5, "v", false, "enemy-base") - end - if data.raw.turret["bob-big-piercing-worm-turret"] then - data.raw.turret["bob-big-piercing-worm-turret"].autoplace = worm_autoplace(1.5, 0.5, "v", false, "enemy-base") - end - if data.raw.turret["bob-big-electric-worm-turret"] then - data.raw.turret["bob-big-electric-worm-turret"].autoplace = worm_autoplace(1.5, 0.5, "v", false, "enemy-base") - end - if data.raw.turret["bob-giant-worm-turret"] then - data.raw.turret["bob-giant-worm-turret"].autoplace = worm_autoplace(2, 0.6, "u", false, "enemy-base") - end - if data.raw.turret["behemoth-worm-turret"] then - data.raw.turret["big-worm-turret"].autoplace = worm_autoplace(1.5, 0.5, "v", false, "enemy-base") - data.raw.turret["behemoth-worm-turret"].autoplace = worm_autoplace(2, 0.2, "t", false, "enemy-base") - else - data.raw.turret["big-worm-turret"].autoplace = worm_autoplace(2, 1, "v", false, "enemy-base") - end - data.raw.tree["puffer-nest"].autoplace = worm_autoplace(0, 0.01, "s", false) +data.raw.tree["swamp-tree"].autoplace = { + max_probability = 0.05, + peaks = { + { + influence = 1, + min_influence = 0, + elevation_optimal = scale_elevation(20), + elevation_range = plant_elevation_range, + elevation_max_range = plant_elevation_range, + }, + { + influence = 1, + max_influence = 0, + noise_layer = "swamp-tree-noise", + noise_persistence = 0.8, + noise_octaves_difference = -0.5, + }, + }, + order = "zb", + tile_restriction = { "sand-5" }, +} - for _, v in pairs(data.raw.turret) do - v.map_generator_bounding_box = nil - end +data.raw.fish["alien-fish-1"].autoplace = { + peaks = { + { + influence = -0.1, + max_influence = 0, + noise_layer = "enemy-base", + noise_octaves_difference = octaves, + noise_persistence = persistence, + }, + { + influence = 0.01, + }, + }, +} - data:extend({ - { - type = "noise-layer", - name = "desert-tree-noise", - }, - { - type = "noise-layer", - name = "temperate-tree-noise", - }, - { - type = "noise-layer", - name = "swamp-tree-noise", - }, - { - type = "noise-layer", - name = "desert-garden-noise", - }, - { - type = "noise-layer", - name = "temperate-garden-noise", - }, - { - type = "noise-layer", - name = "swamp-garden-noise", +data.raw.fish["alien-fish-2"].autoplace = { + peaks = { + { + influence = 0.02, + min_influence = 0, + noise_layer = "enemy-base", + noise_octaves_difference = octaves, + noise_persistence = persistence, + }, + }, +} + +data.raw.fish["alien-fish-3"].autoplace = { + peaks = { + { + influence = 0.015, + min_influence = 0, + elevation_optimal = scale_elevation(10), + elevation_range = 5 * elevation_scale, + elevation_max_range = 5 * elevation_scale, + tier_from_start_optimal = 0.1, + tier_from_start_range = 0, + tier_from_start_max_range = 0, + tier_from_start_top_property_limit = 0.1, + }, + }, +} + +local noise = require("noise") +local tne = noise.to_noise_expression +local enemy_random_seed = 1 +local function new_random_seed() + enemy_random_seed = enemy_random_seed + 1 + return enemy_random_seed +end +local function worm_autoplace(distance, probability, order, falloff, control_name) + local d = noise.var("distance") - noise.var("starting_area_radius") + local p = noise.clamp((d - distance * 128) / 128, 0, 1) + if falloff then + p = p * noise.clamp(((distance + 2) * 128 - d) / 128, 0, 1) + end + p = p * noise.clamp((waterline - noise.var("elevation")), 0, 1) + p = p * probability + p = noise.random_penalty(p, probability * 0.5, { + x = noise.var("x") + new_random_seed(), + }) + + return { + control = control_name, + order = order, + force = "enemy", + probability_expression = p, + richness_expression = tne(1), + } +end + +data.raw.turret["small-worm-turret"].autoplace = worm_autoplace(0, 1, "z", true, "enemy-base") +data.raw.turret["medium-worm-turret"].autoplace = worm_autoplace(1, 1, "y", true, "enemy-base") +if data.raw.turret["bob-big-explosive-worm-turret"] then + data.raw.turret["bob-big-explosive-worm-turret"].autoplace = worm_autoplace(1.5, 0.5, "v", false, "enemy-base") +end +if data.raw.turret["bob-big-fire-worm-turret"] then + data.raw.turret["bob-big-fire-worm-turret"].autoplace = worm_autoplace(1.5, 0.5, "v", false, "enemy-base") +end +if data.raw.turret["bob-big-poison-worm-turret"] then + data.raw.turret["bob-big-poison-worm-turret"].autoplace = worm_autoplace(1.5, 0.5, "v", false, "enemy-base") +end +if data.raw.turret["bob-big-piercing-worm-turret"] then + data.raw.turret["bob-big-piercing-worm-turret"].autoplace = worm_autoplace(1.5, 0.5, "v", false, "enemy-base") +end +if data.raw.turret["bob-big-electric-worm-turret"] then + data.raw.turret["bob-big-electric-worm-turret"].autoplace = worm_autoplace(1.5, 0.5, "v", false, "enemy-base") +end +if data.raw.turret["bob-giant-worm-turret"] then + data.raw.turret["bob-giant-worm-turret"].autoplace = worm_autoplace(2, 0.6, "u", false, "enemy-base") +end +if data.raw.turret["behemoth-worm-turret"] then + data.raw.turret["big-worm-turret"].autoplace = worm_autoplace(1.5, 0.5, "v", false, "enemy-base") + data.raw.turret["behemoth-worm-turret"].autoplace = worm_autoplace(2, 0.2, "t", false, "enemy-base") +else + data.raw.turret["big-worm-turret"].autoplace = worm_autoplace(2, 1, "v", false, "enemy-base") +end +data.raw.tree["puffer-nest"].autoplace = worm_autoplace(0, 0.01, "s", false) + +for _, v in pairs(data.raw.turret) do + v.map_generator_bounding_box = nil +end + +data:extend({ + { + type = "noise-layer", + name = "desert-tree-noise", + }, + { + type = "noise-layer", + name = "temperate-tree-noise", + }, + { + type = "noise-layer", + name = "swamp-tree-noise", + }, + { + type = "noise-layer", + name = "desert-garden-noise", + }, + { + type = "noise-layer", + name = "temperate-garden-noise", + }, + { + type = "noise-layer", + name = "swamp-garden-noise", + }, +}) + +local function make_basis_noise_function(seed0, seed1, outscale0, inscale0) + outscale0 = outscale0 or 1 + inscale0 = inscale0 or 1 / outscale0 + return function(x, y, inscale, outscale) + return tne({ + type = "function-application", + function_name = "factorio-basis-noise", + arguments = { + x = tne(x), + y = tne(y), + seed0 = tne(seed0), + seed1 = tne(seed1), + input_scale = tne((inscale or 1) * inscale0), + output_scale = tne((outscale or 1) * outscale0), }, }) + end +end - local function make_basis_noise_function(seed0, seed1, outscale0, inscale0) - outscale0 = outscale0 or 1 - inscale0 = inscale0 or 1 / outscale0 - return function(x, y, inscale, outscale) - return tne({ - type = "function-application", - function_name = "factorio-basis-noise", - arguments = { - x = tne(x), - y = tne(y), - seed0 = tne(seed0), - seed1 = tne(seed1), - input_scale = tne((inscale or 1) * inscale0), - output_scale = tne((outscale or 1) * outscale0), - }, - }) - end - end +--if settings.startup["Landblock-mode-Seablock-setting"].value == false then + data.raw["noise-expression"]["cliffiness"].expression = noise.define_noise_function(function(x, y, tile, map) + local t = noise.clamp((tile.tier - 0.2) * noise.ceil(noise.var("control-setting:cliffs:richness:multiplier")), 0, 1) -- No cliffs in starting area + return 100 * t + end) + data.raw["noise-expression"]["elevation"].expression = noise.define_noise_function(function(x, y, tile, map) + x = x + 40000 + y = y + local v = make_basis_noise_function(map.seed, 5, 6, 1 / 64)(x, y) + v = noise.max(v, 0) + v = (v * elevation_scale) - (waterline * (elevation_scale - 1)) -- Increase gradient for cliffs while leaving waterline unchanged + return v + end) - data.raw["noise-expression"]["cliffiness"].expression = noise.define_noise_function(function(x, y, tile, map) - local t = noise.clamp((tile.tier - 0.2) * noise.ceil(noise.var("control-setting:cliffs:richness:multiplier")), 0, 1) -- No cliffs in starting area - return 100 * t - end) - data.raw["noise-expression"]["elevation"].expression = noise.define_noise_function(function(x, y, tile, map) - x = x + 40000 - y = y - local v = make_basis_noise_function(map.seed, 5, 6, 1 / 64)(x, y) - v = noise.max(v, 0) - v = (v * elevation_scale) - (waterline * (elevation_scale - 1)) -- Increase gradient for cliffs while leaving waterline unchanged - return v - end) -end \ No newline at end of file + + for k, v in pairs(data.raw.tree) do + if v.autoplace.tile_restriction ~= nil then + v.autoplace.tile_restriction = nil + end + end +end From c0123f73a1697abaa26760748661c2aa8fde3948 Mon Sep 17 00:00:00 2001 From: zerostarm Date: Thu, 23 Feb 2023 21:50:48 -0600 Subject: [PATCH 08/26] fixed Landblock mode Landblock mode works now, the angels-biter-slider needs to be at 600% though so that it is normal --- SeaBlock/data-final-fixes/mapgen.lua | 10 ++++++++-- SeaBlock/mapgen.lua | 4 ++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/SeaBlock/data-final-fixes/mapgen.lua b/SeaBlock/data-final-fixes/mapgen.lua index bacfc9f8..d0b517f0 100644 --- a/SeaBlock/data-final-fixes/mapgen.lua +++ b/SeaBlock/data-final-fixes/mapgen.lua @@ -38,6 +38,9 @@ if settings.startup["Landblock-mode-Seablock-setting"].value == false then end end +--if settings.startup["Landblock-mode-Seablock-setting"].value == true then + +--else local keepcontrols = {} local turrets = data.raw["turret"] @@ -48,12 +51,15 @@ end end if settings.startup["Landblock-mode-Seablock-setting"].value == true then -local enemies = data.raw["unit-spawner"] -for enemies_name, turret in pairs(enemies) do +local enem = data.raw["unit-spawner"] +for enemies_name, turret in pairs(enem) do if turret.autoplace and turret.autoplace.control then keepcontrols[turret.autoplace.control] = true end end + +keepcontrols["angels-biter-slider"] = true + end if settings.startup["No-minerals-mode-setting"].value == false then diff --git a/SeaBlock/mapgen.lua b/SeaBlock/mapgen.lua index b6a9fdd1..b5da5baf 100644 --- a/SeaBlock/mapgen.lua +++ b/SeaBlock/mapgen.lua @@ -470,7 +470,7 @@ local function make_basis_noise_function(seed0, seed1, outscale0, inscale0) end end ---if settings.startup["Landblock-mode-Seablock-setting"].value == false then +if settings.startup["Landblock-mode-Seablock-setting"].value == false then data.raw["noise-expression"]["cliffiness"].expression = noise.define_noise_function(function(x, y, tile, map) local t = noise.clamp((tile.tier - 0.2) * noise.ceil(noise.var("control-setting:cliffs:richness:multiplier")), 0, 1) -- No cliffs in starting area return 100 * t @@ -483,7 +483,7 @@ end v = (v * elevation_scale) - (waterline * (elevation_scale - 1)) -- Increase gradient for cliffs while leaving waterline unchanged return v end) - +end for k, v in pairs(data.raw.tree) do if v.autoplace.tile_restriction ~= nil then From 5de1815072543345982b800a09de0a29ab664ee0 Mon Sep 17 00:00:00 2001 From: zerostarm Date: Thu, 23 Feb 2023 22:16:08 -0600 Subject: [PATCH 09/26] Rocks part of Tree setting now works Rocks are now placed in all modes but really infrequently if not Landblock mode --- SeaBlock/data-final-fixes/mapgen.lua | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/SeaBlock/data-final-fixes/mapgen.lua b/SeaBlock/data-final-fixes/mapgen.lua index d0b517f0..688f29fe 100644 --- a/SeaBlock/data-final-fixes/mapgen.lua +++ b/SeaBlock/data-final-fixes/mapgen.lua @@ -78,6 +78,14 @@ for tree_name, turret in pairs(trees) do keepcontrols[turret.autoplace.control] = true end end + +local trees = data.raw["simple-entity"] +for tree_name, turret in pairs(trees) do + if turret.autoplace and turret.autoplace.control then + keepcontrols[turret.autoplace.control] = true + end +end + end local controls = data.raw["autoplace-control"] From b19352f3d4d3385310b43dae85c604de5cf0cc50 Mon Sep 17 00:00:00 2001 From: zerostarm Date: Fri, 24 Feb 2023 15:14:11 -0600 Subject: [PATCH 10/26] Added stuff to the minerals mode so that minerals are mineable Unremoved some items so that the resources can be mined and charcoal can be made of coal for minimum balance issues --- .../data-final-fixes/unobtainable_items.lua | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/SeaBlock/data-final-fixes/unobtainable_items.lua b/SeaBlock/data-final-fixes/unobtainable_items.lua index e17ad345..774609d3 100644 --- a/SeaBlock/data-final-fixes/unobtainable_items.lua +++ b/SeaBlock/data-final-fixes/unobtainable_items.lua @@ -106,7 +106,7 @@ for _, v in ipairs({ "bio-tile", "burner-generator", "burner-mining-drill", ---"coal", + "coal", "coal-crushed", "diesel-fuel", "diesel-fuel-barrel", @@ -125,8 +125,24 @@ for _, v in ipairs({ }) do unobtainable[v] = {} end -if settings.startup["No-minerals-mode-setting"].value == true then - unobtainable["coal"] = {} + +if settings.startup["No-minerals-mode-setting"].value == false then + for _, v in ipairs({ + "burner-mining-drill", + "coal-crushed", + "electric-mining-drill" + }) do + removerecipes[v] = false + end + + for _, v in ipairs({ + "burner-mining-drill", + "coal", + "coal-crushed", + "electric-mining-drill" + }) do + unobtainable[v] = nil + end end -- unobtainable[key] -> { { a, and b, and .. }, or { c, ... } or, { d, and e, and f, ...}... } From 4f20c82c3ab4a4480e2c0165fdc937942806239f Mon Sep 17 00:00:00 2001 From: zerostarm Date: Fri, 24 Feb 2023 15:25:56 -0600 Subject: [PATCH 11/26] Updated Locale to have mod setting descriptions Added mod setting descriptions to the mod settings I added. --- SeaBlock/locale/en/SeaBlock.cfg | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/SeaBlock/locale/en/SeaBlock.cfg b/SeaBlock/locale/en/SeaBlock.cfg index b6028f02..9776526a 100644 --- a/SeaBlock/locale/en/SeaBlock.cfg +++ b/SeaBlock/locale/en/SeaBlock.cfg @@ -61,9 +61,14 @@ sb-lab-tool=Craft a lab to complete this research [mod-setting-name] sb-default-landfill=Default landfill type bobmods-assembly-multipurposefurnaces=Recipe furnaces -Landblock-mode-Seablock-setting=Landblock mode (Keeps Recipes the same changes mapgen to normal-ish) (Default=unchecked) -No-minerals-mode-setting=Setting to turn on normal resource production for mod incompatabilities (Default=checked) -No-trees-mode-setting=Setting to turn on normal tree/rock growth for mod incompatabilities (Default=checked) +Landblock-mode-Seablock-setting=Landblock mode +No-minerals-mode-setting=No Minerals mode +No-trees-mode-setting=No Tree/Rock mode + +[mod-setting-description] +Landblock-mode-Seablock-setting=Reverts changes to mapgen back to vanilla mapgen (Default=unchecked) +No-minerals-mode-setting=Turns on normal resource production for mod incompatabilities (Default=checked) +No-trees-mode-setting=Turns on normal tree/rock growth for mod incompatabilities (Default=checked) [string-mod-setting] sb-default-landfill-landfill-dirt-4=[img=item/landfill-dirt-4]Dirt From d3926fb1feac44394e51e94ebe95c1e9711daa19 Mon Sep 17 00:00:00 2001 From: zerostarm Date: Fri, 24 Feb 2023 20:07:24 -0600 Subject: [PATCH 12/26] Changing how the No minerals items were removed Changed how the items were removed to copying the list and just removing stuff --- .../data-final-fixes/unobtainable_items.lua | 97 +++++++++++++++++-- SeaBlock/data-updates/misc.lua | 3 +- 2 files changed, 93 insertions(+), 7 deletions(-) diff --git a/SeaBlock/data-final-fixes/unobtainable_items.lua b/SeaBlock/data-final-fixes/unobtainable_items.lua index 774609d3..f621f2af 100644 --- a/SeaBlock/data-final-fixes/unobtainable_items.lua +++ b/SeaBlock/data-final-fixes/unobtainable_items.lua @@ -40,7 +40,7 @@ end -- Recipes to unconditionally remove local removerecipes = {} -for _, v in ipairs({ +local recipes_to_remove = { "alien-artifact-blue-from-basic", "alien-artifact-green-from-basic", "alien-artifact-orange-from-basic", @@ -94,14 +94,73 @@ for _, v in ipairs({ "thermal-water-filtering-2", "water-thermal-lithia", "wood-charcoal", -}) do +} +if settings.startup["No-minerals-mode-setting"].value == false then +recipes_to_remove = { + "alien-artifact-blue-from-basic", + "alien-artifact-green-from-basic", + "alien-artifact-orange-from-basic", + "alien-artifact-purple-from-basic", + "alien-artifact-red-from-basic", + "alien-artifact-yellow-from-basic", + "angels-chemical-void-gas-natural-1", + "angels-chemical-void-liquid-condensates", + "angels-water-void-crystal-matrix", + "angels-water-void-lithia-water", + "angelsore1-crushed-hand", + "angelsore3-crushed-hand", + "big-burner-generator", + "bio-tile", + "bob-coal-from-wood", + "bob-resin-wood", + "burner-generator", +-- "burner-mining-drill", + "carbon-from-charcoal", + "coal-cracking-1", + "coal-cracking-2", + "coal-cracking-3", +-- "coal-crushed", + "condensates-oil-refining", + "condensates-refining", + "diesel-fuel", +-- "electric-mining-drill", + "empty-crystal-matrix-barrel", + "empty-diesel-fuel-barrel", + "empty-gas-natural-1-barrel", + "empty-liquid-condensates-barrel", + "empty-lithia-water-barrel", + "fill-crystal-matrix-barrel", + "fill-diesel-fuel-barrel", + "fill-gas-natural-1-barrel", + "fill-liquid-condensates-barrel", + "fill-lithia-water-barrel", + "gas-fractioning-condensates", + "gas-phosgene", + "gas-separation", + "oil-steam-boiler", + "petroleum-generator", + "protection-field-goopless", +-- "pumpjack", + "slag-processing-7", + "slag-processing-8", + "slag-processing-9", + "solid-coke", + "solid-coke-sulfur", + "thermal-water-filtering-1", + "thermal-water-filtering-2", + "water-thermal-lithia", + "wood-charcoal", +} +end + +for _, v in ipairs() do removerecipes[v] = true end -- Items to remove. Recipes are checked to ensure these can't be crafted, -- then any recipe that uses an unobtainable item is removed local unobtainable = {} -for _, v in ipairs({ +local items_to_remove = { "big-burner-generator", "bio-tile", "burner-generator", @@ -122,7 +181,33 @@ for _, v in ipairs({ "oil-steam-boiler", "petroleum-generator", "pumpjack", -}) do +} +if settings.startup["No-minerals-mode-setting"].value == false then +items_to_remove = { + "big-burner-generator", + "bio-tile", + "burner-generator", +-- "burner-mining-drill", +-- "coal", +-- "coal-crushed", + "diesel-fuel", + "diesel-fuel-barrel", +-- "electric-mining-drill", + "gas-natural-1", + "gas-natural-1-barrel", + "gas-phosgene", + "gas-phosgene-barrel", + "liquid-condensates", + "liquid-condensates-barrel", + "lithia-water", + "lithia-water-barrel", + "oil-steam-boiler", + "petroleum-generator", + "pumpjack", +} +end + +for _, v in ipairs(items_to_remove) do unobtainable[v] = {} end @@ -134,7 +219,7 @@ if settings.startup["No-minerals-mode-setting"].value == false then }) do removerecipes[v] = false end - +--[[ for _, v in ipairs({ "burner-mining-drill", "coal", @@ -142,7 +227,7 @@ if settings.startup["No-minerals-mode-setting"].value == false then "electric-mining-drill" }) do unobtainable[v] = nil - end + end --]] end -- unobtainable[key] -> { { a, and b, and .. }, or { c, ... } or, { d, and e, and f, ...}... } diff --git a/SeaBlock/data-updates/misc.lua b/SeaBlock/data-updates/misc.lua index 696e8241..194b9a8f 100644 --- a/SeaBlock/data-updates/misc.lua +++ b/SeaBlock/data-updates/misc.lua @@ -61,6 +61,7 @@ if not seablock.trigger.mining_productivity then end end +if settings.startup["No-minerals-mode-setting"].value == false then -- Remove resources so mining recipes don't show in FNEI -- Have to leave at least one resource or game will not load if settings.startup["No-minerals-mode-setting"].value == true then @@ -73,7 +74,7 @@ if settings.startup["No-minerals-mode-setting"].value == true then end end end - +end -- Add prerequisite for Tin and Lead if settings.startup["bobmods-logistics-beltoverhaul"].value then bobmods.lib.tech.add_prerequisite("logistics", "ore-crushing") From 08c2d418c2c6e8f7cdf797135753970825a68eba Mon Sep 17 00:00:00 2001 From: zerostarm Date: Fri, 24 Feb 2023 20:15:45 -0600 Subject: [PATCH 13/26] Fixed a bug I forgot to give the for loop an argument --- SeaBlock/data-final-fixes/unobtainable_items.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SeaBlock/data-final-fixes/unobtainable_items.lua b/SeaBlock/data-final-fixes/unobtainable_items.lua index f621f2af..50455a1d 100644 --- a/SeaBlock/data-final-fixes/unobtainable_items.lua +++ b/SeaBlock/data-final-fixes/unobtainable_items.lua @@ -153,7 +153,7 @@ recipes_to_remove = { } end -for _, v in ipairs() do +for _, v in ipairs(recipes_to_remove) do removerecipes[v] = true end From d0e17cbc2088a6c60f1fc99734e152c5a738303e Mon Sep 17 00:00:00 2001 From: zerostarm Date: Fri, 24 Feb 2023 20:32:46 -0600 Subject: [PATCH 14/26] Fixed no minerals modes items no minerals modes items are fixed and tested --- SeaBlock/data-final-fixes/unobtainable_items.lua | 8 ++++---- SeaBlock/data-updates/misc.lua | 6 ++++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/SeaBlock/data-final-fixes/unobtainable_items.lua b/SeaBlock/data-final-fixes/unobtainable_items.lua index 50455a1d..14141960 100644 --- a/SeaBlock/data-final-fixes/unobtainable_items.lua +++ b/SeaBlock/data-final-fixes/unobtainable_items.lua @@ -210,7 +210,7 @@ end for _, v in ipairs(items_to_remove) do unobtainable[v] = {} end - +--[[ if settings.startup["No-minerals-mode-setting"].value == false then for _, v in ipairs({ "burner-mining-drill", @@ -219,7 +219,7 @@ if settings.startup["No-minerals-mode-setting"].value == false then }) do removerecipes[v] = false end ---[[ + for _, v in ipairs({ "burner-mining-drill", "coal", @@ -227,9 +227,9 @@ if settings.startup["No-minerals-mode-setting"].value == false then "electric-mining-drill" }) do unobtainable[v] = nil - end --]] + end end - +--]] -- unobtainable[key] -> { { a, and b, and .. }, or { c, ... } or, { d, and e, and f, ...}... } -- a,b,c... are items which if craftable imply key is also craftable and should not be removed local recipes = {} diff --git a/SeaBlock/data-updates/misc.lua b/SeaBlock/data-updates/misc.lua index 194b9a8f..9676a844 100644 --- a/SeaBlock/data-updates/misc.lua +++ b/SeaBlock/data-updates/misc.lua @@ -61,7 +61,7 @@ if not seablock.trigger.mining_productivity then end end -if settings.startup["No-minerals-mode-setting"].value == false then + -- Remove resources so mining recipes don't show in FNEI -- Have to leave at least one resource or game will not load if settings.startup["No-minerals-mode-setting"].value == true then @@ -74,7 +74,7 @@ if settings.startup["No-minerals-mode-setting"].value == true then end end end -end + -- Add prerequisite for Tin and Lead if settings.startup["bobmods-logistics-beltoverhaul"].value then bobmods.lib.tech.add_prerequisite("logistics", "ore-crushing") @@ -115,9 +115,11 @@ bobmods.lib.tech.remove_prerequisite("tungsten-processing", "angels-nickel-smelt bobmods.lib.tech.remove_recipe_unlock("bio-arboretum-swamp-1", "solid-plastic") seablock.lib.hide("inserter", "steam-inserter") +if settings.startup["No-minerals-mode-setting"].value == true then seablock.lib.hide("mining-drill", "burner-mining-drill") seablock.lib.hide("mining-drill", "electric-mining-drill") seablock.lib.hide("mining-drill", "pumpjack") +end seablock.lib.hide("storage-tank", "bob-overflow-valve") seablock.lib.hide("storage-tank", "bob-valve") seablock.lib.hide("storage-tank", "bob-topup-valve") From 06fa55ee63cf6ff572ef0b8ad47539f034527a01 Mon Sep 17 00:00:00 2001 From: zerostarm Date: Fri, 24 Feb 2023 21:48:23 -0600 Subject: [PATCH 15/26] Added one more recipe to no minerals mode --- SeaBlock/data-final-fixes/unobtainable_items.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SeaBlock/data-final-fixes/unobtainable_items.lua b/SeaBlock/data-final-fixes/unobtainable_items.lua index 14141960..771df457 100644 --- a/SeaBlock/data-final-fixes/unobtainable_items.lua +++ b/SeaBlock/data-final-fixes/unobtainable_items.lua @@ -144,7 +144,7 @@ recipes_to_remove = { "slag-processing-7", "slag-processing-8", "slag-processing-9", - "solid-coke", +-- "solid-coke", "solid-coke-sulfur", "thermal-water-filtering-1", "thermal-water-filtering-2", From 72059cf48fc4257dec9aa2557205425385f3486f Mon Sep 17 00:00:00 2001 From: Stephen Date: Wed, 15 Mar 2023 21:51:52 -0500 Subject: [PATCH 16/26] Changed Landblock mode to have autoplace controls for gardens and trees Changed landblock mode to have autoplace controls for gardens and trees to keep inline with balance of normal seablock. --- SeaBlock/mapgen.lua | 184 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 182 insertions(+), 2 deletions(-) diff --git a/SeaBlock/mapgen.lua b/SeaBlock/mapgen.lua index b5da5baf..7344ac4c 100644 --- a/SeaBlock/mapgen.lua +++ b/SeaBlock/mapgen.lua @@ -36,6 +36,15 @@ local octaves = -3 local persistence = 0.2 local waterline = 9.4 local elevation_scale = 5 + +if settings.startup["Landblock-mode-Seablock-setting"].value == true then +octaves = -3 +persistence = 0.2 +waterline = 1 +elevation_scale = 1 +end + + local function scale_elevation(x) return (x - waterline) * elevation_scale + waterline end @@ -166,7 +175,7 @@ if settings.startup["Landblock-mode-Seablock-setting"].value == false then }, }, } - +end local plant_elevation_range = 9.9 * elevation_scale data.raw.tree["desert-garden"].autoplace = { @@ -321,6 +330,174 @@ data.raw.tree["swamp-tree"].autoplace = { tile_restriction = { "sand-5" }, } + +if settings.startup["Landblock-mode-Seablock-setting"].value == true then +plant_elevation_range = 10 * elevation_scale +local elevation_number = 1 +local max_probability_val = 0.2 +data.raw.tree["desert-garden"].autoplace = { + max_probability = max_probability_val, + random_probability_penalty = 0.05, + sharpness = 1, + peaks = { +--[[ { + influence = 1, + min_influence = 0, + elevation_optimal = scale_elevation(elevation_number), + elevation_range = plant_elevation_range, + elevation_max_range = plant_elevation_range, + }, --]] +--[[ { + influence = 0.31, -- Trial and error value to generate size that approximately matches starting area islands + min_influence = 0, + max_influence = 1, + noise_layer = "enemy-base", + noise_octaves_difference = octaves, + noise_persistence = persistence, + tier_from_start_optimal = 0, + tier_from_start_range = 0.1, + tier_from_start_max_range = 0.1, + }, --]] + { + influence = 1, + max_influence = 0.003, + noise_layer = "desert-garden-noise", + noise_persistence = 0.5, + noise_octaves_difference = -0.1, -- -0.5, + }, + }, + order = "yc", +-- tile_restriction = { "sand-5" }, +} + +data.raw.tree["temperate-garden"].autoplace = { + max_probability = 0.2, + random_probability_penalty = 0.05, + peaks = { +--[[ { + influence = 1, + min_influence = 0, + elevation_optimal = scale_elevation(elevation_number), + elevation_range = plant_elevation_range, + elevation_max_range = plant_elevation_range, + }, --]] + { + influence = 1, + max_influence = 0.003, + noise_layer = "temperate-garden-noise", + noise_persistence = 0.5, + noise_octaves_difference = -0.1, -- -0.5, + }, + }, + order = "ya", +-- tile_restriction = { "sand-5" }, +} + +data.raw.tree["swamp-garden"].autoplace = { + max_probability = 0.05, + peaks = { +--[[ { + influence = 1, + min_influence = 0, + elevation_optimal = scale_elevation(elevation_number), + elevation_range = plant_elevation_range, + elevation_max_range = plant_elevation_range, + },--]] + { + influence = 1, + max_influence = 0.003, + noise_layer = "swamp-garden-noise", + noise_persistence = 0.5, + noise_octaves_difference = -0.1, -- -0.5, + }, + }, + order = "yb", +-- tile_restriction = { "sand-5" }, +} + +data.raw.tree["desert-tree"].autoplace = { + max_probability = 0.1, + random_probability_penalty = 0.025, + sharpness = 1, + peaks = { +--[[ { + influence = 1, + min_influence = 0, + elevation_optimal = scale_elevation(elevation_number), + elevation_range = plant_elevation_range, + elevation_max_range = plant_elevation_range, + }, --]] +--[[ { + influence = 0.31, -- Trial and error value to generate size that approximately matches starting area islands + min_influence = 0, + max_influence = 1, + noise_layer = "enemy-base", + noise_octaves_difference = octaves, + noise_persistence = persistence, + tier_from_start_optimal = 0, + tier_from_start_range = 0.1, + tier_from_start_max_range = 0.1, + }, --]] + { + influence = 1, + max_influence = 0.003, + noise_layer = "desert-tree-noise", + noise_persistence = 0.5, + noise_octaves_difference = -0.1, -- -0.5, + }, + }, + order = "za", +-- tile_restriction = { "sand-5" }, +} +data.raw.tree["temperate-tree"].autoplace = { + max_probability = 0.1, + random_probability_penalty = 0.025, + peaks = { +--[[ { + influence = 1, + min_influence = 0, + elevation_optimal = scale_elevation(elevation_number), + elevation_range = plant_elevation_range, + elevation_max_range = plant_elevation_range, + }, --]] + { + influence = 1, + max_influence = 0.003, + noise_layer = "temperate-tree-noise", + noise_persistence = 0.5, + noise_octaves_difference = -0.1, -- -0.5, + }, + }, + order = "zc", +-- tile_restriction = { "sand-5" }, +} + +data.raw.tree["swamp-tree"].autoplace = { + max_probability = 0.05, + peaks = { +--[[ { + influence = 1, + min_influence = 0, + elevation_optimal = scale_elevation(elevation_number), + elevation_range = plant_elevation_range, + elevation_max_range = plant_elevation_range, + }, --]] + { + influence = 1, + max_influence = 0.003, + noise_layer = "swamp-tree-noise", + noise_persistence = 0.5, + noise_octaves_difference = -0.1, -- -0.5, + }, + }, + order = "zb", +-- tile_restriction = { "sand-5" }, +} + +end + + + data.raw.fish["alien-fish-1"].autoplace = { peaks = { { @@ -364,6 +541,8 @@ data.raw.fish["alien-fish-3"].autoplace = { }, } +if settings.startup["Landblock-mode-Seablock-setting"].value == false then + local noise = require("noise") local tne = noise.to_noise_expression local enemy_random_seed = 1 @@ -424,6 +603,8 @@ for _, v in pairs(data.raw.turret) do v.map_generator_bounding_box = nil end +end + data:extend({ { type = "noise-layer", @@ -490,4 +671,3 @@ end v.autoplace.tile_restriction = nil end end -end From bf3dab5f175ad7039ad05a6f40161c82fa036e25 Mon Sep 17 00:00:00 2001 From: Stephen Date: Sat, 24 Jun 2023 12:09:24 -0500 Subject: [PATCH 17/26] Added CargoShips Specific Deep Oil Settings and Bugfix --- SeaBlock/data-final-fixes/mapgen.lua | 10 ++++++++++ SeaBlock/mapgen.lua | 4 ++-- SeaBlock/settings.lua | 9 +++++++++ 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/SeaBlock/data-final-fixes/mapgen.lua b/SeaBlock/data-final-fixes/mapgen.lua index 688f29fe..6e4a8733 100644 --- a/SeaBlock/data-final-fixes/mapgen.lua +++ b/SeaBlock/data-final-fixes/mapgen.lua @@ -6,6 +6,16 @@ if settings.startup["No-minerals-mode-setting"].value == true then end end +if settings.startup["Cargo-ships-deep-oil-setting"].value == true then + data.raw["bool-setting"]["deep_oil"].forced_value=true + data.raw["bool-setting"]["deep_oil"].hidden=false + data.raw["string-setting"]["oil_richness"].hidden=false + data.raw["bool-setting"]["no_oil_for_oil_rig"].hidden=false + data.raw["int-setting"]["oil_rig_capacity"].hidden=false + data.raw["bool-setting"]["no_oil_on_land"].hidden=false + data.raw["bool-setting"]["no_shallow_oil"].hidden=false +end + if settings.startup["No-trees-mode-setting"].value == true then -- No trees for k, v in pairs(data.raw.tree) do diff --git a/SeaBlock/mapgen.lua b/SeaBlock/mapgen.lua index 7344ac4c..fc963e02 100644 --- a/SeaBlock/mapgen.lua +++ b/SeaBlock/mapgen.lua @@ -541,11 +541,11 @@ data.raw.fish["alien-fish-3"].autoplace = { }, } -if settings.startup["Landblock-mode-Seablock-setting"].value == false then - local noise = require("noise") local tne = noise.to_noise_expression local enemy_random_seed = 1 + +if settings.startup["Landblock-mode-Seablock-setting"].value == false then local function new_random_seed() enemy_random_seed = enemy_random_seed + 1 return enemy_random_seed diff --git a/SeaBlock/settings.lua b/SeaBlock/settings.lua index 47304fdf..e935947a 100644 --- a/SeaBlock/settings.lua +++ b/SeaBlock/settings.lua @@ -46,4 +46,13 @@ data:extend({ setting_type = "startup", default_value = true } +}) + +data:extend({ + { + type = "bool-setting", + name = "Cargo-ships-deep-oil-setting", + setting_type = "startup", + default_value = false + } }) \ No newline at end of file From ee20e5ae10af6b554c65a2e1076e606d30090ed3 Mon Sep 17 00:00:00 2001 From: Stephen Date: Sat, 24 Jun 2023 12:32:00 -0500 Subject: [PATCH 18/26] Added Settings stuff for deep oil from Cargo Ships mod --- SeaBlock/data-final-fixes/mapgen.lua | 26 ++++++++++++------------ SeaBlock/info.json | 1 + SeaBlock/locale/en/SeaBlock.cfg | 1 + SeaBlock/settings-updates.lua | 1 + SeaBlock/settings-updates/cargoships.lua | 13 ++++++++++++ 5 files changed, 29 insertions(+), 13 deletions(-) create mode 100644 SeaBlock/settings-updates/cargoships.lua diff --git a/SeaBlock/data-final-fixes/mapgen.lua b/SeaBlock/data-final-fixes/mapgen.lua index 6e4a8733..20c33dac 100644 --- a/SeaBlock/data-final-fixes/mapgen.lua +++ b/SeaBlock/data-final-fixes/mapgen.lua @@ -1,21 +1,21 @@ --header + +--Resource Control if settings.startup["No-minerals-mode-setting"].value == true then - -- No resource placement - for k, v in pairs(data.raw.resource) do - v.autoplace = nil + --No Resource placement execpt deep oil from cargo ships + if settings.startup["Cargo-ships-deep-oil-setting"].value == true then + for k, v in pairs(data.raw.resource) do + if k ~= "deep-oil" then + v.autoplace = nil + end + end + else -- No resource placement + for k, v in pairs(data.raw.resource) do + v.autoplace = nil + end end end -if settings.startup["Cargo-ships-deep-oil-setting"].value == true then - data.raw["bool-setting"]["deep_oil"].forced_value=true - data.raw["bool-setting"]["deep_oil"].hidden=false - data.raw["string-setting"]["oil_richness"].hidden=false - data.raw["bool-setting"]["no_oil_for_oil_rig"].hidden=false - data.raw["int-setting"]["oil_rig_capacity"].hidden=false - data.raw["bool-setting"]["no_oil_on_land"].hidden=false - data.raw["bool-setting"]["no_shallow_oil"].hidden=false -end - if settings.startup["No-trees-mode-setting"].value == true then -- No trees for k, v in pairs(data.raw.tree) do diff --git a/SeaBlock/info.json b/SeaBlock/info.json index 3799e691..e38d7441 100644 --- a/SeaBlock/info.json +++ b/SeaBlock/info.json @@ -30,6 +30,7 @@ "? bobrevamp", "? bobtech", "? bobwarfare", + "? cargo-ships" "? CircuitProcessing", "? Explosive Excavation", "? KS_Power", diff --git a/SeaBlock/locale/en/SeaBlock.cfg b/SeaBlock/locale/en/SeaBlock.cfg index 9776526a..097a132d 100644 --- a/SeaBlock/locale/en/SeaBlock.cfg +++ b/SeaBlock/locale/en/SeaBlock.cfg @@ -68,6 +68,7 @@ No-trees-mode-setting=No Tree/Rock mode [mod-setting-description] Landblock-mode-Seablock-setting=Reverts changes to mapgen back to vanilla mapgen (Default=unchecked) No-minerals-mode-setting=Turns on normal resource production for mod incompatabilities (Default=checked) +Cargo-ships-deep-oil-setting=Turns on Cargo Ships Deep Oil (Default=unchecked) No-trees-mode-setting=Turns on normal tree/rock growth for mod incompatabilities (Default=checked) [string-mod-setting] diff --git a/SeaBlock/settings-updates.lua b/SeaBlock/settings-updates.lua index 601ac124..fad81666 100644 --- a/SeaBlock/settings-updates.lua +++ b/SeaBlock/settings-updates.lua @@ -42,6 +42,7 @@ require("settings-updates/bobpower") require("settings-updates/bobrevamp") require("settings-updates/bobtech") require("settings-updates/bobwarfare") +require("settings-updates/cargoships") require("settings-updates/reskins-angels") require("settings-updates/ScienceCostTweakerM") require("settings-updates/SpaceMod") diff --git a/SeaBlock/settings-updates/cargoships.lua b/SeaBlock/settings-updates/cargoships.lua new file mode 100644 index 00000000..4304c775 --- /dev/null +++ b/SeaBlock/settings-updates/cargoships.lua @@ -0,0 +1,13 @@ +if mods["cargo-ships"] then + if settings.startup["Cargo-ships-deep-oil-setting"].value == true then + --Override Cargo Ships Settings + --Make Deep-oil on on the assumption people want the oil to spawn + data.raw["bool-setting"]["deep_oil"].forced_value=true + data.raw["bool-setting"]["deep_oil"].hidden=false + data.raw["string-setting"]["oil_richness"].hidden=false + data.raw["bool-setting"]["no_oil_for_oil_rig"].hidden=false + data.raw["int-setting"]["oil_rig_capacity"].hidden=false + data.raw["bool-setting"]["no_oil_on_land"].hidden=false + data.raw["bool-setting"]["no_shallow_oil"].hidden=false + end +end \ No newline at end of file From 274754939ee6a20de8b63c1686afea1f8f102f08 Mon Sep 17 00:00:00 2001 From: Stephen Date: Sat, 24 Jun 2023 14:46:07 -0500 Subject: [PATCH 19/26] Finished Adding Pumpjacks to the Cargo Ships Setting --- .../data-final-fixes/unobtainable_items.lua | 40 +++++++++++++++++++ SeaBlock/data-updates/misc.lua | 7 ++-- SeaBlock/info.json | 2 +- SeaBlock/locale/en/SeaBlock.cfg | 1 + SeaBlock/settings-updates.lua | 2 + SeaBlock/settings-updates/cargoships.lua | 3 +- 6 files changed, 50 insertions(+), 5 deletions(-) diff --git a/SeaBlock/data-final-fixes/unobtainable_items.lua b/SeaBlock/data-final-fixes/unobtainable_items.lua index 771df457..e7b1e849 100644 --- a/SeaBlock/data-final-fixes/unobtainable_items.lua +++ b/SeaBlock/data-final-fixes/unobtainable_items.lua @@ -95,6 +95,7 @@ local recipes_to_remove = { "water-thermal-lithia", "wood-charcoal", } +--[[ if settings.startup["No-minerals-mode-setting"].value == false then recipes_to_remove = { "alien-artifact-blue-from-basic", @@ -152,6 +153,45 @@ recipes_to_remove = { "wood-charcoal", } end +--]] + +if settings.startup["Cargo-ships-deep-oil-setting"].value == true then + --remove pumpjack from recipes_to_remove + for k, v in ipairs(recipes_to_remove) do + if v == "pumpjack" then + table.remove(recipes_to_remove, k) + end + end +elseif settings.startup["No-minerals-mode-setting"].value == false then + --[[ + remove: + "burner-mining-drill", + "coal-crushed", + "electric-mining-drill", + "pumpjack", + "solid-coke", + --]] + for k, v in ipairs(recipes_to_remove) do + if v == "pumpjack" then + table.remove(recipes_to_remove, k) + + elseif v == "burner-mining-drill" then + table.remove(recipes_to_remove, k) + + elseif v == "coal-crushed" then + table.remove(recipes_to_remove, k) + + elseif v == "electric-mining-drill" then + table.remove(recipes_to_remove, k) + + elseif v == "solid-coke" then + table.remove(recipes_to_remove, k) + else + end + end +else +end + for _, v in ipairs(recipes_to_remove) do removerecipes[v] = true diff --git a/SeaBlock/data-updates/misc.lua b/SeaBlock/data-updates/misc.lua index 9676a844..58aafafa 100644 --- a/SeaBlock/data-updates/misc.lua +++ b/SeaBlock/data-updates/misc.lua @@ -214,9 +214,10 @@ if mods["bobrevamp"] and not mods["bobclasses"] then bobmods.lib.tech.add_prerequisite("rtg", "production-science-pack") bobmods.lib.tech.add_prerequisite("rtg", "utility-science-pack") end - -if mods["cargo-ships"] then - seablock.lib.hide_item("oil_rig") +if settings.startup["Cargo-ships-deep-oil-setting"].value == false then + if mods["cargo-ships"] then + seablock.lib.hide_item("oil_rig") + end end -- Swap gold for platinum diff --git a/SeaBlock/info.json b/SeaBlock/info.json index e38d7441..f5ed25d9 100644 --- a/SeaBlock/info.json +++ b/SeaBlock/info.json @@ -30,7 +30,7 @@ "? bobrevamp", "? bobtech", "? bobwarfare", - "? cargo-ships" + "? cargo-ships", "? CircuitProcessing", "? Explosive Excavation", "? KS_Power", diff --git a/SeaBlock/locale/en/SeaBlock.cfg b/SeaBlock/locale/en/SeaBlock.cfg index 097a132d..57a4f21b 100644 --- a/SeaBlock/locale/en/SeaBlock.cfg +++ b/SeaBlock/locale/en/SeaBlock.cfg @@ -63,6 +63,7 @@ sb-default-landfill=Default landfill type bobmods-assembly-multipurposefurnaces=Recipe furnaces Landblock-mode-Seablock-setting=Landblock mode No-minerals-mode-setting=No Minerals mode +Cargo-ships-deep-oil-setting=Cargo Ships Deep Oil Setting No-trees-mode-setting=No Tree/Rock mode [mod-setting-description] diff --git a/SeaBlock/settings-updates.lua b/SeaBlock/settings-updates.lua index fad81666..d1c9dc0b 100644 --- a/SeaBlock/settings-updates.lua +++ b/SeaBlock/settings-updates.lua @@ -42,7 +42,9 @@ require("settings-updates/bobpower") require("settings-updates/bobrevamp") require("settings-updates/bobtech") require("settings-updates/bobwarfare") + require("settings-updates/cargoships") + require("settings-updates/reskins-angels") require("settings-updates/ScienceCostTweakerM") require("settings-updates/SpaceMod") diff --git a/SeaBlock/settings-updates/cargoships.lua b/SeaBlock/settings-updates/cargoships.lua index 4304c775..c45677df 100644 --- a/SeaBlock/settings-updates/cargoships.lua +++ b/SeaBlock/settings-updates/cargoships.lua @@ -1,8 +1,9 @@ if mods["cargo-ships"] then - if settings.startup["Cargo-ships-deep-oil-setting"].value == true then + if data.raw["bool-setting"]["Cargo-ships-deep-oil-setting"].value == true then --Override Cargo Ships Settings --Make Deep-oil on on the assumption people want the oil to spawn data.raw["bool-setting"]["deep_oil"].forced_value=true + data.raw["bool-setting"]["deep_oil"].hidden=false data.raw["string-setting"]["oil_richness"].hidden=false data.raw["bool-setting"]["no_oil_for_oil_rig"].hidden=false From a7efc5a6cf5408a75851ad629fd550025f03d988 Mon Sep 17 00:00:00 2001 From: Stephen Date: Sat, 24 Jun 2023 18:50:40 -0500 Subject: [PATCH 20/26] I think i fixed the naming of deep oil --- SeaBlock/data-final-fixes/mapgen.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SeaBlock/data-final-fixes/mapgen.lua b/SeaBlock/data-final-fixes/mapgen.lua index 20c33dac..7f1cc529 100644 --- a/SeaBlock/data-final-fixes/mapgen.lua +++ b/SeaBlock/data-final-fixes/mapgen.lua @@ -5,7 +5,7 @@ if settings.startup["No-minerals-mode-setting"].value == true then --No Resource placement execpt deep oil from cargo ships if settings.startup["Cargo-ships-deep-oil-setting"].value == true then for k, v in pairs(data.raw.resource) do - if k ~= "deep-oil" then + if k ~= "deep_oil" then v.autoplace = nil end end From 6b8dbb208456933a0a1435a5b36a456a386d4687 Mon Sep 17 00:00:00 2001 From: Stephen Date: Sun, 25 Jun 2023 14:17:41 -0500 Subject: [PATCH 21/26] Added another exception for pumpjacks and deep oil Fixed deep oil not spawning hopefully (at least now you should be able to put it in with editor) --- .../data-final-fixes/unobtainable_items.lua | 9 ++++++++ SeaBlock/data-updates.lua | 1 + SeaBlock/data-updates/mapgen.lua | 23 +++++++++++++++++++ SeaBlock/data-updates/misc.lua | 14 ----------- 4 files changed, 33 insertions(+), 14 deletions(-) create mode 100644 SeaBlock/data-updates/mapgen.lua diff --git a/SeaBlock/data-final-fixes/unobtainable_items.lua b/SeaBlock/data-final-fixes/unobtainable_items.lua index e7b1e849..8607ef34 100644 --- a/SeaBlock/data-final-fixes/unobtainable_items.lua +++ b/SeaBlock/data-final-fixes/unobtainable_items.lua @@ -247,6 +247,15 @@ items_to_remove = { } end +if settings.startup["Cargo-ships-deep-oil-setting"].value == true then + --remove pumpjack from recipes_to_remove + for k, v in ipairs(items_to_remove) do + if v == "pumpjack" then + table.remove(recipes_to_remove, k) + end + end +end + for _, v in ipairs(items_to_remove) do unobtainable[v] = {} end diff --git a/SeaBlock/data-updates.lua b/SeaBlock/data-updates.lua index 82cd90cb..3879ae5c 100644 --- a/SeaBlock/data-updates.lua +++ b/SeaBlock/data-updates.lua @@ -16,3 +16,4 @@ require("data-updates/thermal-extractor") require("data-updates/wood") require("data-updates/startup") require("data-updates/landfill") +require("data-updates/mapgen") diff --git a/SeaBlock/data-updates/mapgen.lua b/SeaBlock/data-updates/mapgen.lua new file mode 100644 index 00000000..c7eda433 --- /dev/null +++ b/SeaBlock/data-updates/mapgen.lua @@ -0,0 +1,23 @@ +-- Remove resources so mining recipes don't show in FNEI +-- Have to leave at least one resource or game will not load +if settings.startup["No-minerals-mode-setting"].value == true then + if settings.startup["Cargo-ships-deep-oil-setting"].value == true then + for k, v in pairs(data.raw["resource"]) do + if k == "deep_oil" or k == "deep-oil" then + --v.minable.result = nil + --v.minable.results = nil + else + data.raw["resource"][k] = nil + end + end + else + for k, v in pairs(data.raw["resource"]) do + if k == "coal" then + v.minable.result = nil + v.minable.results = nil + else + data.raw["resource"][k] = nil + end + end + end +end \ No newline at end of file diff --git a/SeaBlock/data-updates/misc.lua b/SeaBlock/data-updates/misc.lua index 58aafafa..2cb8e399 100644 --- a/SeaBlock/data-updates/misc.lua +++ b/SeaBlock/data-updates/misc.lua @@ -61,20 +61,6 @@ if not seablock.trigger.mining_productivity then end end - --- Remove resources so mining recipes don't show in FNEI --- Have to leave at least one resource or game will not load -if settings.startup["No-minerals-mode-setting"].value == true then - for k, v in pairs(data.raw["resource"]) do - if k == "coal" then - v.minable.result = nil - v.minable.results = nil - else - data.raw["resource"][k] = nil - end - end -end - -- Add prerequisite for Tin and Lead if settings.startup["bobmods-logistics-beltoverhaul"].value then bobmods.lib.tech.add_prerequisite("logistics", "ore-crushing") From 08e09218e0eedec134565010dd6ad7d3dcfb2c64 Mon Sep 17 00:00:00 2001 From: KiwiHawk <59639+KiwiHawk@users.noreply.github.com> Date: Fri, 14 Jul 2023 01:35:58 -0500 Subject: [PATCH 22/26] Milestones mod compatibility #292 --- SeaBlock/changelog.txt | 5 + SeaBlock/info.json | 1 + SeaBlock/remote.lua | 191 +++++++++++++++++++++++++++++++++++++ SeaBlockMetaPack/info.json | 3 +- 4 files changed, 199 insertions(+), 1 deletion(-) diff --git a/SeaBlock/changelog.txt b/SeaBlock/changelog.txt index 4114be62..1952e3d0 100644 --- a/SeaBlock/changelog.txt +++ b/SeaBlock/changelog.txt @@ -1,4 +1,9 @@ --------------------------------------------------------------------------------------------------- +Version: 0.5.13 +Date: ??? + Changes: + - Milestones mod compatibility #292 +--------------------------------------------------------------------------------------------------- Version: 0.5.12 Date: 01.01.2023 Changes: diff --git a/SeaBlock/info.json b/SeaBlock/info.json index 3799e691..1fcedc52 100644 --- a/SeaBlock/info.json +++ b/SeaBlock/info.json @@ -34,6 +34,7 @@ "? Explosive Excavation", "? KS_Power", "? LandfillPainting >= 0.5.2", + "? Milestones >= 1.3.19", "? ScienceCostTweakerM >= 1.1.10", "? SpaceMod >= 1.1.1", diff --git a/SeaBlock/remote.lua b/SeaBlock/remote.lua index cb62bcf9..79d830a3 100644 --- a/SeaBlock/remote.lua +++ b/SeaBlock/remote.lua @@ -20,10 +20,201 @@ local function set_starting_items(items) global.starting_items = items end +-- Presets for Milestones mod +local function milestones_presets() + local grouped_milestones = {} + + -- Science + local bio_science_pack = script.active_mods["ScienceCostTweakerM"] and "sct-bio-science-pack" or "token-bio" + grouped_milestones["science"] = { + {type="group", name="Science"}, + {type="item", name="automation-science-pack", quantity=1}, + {type="item", name=bio_science_pack, quantity=1}, + {type="item", name="logistic-science-pack", quantity=1}, + {type="item", name="military-science-pack", quantity=1}, + {type="item", name="chemical-science-pack", quantity=1}, + script.active_mods["bobtech"] and + {type="item", name="advanced-logistic-science-pack", quantity=1} or nil, + {type="item", name="production-science-pack", quantity=1}, + {type="item", name="utility-science-pack", quantity=1}, + {type="item", name="automation-science-pack", quantity=1000, next="x10"}, + {type="item", name="space-science-pack", quantity=1}, + {type="item", name=bio_science_pack, quantity=1000, next="x10"}, + {type="item", name="logistic-science-pack", quantity=1000, next="x10"}, + {type="item", name="military-science-pack", quantity=1000, next="x10"}, + {type="item", name="chemical-science-pack", quantity=1000, next="x10"}, + script.active_mods["bobtech"] and + {type="item", name="advanced-logistic-science-pack", quantity=1000, next="x10"} or nil, + {type="item", name="production-science-pack", quantity=1000, next="x10"}, + {type="item", name="utility-science-pack", quantity=1000, next="x10"}, + {type="item", name="space-science-pack", quantity=10000, next="x10"}, + } + + -- Resources + grouped_milestones["resorces"] = { + {type="group", name="Resources"}, + {type="item", name="wood-charcoal", quantity=1}, + {type="item", name="basic-circuit-board", quantity=1}, + {type="item", name="electronic-circuit", quantity=1}, + {type="item", name="advanced-circuit", quantity=1}, + {type="item", name="processing-unit", quantity=1}, + {type="item", name="advanced-processing-unit", quantity=1}, + + {type="item", name="steel-plate", quantity=1}, + {type="item", name="bronze-alloy", quantity=1}, + {type="item", name="invar-alloy", quantity=1}, + {type="item", name="brass-alloy", quantity=1}, + {type="item", name="glass", quantity=1}, + {type="item", name="silver-plate", quantity=1}, + + {type="item", name="aluminium-plate", quantity=1}, + {type="item", name="titanium-plate", quantity=1}, + {type="item", name="gold-plate", quantity=1}, + {type="item", name="cobalt-steel-alloy", quantity=1}, + {type="item", name="angels-plate-chrome", quantity=1}, + {type="item", name="angels-plate-platinum", quantity=1}, + + {type="item", name="tungsten-plate", quantity=1}, + {type="item", name="copper-tungsten-alloy", quantity=1}, + {type="item", name="tungsten-carbide", quantity=1}, + {type="item", name="nitinol-alloy", quantity=1}, + + {type="item", name="plastic-bar", quantity=1}, + {type="item", name="resin", quantity=1}, + {type="item", name="rubber", quantity=1}, + {type="item", name="alien-bacteria", quantity=1}, + {type="item", name="sulfur", quantity=1}, + {type="fluid", name="mineral-sludge", quantity=1}, + {type="fluid", name="mineral-sludge", quantity=10000, next="x10"}, + } + + -- Progress + local seablock_default_landfill = + script.active_mods["LandfillPainting"] and + settings.startup["sb-default-landfill"] and + settings.startup["sb-default-landfill"].value or "landfill" + grouped_milestones["progress1"] = { + {type="group", name="Progress"}, + {type="item", name="lab", quantity=1}, + {type="item", name=seablock_default_landfill, quantity=1}, + {type="item", name=seablock_default_landfill, quantity=1000, next="x10"}, + {type="alias", name="landfill-dirt-4", equals=seablock_default_landfill, quantity=1}, + {type="alias", name="landfill-dry-dirt", equals=seablock_default_landfill, quantity=1}, + {type="alias", name="landfill-grass-1", equals=seablock_default_landfill, quantity=1}, + {type="alias", name="landfill-red-desert-1", equals=seablock_default_landfill, quantity=1}, + {type="alias", name="landfill-sand-3", equals=seablock_default_landfill, quantity=1}, + {type="alias", name="landfill", equals=seablock_default_landfill, quantity=1}, + {type="fluid", name="liquid-fuel-oil", quantity=1}, + {type="item", name="locomotive", quantity=1}, + {type="item", name="construction-robot", quantity=1}, + {type="item", name="logistic-chest-requester", quantity=1}, + } + + if not script.active_mods["bobmodules"] then + -- Vanilla modules + grouped_milestones["modules"] = { + {type="item", name="productivity-module", quantity=1}, + {type="item", name="productivity-module-4", quantity=1}, + {type="item", name="productivity-module-6", quantity=1}, + } + elseif script.active_mods["CircuitProcessing"] then + -- Circuit Processing modules + grouped_milestones["modules"] = { + {type="item", name="productivity-module-2", quantity=1}, + {type="item", name="productivity-module-4", quantity=1}, + {type="item", name="productivity-module-6", quantity=1}, + {type="item", name="productivity-module-8", quantity=1}, + } + else + -- Bob's Modules + grouped_milestones["modules"] = { + {type="item", name="productivity-module", quantity=1}, + {type="item", name="productivity-module-8", quantity=1}, + } + end + + grouped_milestones["progress2"] = { + {type="item", name="beacon", quantity=1}, + {type="item", name="rocket-fuel", quantity=1}, + {type="technology", name="rocket-silo", quantity=1}, + {type="item", name="nuclear-reactor", quantity=1}, + } + + -- SpaceX + if script.active_mods["SpaceMod"] then + grouped_milestones["SpaceX"] = { + {type="group", name="SpaceX"}, + {type="item", name="drydock-structural", quantity=10}, + {type="item", name="drydock-assembly", quantity=2}, + {type="item", name="protection-field", quantity=1}, + {type="item", name="fusion-reactor", quantity=1}, + {type="item", name="habitation", quantity=1}, + {type="item", name="life-support", quantity=1}, + {type="item", name="command", quantity=1}, + {type="item", name="fuel-cell", quantity=2}, + {type="item", name="space-thruster", quantity=4}, + {type="item", name="hull-component", quantity=10}, + {type="technology", name="ftl-theory-A", quantity=1}, + {type="technology", name="ftl-theory-B", quantity=1}, + {type="technology", name="ftl-theory-C", quantity=1}, + {type="technology", name="ftl-theory-D1", quantity=1}, + script.active_mods["bobtech"] and + {type="technology", name="ftl-theory-D", quantity=1} or nil, + {type="technology", name="ftl-theory-D2", quantity=1}, + {type="technology", name="ftl-propulsion", quantity=1}, + {type="item", name="ftl-drive", quantity=1}, + } + end + + -- Kills + if script.active_mods["bobenemies"] then + grouped_milestones["kills"] = { + {type="group", name="Kills"}, + {type="kill", name="small-worm-turret", quantity=1}, + {type="kill", name="medium-worm-turret", quantity=1}, + {type="kill", name="big-worm-turret", quantity=1}, + {type="alias", name="bob-big-explosive-worm-turret", equals="big-worm-turret", quantity=1}, + {type="alias", name="bob-big-piercing-worm-turret", equals="big-worm-turret", quantity=1}, + {type="alias", name="bob-big-fire-worm-turret", equals="big-worm-turret", quantity=1}, + {type="alias", name="bob-big-poison-worm-turret", equals="big-worm-turret", quantity=1}, + {type="alias", name="bob-big-electric-worm-turret", equals="big-worm-turret", quantity=1}, + {type="kill", name="bob-giant-worm-turret", quantity=1}, + {type="kill", name="behemoth-worm-turret", quantity=1}, + {type="kill", name="behemoth-worm-turret", quantity=1000, next="x10"}, + {type="kill", name="character", quantity=1, next="x5"}, + } + else + grouped_milestones["kills"] = { + {type="group", name="Kills"}, + {type="kill", name="small-worm-turret", quantity=1}, + {type="kill", name="medium-worm-turret", quantity=1}, + {type="kill", name="big-worm-turret", quantity=1}, + {type="kill", name="behemoth-worm-turret", quantity=1}, + {type="kill", name="behemoth-worm-turret", quantity=1000, next="x10"}, + {type="kill", name="character", quantity=1, next="x5"}, + } + end + + local milestones = {} + for group_name, group_milestones in pairs(grouped_milestones) do + for _, milestone in pairs(group_milestones) do + table.insert(milestones, milestone) + end + end + + return { + ["Sea Block"] = { + required_mods = {"SeaBlock", "bobplates", "bobelectronics", "angelsbioprocessing", "angelspetrochem"}, + milestones = milestones, + } + } +end + remote.add_interface("SeaBlock", { get_unlocks = get_unlocks, set_unlock = set_unlock, get_starting_items = get_starting_items, set_starting_item = set_starting_item, set_starting_items = set_starting_items, + milestones_presets = milestones_presets, }) diff --git a/SeaBlockMetaPack/info.json b/SeaBlockMetaPack/info.json index a07044b8..f159b532 100644 --- a/SeaBlockMetaPack/info.json +++ b/SeaBlockMetaPack/info.json @@ -1,6 +1,6 @@ { "name": "SeaBlockMetaPack", - "version": "1.1.3", + "version": "1.1.4", "factorio_version": "1.1", "title": "Sea Block Pack", "author": "Trainwreck", @@ -40,6 +40,7 @@ "helmod", "KS_Power", "LandfillPainting", + "Milestones", "ScienceCostTweakerM", "SeaBlock", "SpaceMod" From 8dc70b695ec06dc482cace1178f26c062102d746 Mon Sep 17 00:00:00 2001 From: StyLuaFormatter Date: Fri, 14 Jul 2023 06:36:21 +0000 Subject: [PATCH 23/26] Format Code --- SeaBlock/remote.lua | 255 ++++++++++++++++++++++---------------------- 1 file changed, 127 insertions(+), 128 deletions(-) diff --git a/SeaBlock/remote.lua b/SeaBlock/remote.lua index 79d830a3..6b46f766 100644 --- a/SeaBlock/remote.lua +++ b/SeaBlock/remote.lua @@ -27,171 +27,170 @@ local function milestones_presets() -- Science local bio_science_pack = script.active_mods["ScienceCostTweakerM"] and "sct-bio-science-pack" or "token-bio" grouped_milestones["science"] = { - {type="group", name="Science"}, - {type="item", name="automation-science-pack", quantity=1}, - {type="item", name=bio_science_pack, quantity=1}, - {type="item", name="logistic-science-pack", quantity=1}, - {type="item", name="military-science-pack", quantity=1}, - {type="item", name="chemical-science-pack", quantity=1}, - script.active_mods["bobtech"] and - {type="item", name="advanced-logistic-science-pack", quantity=1} or nil, - {type="item", name="production-science-pack", quantity=1}, - {type="item", name="utility-science-pack", quantity=1}, - {type="item", name="automation-science-pack", quantity=1000, next="x10"}, - {type="item", name="space-science-pack", quantity=1}, - {type="item", name=bio_science_pack, quantity=1000, next="x10"}, - {type="item", name="logistic-science-pack", quantity=1000, next="x10"}, - {type="item", name="military-science-pack", quantity=1000, next="x10"}, - {type="item", name="chemical-science-pack", quantity=1000, next="x10"}, - script.active_mods["bobtech"] and - {type="item", name="advanced-logistic-science-pack", quantity=1000, next="x10"} or nil, - {type="item", name="production-science-pack", quantity=1000, next="x10"}, - {type="item", name="utility-science-pack", quantity=1000, next="x10"}, - {type="item", name="space-science-pack", quantity=10000, next="x10"}, + { type = "group", name = "Science" }, + { type = "item", name = "automation-science-pack", quantity = 1 }, + { type = "item", name = bio_science_pack, quantity = 1 }, + { type = "item", name = "logistic-science-pack", quantity = 1 }, + { type = "item", name = "military-science-pack", quantity = 1 }, + { type = "item", name = "chemical-science-pack", quantity = 1 }, + script.active_mods["bobtech"] and { type = "item", name = "advanced-logistic-science-pack", quantity = 1 } or nil, + { type = "item", name = "production-science-pack", quantity = 1 }, + { type = "item", name = "utility-science-pack", quantity = 1 }, + { type = "item", name = "automation-science-pack", quantity = 1000, next = "x10" }, + { type = "item", name = "space-science-pack", quantity = 1 }, + { type = "item", name = bio_science_pack, quantity = 1000, next = "x10" }, + { type = "item", name = "logistic-science-pack", quantity = 1000, next = "x10" }, + { type = "item", name = "military-science-pack", quantity = 1000, next = "x10" }, + { type = "item", name = "chemical-science-pack", quantity = 1000, next = "x10" }, + script.active_mods["bobtech"] + and { type = "item", name = "advanced-logistic-science-pack", quantity = 1000, next = "x10" } + or nil, + { type = "item", name = "production-science-pack", quantity = 1000, next = "x10" }, + { type = "item", name = "utility-science-pack", quantity = 1000, next = "x10" }, + { type = "item", name = "space-science-pack", quantity = 10000, next = "x10" }, } -- Resources grouped_milestones["resorces"] = { - {type="group", name="Resources"}, - {type="item", name="wood-charcoal", quantity=1}, - {type="item", name="basic-circuit-board", quantity=1}, - {type="item", name="electronic-circuit", quantity=1}, - {type="item", name="advanced-circuit", quantity=1}, - {type="item", name="processing-unit", quantity=1}, - {type="item", name="advanced-processing-unit", quantity=1}, - - {type="item", name="steel-plate", quantity=1}, - {type="item", name="bronze-alloy", quantity=1}, - {type="item", name="invar-alloy", quantity=1}, - {type="item", name="brass-alloy", quantity=1}, - {type="item", name="glass", quantity=1}, - {type="item", name="silver-plate", quantity=1}, - - {type="item", name="aluminium-plate", quantity=1}, - {type="item", name="titanium-plate", quantity=1}, - {type="item", name="gold-plate", quantity=1}, - {type="item", name="cobalt-steel-alloy", quantity=1}, - {type="item", name="angels-plate-chrome", quantity=1}, - {type="item", name="angels-plate-platinum", quantity=1}, - - {type="item", name="tungsten-plate", quantity=1}, - {type="item", name="copper-tungsten-alloy", quantity=1}, - {type="item", name="tungsten-carbide", quantity=1}, - {type="item", name="nitinol-alloy", quantity=1}, - - {type="item", name="plastic-bar", quantity=1}, - {type="item", name="resin", quantity=1}, - {type="item", name="rubber", quantity=1}, - {type="item", name="alien-bacteria", quantity=1}, - {type="item", name="sulfur", quantity=1}, - {type="fluid", name="mineral-sludge", quantity=1}, - {type="fluid", name="mineral-sludge", quantity=10000, next="x10"}, + { type = "group", name = "Resources" }, + { type = "item", name = "wood-charcoal", quantity = 1 }, + { type = "item", name = "basic-circuit-board", quantity = 1 }, + { type = "item", name = "electronic-circuit", quantity = 1 }, + { type = "item", name = "advanced-circuit", quantity = 1 }, + { type = "item", name = "processing-unit", quantity = 1 }, + { type = "item", name = "advanced-processing-unit", quantity = 1 }, + + { type = "item", name = "steel-plate", quantity = 1 }, + { type = "item", name = "bronze-alloy", quantity = 1 }, + { type = "item", name = "invar-alloy", quantity = 1 }, + { type = "item", name = "brass-alloy", quantity = 1 }, + { type = "item", name = "glass", quantity = 1 }, + { type = "item", name = "silver-plate", quantity = 1 }, + + { type = "item", name = "aluminium-plate", quantity = 1 }, + { type = "item", name = "titanium-plate", quantity = 1 }, + { type = "item", name = "gold-plate", quantity = 1 }, + { type = "item", name = "cobalt-steel-alloy", quantity = 1 }, + { type = "item", name = "angels-plate-chrome", quantity = 1 }, + { type = "item", name = "angels-plate-platinum", quantity = 1 }, + + { type = "item", name = "tungsten-plate", quantity = 1 }, + { type = "item", name = "copper-tungsten-alloy", quantity = 1 }, + { type = "item", name = "tungsten-carbide", quantity = 1 }, + { type = "item", name = "nitinol-alloy", quantity = 1 }, + + { type = "item", name = "plastic-bar", quantity = 1 }, + { type = "item", name = "resin", quantity = 1 }, + { type = "item", name = "rubber", quantity = 1 }, + { type = "item", name = "alien-bacteria", quantity = 1 }, + { type = "item", name = "sulfur", quantity = 1 }, + { type = "fluid", name = "mineral-sludge", quantity = 1 }, + { type = "fluid", name = "mineral-sludge", quantity = 10000, next = "x10" }, } -- Progress - local seablock_default_landfill = - script.active_mods["LandfillPainting"] and - settings.startup["sb-default-landfill"] and - settings.startup["sb-default-landfill"].value or "landfill" + local seablock_default_landfill = script.active_mods["LandfillPainting"] + and settings.startup["sb-default-landfill"] + and settings.startup["sb-default-landfill"].value + or "landfill" grouped_milestones["progress1"] = { - {type="group", name="Progress"}, - {type="item", name="lab", quantity=1}, - {type="item", name=seablock_default_landfill, quantity=1}, - {type="item", name=seablock_default_landfill, quantity=1000, next="x10"}, - {type="alias", name="landfill-dirt-4", equals=seablock_default_landfill, quantity=1}, - {type="alias", name="landfill-dry-dirt", equals=seablock_default_landfill, quantity=1}, - {type="alias", name="landfill-grass-1", equals=seablock_default_landfill, quantity=1}, - {type="alias", name="landfill-red-desert-1", equals=seablock_default_landfill, quantity=1}, - {type="alias", name="landfill-sand-3", equals=seablock_default_landfill, quantity=1}, - {type="alias", name="landfill", equals=seablock_default_landfill, quantity=1}, - {type="fluid", name="liquid-fuel-oil", quantity=1}, - {type="item", name="locomotive", quantity=1}, - {type="item", name="construction-robot", quantity=1}, - {type="item", name="logistic-chest-requester", quantity=1}, + { type = "group", name = "Progress" }, + { type = "item", name = "lab", quantity = 1 }, + { type = "item", name = seablock_default_landfill, quantity = 1 }, + { type = "item", name = seablock_default_landfill, quantity = 1000, next = "x10" }, + { type = "alias", name = "landfill-dirt-4", equals = seablock_default_landfill, quantity = 1 }, + { type = "alias", name = "landfill-dry-dirt", equals = seablock_default_landfill, quantity = 1 }, + { type = "alias", name = "landfill-grass-1", equals = seablock_default_landfill, quantity = 1 }, + { type = "alias", name = "landfill-red-desert-1", equals = seablock_default_landfill, quantity = 1 }, + { type = "alias", name = "landfill-sand-3", equals = seablock_default_landfill, quantity = 1 }, + { type = "alias", name = "landfill", equals = seablock_default_landfill, quantity = 1 }, + { type = "fluid", name = "liquid-fuel-oil", quantity = 1 }, + { type = "item", name = "locomotive", quantity = 1 }, + { type = "item", name = "construction-robot", quantity = 1 }, + { type = "item", name = "logistic-chest-requester", quantity = 1 }, } if not script.active_mods["bobmodules"] then -- Vanilla modules grouped_milestones["modules"] = { - {type="item", name="productivity-module", quantity=1}, - {type="item", name="productivity-module-4", quantity=1}, - {type="item", name="productivity-module-6", quantity=1}, + { type = "item", name = "productivity-module", quantity = 1 }, + { type = "item", name = "productivity-module-4", quantity = 1 }, + { type = "item", name = "productivity-module-6", quantity = 1 }, } elseif script.active_mods["CircuitProcessing"] then -- Circuit Processing modules grouped_milestones["modules"] = { - {type="item", name="productivity-module-2", quantity=1}, - {type="item", name="productivity-module-4", quantity=1}, - {type="item", name="productivity-module-6", quantity=1}, - {type="item", name="productivity-module-8", quantity=1}, + { type = "item", name = "productivity-module-2", quantity = 1 }, + { type = "item", name = "productivity-module-4", quantity = 1 }, + { type = "item", name = "productivity-module-6", quantity = 1 }, + { type = "item", name = "productivity-module-8", quantity = 1 }, } else -- Bob's Modules grouped_milestones["modules"] = { - {type="item", name="productivity-module", quantity=1}, - {type="item", name="productivity-module-8", quantity=1}, + { type = "item", name = "productivity-module", quantity = 1 }, + { type = "item", name = "productivity-module-8", quantity = 1 }, } end grouped_milestones["progress2"] = { - {type="item", name="beacon", quantity=1}, - {type="item", name="rocket-fuel", quantity=1}, - {type="technology", name="rocket-silo", quantity=1}, - {type="item", name="nuclear-reactor", quantity=1}, + { type = "item", name = "beacon", quantity = 1 }, + { type = "item", name = "rocket-fuel", quantity = 1 }, + { type = "technology", name = "rocket-silo", quantity = 1 }, + { type = "item", name = "nuclear-reactor", quantity = 1 }, } -- SpaceX if script.active_mods["SpaceMod"] then grouped_milestones["SpaceX"] = { - {type="group", name="SpaceX"}, - {type="item", name="drydock-structural", quantity=10}, - {type="item", name="drydock-assembly", quantity=2}, - {type="item", name="protection-field", quantity=1}, - {type="item", name="fusion-reactor", quantity=1}, - {type="item", name="habitation", quantity=1}, - {type="item", name="life-support", quantity=1}, - {type="item", name="command", quantity=1}, - {type="item", name="fuel-cell", quantity=2}, - {type="item", name="space-thruster", quantity=4}, - {type="item", name="hull-component", quantity=10}, - {type="technology", name="ftl-theory-A", quantity=1}, - {type="technology", name="ftl-theory-B", quantity=1}, - {type="technology", name="ftl-theory-C", quantity=1}, - {type="technology", name="ftl-theory-D1", quantity=1}, - script.active_mods["bobtech"] and - {type="technology", name="ftl-theory-D", quantity=1} or nil, - {type="technology", name="ftl-theory-D2", quantity=1}, - {type="technology", name="ftl-propulsion", quantity=1}, - {type="item", name="ftl-drive", quantity=1}, + { type = "group", name = "SpaceX" }, + { type = "item", name = "drydock-structural", quantity = 10 }, + { type = "item", name = "drydock-assembly", quantity = 2 }, + { type = "item", name = "protection-field", quantity = 1 }, + { type = "item", name = "fusion-reactor", quantity = 1 }, + { type = "item", name = "habitation", quantity = 1 }, + { type = "item", name = "life-support", quantity = 1 }, + { type = "item", name = "command", quantity = 1 }, + { type = "item", name = "fuel-cell", quantity = 2 }, + { type = "item", name = "space-thruster", quantity = 4 }, + { type = "item", name = "hull-component", quantity = 10 }, + { type = "technology", name = "ftl-theory-A", quantity = 1 }, + { type = "technology", name = "ftl-theory-B", quantity = 1 }, + { type = "technology", name = "ftl-theory-C", quantity = 1 }, + { type = "technology", name = "ftl-theory-D1", quantity = 1 }, + script.active_mods["bobtech"] and { type = "technology", name = "ftl-theory-D", quantity = 1 } or nil, + { type = "technology", name = "ftl-theory-D2", quantity = 1 }, + { type = "technology", name = "ftl-propulsion", quantity = 1 }, + { type = "item", name = "ftl-drive", quantity = 1 }, } end -- Kills if script.active_mods["bobenemies"] then grouped_milestones["kills"] = { - {type="group", name="Kills"}, - {type="kill", name="small-worm-turret", quantity=1}, - {type="kill", name="medium-worm-turret", quantity=1}, - {type="kill", name="big-worm-turret", quantity=1}, - {type="alias", name="bob-big-explosive-worm-turret", equals="big-worm-turret", quantity=1}, - {type="alias", name="bob-big-piercing-worm-turret", equals="big-worm-turret", quantity=1}, - {type="alias", name="bob-big-fire-worm-turret", equals="big-worm-turret", quantity=1}, - {type="alias", name="bob-big-poison-worm-turret", equals="big-worm-turret", quantity=1}, - {type="alias", name="bob-big-electric-worm-turret", equals="big-worm-turret", quantity=1}, - {type="kill", name="bob-giant-worm-turret", quantity=1}, - {type="kill", name="behemoth-worm-turret", quantity=1}, - {type="kill", name="behemoth-worm-turret", quantity=1000, next="x10"}, - {type="kill", name="character", quantity=1, next="x5"}, + { type = "group", name = "Kills" }, + { type = "kill", name = "small-worm-turret", quantity = 1 }, + { type = "kill", name = "medium-worm-turret", quantity = 1 }, + { type = "kill", name = "big-worm-turret", quantity = 1 }, + { type = "alias", name = "bob-big-explosive-worm-turret", equals = "big-worm-turret", quantity = 1 }, + { type = "alias", name = "bob-big-piercing-worm-turret", equals = "big-worm-turret", quantity = 1 }, + { type = "alias", name = "bob-big-fire-worm-turret", equals = "big-worm-turret", quantity = 1 }, + { type = "alias", name = "bob-big-poison-worm-turret", equals = "big-worm-turret", quantity = 1 }, + { type = "alias", name = "bob-big-electric-worm-turret", equals = "big-worm-turret", quantity = 1 }, + { type = "kill", name = "bob-giant-worm-turret", quantity = 1 }, + { type = "kill", name = "behemoth-worm-turret", quantity = 1 }, + { type = "kill", name = "behemoth-worm-turret", quantity = 1000, next = "x10" }, + { type = "kill", name = "character", quantity = 1, next = "x5" }, } else grouped_milestones["kills"] = { - {type="group", name="Kills"}, - {type="kill", name="small-worm-turret", quantity=1}, - {type="kill", name="medium-worm-turret", quantity=1}, - {type="kill", name="big-worm-turret", quantity=1}, - {type="kill", name="behemoth-worm-turret", quantity=1}, - {type="kill", name="behemoth-worm-turret", quantity=1000, next="x10"}, - {type="kill", name="character", quantity=1, next="x5"}, + { type = "group", name = "Kills" }, + { type = "kill", name = "small-worm-turret", quantity = 1 }, + { type = "kill", name = "medium-worm-turret", quantity = 1 }, + { type = "kill", name = "big-worm-turret", quantity = 1 }, + { type = "kill", name = "behemoth-worm-turret", quantity = 1 }, + { type = "kill", name = "behemoth-worm-turret", quantity = 1000, next = "x10" }, + { type = "kill", name = "character", quantity = 1, next = "x5" }, } end @@ -204,9 +203,9 @@ local function milestones_presets() return { ["Sea Block"] = { - required_mods = {"SeaBlock", "bobplates", "bobelectronics", "angelsbioprocessing", "angelspetrochem"}, + required_mods = { "SeaBlock", "bobplates", "bobelectronics", "angelsbioprocessing", "angelspetrochem" }, milestones = milestones, - } + }, } end From 67488179db2bccc982d0a19fa847517a089ff386 Mon Sep 17 00:00:00 2001 From: KiwiHawk <59639+KiwiHawk@users.noreply.github.com> Date: Fri, 14 Jul 2023 12:18:44 -0500 Subject: [PATCH 24/26] Rename pack mod #306 --- SeaBlockMetaPack/info.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SeaBlockMetaPack/info.json b/SeaBlockMetaPack/info.json index f159b532..29779670 100644 --- a/SeaBlockMetaPack/info.json +++ b/SeaBlockMetaPack/info.json @@ -2,11 +2,11 @@ "name": "SeaBlockMetaPack", "version": "1.1.4", "factorio_version": "1.1", - "title": "Sea Block Pack", + "title": "Sea Block Pack - Official", "author": "Trainwreck", "contact": "https://forums.factorio.com/viewtopic.php?t=43759", "homepage": "https://github.com/KiwiHawk/SeaBlock", - "description": "Cutting edge version of the Sea Block mod pack. Contains dependencies on all mods distributed as part of the Sea Block Pack. This mod does nothing by itself.", + "description": "Enable this mod to get the full recommended Sea Block Mod Pack. Contains dependencies on all mods in the pack. Does nothing by itself.", "dependencies": [ "base", "angelsaddons-storage", From d2eb502344377bc18a5b9515cdc74084a6b9c13b Mon Sep 17 00:00:00 2001 From: KiwiHawk <59639+KiwiHawk@users.noreply.github.com> Date: Fri, 14 Jul 2023 12:20:00 -0500 Subject: [PATCH 25/26] Updating mod version number and date --- SeaBlock/changelog.txt | 2 +- SeaBlock/info.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/SeaBlock/changelog.txt b/SeaBlock/changelog.txt index 1952e3d0..154f8566 100644 --- a/SeaBlock/changelog.txt +++ b/SeaBlock/changelog.txt @@ -1,6 +1,6 @@ --------------------------------------------------------------------------------------------------- Version: 0.5.13 -Date: ??? +Date: 14.07.2023 Changes: - Milestones mod compatibility #292 --------------------------------------------------------------------------------------------------- diff --git a/SeaBlock/info.json b/SeaBlock/info.json index 1fcedc52..bacfcc8e 100644 --- a/SeaBlock/info.json +++ b/SeaBlock/info.json @@ -1,6 +1,6 @@ { "name": "SeaBlock", - "version": "0.5.12", + "version": "0.5.13", "factorio_version": "1.1", "title": "Sea Block", "author": "Trainwreck", From 24f558ae4a251a9201d4bec0f9c4c7fd4f6275e9 Mon Sep 17 00:00:00 2001 From: Stephen Date: Fri, 14 Jul 2023 20:00:48 -0500 Subject: [PATCH 26/26] update to 0.5.13 updated the info file to 0.5.13 --- SeaBlock/info.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SeaBlock/info.json b/SeaBlock/info.json index f5ed25d9..ad6d1994 100644 --- a/SeaBlock/info.json +++ b/SeaBlock/info.json @@ -1,6 +1,6 @@ { "name": "SeaBlock", - "version": "0.5.12", + "version": "0.5.13", "factorio_version": "1.1", "title": "Sea Block", "author": "Trainwreck",