diff --git a/data-updates.lua b/data-updates.lua index ab0362e..8c115d0 100644 --- a/data-updates.lua +++ b/data-updates.lua @@ -4,10 +4,11 @@ -- TODO: Move new files (globals, adjustments, whatever) into a single extra folder instead of having them spread between scripts/prototypes/whatever? local adjustments = require("prototypes/adjustments") local custom_exclusion_ranges = { -- these beacons are given custom exclusion ranges: "strict" ranges disable beacons whose distribution areas overlap them, "solo" means the smallest range for "strict" beacons which is large enough to prevent synergy with other beacons; the same values are also provided in control.lua - ["ab-focused-beacon"] = {add=1}, - ["ab-conflux-beacon"] = {add=3}, - ["ab-hub-beacon"] = {add=20}, - ["ab-isolation-beacon"] = {add=8, mode="strict"}, + ["ab-focused-beacon"] = {add=startup["ab-focused-beacon-exclusion-range"].value}, + ["ab-node-beacon"] = {add=startup["ab-node-beacon-exclusion-range"].value}, + ["ab-conflux-beacon"] = {add=startup["ab-conflux-beacon-exclusion-range"].value}, + ["ab-hub-beacon"] = {add=startup["ab-hub-beacon-exclusion-range"].value}, + ["ab-isolation-beacon"] = {add=startup["ab-isolation-beacon-exclusion-range"].value, mode="strict"}, ["se-basic-beacon"] = {value="solo", mode="strict"}, ["se-compact-beacon"] = {value="solo", mode="strict"}, ["se-compact-beacon-2"] = {value="solo", mode="strict"}, diff --git a/locale/en/locale.cfg b/locale/en/locale.cfg index 503c14b..0ba5123 100644 --- a/locale/en/locale.cfg +++ b/locale/en/locale.cfg @@ -24,12 +24,47 @@ ab-update-rate=Time between updates (seconds) ab-persistent-alerts=Persistent alerts ab-disable-exclusion-areas=DEV: Disable exclusion areas +ab-focused-beacon-exclusion-range=Focused beacon exclusion range +ab-node-beacon-exclusion-range=Node beacon exclusion range +ab-conflux-beacon-exclusion-range=Conflux beacon exclusion range +ab-hub-beacon-exclusion-range=Hub beacon exclusion range +ab-isolation-beacon-exclusion-range=Isolation beacon exclusion range +ab-node-beacon-supply-area-distance=Node beacon supply area distance +ab-node-beacon-module-slots=Node beacon module slots +ab-node-beacon-distribution-effectivity=Node beacon distribution effectivity +ab-node-beacon-distribution-effectivity-bonus-per-quality-level=Node beacon quality bonus + +ab-standard-beacon-supply-area-distance=Standard beacon supply area distance +ab-standard-beacon-module-slots=Standard beacon module slots +ab-standard-beacon-distribution-effectivity=Standard beacon distribution effectivity +ab-standard-beacon-distribution-effectivity-bonus-per-quality-level=Standard beacon quality bonus + +ab-focused-beacon-supply-area-distance=Focused beacon supply area distance +ab-focused-beacon-module-slots=Focused beacon module slots +ab-focused-beacon-distribution-effectivity=Focused beacon distribution effectivity +ab-focused-beacon-distribution-effectivity-bonus-per-quality-level=Focused beacon quality bonus + +ab-conflux-beacon-supply-area-distance=Conflux beacon supply area distance +ab-conflux-beacon-module-slots=Conflux beacon module slots +ab-conflux-beacon-distribution-effectivity=Conflux beacon distribution effectivity +ab-conflux-beacon-distribution-effectivity-bonus-per-quality-level=Conflux beacon quality bonus + +ab-hub-beacon-supply-area-distance=Hub beacon supply area distance +ab-hub-beacon-module-slots=Hub beacon module slots +ab-hub-beacon-distribution-effectivity=Hub beacon distribution effectivity +ab-hub-beacon-distribution-effectivity-bonus-per-quality-level=Hub beacon quality bonus + +ab-isolation-beacon-supply-area-distance=Isolation beacon supply area distance +ab-isolation-beacon-module-slots=Isolation beacon module slots +ab-isolation-beacon-distribution-effectivity=Isolation beacon distribution effectivity +ab-isolation-beacon-distribution-effectivity-bonus-per-quality-level=Isolation beacon quality bonus +ab-isolation-beacon-size-six=Isolation beacon even size [mod-setting-description] ab-balance-other-beacons=Adjusts stats of beacons from the following mods to be fairer:\nBob's Modules\n5Dim's Modules\nAdvanced Modules\nMini Machines\nMicro Machines\nElgskred's Extension\nZombies Extended Modules\nTarawind Beacons\nBetter Beacons\nStarry Sakura\nFast Furnaces ab-override-vanilla-beacons=Overrides some balance changes made to vanilla beacons by other mods; creates a replacement instead if vanilla beacons have scripted behavior or cannot be cleanly overridden\nStats: 3x3, 2 modules, 0.5 effiency, 3 range, 3 exclusion range ab-enable-focused-beacons=Small beacons which are excellent in tight spaces\nStats: 2x2, 3 modules, 0.75 effiency, 2 range, 3 exclusion range -ab-enable-node-beacons=Medium beacons which can fill multiple roles\nStats: 3x3, 3 modules, 0.5 effiency, 8 range, 8 exclusion range +ab-enable-node-beacons=Medium beacons which can fill multiple roles\nStats: 3x3, 3 modules, 0.5 effiency, configurable range (default 8), 8 exclusion range ab-enable-conflux-beacons=Large beacons which support decentralized building\nStats: 4x4, 6 modules, 0.5 effiency, 9 range, 12 exclusion range ab-enable-hub-beacons=Huge beacons which support centralized building\nStats: 4x4, 9 modules, 0.5 effiency, 14 range, 34 exclusion range ab-enable-isolation-beacons=Giant beacons which don't interact with other beacons\nStats: 5x5, 10 modules, 0.5 effiency, 30 range, 38 strict exclusion range @@ -42,7 +77,41 @@ ab-update-rate=Controls whether the game updates all beacons periodically and ho ab-persistent-alerts=Alerts for disabled beacons persist until the issue is resolved.\nHas a minor performance impact. ab-disable-exclusion-areas=Disables exclusion areas. This will stop the mod from working as intended. Meant as a last resort for other mods to disable all scripting and implement their own. -ei_beacon-overload=If disabled, supercooled beacons will be far more powerful than intended and smaller beacons such as standard and focused beacons will behave more normally. +ab-focused-beacon-exclusion-range=Sets the additional exclusion range for focused beacons. Default is 1, which results in a 3 tile exclusion range. +ab-node-beacon-exclusion-range=Sets the additional exclusion range for node beacons. Default is 2, which results in a 7 tile exclusion range. +ab-conflux-beacon-exclusion-range=Sets the additional exclusion range for conflux beacons. Default is 3, which results in a 12 tile exclusion range. +ab-hub-beacon-exclusion-range=Sets the additional exclusion range for hub beacons. Default is 20, which results in a 34 tile exclusion range. +ab-isolation-beacon-exclusion-range=Sets the additional exclusion range for isolation beacons. Default is 8, which results in a 38 tile strict exclusion range. +ab-node-beacon-supply-area-distance=Sets the supply area distance for node beacons. Default is 8, which extends from edge of collision box (19x19 tiles total coverage). +ab-node-beacon-module-slots=Sets the number of module slots for node beacons. Default is 3. +ab-node-beacon-distribution-effectivity=Sets the distribution effectivity for node beacons. Default is 0.5. +ab-node-beacon-distribution-effectivity-bonus-per-quality-level=Sets the distribution effectivity bonus per quality level for node beacons. Default is 0.1. + +ab-standard-beacon-supply-area-distance=Sets the supply area distance for standard beacons. Default is 3. +ab-standard-beacon-module-slots=Sets the number of module slots for standard beacons. Default is 2. +ab-standard-beacon-distribution-effectivity=Sets the distribution effectivity for standard beacons. Default is 0.5. +ab-standard-beacon-distribution-effectivity-bonus-per-quality-level=Sets the distribution effectivity bonus per quality level for standard beacons. Default is 0.1. + +ab-focused-beacon-supply-area-distance=Sets the supply area distance for focused beacons. Default is 2. +ab-focused-beacon-module-slots=Sets the number of module slots for focused beacons. Default is 3. +ab-focused-beacon-distribution-effectivity=Sets the distribution effectivity for focused beacons. Default is 0.75. +ab-focused-beacon-distribution-effectivity-bonus-per-quality-level=Sets the distribution effectivity bonus per quality level for focused beacons. Default is 0.1. + +ab-conflux-beacon-supply-area-distance=Sets the supply area distance for conflux beacons. Default is 9. +ab-conflux-beacon-module-slots=Sets the number of module slots for conflux beacons. Default is 6. +ab-conflux-beacon-distribution-effectivity=Sets the distribution effectivity for conflux beacons. Default is 0.5. +ab-conflux-beacon-distribution-effectivity-bonus-per-quality-level=Sets the distribution effectivity bonus per quality level for conflux beacons. Default is 0.1. + +ab-hub-beacon-supply-area-distance=Sets the supply area distance for hub beacons. Default is 14. +ab-hub-beacon-module-slots=Sets the number of module slots for hub beacons. Default is 9. +ab-hub-beacon-distribution-effectivity=Sets the distribution effectivity for hub beacons. Default is 0.5. +ab-hub-beacon-distribution-effectivity-bonus-per-quality-level=Sets the distribution effectivity bonus per quality level for hub beacons. Default is 0.1. + +ab-isolation-beacon-supply-area-distance=Sets the supply area distance for isolation beacons. Default is 30. +ab-isolation-beacon-module-slots=Sets the number of module slots for isolation beacons. Default is 10. +ab-isolation-beacon-distribution-effectivity=Sets the distribution effectivity for isolation beacons. Default is 0.5. +ab-isolation-beacon-distribution-effectivity-bonus-per-quality-level=Sets the distribution effectivity bonus per quality level for isolation beacons. Default is 0.1. +ab-isolation-beacon-size-six=Sets the size of the isolation beacon to 6 instead of 5 to make it centralizable in even grids. [string-mod-setting] ab-technology-layout-tech-1=1 - No new technologies @@ -156,7 +225,7 @@ effect_transmission_novel=Beacons with novel behaviors. effect_transmission_medium_range=Beacons with longer range. effect_transmission_long_range=Beacons with even longer range. ab-focused-beacon=Beacons with less range and more power. -ab-node-beacon=Beacons with more range and slightly more power. +ab-node-beacon=Beacons with configurable range and slightly more power. ab-conflux-beacon=Beacons with more range and significantly more power. ab-hub-beacon=Powerful long range beacons which change how closely nearby beacons can be placed to each other. ab-isolation-beacon=Powerful beacons with extra long range and strict exclusion areas. Cannot be used alongside other beacons. diff --git a/prototypes/conflux-beacon.lua b/prototypes/conflux-beacon.lua index 8e4a266..78b98cf 100644 --- a/prototypes/conflux-beacon.lua +++ b/prototypes/conflux-beacon.lua @@ -99,9 +99,9 @@ local beacon = { distribution_effectivity_bonus_per_quality_level = 0.1, profile = {1.3334, 1.2, 1.08, 1, 0.9, 0.7978, 0.7042, 0.6258, 0.567, 0.5158, 0.4741, 0.438, 0.4052, 0.3786, 0.3534, 0.3313, 0.3118, 0.2945, 0.2789, 0.265}, beacon_counter = "total", - supply_area_distance = 9, -- extends from edge of collision box (22x22) + supply_area_distance = settings.startup["ab-conflux-beacon-supply-area-distance"].value, -- extends from edge of collision box (22x22) -- exclusion_area_distance = 12 (28x28; hardcoded in control.lua) - module_slots = 6, + module_slots = settings.startup["ab-conflux-beacon-module-slots"].value, icons_positioning = {{ inventory_index = defines.inventory.beacon_modules, shift = {0, 0.5}, diff --git a/prototypes/focused-beacon.lua b/prototypes/focused-beacon.lua index d23d8c2..1c68208 100644 --- a/prototypes/focused-beacon.lua +++ b/prototypes/focused-beacon.lua @@ -95,13 +95,13 @@ local beacon = { selection_box = { { -1, -1 }, { 1, 1 } }, drawing_box_vertical_extension = 0.6, allowed_effects = {"consumption", "speed", "pollution"}, - distribution_effectivity = 0.75, - distribution_effectivity_bonus_per_quality_level = 0.1, + distribution_effectivity = settings.startup["ab-focused-beacon-distribution-effectivity"].value, + distribution_effectivity_bonus_per_quality_level = settings.startup["ab-focused-beacon-distribution-effectivity-bonus-per-quality-level"].value, profile = {1.556, 1.334, 1.15, 1, 0.86, 0.75, 0.66, 0.59, 0.5333, 0.4868, 0.45, 0.414, 0.3872, 0.3635, 0.3423, 0.3233, 0.3059, 0.2901, 0.2755, 0.2621}, beacon_counter = "total", - supply_area_distance = 2, -- extends from edge of collision box (6x6) + supply_area_distance = settings.startup["ab-focused-beacon-supply-area-distance"].value, -- extends from edge of collision box (6x6) -- exclusion_area_distance = 3 (8x8; hardcoded in control.lua) - module_slots = 3, + module_slots = settings.startup["ab-focused-beacon-module-slots"].value, icons_positioning = {{ inventory_index = defines.inventory.beacon_modules, shift = {0, 0.25}, diff --git a/prototypes/hub-beacon.lua b/prototypes/hub-beacon.lua index 99afe6c..63dafc6 100644 --- a/prototypes/hub-beacon.lua +++ b/prototypes/hub-beacon.lua @@ -96,13 +96,13 @@ local beacon = { selection_box = { { -2, -2 }, { 2, 2 } }, drawing_box_vertical_extension = 2.7, allowed_effects = {"consumption", "speed", "pollution"}, - distribution_effectivity = 0.5, - distribution_effectivity_bonus_per_quality_level = 0.1, + distribution_effectivity = settings.startup["ab-hub-beacon-distribution-effectivity"].value, + distribution_effectivity_bonus_per_quality_level = settings.startup["ab-hub-beacon-distribution-effectivity-bonus-per-quality-level"].value, profile = {1, 0.97, 0.95, 0.9334, 0.93, 0.9275, 0.925, 0.9225, 0.92, 0}, beacon_counter = "total", - supply_area_distance = 14, -- extends from edge of collision box (32x32) + supply_area_distance = settings.startup["ab-hub-beacon-supply-area-distance"].value, -- extends from edge of collision box (32x32) -- exclusion_area_distance = 34 (72x72; hardcoded in control.lua) - module_slots = 9, + module_slots = settings.startup["ab-hub-beacon-module-slots"].value, icons_positioning = {{ inventory_index = defines.inventory.beacon_modules, shift = {0, 0.1}, diff --git a/prototypes/isolation-beacon.lua b/prototypes/isolation-beacon.lua index 808d978..06589ac 100644 --- a/prototypes/isolation-beacon.lua +++ b/prototypes/isolation-beacon.lua @@ -71,14 +71,15 @@ local beacon = { selection_box = { { -2.5, -2.5 }, { 2.5, 2.5 } }, drawing_box_vertical_extension = 3.3, allowed_effects = {"consumption", "speed", "pollution"}, - distribution_effectivity = 0.5, - distribution_effectivity_bonus_per_quality_level = 0.1, - profile = {1,0}, + distribution_effectivity = settings.startup["ab-isolation-beacon-distribution-effectivity"].value, + distribution_effectivity_bonus_per_quality_level = settings.startup + ["ab-isolation-beacon-distribution-effectivity-bonus-per-quality-level"].value, + profile = { 1, 0 }, beacon_counter = "same_type", - supply_area_distance = 30, -- extends from edge of collision box (65x65) + supply_area_distance = settings.startup["ab-isolation-beacon-supply-area-distance"].value, -- extends from edge of collision box (65x65) -- exclusion_area_distance = 38 (81x81 strict; hardcoded in control.lua) - module_slots = 10, - icons_positioning = {{ + module_slots = settings.startup["ab-isolation-beacon-module-slots"].value, + icons_positioning = { { inventory_index = defines.inventory.beacon_modules, shift = {0, 0.5}, max_icons_per_row = 5, @@ -128,6 +129,10 @@ local beacon = { if not feature_flags["freezing"] then beacon.heating_energy = nil end if not feature_flags["quality"] then beacon.distribution_effectivity_bonus_per_quality_level = nil end +if settings.startup["ab-isolation-beacon-size-six"] then + beacon.collision_box = { { -2.75, -2.75 }, { 2.75, 2.75 } } +end + local technology = {{ icon = "__alternative-beacons__/graphics/tech-isolation.png", icon_size = 256 diff --git a/prototypes/node-beacon.lua b/prototypes/node-beacon.lua index ebd4c93..ca41a7c 100644 --- a/prototypes/node-beacon.lua +++ b/prototypes/node-beacon.lua @@ -95,13 +95,13 @@ local beacon = { selection_box = { { -1.5, -1.5 }, { 1.5, 1.5 } }, drawing_box_vertical_extension = 1, allowed_effects = {"consumption", "speed", "pollution"}, - distribution_effectivity = 0.5, - distribution_effectivity_bonus_per_quality_level = 0.1, + distribution_effectivity = settings.startup["ab-node-beacon-distribution-effectivity"].value, + distribution_effectivity_bonus_per_quality_level = settings.startup["ab-node-beacon-distribution-effectivity-bonus-per-quality-level"].value, profile = {2, 1.5, 1.22, 1.07, 0.9597, 0.8875, 0.833, 0.7805, 0.735, 0.6893, 0.6507, 0.6151, 0.5876, 0.5597, 0.5359, 0.516, 0.4976, 0.4795, 0.4626, 0.4468}, beacon_counter = "total", - supply_area_distance = 8, -- extends from edge of collision box (19x19) + supply_area_distance = settings.startup["ab-node-beacon-supply-area-distance"].value, -- extends from edge of collision box -- exclusion_area_distance = 8 (19x19; coded in control.lua) - module_slots = 3, + module_slots = settings.startup["ab-node-beacon-module-slots"].value, icons_positioning = {{ inventory_index = defines.inventory.beacon_modules, shift = {0, 0.5}, diff --git a/prototypes/standard-beacon.lua b/prototypes/standard-beacon.lua index 00bc915..f3bd4c0 100644 --- a/prototypes/standard-beacon.lua +++ b/prototypes/standard-beacon.lua @@ -39,12 +39,12 @@ local beacon = { selection_box = {{-1.5, -1.5}, {1.5, 1.5}}, drawing_box_vertical_extension = 0.2, allowed_effects = {"consumption", "speed", "pollution"}, - distribution_effectivity = 1.5, - distribution_effectivity_bonus_per_quality_level = 0.2, + distribution_effectivity = settings.startup["ab-standard-beacon-distribution-effectivity"].value, + distribution_effectivity_bonus_per_quality_level = settings.startup["ab-standard-beacon-distribution-effectivity-bonus-per-quality-level"].value, profile = {1, 0.7071, 0.5773, 0.5, 0.4472, 0.4082, 0.3779, 0.3535, 0.3333, 0.3162, 0.3015, 0.2887, 0.2773, 0.2672, 0.2582, 0.25, 0.2425, 0.2357, 0.2294, 0.2236, 0.2182, 0.2132, 0.2085, 0.2041, 0.2, 0.1961, 0.1924, 0.189, 0.1857, 0.1825, 0.1796, 0.1768, 0.1741, 0.1715, 0.169, 0.1666, 0.1644, 0.1622, 0.1601, 0.1581, 0.1561, 0.1543, 0.1525, 0.1507, 0.149, 0.1474, 0.1458, 0.1443, 0.1428, 0.1414, 0.14, 0.1387, 0.1373, 0.1361, 0.1348, 0.1336, 0.1324, 0.1313, 0.1302, 0.1291, 0.128, 0.127, 0.126, 0.125, 0.124, 0.1231, 0.1221, 0.1212, 0.1204, 0.1195, 0.1187, 0.1178, 0.117, 0.1162, 0.1154, 0.1147, 0.1139, 0.1132, 0.1125, 0.1118, 0.1111, 0.1104, 0.1097, 0.1091, 0.1084, 0.1078, 0.1072, 0.1066, 0.106, 0.1054, 0.1048, 0.1042, 0.1037, 0.1031, 0.1026, 0.102, 0.1015, 0.101, 0.1005, 0.1}, beacon_counter = "total", - supply_area_distance = 3, -- changed from 3.0 so the range is exactly 1/4 of a tile away from the edge of the distribution area to match other beacons - module_slots = 2, + supply_area_distance = settings.startup["ab-standard-beacon-supply-area-distance"].value, -- extends from edge of collision box + module_slots = settings.startup["ab-standard-beacon-module-slots"].value, icons_positioning = {{ inventory_index = defines.inventory.beacon_modules, shift = {0, 0.5}, diff --git a/scripts/globals.lua b/scripts/globals.lua index 1f3437f..f51380e 100644 --- a/scripts/globals.lua +++ b/scripts/globals.lua @@ -14,20 +14,21 @@ function globals.setup(beacon_prototypes) } local custom_exclusion_ranges = { -- these beacons are given custom exclusion ranges: "strict" ranges disable beacons whose distribution areas overlap them, "solo" means the smallest range for "strict" beacons which is large enough to prevent synergy with other beacons - ["ab-focused-beacon"] = {add=1}, - ["ab-conflux-beacon"] = {add=3}, - ["ab-hub-beacon"] = {add=20}, - ["ab-isolation-beacon"] = {add=8, mode="strict"}, - ["se-basic-beacon"] = {value="solo", mode="strict"}, - ["se-compact-beacon"] = {value="solo", mode="strict"}, - ["se-compact-beacon-2"] = {value="solo", mode="strict"}, - ["se-wide-beacon"] = {value="solo", mode="strict"}, - ["se-wide-beacon-2"] = {value="solo", mode="strict"}, - ["ei_copper-beacon"] = {value="solo", mode="strict"}, - ["ei_iron-beacon"] = {value="solo", mode="strict"}, - ["el_ki_beacon_entity"] = {value="solo", mode="strict"}, - ["fi_ki_beacon_entity"] = {value="solo", mode="strict"}, - ["fu_ki_beacon_entity"] = {value="solo", mode="strict"} + ["ab-focused-beacon"] = {add=settings.startup["ab-focused-beacon-exclusion-range"].value}, + ["ab-node-beacon"] = {add=settings.startup["ab-node-beacon-exclusion-range"].value}, + ["ab-conflux-beacon"] = {add=settings.startup["ab-conflux-beacon-exclusion-range"].value}, + ["ab-hub-beacon"] = {add=settings.startup["ab-hub-beacon-exclusion-range"].value}, + ["ab-isolation-beacon"] = {add=settings.startup["ab-isolation-beacon-exclusion-range"].value, mode="strict"}, + ["se-basic-beacon"] = { value = "solo", mode = "strict" }, + ["se-compact-beacon"] = { value = "solo", mode = "strict" }, + ["se-compact-beacon-2"] = { value = "solo", mode = "strict" }, + ["se-wide-beacon"] = { value = "solo", mode = "strict" }, + ["se-wide-beacon-2"] = { value = "solo", mode = "strict" }, + ["ei_copper-beacon"] = { value = "solo", mode = "strict" }, + ["ei_iron-beacon"] = { value = "solo", mode = "strict" }, + ["el_ki_beacon_entity"] = { value = "solo", mode = "strict" }, + ["fi_ki_beacon_entity"] = { value = "solo", mode = "strict" }, + ["fu_ki_beacon_entity"] = { value = "solo", mode = "strict" } -- entries are added below for: Pyanodons AM-FM beacons, Bob's "beacon-3" (and mini/micro versions), productivity/speed beacons from Advanced Modules, beacons from Fast Furnaces, "beacon3", and "productivity-beacon" } local updated_repeating_beacons = { -- these beacons don't disable any of the beacons in the list associated with them diff --git a/settings-beacons.lua b/settings-beacons.lua new file mode 100644 index 0000000..8300db8 --- /dev/null +++ b/settings-beacons.lua @@ -0,0 +1,284 @@ +-- settings-beacons.lua +-- Additional settings to make beacon properties configurable + +data:extend({ + -- Standard Beacon settings + { + type = "int-setting", + name = "ab-standard-beacon-supply-area-distance", + setting_type = "startup", + default_value = 3, + minimum_value = 1, + maximum_value = 10, + order = "iba-a", + }, + { + type = "int-setting", + name = "ab-standard-beacon-module-slots", + setting_type = "startup", + default_value = 2, + minimum_value = 1, + maximum_value = 12, + order = "iba-b", + }, + { + type = "double-setting", + name = "ab-standard-beacon-distribution-effectivity", + setting_type = "startup", + default_value = 0.5, + minimum_value = 0.1, + maximum_value = 2.0, + order = "iba-c", + }, + { + type = "double-setting", + name = "ab-standard-beacon-distribution-effectivity-bonus-per-quality-level", + setting_type = "startup", + default_value = 0.1, + minimum_value = 0.0, + maximum_value = 0.5, + order = "iba-d", + }, + + -- Focused Beacon settings + { + type = "int-setting", + name = "ab-focused-beacon-supply-area-distance", + setting_type = "startup", + default_value = 2, + minimum_value = 1, + maximum_value = 10, + order = "ibc-a", + }, + { + type = "int-setting", + name = "ab-focused-beacon-exclusion-range", + setting_type = "startup", + default_value = 1, + minimum_value = 0, + maximum_value = 10, + order = "ibc-b", + }, + { + type = "int-setting", + name = "ab-focused-beacon-module-slots", + setting_type = "startup", + default_value = 3, + minimum_value = 1, + maximum_value = 12, + order = "ibc-c", + }, + { + type = "double-setting", + name = "ab-focused-beacon-distribution-effectivity", + setting_type = "startup", + default_value = 0.75, + minimum_value = 0.1, + maximum_value = 2.0, + order = "ibc-d", + }, + { + type = "double-setting", + name = "ab-focused-beacon-distribution-effectivity-bonus-per-quality-level", + setting_type = "startup", + default_value = 0.1, + minimum_value = 0.0, + maximum_value = 0.5, + order = "ibc-e", + }, + + -- Node Beacon additional settings (supply-area-distance already exists) + { + type = "int-setting", + name = "ab-node-beacon-supply-area-distance", + setting_type = "startup", + default_value = 8, + minimum_value = 3, + maximum_value = 15, + order = "ibd-a", + }, + { + type = "int-setting", + name = "ab-node-beacon-exclusion-range", + setting_type = "startup", + default_value = 0, + minimum_value = 0, + maximum_value = 10, + order = "ibd-b", + }, + { + type = "int-setting", + name = "ab-node-beacon-module-slots", + setting_type = "startup", + default_value = 3, + minimum_value = 1, + maximum_value = 12, + order = "ibd-c", + }, + { + type = "double-setting", + name = "ab-node-beacon-distribution-effectivity", + setting_type = "startup", + default_value = 0.5, + minimum_value = 0.1, + maximum_value = 2.0, + order = "ibd-d", + }, + { + type = "double-setting", + name = "ab-node-beacon-distribution-effectivity-bonus-per-quality-level", + setting_type = "startup", + default_value = 0.1, + minimum_value = 0.0, + maximum_value = 0.5, + order = "ibd-e", + }, + + -- Conflux Beacon settings + { + type = "int-setting", + name = "ab-conflux-beacon-supply-area-distance", + setting_type = "startup", + default_value = 9, + minimum_value = 3, + maximum_value = 20, + order = "ibe-a", + }, + { + type = "int-setting", + name = "ab-conflux-beacon-exclusion-range", + setting_type = "startup", + default_value = 3, + minimum_value = 0, + maximum_value = 10, + order = "ibe-b", + }, + { + type = "int-setting", + name = "ab-conflux-beacon-module-slots", + setting_type = "startup", + default_value = 6, + minimum_value = 1, + maximum_value = 12, + order = "ibe-c", + }, + { + type = "double-setting", + name = "ab-conflux-beacon-distribution-effectivity", + setting_type = "startup", + default_value = 0.5, + minimum_value = 0.1, + maximum_value = 2.0, + order = "ibe-d", + }, + { + type = "double-setting", + name = "ab-conflux-beacon-distribution-effectivity-bonus-per-quality-level", + setting_type = "startup", + default_value = 0.1, + minimum_value = 0.0, + maximum_value = 0.5, + order = "ibe-e", + }, + + -- Hub Beacon settings + { + type = "int-setting", + name = "ab-hub-beacon-supply-area-distance", + setting_type = "startup", + default_value = 14, + minimum_value = 5, + maximum_value = 30, + order = "ibf-a", + }, + { + type = "int-setting", + name = "ab-hub-beacon-exclusion-range", + setting_type = "startup", + default_value = 20, + minimum_value = 0, + maximum_value = 30, + order = "ibf-b", + }, + { + type = "int-setting", + name = "ab-hub-beacon-module-slots", + setting_type = "startup", + default_value = 9, + minimum_value = 1, + maximum_value = 16, + order = "ibf-c", + }, + { + type = "double-setting", + name = "ab-hub-beacon-distribution-effectivity", + setting_type = "startup", + default_value = 0.5, + minimum_value = 0.1, + maximum_value = 2.0, + order = "ibf-d", + }, + { + type = "double-setting", + name = "ab-hub-beacon-distribution-effectivity-bonus-per-quality-level", + setting_type = "startup", + default_value = 0.1, + minimum_value = 0.0, + maximum_value = 0.5, + order = "ibf-e", + }, + + -- Isolation Beacon settings + { + type = "int-setting", + name = "ab-isolation-beacon-supply-area-distance", + setting_type = "startup", + default_value = 30, + minimum_value = 10, + maximum_value = 50, + order = "ibg-a", + }, + { + type = "int-setting", + name = "ab-isolation-beacon-exclusion-range", + setting_type = "startup", + default_value = 8, + minimum_value = 0, + maximum_value = 20, + order = "ibg-b", + }, + { + type = "int-setting", + name = "ab-isolation-beacon-module-slots", + setting_type = "startup", + default_value = 10, + minimum_value = 1, + maximum_value = 20, + order = "ibg-c", + }, + { + type = "double-setting", + name = "ab-isolation-beacon-distribution-effectivity", + setting_type = "startup", + default_value = 0.5, + minimum_value = 0.1, + maximum_value = 2.0, + order = "ibg-d", + }, + { + type = "double-setting", + name = "ab-isolation-beacon-distribution-effectivity-bonus-per-quality-level", + setting_type = "startup", + default_value = 0.1, + minimum_value = 0.0, + maximum_value = 0.5, + order = "ibg-e", + }, + { + type = "bool-setting", + name = "ab-isolation-beacon-size-six", + setting_type = "startup", + default_value = false, + order = "ibg-f", + }, +}) diff --git a/settings.lua b/settings.lua index 5c97e2a..233a845 100644 --- a/settings.lua +++ b/settings.lua @@ -1,5 +1,7 @@ --- settings.lua +require("settings-beacons") + data:extend ({ { type = "bool-setting",