From c5d09f50fad0488d4e95ad3ced4608845376f61a Mon Sep 17 00:00:00 2001 From: theorangeangle <36866626+theorangeangle@users.noreply.github.com> Date: Wed, 28 Aug 2019 21:40:27 -0500 Subject: [PATCH 01/21] fixed broken image sprite and replaced with a parity --- map_gen/maps/diggy/feature/diggy_cave_collapse.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/map_gen/maps/diggy/feature/diggy_cave_collapse.lua b/map_gen/maps/diggy/feature/diggy_cave_collapse.lua index 1054e170..197c6d34 100644 --- a/map_gen/maps/diggy/feature/diggy_cave_collapse.lua +++ b/map_gen/maps/diggy/feature/diggy_cave_collapse.lua @@ -334,8 +334,9 @@ end @param global_config Table {@see Diggy.Config}. ]] +--Special thanks to justarandomgeek from the main factorio discord guild for helping to teach orange how image classes work. function DiggyCaveCollapse.register(cfg) - ScoreTracker.register(cave_collapses_name, {'diggy.score_cave_collapses'}, '[img=entity.assembler-wreck]') + ScoreTracker.register(cave_collapses_name, {'diggy.score_cave_collapses'}, '[img=entity.small-remnants]') local global_to_show = global.config.score.global_to_show global_to_show[#global_to_show + 1] = cave_collapses_name From 616541bee959c101f71e0da32f12c9aff0d7d5e6 Mon Sep 17 00:00:00 2001 From: theorangeangle <36866626+theorangeangle@users.noreply.github.com> Date: Wed, 28 Aug 2019 21:50:34 -0500 Subject: [PATCH 02/21] fixed whitespace and added map preview for "loading screen" --- .../.map_previews/loading_screen_845x845.PNG | Bin 0 -> 465247 bytes .../maps/diggy/feature/diggy_cave_collapse.lua | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 map_gen/data/.map_previews/loading_screen_845x845.PNG diff --git a/map_gen/data/.map_previews/loading_screen_845x845.PNG b/map_gen/data/.map_previews/loading_screen_845x845.PNG new file mode 100644 index 0000000000000000000000000000000000000000..9af0b2c2f53ea243958b67b4de605c1323e16fc4 GIT binary patch literal 465247 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
  • mnw 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 Date: Sun, 21 Jul 2019 18:37:03 +0100 Subject: [PATCH 03/21] outpost balance --- .../outpost_data/big_chemical_factory.lua | 10 ++-- .../outpost_data/big_circuit_factory.lua | 2 +- .../outpost_data/big_copper_plate_factory.lua | 30 ++++++++++- .../outpost_data/big_gear_factory.lua | 50 +++++++++++++++---- .../outpost_data/big_iron_plate_factory.lua | 2 +- .../outpost_data/medium_gear_factory.lua | 27 +++++++++- .../outpost_data/small_gear_factory.lua | 38 +++++++++++++- .../outpost_data/small_oil_refinery.lua | 12 ++--- 8 files changed, 142 insertions(+), 29 deletions(-) diff --git a/map_gen/maps/crash_site/outpost_data/big_chemical_factory.lua b/map_gen/maps/crash_site/outpost_data/big_chemical_factory.lua index 32d99a3e..33609f71 100644 --- a/map_gen/maps/crash_site/outpost_data/big_chemical_factory.lua +++ b/map_gen/maps/crash_site/outpost_data/big_chemical_factory.lua @@ -34,15 +34,15 @@ local factory = { local factory_b = { callback = ob.magic_item_crafting_callback, data = { - recipe = 'sulfuric-acid', - output = {min_rate = 10 / 60, distance_factor = 10 / 60 / 512, item = 'sulfuric-acid', fluidbox_index = 2} + recipe = 'explosives', + output = {min_rate = 2 / 60, distance_factor = 1 / 60 / 512, item = 'explosives'} } } local factory_c = { callback = ob.magic_item_crafting_callback, data = { recipe = 'rocket-fuel', - output = {min_rate = 0.5 / 60, distance_factor = 0.5 / 60 / 512, item = 'rocket-fuel'} + output = {min_rate = 0.7 / 60, distance_factor = 0.7 / 60 / 512, item = 'rocket-fuel'} } } @@ -120,7 +120,7 @@ local level3 = { factory = factory, fallback = level2, - max_count = 6 + max_count = 5 } ) @@ -130,7 +130,7 @@ local level3b = { factory = factory_b, fallback = level3, - max_count = 3 + max_count = 4 } ) diff --git a/map_gen/maps/crash_site/outpost_data/big_circuit_factory.lua b/map_gen/maps/crash_site/outpost_data/big_circuit_factory.lua index 5783c633..e9c576d5 100644 --- a/map_gen/maps/crash_site/outpost_data/big_circuit_factory.lua +++ b/map_gen/maps/crash_site/outpost_data/big_circuit_factory.lua @@ -40,7 +40,7 @@ local factory_d = { callback = ob.magic_item_crafting_callback, data = { recipe = 'rocket-control-unit', - output = {min_rate = 0.05 / 60, distance_factor = 0.05 / 60 / 512, item = 'rocket-control-unit'} + output = {min_rate = 0.5 / 60, distance_factor = 0.5 / 60 / 512, item = 'rocket-control-unit'} } } diff --git a/map_gen/maps/crash_site/outpost_data/big_copper_plate_factory.lua b/map_gen/maps/crash_site/outpost_data/big_copper_plate_factory.lua index 6c6d2699..a3af7a63 100644 --- a/map_gen/maps/crash_site/outpost_data/big_copper_plate_factory.lua +++ b/map_gen/maps/crash_site/outpost_data/big_copper_plate_factory.lua @@ -6,7 +6,8 @@ local loot = { {stack = {name = 'coin', count = 250, distance_factor = 1 / 20}, weight = 5}, {stack = {name = 'copper-ore', count = 2400}, weight = 2}, {stack = {name = 'copper-cable', count = 1500, distance_factor = 1 / 2}, weight = 2}, - {stack = {name = 'copper-plate', count = 1000, distance_factor = 1 / 5}, weight = 8} + {stack = {name = 'copper-plate', count = 1000, distance_factor = 1 / 5}, weight = 8}, + {stack = {name = 'low-density-structure', count = 30, distance_factor = 1 / 20}, weight = 1} } local weights = ob.prepare_weighted_loot(loot) @@ -26,6 +27,14 @@ local factory = { } } +local factory_b = { + callback = ob.magic_item_crafting_callback, + data = { + recipe = 'low-density-structure', + output = {min_rate = 0.35 / 60, distance_factor = 0.35 / 60 / 512, item = 'low-density-structure'} + } +} + local market = { callback = ob.market_set_items_callback, data = { @@ -44,11 +53,18 @@ local market = { price = 0.3, distance_factor = 0.15 / 512, min_price = 0.03 + }, + { + name = 'low-density-structure', + price = 25, + distance_factor = 12.5 / 512, + min_price = 2.5 } } } local base_factory = require 'map_gen.maps.crash_site.outpost_data.medium_furance' +local base_factory2 = require 'map_gen.maps.crash_site.outpost_data.big_factory' local level2 = ob.extend_1_way(base_factory[1], {loot = {callback = loot_callback}}) local level3 = @@ -60,12 +76,22 @@ local level3 = } ) +local level3b = + ob.extend_1_way( + base_factory2[2], + { + factory = factory_b, + fallback = level2, + max_count = 1 + } +) + local level4 = ob.extend_1_way( base_factory[3], { market = market, - fallback = level3 + fallback = level3b } ) return { diff --git a/map_gen/maps/crash_site/outpost_data/big_gear_factory.lua b/map_gen/maps/crash_site/outpost_data/big_gear_factory.lua index 2ed82f08..a38f850f 100644 --- a/map_gen/maps/crash_site/outpost_data/big_gear_factory.lua +++ b/map_gen/maps/crash_site/outpost_data/big_gear_factory.lua @@ -9,6 +9,7 @@ local loot = { {stack = {name = 'iron-gear-wheel', count = 4000, distance_factor = 2}, weight = 10}, {stack = {name = 'engine-unit', count = 800, distance_factor = 1 / 2}, weight = 5}, {stack = {name = 'electric-engine-unit', count = 400, distance_factor = 1 / 2}, weight = 5}, + {stack = {name = 'flying-robot-frame', count = 400, distance_factor = 1 / 2}, weight = 5}, {stack = {name = 'rail', count = 2500, distance_factor = 1}, weight = 1}, {stack = {name = 'tank', count = 5, distance_factor = 1 / 128}, weight = 1}, {stack = {name = 'locomotive', count = 5, distance_factor = 1 / 128}, weight = 1}, @@ -36,16 +37,16 @@ local factory = { local factory_b = { callback = ob.magic_item_crafting_callback, data = { - recipe = 'engine-unit', - output = {min_rate = 1 / 60, distance_factor = 1 / 60 / 512, item = 'engine-unit'} + recipe = 'flying-robot-frame', + output = {min_rate = 1 / 60, distance_factor = 1 / 60 / 512, item = 'flying-robot-frame'} } } local factory_c = { callback = ob.magic_item_crafting_callback, data = { - recipe = 'electric-engine-unit', - output = {min_rate = 1 / 60, distance_factor = 1 / 60 / 512, item = 'electric-engine-unit'} + recipe = 'satellite', + output = {min_rate = 0.01 / 60, distance_factor = 0.01 / 60 / 512, item = 'satellite'} } } @@ -86,6 +87,12 @@ local market = { distance_factor = 4 / 512, min_price = 0.8 }, + { + name = 'flying-robot-frame', + price = 12, + distance_factor = 4 / 512, + min_price = 1.2 + }, { name = 'car', price = 50, @@ -94,10 +101,28 @@ local market = { }, { name = 'rail', - price = 1, + price = 0.5, distance_factor = 0.5 / 512, min_price = 0.1 }, + { + name = 'rail-signal', + price = 2, + distance_factor = 1 / 512, + min_price = 0.1 + }, + { + name = 'rail-chain-signal', + price = 2, + distance_factor = 1 / 512, + min_price = 0.1 + }, + { + name = 'train-stop', + price = 20, + distance_factor = 10 / 512, + min_price = 2 + }, { name = 'tank', price = 250, @@ -121,6 +146,12 @@ local market = { price = 40, distance_factor = 20 / 512, min_price = 4 + }, + { + name = 'satellite', + price = 300, + distance_factor = 50 / 512, + min_price = 50 } } } @@ -143,7 +174,7 @@ local level3b = { factory = factory_b, fallback = level2, - max_count = 2 + max_count = 4 } ) local level3c = @@ -152,7 +183,7 @@ local level3c = { factory = factory_c, fallback = level3b, - max_count = 2 + max_count = 1 } ) local level4 = @@ -168,12 +199,13 @@ return { blocks = 9, variance = 3, min_step = 2, - max_level = 2 + max_level = 3 }, walls = { require 'map_gen.maps.crash_site.outpost_data.heavy_gun_turrets' }, bases = { - {level4, level3, level2} + {level3, level2}, + {level4} } } diff --git a/map_gen/maps/crash_site/outpost_data/big_iron_plate_factory.lua b/map_gen/maps/crash_site/outpost_data/big_iron_plate_factory.lua index 91f54cda..074b894a 100644 --- a/map_gen/maps/crash_site/outpost_data/big_iron_plate_factory.lua +++ b/map_gen/maps/crash_site/outpost_data/big_iron_plate_factory.lua @@ -40,7 +40,7 @@ local factory_c = { callback = ob.magic_item_crafting_callback, data = { recipe = 'low-density-structure', - output = {min_rate = 0.1 / 60, distance_factor = 0.1 / 60 / 512, item = 'low-density-structure'} + output = {min_rate = 0.35 / 60, distance_factor = 0.35 / 60 / 512, item = 'low-density-structure'} } } diff --git a/map_gen/maps/crash_site/outpost_data/medium_gear_factory.lua b/map_gen/maps/crash_site/outpost_data/medium_gear_factory.lua index 9e477200..f37db5cf 100644 --- a/map_gen/maps/crash_site/outpost_data/medium_gear_factory.lua +++ b/map_gen/maps/crash_site/outpost_data/medium_gear_factory.lua @@ -9,6 +9,7 @@ local loot = { {stack = {name = 'iron-gear-wheel', count = 1500, distance_factor = 1}, weight = 10}, {stack = {name = 'engine-unit', count = 200, distance_factor = 1 / 2}, weight = 5}, {stack = {name = 'electric-engine-unit', count = 100, distance_factor = 1 / 2}, weight = 5}, + {stack = {name = 'flying-robot-frame', count = 50, distance_factor = 1 / 2}, weight = 5}, {stack = {name = 'rail', count = 500, distance_factor = 1}, weight = 2}, {stack = {name = 'tank', count = 1, distance_factor = 1 / 128}, weight = 2}, {stack = {name = 'locomotive', count = 5, distance_factor = 1 / 128}, weight = 2}, @@ -86,6 +87,12 @@ local market = { distance_factor = 4 / 512, min_price = 0.8 }, + { + name = 'flying-robot-frame', + price = 12, + distance_factor = 4 / 512, + min_price = 1.2 + }, { name = 'car', price = 50, @@ -118,9 +125,27 @@ local market = { }, { name = 'rail', - price = 1, + price = 0.5, distance_factor = 0.5 / 512, min_price = 0.1 + }, + { + name = 'rail-signal', + price = 2, + distance_factor = 1 / 512, + min_price = 0.1 + }, + { + name = 'rail-chain-signal', + price = 2, + distance_factor = 1 / 512, + min_price = 0.1 + }, + { + name = 'train-stop', + price = 20, + distance_factor = 10 / 512, + min_price = 2 } } } diff --git a/map_gen/maps/crash_site/outpost_data/small_gear_factory.lua b/map_gen/maps/crash_site/outpost_data/small_gear_factory.lua index ee907f60..41cbdef2 100644 --- a/map_gen/maps/crash_site/outpost_data/small_gear_factory.lua +++ b/map_gen/maps/crash_site/outpost_data/small_gear_factory.lua @@ -82,11 +82,47 @@ local market = { distance_factor = 25 / 512, min_price = 40 }, + { + name = 'locomotive', + price = 100, + distance_factor = 50 / 512, + min_price = 40 + }, + { + name = 'cargo-wagon', + price = 20, + distance_factor = 10 / 512, + min_price = 10 + }, + { + name = 'fluid-wagon', + price = 40, + distance_factor = 20 / 512, + min_price = 20 + }, { name = 'rail', - price = 1, + price = 0.5, distance_factor = 0.5 / 512, min_price = 0.1 + }, + { + name = 'rail-signal', + price = 2, + distance_factor = 1 / 512, + min_price = 0.1 + }, + { + name = 'rail-chain-signal', + price = 2, + distance_factor = 1 / 512, + min_price = 0.1 + }, + { + name = 'train-stop', + price = 20, + distance_factor = 10 / 512, + min_price = 2 } } } diff --git a/map_gen/maps/crash_site/outpost_data/small_oil_refinery.lua b/map_gen/maps/crash_site/outpost_data/small_oil_refinery.lua index b3111584..d6e4325a 100644 --- a/map_gen/maps/crash_site/outpost_data/small_oil_refinery.lua +++ b/map_gen/maps/crash_site/outpost_data/small_oil_refinery.lua @@ -4,12 +4,8 @@ local Token = require 'utils.token' local loot = { {weight = 10}, {stack = {name = 'coin', count = 50, distance_factor = 1 / 20}, weight = 5}, - {stack = {name = 'crude-oil-barrel', count = 100, distance_factor = 1 / 20}, weight = 2}, - {stack = {name = 'heavy-oil-barrel', count = 100, distance_factor = 1 / 20}, weight = 2}, - {stack = {name = 'light-oil-barrel', count = 100, distance_factor = 1 / 20}, weight = 2}, - {stack = {name = 'petroleum-gas-barrel', count = 100, distance_factor = 1 / 20}, weight = 2}, - {stack = {name = 'lubricant-barrel', count = 100, distance_factor = 1 / 20}, weight = 1}, - {stack = {name = 'sulfuric-acid-barrel', count = 100, distance_factor = 1 / 20}, weight = 1} + {stack = {name = 'crude-oil-barrel', count = 100, distance_factor = 1 / 20}, weight = 5}, + {stack = {name = 'petroleum-gas-barrel', count = 100, distance_factor = 1 / 20}, weight = 5} } local weights = ob.prepare_weighted_loot(loot) @@ -41,9 +37,7 @@ local factory = { recipe = 'basic-oil-processing', keep_active = true, output = { - {min_rate = 3.75 / 60, distance_factor = 3.75 / 60 / 512, item = 'heavy-oil', fluidbox_index = 2}, - {min_rate = 3.75 / 60, distance_factor = 3.75 / 60 / 512, item = 'light-oil', fluidbox_index = 3}, - {min_rate = 5 / 60, distance_factor = 5 / 60 / 512, item = 'petroleum-gas', fluidbox_index = 4} + {min_rate = 10 / 60, distance_factor = 10 / 60 / 512, item = 'petroleum-gas', fluidbox_index = 2} } } } From eac5daa56fa119750fc246dcfec647c3fbbb5a3f Mon Sep 17 00:00:00 2001 From: grilledham Date: Thu, 25 Jul 2019 16:21:26 +0100 Subject: [PATCH 04/21] increased advanced circuit output --- map_gen/maps/crash_site/outpost_data/medium_circuit_factory.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/map_gen/maps/crash_site/outpost_data/medium_circuit_factory.lua b/map_gen/maps/crash_site/outpost_data/medium_circuit_factory.lua index f460b7ba..5b2d50a6 100644 --- a/map_gen/maps/crash_site/outpost_data/medium_circuit_factory.lua +++ b/map_gen/maps/crash_site/outpost_data/medium_circuit_factory.lua @@ -23,7 +23,7 @@ local factory_b = { callback = ob.magic_item_crafting_callback, data = { recipe = 'advanced-circuit', - output = {min_rate = 0.5 / 600, distance_factor = 0.5 / 600 / 512, item = 'advanced-circuit'} + output = {min_rate = 2.5 / 600, distance_factor = 2.5 / 600 / 512, item = 'advanced-circuit'} } } From b9354c614d74993ac30cb2938056b1d9b10c93bb Mon Sep 17 00:00:00 2001 From: grilledham Date: Thu, 25 Jul 2019 16:21:56 +0100 Subject: [PATCH 05/21] reverted small oil refinery changes --- .../crash_site/outpost_data/small_oil_refinery.lua | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/map_gen/maps/crash_site/outpost_data/small_oil_refinery.lua b/map_gen/maps/crash_site/outpost_data/small_oil_refinery.lua index d6e4325a..b3111584 100644 --- a/map_gen/maps/crash_site/outpost_data/small_oil_refinery.lua +++ b/map_gen/maps/crash_site/outpost_data/small_oil_refinery.lua @@ -4,8 +4,12 @@ local Token = require 'utils.token' local loot = { {weight = 10}, {stack = {name = 'coin', count = 50, distance_factor = 1 / 20}, weight = 5}, - {stack = {name = 'crude-oil-barrel', count = 100, distance_factor = 1 / 20}, weight = 5}, - {stack = {name = 'petroleum-gas-barrel', count = 100, distance_factor = 1 / 20}, weight = 5} + {stack = {name = 'crude-oil-barrel', count = 100, distance_factor = 1 / 20}, weight = 2}, + {stack = {name = 'heavy-oil-barrel', count = 100, distance_factor = 1 / 20}, weight = 2}, + {stack = {name = 'light-oil-barrel', count = 100, distance_factor = 1 / 20}, weight = 2}, + {stack = {name = 'petroleum-gas-barrel', count = 100, distance_factor = 1 / 20}, weight = 2}, + {stack = {name = 'lubricant-barrel', count = 100, distance_factor = 1 / 20}, weight = 1}, + {stack = {name = 'sulfuric-acid-barrel', count = 100, distance_factor = 1 / 20}, weight = 1} } local weights = ob.prepare_weighted_loot(loot) @@ -37,7 +41,9 @@ local factory = { recipe = 'basic-oil-processing', keep_active = true, output = { - {min_rate = 10 / 60, distance_factor = 10 / 60 / 512, item = 'petroleum-gas', fluidbox_index = 2} + {min_rate = 3.75 / 60, distance_factor = 3.75 / 60 / 512, item = 'heavy-oil', fluidbox_index = 2}, + {min_rate = 3.75 / 60, distance_factor = 3.75 / 60 / 512, item = 'light-oil', fluidbox_index = 3}, + {min_rate = 5 / 60, distance_factor = 5 / 60 / 512, item = 'petroleum-gas', fluidbox_index = 4} } } } From cf835fcf320d33dd34afe62e58732e411e5e844a Mon Sep 17 00:00:00 2001 From: grilledham Date: Sat, 27 Jul 2019 12:00:18 +0100 Subject: [PATCH 06/21] spawn market to neutral force --- map_gen/maps/crash_site.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/map_gen/maps/crash_site.lua b/map_gen/maps/crash_site.lua index 493bb80c..0df669de 100644 --- a/map_gen/maps/crash_site.lua +++ b/map_gen/maps/crash_site.lua @@ -748,7 +748,7 @@ local function init() size = 2, [1] = { market = market, - [15] = {entity = {name = 'market', callback = 'market'}}, + [15] = {entity = {name = 'market', force = 'neutral', callback = 'market'}}, [18] = {entity = {name = 'wooden-chest', force = 'player'}} }, [2] = { From fc7ed1e7357c0481d68cc0f2545d409c3ecbbbef Mon Sep 17 00:00:00 2001 From: grilledham Date: Sun, 28 Jul 2019 11:44:13 +0100 Subject: [PATCH 07/21] refactor to allow multiple crashsite presets --- map_gen/maps/crash_site.lua | 794 +------------------- map_gen/maps/crash_site/commands.lua | 55 +- map_gen/maps/crash_site/presets/normal.lua | 21 + map_gen/maps/crash_site/scenario.lua | 806 +++++++++++++++++++++ map_gen/maps/crash_site_desert.lua | 1 + 5 files changed, 860 insertions(+), 817 deletions(-) create mode 100644 map_gen/maps/crash_site/presets/normal.lua create mode 100644 map_gen/maps/crash_site/scenario.lua create mode 100644 map_gen/maps/crash_site_desert.lua diff --git a/map_gen/maps/crash_site.lua b/map_gen/maps/crash_site.lua index 0df669de..f227df94 100644 --- a/map_gen/maps/crash_site.lua +++ b/map_gen/maps/crash_site.lua @@ -1,793 +1 @@ -require 'map_gen.maps.crash_site.blueprint_extractor' -require 'map_gen.maps.crash_site.entity_died_events' -require 'map_gen.maps.crash_site.weapon_balance' -require 'map_gen.maps.crash_site.commands' - -local b = require 'map_gen.shared.builders' -local Global = require('utils.global') -local Random = require 'map_gen.shared.random' -local OutpostBuilder = require 'map_gen.maps.crash_site.outpost_builder' -local Token = require 'utils.token' -local Task = require 'utils.task' -local math = require 'utils.math' -local ScenarioInfo = require 'features.gui.info' -local table = require 'utils.table' -local RS = require 'map_gen.shared.redmew_surface' -local MGSP = require 'resources.map_gen_settings' -local config = require 'config' - -local degrees = math.degrees - -RS.set_map_gen_settings( - { - MGSP.grass_only, - MGSP.enable_water, - { - terrain_segmentation = 6, - water = 0.25 - }, - MGSP.starting_area_very_low, - MGSP.ore_oil_none, - MGSP.enemy_none, - MGSP.cliff_none - } -) - --- Comment out this block if you're getting scenario info from another source. -ScenarioInfo.set_map_name('Crashsite') -ScenarioInfo.set_map_description('Capture outposts and defend against the biters.') -ScenarioInfo.add_map_extra_info( - '- Outposts have enemy turrets defending them.\n- Outposts have loot and provide a steady stream of resources.\n- Outpost markets to purchase items and outpost upgrades.\n- Capturing outposts increases evolution.\n- Reduced damage by all player weapons, turrets, and ammo.\n- Biters have more health and deal more damage.\n- Biters and spitters spawn on death of entities.' -) - -config.market.enabled = false -config.biter_attacks.enabled = false - --- leave seeds nil to have them filled in based on the map seed. -local outpost_seed = nil --91000 -local ore_seed = nil --92000 - -local small_iron_plate_factory = require 'map_gen.maps.crash_site.outpost_data.small_iron_plate_factory' -local medium_iron_plate_factory = require 'map_gen.maps.crash_site.outpost_data.medium_iron_plate_factory' -local big_iron_plate_factory = require 'map_gen.maps.crash_site.outpost_data.big_iron_plate_factory' - -local small_copper_plate_factory = require 'map_gen.maps.crash_site.outpost_data.small_copper_plate_factory' -local medium_copper_plate_factory = require 'map_gen.maps.crash_site.outpost_data.medium_copper_plate_factory' -local big_copper_plate_factory = require 'map_gen.maps.crash_site.outpost_data.big_copper_plate_factory' - -local small_stone_factory = require 'map_gen.maps.crash_site.outpost_data.small_stone_factory' -local medium_stone_factory = require 'map_gen.maps.crash_site.outpost_data.medium_stone_factory' -local big_stone_factory = require 'map_gen.maps.crash_site.outpost_data.big_stone_factory' - -local small_gear_factory = require 'map_gen.maps.crash_site.outpost_data.small_gear_factory' -local medium_gear_factory = require 'map_gen.maps.crash_site.outpost_data.medium_gear_factory' -local big_gear_factory = require 'map_gen.maps.crash_site.outpost_data.big_gear_factory' - -local small_circuit_factory = require 'map_gen.maps.crash_site.outpost_data.small_circuit_factory' -local medium_circuit_factory = require 'map_gen.maps.crash_site.outpost_data.medium_circuit_factory' -local big_circuit_factory = require 'map_gen.maps.crash_site.outpost_data.big_circuit_factory' - -local small_ammo_factory = require 'map_gen.maps.crash_site.outpost_data.small_ammo_factory' -local medium_ammo_factory = require 'map_gen.maps.crash_site.outpost_data.medium_ammo_factory' -local big_ammo_factory = require 'map_gen.maps.crash_site.outpost_data.big_ammo_factory' - -local small_weapon_factory = require 'map_gen.maps.crash_site.outpost_data.small_weapon_factory' -local medium_weapon_factory = require 'map_gen.maps.crash_site.outpost_data.medium_weapon_factory' -local big_weapon_factory = require 'map_gen.maps.crash_site.outpost_data.big_weapon_factory' - -local small_science_factory = require 'map_gen.maps.crash_site.outpost_data.small_science_factory' -local medium_science_factory = require 'map_gen.maps.crash_site.outpost_data.medium_science_factory' -local big_science_factory = require 'map_gen.maps.crash_site.outpost_data.big_science_factory' - -local small_oil_refinery = require 'map_gen.maps.crash_site.outpost_data.small_oil_refinery' -local medium_oil_refinery = require 'map_gen.maps.crash_site.outpost_data.medium_oil_refinery' -local big_oil_refinery = require 'map_gen.maps.crash_site.outpost_data.big_oil_refinery' - -local small_chemical_factory = require 'map_gen.maps.crash_site.outpost_data.small_chemical_factory' -local medium_chemical_factory = require 'map_gen.maps.crash_site.outpost_data.medium_chemical_factory' -local big_chemical_factory = require 'map_gen.maps.crash_site.outpost_data.big_chemical_factory' - -local small_power_factory = require 'map_gen.maps.crash_site.outpost_data.small_power_factory' -local medium_power_factory = require 'map_gen.maps.crash_site.outpost_data.medium_power_factory' -local big_power_factory = require 'map_gen.maps.crash_site.outpost_data.big_power_factory' - -local thin_walls = require 'map_gen.maps.crash_site.outpost_data.thin_walls' - -local mini_t1_ammo_factory = require 'map_gen.maps.crash_site.outpost_data.mini_t1_ammo_factory' -local mini_t2_ammo_factory = require 'map_gen.maps.crash_site.outpost_data.mini_t2_ammo_factory' - -local mini_t1_weapon_factory = require 'map_gen.maps.crash_site.outpost_data.mini_t1_weapon_factory' -local mini_t2_weapon_factory = require 'map_gen.maps.crash_site.outpost_data.mini_t2_weapon_factory' - -local mini_t2_logistics_factory = require 'map_gen.maps.crash_site.outpost_data.mini_t2_logistics_factory' -local mini_t3_logistics_factory = require 'map_gen.maps.crash_site.outpost_data.mini_t3_logistics_factory' - -local mini_t1_science_factory = require 'map_gen.maps.crash_site.outpost_data.mini_t1_science_factory' -local mini_t2_science_factory = require 'map_gen.maps.crash_site.outpost_data.mini_t2_science_factory' -local mini_t3_science_factory = require 'map_gen.maps.crash_site.outpost_data.mini_t3_science_factory' - -local mini_t1_module_factory = require 'map_gen.maps.crash_site.outpost_data.mini_t1_module_factory' -local mini_t2_module_factory = require 'map_gen.maps.crash_site.outpost_data.mini_t2_module_factory' -local mini_t3_module_factory = require 'map_gen.maps.crash_site.outpost_data.mini_t3_module_factory' - -local mini_t1_robotics_factory = require 'map_gen.maps.crash_site.outpost_data.mini_t1_robotics_factory' -local mini_t1_production_factory = require 'map_gen.maps.crash_site.outpost_data.mini_t1_production_factory' -local mini_t2_energy_factory = require 'map_gen.maps.crash_site.outpost_data.mini_t2_energy_factory' -local mini_t1_train_factory = require 'map_gen.maps.crash_site.outpost_data.mini_t1_train_factory' - -local spawn_callback_callback = - Token.register( - function(outpost_id) - OutpostBuilder.activate_market_upgrade(outpost_id) - end -) - -local spawn_callback = - Token.register( - function(entity, data) - Token.get(OutpostBuilder.market_set_items_callback)(entity, data) - Task.set_timeout_in_ticks(1, spawn_callback_callback, data.outpost_id) - end -) - -local function init() - local on_init = (_LIFECYCLE == _STAGE.init) - - local outpost_random = Random.new(outpost_seed, outpost_seed * 2) - - local outpost_builder = OutpostBuilder.new(outpost_random) - - local stage1a = { - small_iron_plate_factory, - small_gear_factory, - small_copper_plate_factory, - small_stone_factory - } - - local stage1a_pos = { - {4, 5}, - {5, 4}, - {5, 6}, - {6, 5} - } - - local stage1b = { - small_circuit_factory, - small_science_factory, - small_oil_refinery, - small_chemical_factory, - small_power_factory - } - - local stage1b_pos = { - {4, 4}, - {4, 6}, - {6, 4}, - {6, 6}, - {3, 5}, - {5, 3}, - {5, 7}, - {7, 5} - } - - local stage2 = { - medium_iron_plate_factory, - medium_copper_plate_factory, - medium_stone_factory, - medium_gear_factory, - medium_circuit_factory, - small_ammo_factory, - small_ammo_factory, - small_weapon_factory, - small_science_factory, - medium_science_factory, - medium_oil_refinery, - medium_chemical_factory, - medium_power_factory - } - - local stage2_pos = { - {2, 5}, - {5, 2}, - {5, 8}, - {8, 5}, - {3, 3}, - {3, 4}, - {3, 6}, - {3, 7}, - {4, 3}, - {4, 7}, - {6, 3}, - {6, 7}, - {7, 3}, - {7, 4}, - {7, 6}, - {7, 7} - } - - local stage3 = { - big_iron_plate_factory, - big_copper_plate_factory, - big_stone_factory, - big_gear_factory, - big_circuit_factory, - medium_ammo_factory, - medium_ammo_factory, - medium_weapon_factory, - medium_science_factory, - big_science_factory, - big_oil_refinery, - big_chemical_factory, - big_power_factory - } - - local stage4 = { - big_iron_plate_factory, - big_copper_plate_factory, - big_gear_factory, - big_circuit_factory, - big_ammo_factory, - big_ammo_factory, - big_ammo_factory, - big_weapon_factory, - big_weapon_factory, - big_weapon_factory, - big_science_factory, - big_oil_refinery, - big_chemical_factory - } - - local mini1 = { - mini_t1_ammo_factory, - mini_t1_ammo_factory, - mini_t1_weapon_factory, - mini_t1_weapon_factory, - mini_t2_logistics_factory, - mini_t2_logistics_factory, - mini_t1_science_factory, - mini_t1_science_factory, - mini_t1_module_factory, - mini_t1_production_factory, - mini_t2_energy_factory, - mini_t1_train_factory - } - - local mini2 = { - mini_t2_ammo_factory, - mini_t2_ammo_factory, - mini_t2_weapon_factory, - mini_t2_weapon_factory, - mini_t3_logistics_factory, - mini_t3_logistics_factory, - mini_t2_science_factory, - mini_t2_science_factory, - mini_t2_module_factory, - mini_t1_robotics_factory, - mini_t2_energy_factory, - mini_t1_train_factory - } - - local mini3 = { - mini_t2_ammo_factory, - mini_t2_ammo_factory, - mini_t2_weapon_factory, - mini_t2_weapon_factory, - mini_t3_science_factory, - mini_t3_module_factory, - mini_t1_robotics_factory - } - - local function fast_remove(tbl, index) - local count = #tbl - if index > count then - return - elseif index < count then - tbl[index] = tbl[count] - end - - tbl[count] = nil - end - - local function itertor_builder(arr, random) - local copy = {} - - return function() - if #copy == 0 then - for i = 1, #arr do - copy[i] = arr[i] - end - end - - local i = random:next_int(1, #copy) - local res = copy[i] - - fast_remove(copy, i) - - return res - end - end - - local stage1a_iter = itertor_builder(stage1a, outpost_random) - local stage1b_iter = itertor_builder(stage1b, outpost_random) - - local stage2_iter = itertor_builder(stage2, outpost_random) - local stage3_iter = itertor_builder(stage3, outpost_random) - local stage4_iter = itertor_builder(stage4, outpost_random) - - local mini1_iter = itertor_builder(mini1, outpost_random) - local mini2_iter = itertor_builder(mini2, outpost_random) - local mini3_iter = itertor_builder(mini3, outpost_random) - - local start_outpost = outpost_builder:do_outpost(thin_walls, on_init) - start_outpost = b.change_tile(start_outpost, false, true) - start_outpost = b.change_map_gen_collision_tile(start_outpost, 'water-tile', 'grass-1') - - local start_patch = b.circle(9) - local start_iron_patch = - b.resource( - b.translate(start_patch, -30, -30), - 'iron-ore', - function() - return 1500 - end - ) - local start_copper_patch = - b.resource( - b.translate(start_patch, 30, -30), - 'copper-ore', - function() - return 1200 - end - ) - local start_stone_patch = - b.resource( - b.translate(start_patch, 30, 30), - 'stone', - function() - return 900 - end - ) - local start_coal_patch = - b.resource( - b.translate(start_patch, -30, 30), - 'coal', - function() - return 1350 - end - ) - - local start_resources = b.any({start_iron_patch, start_copper_patch, start_stone_patch, start_coal_patch}) - start_outpost = b.apply_entity(start_outpost, start_resources) - - local water_corner = - b.any { - b.translate(b.rectangle(6, 16), -6, 0), - b.translate(b.rectangle(16, 6), 0, -6) - } - water_corner = b.change_tile(water_corner, true, 'water') - water_corner = b.translate(water_corner, -54, -54) - - start_outpost = - b.any { - water_corner, - b.rotate(water_corner, degrees(90)), - b.rotate(water_corner, degrees(180)), - b.rotate(water_corner, degrees(270)), - start_outpost - } - - local outpost_offset = 59 - local grid_block_size = 180 - local grid_number_of_blocks = 9 - - local mini_outpost_offset = 36 - local mini_grid_block_size = 96 - local mini_grid_number_of_blocks = 21 - - local pattern = {} - - for r = 1, grid_number_of_blocks do - local row = {} - pattern[r] = row - end - - pattern[5][5] = start_outpost - - local half_total_size = grid_block_size * 0.5 * 8 - - for _, pos in ipairs(stage1a_pos) do - local r, c = pos[1], pos[2] - - local row = pattern[r] - - local template = stage1a_iter() - local shape = outpost_builder:do_outpost(template, on_init) - - local x = outpost_random:next_int(-outpost_offset, outpost_offset) - local y = outpost_random:next_int(-outpost_offset, outpost_offset) - shape = b.translate(shape, x, y) - - row[c] = shape - end - - for _, pos in ipairs(stage1b_pos) do - local r, c = pos[1], pos[2] - - local row = pattern[r] - - local template = stage1b_iter() - local shape = outpost_builder:do_outpost(template, on_init) - - local x = outpost_random:next_int(-outpost_offset, outpost_offset) - local y = outpost_random:next_int(-outpost_offset, outpost_offset) - shape = b.translate(shape, x, y) - - row[c] = shape - end - - for _, pos in ipairs(stage2_pos) do - local r, c = pos[1], pos[2] - - local row = pattern[r] - - local template = stage2_iter() - local shape = outpost_builder:do_outpost(template, on_init) - - local x = outpost_random:next_int(-outpost_offset, outpost_offset) - local y = outpost_random:next_int(-outpost_offset, outpost_offset) - shape = b.translate(shape, x, y) - - row[c] = shape - end - - for r = 2, 8 do - local row = pattern[r] - for c = 2, 8 do - if not row[c] then - local template = stage3_iter() - local shape = outpost_builder:do_outpost(template, on_init) - - local x = outpost_random:next_int(-outpost_offset, outpost_offset) - local y = outpost_random:next_int(-outpost_offset, outpost_offset) - shape = b.translate(shape, x, y) - - row[c] = shape - end - end - end - - for r = 1, grid_number_of_blocks do - local row = pattern[r] - for c = 1, grid_number_of_blocks do - if not row[c] then - local template = stage4_iter() - local shape = outpost_builder:do_outpost(template, on_init) - - local x = outpost_random:next_int(-outpost_offset, outpost_offset) - local y = outpost_random:next_int(-outpost_offset, outpost_offset) - shape = b.translate(shape, x, y) - - row[c] = shape - end - end - end - - local mini_pattern = {} - - for r = 1, mini_grid_number_of_blocks do - mini_pattern[r] = {} - end - - for r = 11, 11 do - local row = mini_pattern[r] - for c = 11, 11 do - row[c] = b.empty_shape - end - end - - for r = 8, 14 do - local row = mini_pattern[r] - for c = 8, 14 do - if not row[c] then - local template = mini1_iter() - local shape = outpost_builder:do_outpost(template, on_init) - - local x = outpost_random:next_int(-mini_outpost_offset, mini_outpost_offset) - local y = outpost_random:next_int(-mini_outpost_offset, mini_outpost_offset) - shape = b.translate(shape, x, y) - - row[c] = shape - end - end - end - - for r = 6, 16 do - local row = mini_pattern[r] - for c = 6, 16 do - if not row[c] then - local template = mini2_iter() - local shape = outpost_builder:do_outpost(template, on_init) - - local x = outpost_random:next_int(-mini_outpost_offset, mini_outpost_offset) - local y = outpost_random:next_int(-mini_outpost_offset, mini_outpost_offset) - shape = b.translate(shape, x, y) - - row[c] = shape - end - end - end - - for r = 1, mini_grid_number_of_blocks do - local row = mini_pattern[r] - for c = 1, mini_grid_number_of_blocks do - if not row[c] then - local template = mini3_iter() - local shape = outpost_builder:do_outpost(template, on_init) - - local x = outpost_random:next_int(-mini_outpost_offset, mini_outpost_offset) - local y = outpost_random:next_int(-mini_outpost_offset, mini_outpost_offset) - shape = b.translate(shape, x, y) - - row[c] = shape - end - end - end - - local outposts = - b.grid_pattern(pattern, grid_number_of_blocks, grid_number_of_blocks, grid_block_size, grid_block_size) - local mini_outposts = - b.grid_pattern( - mini_pattern, - mini_grid_number_of_blocks, - mini_grid_number_of_blocks, - mini_grid_block_size, - mini_grid_block_size - ) - local offset = -180 -- (grid_block_size ) * 0.5 - - mini_outposts = b.translate(mini_outposts, offset, offset) - - outposts = b.if_else(outposts, mini_outposts) - --outposts = mini_outposts - - local spawners = { - 'biter-spawner', - 'spitter-spawner' - } - - local worms = { - 'small-worm-turret', - 'medium-worm-turret', - 'big-worm-turret', - 'behemoth-worm-turret' - } - - local max_spawner_chance = 1 / 256 - local spawner_chance_factor = 1 / (256 * 512) - local max_worm_chance = 1 / 64 - local worm_chance_factor = 1 / (40 * 512) - - --local scale_factor = 1 / 32 - - local function enemy(_, _, world) - local wx, wy = world.x, world.y - local d = math.sqrt(wx * wx + wy * wy) - - --[[ if Perlin.noise(x * scale_factor, y * scale_factor, enemy_seed) < 0 then - return nil - end ]] - local spawner_chance = d - 120 - - if spawner_chance > 0 then - spawner_chance = spawner_chance * spawner_chance_factor - spawner_chance = math.min(spawner_chance, max_spawner_chance) - - if math.random() < spawner_chance then - return {name = spawners[math.random(2)]} - end - end - - local worm_chance = d - 120 - - if worm_chance > 0 then - worm_chance = worm_chance * worm_chance_factor - worm_chance = math.min(worm_chance, max_worm_chance) - - if math.random() < worm_chance then - if d < 256 then - return {name = 'small-worm-turret'} - else - local max_lvl - local min_lvl - if d < 512 then - max_lvl = 2 - min_lvl = 1 - elseif d < 768 then - max_lvl = 3 - min_lvl = 2 - else - max_lvl = 4 - min_lvl = 2 - end - local lvl = math.random() ^ (384 / d) * max_lvl - lvl = math.ceil(lvl) - --local lvl = math.floor(d / 256) + 1 - lvl = math.clamp(lvl, min_lvl, 4) - return {name = worms[lvl]} - end - end - end - end - - local enemy_shape = b.apply_entity(b.full_shape, enemy) - - local ores_patch = b.circle(13) - local function value(base, mult, pow) - return function(x, y) - local d_sq = x * x + y * y - return base + mult * d_sq ^ (pow / 2) -- d^pow - end - end - - local function non_transform(shape) - return shape - end - - local function uranium_transform(shape) - return b.scale(shape, 0.5) - end - - local function oil_transform(shape) - shape = b.scale(shape, 0.75) - shape = b.throttle_world_xy(shape, 1, 5, 1, 5) - return shape - end - - local ores = { - {weight = 275}, - {transform = non_transform, resource = 'iron-ore', value = value(500, 0.75, 1.1), weight = 16}, - {transform = non_transform, resource = 'copper-ore', value = value(400, 0.75, 1.1), weight = 10}, - {transform = non_transform, resource = 'stone', value = value(250, 0.3, 1.05), weight = 5}, - {transform = non_transform, resource = 'coal', value = value(400, 0.8, 1.075), weight = 8}, - {transform = uranium_transform, resource = 'uranium-ore', value = value(200, 0.3, 1.025), weight = 3}, - {transform = oil_transform, resource = 'crude-oil', value = value(180000, 50, 1.025), weight = 6} - } - - local total_ore_weights = {} - local ore_t = 0 - for _, v in ipairs(ores) do - ore_t = ore_t + v.weight - table.insert(total_ore_weights, ore_t) - end - - local random_ore = Random.new(ore_seed, ore_seed * 2) - local ore_pattern = {} - - for r = 1, 50 do - local row = {} - ore_pattern[r] = row - for c = 1, 50 do - local i = random_ore:next_int(1, ore_t) - local index = table.binary_search(total_ore_weights, i) - if (index < 0) then - index = bit32.bnot(index) - end - local ore_data = ores[index] - - local transform = ore_data.transform - if not transform then - row[c] = b.no_entity - else - local ore_shape = transform(ores_patch) - - local x = random_ore:next_int(-24, 24) - local y = random_ore:next_int(-24, 24) - ore_shape = b.translate(ore_shape, x, y) - - local ore = b.resource(ore_shape, ore_data.resource, ore_data.value) - row[c] = ore - end - end - end - - local ore_grid = b.grid_pattern_full_overlap(ore_pattern, 35, 35, 56, 56) - ore_grid = b.choose(b.rectangle(126), b.no_entity, ore_grid) - - local map = b.if_else(outposts, enemy_shape) - - map = b.if_else(map, b.full_shape) - - map = b.translate(map, -half_total_size, -half_total_size) - - map = b.apply_entity(map, ore_grid) - - local market = { - callback = spawn_callback, - data = { - market_name = 'Spawn', - upgrade_rate = 0.5, - upgrade_base_cost = 500, - upgrade_cost_base = 2, - {name = 'wood', price = 1}, - {name = 'iron-plate', price = 2}, - {name = 'stone', price = 2}, - {name = 'coal', price = 1.25}, - {name = 'raw-fish', price = 4}, - {name = 'firearm-magazine', price = 5}, - {name = 'automation-science-pack', price = 10}, - {name = 'logistic-science-pack', price = 25}, - {name = 'military-science-pack', price = 50}, - {name = 'chemical-science-pack', price = 75}, - {name = 'production-science-pack', price = 100}, - {name = 'utility-science-pack', price = 125}, - { - price = 100, - name = 'small-plane', - name_label = 'Train Immunity (1x use)', - description = 'Each small plane in your inventory will save you from being killed by a train once.' - } - } - } - - local factory = { - callback = outpost_builder.magic_item_crafting_callback, - data = { - output = {min_rate = 0.5 / 60, distance_factor = 0, item = 'coin'} - } - } - - local inserter = { - callback = Token.register( - function(entity) - entity.insert({name = 'rocket-fuel', count = 1}) - end - ) - } - - local spawn = { - size = 2, - [1] = { - market = market, - [15] = {entity = {name = 'market', force = 'neutral', callback = 'market'}}, - [18] = {entity = {name = 'wooden-chest', force = 'player'}} - }, - [2] = { - force = 'player', - factory = factory, - inserter = inserter, - [13] = {entity = {name = 'burner-inserter', direction = 2, callback = 'inserter'}}, - [15] = {entity = {name = 'electric-furnace', callback = 'factory'}} - } - } - - local spawn_shape = outpost_builder.to_shape(spawn, 6, on_init) - spawn_shape = b.change_tile(spawn_shape, false, 'stone-path') - spawn_shape = b.change_map_gen_collision_hidden_tile(spawn_shape, 'water-tile', 'grass-1') - - map = b.choose(b.rectangle(16, 16), spawn_shape, map) - - local bounds = b.rectangle(grid_block_size * (grid_number_of_blocks) + 1) - map = b.choose(bounds, map, b.empty_shape) - - return map -end - -local map - -Global.register_init( - {}, - function(tbl) - local seed = RS.get_surface().map_gen_settings.seed - tbl.outpost_seed = outpost_seed or seed - tbl.ore_seed = ore_seed or seed - end, - function(tbl) - outpost_seed = tbl.outpost_seed - ore_seed = tbl.ore_seed - map = init() - end -) - -return function(x, y, world) - return map(x, y, world) -end +return require 'map_gen.maps.crash_site.presets.normal' diff --git a/map_gen/maps/crash_site/commands.lua b/map_gen/maps/crash_site/commands.lua index e28a3912..a6ff2f9f 100644 --- a/map_gen/maps/crash_site/commands.lua +++ b/map_gen/maps/crash_site/commands.lua @@ -81,18 +81,6 @@ local function abort(_, player) end end -Command.add( - 'crash-site-restart', - { - description = {'command_description.crash_site_restart'}, - arguments = {'scenario_name'}, - default_values = {scenario_name = 'crashsite'}, - required_rank = Ranks.admin, - allowed_by_server = true - }, - restart -) - Command.add( 'crash-site-restart-abort', { @@ -103,18 +91,6 @@ Command.add( abort ) -Command.add( - 'restart', - { - description = {'command_description.crash_site_restart'}, - arguments = {'scenario_name'}, - default_values = {scenario_name = 'crashsite'}, - required_rank = Ranks.admin, - allowed_by_server = true - }, - restart -) - Command.add( 'abort', { @@ -124,3 +100,34 @@ Command.add( }, abort ) + +local Public = {} + +function Public.control(config) + local default_name = config.scenario_name or 'crashsite' + Command.add( + 'crash-site-restart', + { + description = {'command_description.crash_site_restart'}, + arguments = {'scenario_name'}, + default_values = {scenario_name = default_name}, + required_rank = Ranks.admin, + allowed_by_server = true + }, + restart + ) + + Command.add( + 'restart', + { + description = {'command_description.crash_site_restart'}, + arguments = {'scenario_name'}, + default_values = {scenario_name = default_name}, + required_rank = Ranks.admin, + allowed_by_server = true + }, + restart + ) +end + +return Public diff --git a/map_gen/maps/crash_site/presets/normal.lua b/map_gen/maps/crash_site/presets/normal.lua new file mode 100644 index 00000000..07982046 --- /dev/null +++ b/map_gen/maps/crash_site/presets/normal.lua @@ -0,0 +1,21 @@ +local MGSP = require 'resources.map_gen_settings' + +local config = { + scenario_name = 'crashsite', + map_gen_settings = { + MGSP.grass_only, + MGSP.enable_water, + { + terrain_segmentation = 6, + water = 0.25 + }, + MGSP.starting_area_very_low, + MGSP.ore_oil_none, + MGSP.enemy_none, + MGSP.cliff_none + } +} + +local Scenario = require 'map_gen.maps.crash_site.scenario' + +return Scenario.init(config) diff --git a/map_gen/maps/crash_site/scenario.lua b/map_gen/maps/crash_site/scenario.lua new file mode 100644 index 00000000..ef3eddae --- /dev/null +++ b/map_gen/maps/crash_site/scenario.lua @@ -0,0 +1,806 @@ +require 'map_gen.maps.crash_site.blueprint_extractor' +require 'map_gen.maps.crash_site.entity_died_events' +require 'map_gen.maps.crash_site.weapon_balance' + +local b = require 'map_gen.shared.builders' +local Global = require('utils.global') +local Random = require 'map_gen.shared.random' +local OutpostBuilder = require 'map_gen.maps.crash_site.outpost_builder' +local Token = require 'utils.token' +local Task = require 'utils.task' +local math = require 'utils.math' +local ScenarioInfo = require 'features.gui.info' +local table = require 'utils.table' +local RS = require 'map_gen.shared.redmew_surface' +local MGSP = require 'resources.map_gen_settings' +local RedmewConfig = require 'config' + +local degrees = math.degrees + +local default_map_gen_settings = { + MGSP.grass_only, + MGSP.enable_water, + { + terrain_segmentation = 6, + water = 0.25 + }, + MGSP.starting_area_very_low, + MGSP.ore_oil_none, + MGSP.enemy_none, + MGSP.cliff_none +} + +local function control(config) + local CSCommand = require 'map_gen.maps.crash_site.commands' + CSCommand.control(config) + + local map_gen_settings = config.map_gen_settings or default_map_gen_settings + RS.set_map_gen_settings(map_gen_settings) +end + +-- Comment out this block if you're getting scenario info from another source. +ScenarioInfo.set_map_name('Crashsite') +ScenarioInfo.set_map_description('Capture outposts and defend against the biters.') +ScenarioInfo.add_map_extra_info( + '- Outposts have enemy turrets defending them.\n- Outposts have loot and provide a steady stream of resources.\n- Outpost markets to purchase items and outpost upgrades.\n- Capturing outposts increases evolution.\n- Reduced damage by all player weapons, turrets, and ammo.\n- Biters have more health and deal more damage.\n- Biters and spitters spawn on death of entities.' +) + +RedmewConfig.market.enabled = false +RedmewConfig.biter_attacks.enabled = false + +-- leave seeds nil to have them filled in based on the map seed. +local outpost_seed = nil --91000 +local ore_seed = nil --92000 + +local small_iron_plate_factory = require 'map_gen.maps.crash_site.outpost_data.small_iron_plate_factory' +local medium_iron_plate_factory = require 'map_gen.maps.crash_site.outpost_data.medium_iron_plate_factory' +local big_iron_plate_factory = require 'map_gen.maps.crash_site.outpost_data.big_iron_plate_factory' + +local small_copper_plate_factory = require 'map_gen.maps.crash_site.outpost_data.small_copper_plate_factory' +local medium_copper_plate_factory = require 'map_gen.maps.crash_site.outpost_data.medium_copper_plate_factory' +local big_copper_plate_factory = require 'map_gen.maps.crash_site.outpost_data.big_copper_plate_factory' + +local small_stone_factory = require 'map_gen.maps.crash_site.outpost_data.small_stone_factory' +local medium_stone_factory = require 'map_gen.maps.crash_site.outpost_data.medium_stone_factory' +local big_stone_factory = require 'map_gen.maps.crash_site.outpost_data.big_stone_factory' + +local small_gear_factory = require 'map_gen.maps.crash_site.outpost_data.small_gear_factory' +local medium_gear_factory = require 'map_gen.maps.crash_site.outpost_data.medium_gear_factory' +local big_gear_factory = require 'map_gen.maps.crash_site.outpost_data.big_gear_factory' + +local small_circuit_factory = require 'map_gen.maps.crash_site.outpost_data.small_circuit_factory' +local medium_circuit_factory = require 'map_gen.maps.crash_site.outpost_data.medium_circuit_factory' +local big_circuit_factory = require 'map_gen.maps.crash_site.outpost_data.big_circuit_factory' + +local small_ammo_factory = require 'map_gen.maps.crash_site.outpost_data.small_ammo_factory' +local medium_ammo_factory = require 'map_gen.maps.crash_site.outpost_data.medium_ammo_factory' +local big_ammo_factory = require 'map_gen.maps.crash_site.outpost_data.big_ammo_factory' + +local small_weapon_factory = require 'map_gen.maps.crash_site.outpost_data.small_weapon_factory' +local medium_weapon_factory = require 'map_gen.maps.crash_site.outpost_data.medium_weapon_factory' +local big_weapon_factory = require 'map_gen.maps.crash_site.outpost_data.big_weapon_factory' + +local small_science_factory = require 'map_gen.maps.crash_site.outpost_data.small_science_factory' +local medium_science_factory = require 'map_gen.maps.crash_site.outpost_data.medium_science_factory' +local big_science_factory = require 'map_gen.maps.crash_site.outpost_data.big_science_factory' + +local small_oil_refinery = require 'map_gen.maps.crash_site.outpost_data.small_oil_refinery' +local medium_oil_refinery = require 'map_gen.maps.crash_site.outpost_data.medium_oil_refinery' +local big_oil_refinery = require 'map_gen.maps.crash_site.outpost_data.big_oil_refinery' + +local small_chemical_factory = require 'map_gen.maps.crash_site.outpost_data.small_chemical_factory' +local medium_chemical_factory = require 'map_gen.maps.crash_site.outpost_data.medium_chemical_factory' +local big_chemical_factory = require 'map_gen.maps.crash_site.outpost_data.big_chemical_factory' + +local small_power_factory = require 'map_gen.maps.crash_site.outpost_data.small_power_factory' +local medium_power_factory = require 'map_gen.maps.crash_site.outpost_data.medium_power_factory' +local big_power_factory = require 'map_gen.maps.crash_site.outpost_data.big_power_factory' + +local thin_walls = require 'map_gen.maps.crash_site.outpost_data.thin_walls' + +local mini_t1_ammo_factory = require 'map_gen.maps.crash_site.outpost_data.mini_t1_ammo_factory' +local mini_t2_ammo_factory = require 'map_gen.maps.crash_site.outpost_data.mini_t2_ammo_factory' + +local mini_t1_weapon_factory = require 'map_gen.maps.crash_site.outpost_data.mini_t1_weapon_factory' +local mini_t2_weapon_factory = require 'map_gen.maps.crash_site.outpost_data.mini_t2_weapon_factory' + +local mini_t2_logistics_factory = require 'map_gen.maps.crash_site.outpost_data.mini_t2_logistics_factory' +local mini_t3_logistics_factory = require 'map_gen.maps.crash_site.outpost_data.mini_t3_logistics_factory' + +local mini_t1_science_factory = require 'map_gen.maps.crash_site.outpost_data.mini_t1_science_factory' +local mini_t2_science_factory = require 'map_gen.maps.crash_site.outpost_data.mini_t2_science_factory' +local mini_t3_science_factory = require 'map_gen.maps.crash_site.outpost_data.mini_t3_science_factory' + +local mini_t1_module_factory = require 'map_gen.maps.crash_site.outpost_data.mini_t1_module_factory' +local mini_t2_module_factory = require 'map_gen.maps.crash_site.outpost_data.mini_t2_module_factory' +local mini_t3_module_factory = require 'map_gen.maps.crash_site.outpost_data.mini_t3_module_factory' + +local mini_t1_robotics_factory = require 'map_gen.maps.crash_site.outpost_data.mini_t1_robotics_factory' +local mini_t1_production_factory = require 'map_gen.maps.crash_site.outpost_data.mini_t1_production_factory' +local mini_t2_energy_factory = require 'map_gen.maps.crash_site.outpost_data.mini_t2_energy_factory' +local mini_t1_train_factory = require 'map_gen.maps.crash_site.outpost_data.mini_t1_train_factory' + +local spawn_callback_callback = + Token.register( + function(outpost_id) + OutpostBuilder.activate_market_upgrade(outpost_id) + end +) + +local spawn_callback = + Token.register( + function(entity, data) + Token.get(OutpostBuilder.market_set_items_callback)(entity, data) + Task.set_timeout_in_ticks(1, spawn_callback_callback, data.outpost_id) + end +) + +local function init() + local on_init = (_LIFECYCLE == _STAGE.init) + + local outpost_random = Random.new(outpost_seed, outpost_seed * 2) + + local outpost_builder = OutpostBuilder.new(outpost_random) + + local stage1a = { + small_iron_plate_factory, + small_gear_factory, + small_copper_plate_factory, + small_stone_factory + } + + local stage1a_pos = { + {4, 5}, + {5, 4}, + {5, 6}, + {6, 5} + } + + local stage1b = { + small_circuit_factory, + small_science_factory, + small_oil_refinery, + small_chemical_factory, + small_power_factory + } + + local stage1b_pos = { + {4, 4}, + {4, 6}, + {6, 4}, + {6, 6}, + {3, 5}, + {5, 3}, + {5, 7}, + {7, 5} + } + + local stage2 = { + medium_iron_plate_factory, + medium_copper_plate_factory, + medium_stone_factory, + medium_gear_factory, + medium_circuit_factory, + small_ammo_factory, + small_ammo_factory, + small_weapon_factory, + small_science_factory, + medium_science_factory, + medium_oil_refinery, + medium_chemical_factory, + medium_power_factory + } + + local stage2_pos = { + {2, 5}, + {5, 2}, + {5, 8}, + {8, 5}, + {3, 3}, + {3, 4}, + {3, 6}, + {3, 7}, + {4, 3}, + {4, 7}, + {6, 3}, + {6, 7}, + {7, 3}, + {7, 4}, + {7, 6}, + {7, 7} + } + + local stage3 = { + big_iron_plate_factory, + big_copper_plate_factory, + big_stone_factory, + big_gear_factory, + big_circuit_factory, + medium_ammo_factory, + medium_ammo_factory, + medium_weapon_factory, + medium_science_factory, + big_science_factory, + big_oil_refinery, + big_chemical_factory, + big_power_factory + } + + local stage4 = { + big_iron_plate_factory, + big_copper_plate_factory, + big_gear_factory, + big_circuit_factory, + big_ammo_factory, + big_ammo_factory, + big_ammo_factory, + big_weapon_factory, + big_weapon_factory, + big_weapon_factory, + big_science_factory, + big_oil_refinery, + big_chemical_factory + } + + local mini1 = { + mini_t1_ammo_factory, + mini_t1_ammo_factory, + mini_t1_weapon_factory, + mini_t1_weapon_factory, + mini_t2_logistics_factory, + mini_t2_logistics_factory, + mini_t1_science_factory, + mini_t1_science_factory, + mini_t1_module_factory, + mini_t1_production_factory, + mini_t2_energy_factory, + mini_t1_train_factory + } + + local mini2 = { + mini_t2_ammo_factory, + mini_t2_ammo_factory, + mini_t2_weapon_factory, + mini_t2_weapon_factory, + mini_t3_logistics_factory, + mini_t3_logistics_factory, + mini_t2_science_factory, + mini_t2_science_factory, + mini_t2_module_factory, + mini_t1_robotics_factory, + mini_t2_energy_factory, + mini_t1_train_factory + } + + local mini3 = { + mini_t2_ammo_factory, + mini_t2_ammo_factory, + mini_t2_weapon_factory, + mini_t2_weapon_factory, + mini_t3_science_factory, + mini_t3_module_factory, + mini_t1_robotics_factory + } + + local function fast_remove(tbl, index) + local count = #tbl + if index > count then + return + elseif index < count then + tbl[index] = tbl[count] + end + + tbl[count] = nil + end + + local function itertor_builder(arr, random) + local copy = {} + + return function() + if #copy == 0 then + for i = 1, #arr do + copy[i] = arr[i] + end + end + + local i = random:next_int(1, #copy) + local res = copy[i] + + fast_remove(copy, i) + + return res + end + end + + local stage1a_iter = itertor_builder(stage1a, outpost_random) + local stage1b_iter = itertor_builder(stage1b, outpost_random) + + local stage2_iter = itertor_builder(stage2, outpost_random) + local stage3_iter = itertor_builder(stage3, outpost_random) + local stage4_iter = itertor_builder(stage4, outpost_random) + + local mini1_iter = itertor_builder(mini1, outpost_random) + local mini2_iter = itertor_builder(mini2, outpost_random) + local mini3_iter = itertor_builder(mini3, outpost_random) + + local start_outpost = outpost_builder:do_outpost(thin_walls, on_init) + start_outpost = b.change_tile(start_outpost, false, true) + start_outpost = b.change_map_gen_collision_tile(start_outpost, 'water-tile', 'grass-1') + + local start_patch = b.circle(9) + local start_iron_patch = + b.resource( + b.translate(start_patch, -30, -30), + 'iron-ore', + function() + return 1500 + end + ) + local start_copper_patch = + b.resource( + b.translate(start_patch, 30, -30), + 'copper-ore', + function() + return 1200 + end + ) + local start_stone_patch = + b.resource( + b.translate(start_patch, 30, 30), + 'stone', + function() + return 900 + end + ) + local start_coal_patch = + b.resource( + b.translate(start_patch, -30, 30), + 'coal', + function() + return 1350 + end + ) + + local start_resources = b.any({start_iron_patch, start_copper_patch, start_stone_patch, start_coal_patch}) + start_outpost = b.apply_entity(start_outpost, start_resources) + + local water_corner = + b.any { + b.translate(b.rectangle(6, 16), -6, 0), + b.translate(b.rectangle(16, 6), 0, -6) + } + water_corner = b.change_tile(water_corner, true, 'water') + water_corner = b.translate(water_corner, -54, -54) + + start_outpost = + b.any { + water_corner, + b.rotate(water_corner, degrees(90)), + b.rotate(water_corner, degrees(180)), + b.rotate(water_corner, degrees(270)), + start_outpost + } + + local outpost_offset = 59 + local grid_block_size = 180 + local grid_number_of_blocks = 9 + + local mini_outpost_offset = 36 + local mini_grid_block_size = 96 + local mini_grid_number_of_blocks = 21 + + local pattern = {} + + for r = 1, grid_number_of_blocks do + local row = {} + pattern[r] = row + end + + pattern[5][5] = start_outpost + + local half_total_size = grid_block_size * 0.5 * 8 + + for _, pos in ipairs(stage1a_pos) do + local r, c = pos[1], pos[2] + + local row = pattern[r] + + local template = stage1a_iter() + local shape = outpost_builder:do_outpost(template, on_init) + + local x = outpost_random:next_int(-outpost_offset, outpost_offset) + local y = outpost_random:next_int(-outpost_offset, outpost_offset) + shape = b.translate(shape, x, y) + + row[c] = shape + end + + for _, pos in ipairs(stage1b_pos) do + local r, c = pos[1], pos[2] + + local row = pattern[r] + + local template = stage1b_iter() + local shape = outpost_builder:do_outpost(template, on_init) + + local x = outpost_random:next_int(-outpost_offset, outpost_offset) + local y = outpost_random:next_int(-outpost_offset, outpost_offset) + shape = b.translate(shape, x, y) + + row[c] = shape + end + + for _, pos in ipairs(stage2_pos) do + local r, c = pos[1], pos[2] + + local row = pattern[r] + + local template = stage2_iter() + local shape = outpost_builder:do_outpost(template, on_init) + + local x = outpost_random:next_int(-outpost_offset, outpost_offset) + local y = outpost_random:next_int(-outpost_offset, outpost_offset) + shape = b.translate(shape, x, y) + + row[c] = shape + end + + for r = 2, 8 do + local row = pattern[r] + for c = 2, 8 do + if not row[c] then + local template = stage3_iter() + local shape = outpost_builder:do_outpost(template, on_init) + + local x = outpost_random:next_int(-outpost_offset, outpost_offset) + local y = outpost_random:next_int(-outpost_offset, outpost_offset) + shape = b.translate(shape, x, y) + + row[c] = shape + end + end + end + + for r = 1, grid_number_of_blocks do + local row = pattern[r] + for c = 1, grid_number_of_blocks do + if not row[c] then + local template = stage4_iter() + local shape = outpost_builder:do_outpost(template, on_init) + + local x = outpost_random:next_int(-outpost_offset, outpost_offset) + local y = outpost_random:next_int(-outpost_offset, outpost_offset) + shape = b.translate(shape, x, y) + + row[c] = shape + end + end + end + + local mini_pattern = {} + + for r = 1, mini_grid_number_of_blocks do + mini_pattern[r] = {} + end + + for r = 11, 11 do + local row = mini_pattern[r] + for c = 11, 11 do + row[c] = b.empty_shape + end + end + + for r = 8, 14 do + local row = mini_pattern[r] + for c = 8, 14 do + if not row[c] then + local template = mini1_iter() + local shape = outpost_builder:do_outpost(template, on_init) + + local x = outpost_random:next_int(-mini_outpost_offset, mini_outpost_offset) + local y = outpost_random:next_int(-mini_outpost_offset, mini_outpost_offset) + shape = b.translate(shape, x, y) + + row[c] = shape + end + end + end + + for r = 6, 16 do + local row = mini_pattern[r] + for c = 6, 16 do + if not row[c] then + local template = mini2_iter() + local shape = outpost_builder:do_outpost(template, on_init) + + local x = outpost_random:next_int(-mini_outpost_offset, mini_outpost_offset) + local y = outpost_random:next_int(-mini_outpost_offset, mini_outpost_offset) + shape = b.translate(shape, x, y) + + row[c] = shape + end + end + end + + for r = 1, mini_grid_number_of_blocks do + local row = mini_pattern[r] + for c = 1, mini_grid_number_of_blocks do + if not row[c] then + local template = mini3_iter() + local shape = outpost_builder:do_outpost(template, on_init) + + local x = outpost_random:next_int(-mini_outpost_offset, mini_outpost_offset) + local y = outpost_random:next_int(-mini_outpost_offset, mini_outpost_offset) + shape = b.translate(shape, x, y) + + row[c] = shape + end + end + end + + local outposts = + b.grid_pattern(pattern, grid_number_of_blocks, grid_number_of_blocks, grid_block_size, grid_block_size) + local mini_outposts = + b.grid_pattern( + mini_pattern, + mini_grid_number_of_blocks, + mini_grid_number_of_blocks, + mini_grid_block_size, + mini_grid_block_size + ) + local offset = -180 -- (grid_block_size ) * 0.5 + + mini_outposts = b.translate(mini_outposts, offset, offset) + + outposts = b.if_else(outposts, mini_outposts) + --outposts = mini_outposts + + local spawners = { + 'biter-spawner', + 'spitter-spawner' + } + + local worms = { + 'small-worm-turret', + 'medium-worm-turret', + 'big-worm-turret', + 'behemoth-worm-turret' + } + + local max_spawner_chance = 1 / 256 + local spawner_chance_factor = 1 / (256 * 512) + local max_worm_chance = 1 / 64 + local worm_chance_factor = 1 / (40 * 512) + + --local scale_factor = 1 / 32 + + local function enemy(_, _, world) + local wx, wy = world.x, world.y + local d = math.sqrt(wx * wx + wy * wy) + + --[[ if Perlin.noise(x * scale_factor, y * scale_factor, enemy_seed) < 0 then + return nil + end ]] + local spawner_chance = d - 120 + + if spawner_chance > 0 then + spawner_chance = spawner_chance * spawner_chance_factor + spawner_chance = math.min(spawner_chance, max_spawner_chance) + + if math.random() < spawner_chance then + return {name = spawners[math.random(2)]} + end + end + + local worm_chance = d - 120 + + if worm_chance > 0 then + worm_chance = worm_chance * worm_chance_factor + worm_chance = math.min(worm_chance, max_worm_chance) + + if math.random() < worm_chance then + if d < 256 then + return {name = 'small-worm-turret'} + else + local max_lvl + local min_lvl + if d < 512 then + max_lvl = 2 + min_lvl = 1 + elseif d < 768 then + max_lvl = 3 + min_lvl = 2 + else + max_lvl = 4 + min_lvl = 2 + end + local lvl = math.random() ^ (384 / d) * max_lvl + lvl = math.ceil(lvl) + --local lvl = math.floor(d / 256) + 1 + lvl = math.clamp(lvl, min_lvl, 4) + return {name = worms[lvl]} + end + end + end + end + + local enemy_shape = b.apply_entity(b.full_shape, enemy) + + local ores_patch = b.circle(13) + local function value(base, mult, pow) + return function(x, y) + local d_sq = x * x + y * y + return base + mult * d_sq ^ (pow / 2) -- d^pow + end + end + + local function non_transform(shape) + return shape + end + + local function uranium_transform(shape) + return b.scale(shape, 0.5) + end + + local function oil_transform(shape) + shape = b.scale(shape, 0.75) + shape = b.throttle_world_xy(shape, 1, 5, 1, 5) + return shape + end + + local ores = { + {weight = 275}, + {transform = non_transform, resource = 'iron-ore', value = value(500, 0.75, 1.1), weight = 16}, + {transform = non_transform, resource = 'copper-ore', value = value(400, 0.75, 1.1), weight = 10}, + {transform = non_transform, resource = 'stone', value = value(250, 0.3, 1.05), weight = 5}, + {transform = non_transform, resource = 'coal', value = value(400, 0.8, 1.075), weight = 8}, + {transform = uranium_transform, resource = 'uranium-ore', value = value(200, 0.3, 1.025), weight = 3}, + {transform = oil_transform, resource = 'crude-oil', value = value(180000, 50, 1.025), weight = 6} + } + + local total_ore_weights = {} + local ore_t = 0 + for _, v in ipairs(ores) do + ore_t = ore_t + v.weight + table.insert(total_ore_weights, ore_t) + end + + local random_ore = Random.new(ore_seed, ore_seed * 2) + local ore_pattern = {} + + for r = 1, 50 do + local row = {} + ore_pattern[r] = row + for c = 1, 50 do + local i = random_ore:next_int(1, ore_t) + local index = table.binary_search(total_ore_weights, i) + if (index < 0) then + index = bit32.bnot(index) + end + local ore_data = ores[index] + + local transform = ore_data.transform + if not transform then + row[c] = b.no_entity + else + local ore_shape = transform(ores_patch) + + local x = random_ore:next_int(-24, 24) + local y = random_ore:next_int(-24, 24) + ore_shape = b.translate(ore_shape, x, y) + + local ore = b.resource(ore_shape, ore_data.resource, ore_data.value) + row[c] = ore + end + end + end + + local ore_grid = b.grid_pattern_full_overlap(ore_pattern, 35, 35, 56, 56) + ore_grid = b.choose(b.rectangle(126), b.no_entity, ore_grid) + + local map = b.if_else(outposts, enemy_shape) + + map = b.if_else(map, b.full_shape) + + map = b.translate(map, -half_total_size, -half_total_size) + + map = b.apply_entity(map, ore_grid) + + local market = { + callback = spawn_callback, + data = { + market_name = 'Spawn', + upgrade_rate = 0.5, + upgrade_base_cost = 500, + upgrade_cost_base = 2, + {name = 'wood', price = 1}, + {name = 'iron-plate', price = 2}, + {name = 'stone', price = 2}, + {name = 'coal', price = 1.25}, + {name = 'raw-fish', price = 4}, + {name = 'firearm-magazine', price = 5}, + {name = 'automation-science-pack', price = 10}, + {name = 'logistic-science-pack', price = 25}, + {name = 'military-science-pack', price = 50}, + {name = 'chemical-science-pack', price = 75}, + {name = 'production-science-pack', price = 100}, + {name = 'utility-science-pack', price = 125}, + { + price = 100, + name = 'small-plane', + name_label = 'Train Immunity (1x use)', + description = 'Each small plane in your inventory will save you from being killed by a train once.' + } + } + } + + local factory = { + callback = outpost_builder.magic_item_crafting_callback, + data = { + output = {min_rate = 0.5 / 60, distance_factor = 0, item = 'coin'} + } + } + + local inserter = { + callback = Token.register( + function(entity) + entity.insert({name = 'rocket-fuel', count = 1}) + end + ) + } + + local spawn = { + size = 2, + [1] = { + market = market, + [15] = {entity = {name = 'market', force = 'neutral', callback = 'market'}}, + [18] = {entity = {name = 'wooden-chest', force = 'player'}} + }, + [2] = { + force = 'player', + factory = factory, + inserter = inserter, + [13] = {entity = {name = 'burner-inserter', direction = 2, callback = 'inserter'}}, + [15] = {entity = {name = 'electric-furnace', callback = 'factory'}} + } + } + + local spawn_shape = outpost_builder.to_shape(spawn, 6, on_init) + spawn_shape = b.change_tile(spawn_shape, false, 'stone-path') + spawn_shape = b.change_map_gen_collision_hidden_tile(spawn_shape, 'water-tile', 'grass-1') + + map = b.choose(b.rectangle(16, 16), spawn_shape, map) + + local bounds = b.rectangle(grid_block_size * (grid_number_of_blocks) + 1) + map = b.choose(bounds, map, b.empty_shape) + + return map +end + +local map + +Global.register_init( + {}, + function(tbl) + local seed = RS.get_surface().map_gen_settings.seed + tbl.outpost_seed = outpost_seed or seed + tbl.ore_seed = ore_seed or seed + end, + function(tbl) + outpost_seed = tbl.outpost_seed + ore_seed = tbl.ore_seed + map = init() + end +) + +local Public = {} + +function Public.init(config) + control(config) + + return function(x, y, world) + return map(x, y, world) + end +end + +return Public diff --git a/map_gen/maps/crash_site_desert.lua b/map_gen/maps/crash_site_desert.lua new file mode 100644 index 00000000..ecd71fc0 --- /dev/null +++ b/map_gen/maps/crash_site_desert.lua @@ -0,0 +1 @@ +return require 'map_gen.maps.crash_site.presets.desert' From 0bf02b92fd4123af56ba3bcca2d1d0312291ab26 Mon Sep 17 00:00:00 2001 From: grilledham Date: Sun, 28 Jul 2019 11:44:21 +0100 Subject: [PATCH 08/21] desert preset --- map_gen/maps/crash_site/presets/desert.lua | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 map_gen/maps/crash_site/presets/desert.lua diff --git a/map_gen/maps/crash_site/presets/desert.lua b/map_gen/maps/crash_site/presets/desert.lua new file mode 100644 index 00000000..43fe35c3 --- /dev/null +++ b/map_gen/maps/crash_site/presets/desert.lua @@ -0,0 +1,27 @@ +local MGSP = require 'resources.map_gen_settings' + +local config = { + scenario_name = 'crashsite-desert', + map_gen_settings = { + MGSP.sand_only, + MGSP.enable_water, + { + terrain_segmentation = 6, + water = 0.25 + }, + MGSP.starting_area_very_low, + MGSP.ore_oil_none, + MGSP.enemy_none, + MGSP.cliff_none, + { + property_expression_names = { + ['control-setting:moisture:bias'] = '-0.500000', + ['control-setting:moisture:frequency:multiplier'] = '6.000000' + } + } + } +} + +local Scenario = require 'map_gen.maps.crash_site.scenario' + +return Scenario.init(config) From 60cc102c7acd479e87eecfc79528ed442997b495 Mon Sep 17 00:00:00 2001 From: grilledham Date: Tue, 30 Jul 2019 17:30:47 +0100 Subject: [PATCH 09/21] 0.17.60 oil changes --- map_gen/maps/crash_site/outpost_data/big_oil_refinery.lua | 2 +- .../maps/crash_site/outpost_data/medium_oil_refinery.lua | 2 +- .../maps/crash_site/outpost_data/small_oil_refinery.lua | 8 +++----- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/map_gen/maps/crash_site/outpost_data/big_oil_refinery.lua b/map_gen/maps/crash_site/outpost_data/big_oil_refinery.lua index f6b61f61..b982a7fd 100644 --- a/map_gen/maps/crash_site/outpost_data/big_oil_refinery.lua +++ b/map_gen/maps/crash_site/outpost_data/big_oil_refinery.lua @@ -41,7 +41,7 @@ local factory = { recipe = 'advanced-oil-processing', keep_active = true, output = { - {min_rate = 1.25 / 60, distance_factor = 1.25 / 60 / 512, item = 'heavy-oil', fluidbox_index = 3}, + {min_rate = 3.125 / 60, distance_factor = 3.125 / 60 / 512, item = 'heavy-oil', fluidbox_index = 3}, {min_rate = 5.625/ 60, distance_factor = 5.625 / 60 / 512, item = 'light-oil', fluidbox_index = 4}, {min_rate = 6.875 / 60, distance_factor = 6.875 / 60 / 512, item = 'petroleum-gas', fluidbox_index = 5} } diff --git a/map_gen/maps/crash_site/outpost_data/medium_oil_refinery.lua b/map_gen/maps/crash_site/outpost_data/medium_oil_refinery.lua index 443966e3..e0a0ddef 100644 --- a/map_gen/maps/crash_site/outpost_data/medium_oil_refinery.lua +++ b/map_gen/maps/crash_site/outpost_data/medium_oil_refinery.lua @@ -41,7 +41,7 @@ local factory = { recipe = 'advanced-oil-processing', keep_active = true, output = { - {min_rate = 1.25 / 60, distance_factor = 1.25 / 60 / 512, item = 'heavy-oil', fluidbox_index = 3}, + {min_rate = 3.125 / 60, distance_factor = 3.125 / 60 / 512, item = 'heavy-oil', fluidbox_index = 3}, {min_rate = 5.625 / 60, distance_factor = 5.625 / 60 / 512, item = 'light-oil', fluidbox_index = 4}, {min_rate = 6.875 / 60, distance_factor = 6.875 / 60 / 512, item = 'petroleum-gas', fluidbox_index = 5} } diff --git a/map_gen/maps/crash_site/outpost_data/small_oil_refinery.lua b/map_gen/maps/crash_site/outpost_data/small_oil_refinery.lua index b3111584..5496310d 100644 --- a/map_gen/maps/crash_site/outpost_data/small_oil_refinery.lua +++ b/map_gen/maps/crash_site/outpost_data/small_oil_refinery.lua @@ -4,10 +4,10 @@ local Token = require 'utils.token' local loot = { {weight = 10}, {stack = {name = 'coin', count = 50, distance_factor = 1 / 20}, weight = 5}, - {stack = {name = 'crude-oil-barrel', count = 100, distance_factor = 1 / 20}, weight = 2}, + {stack = {name = 'crude-oil-barrel', count = 100, distance_factor = 1 / 20}, weight = 5}, {stack = {name = 'heavy-oil-barrel', count = 100, distance_factor = 1 / 20}, weight = 2}, {stack = {name = 'light-oil-barrel', count = 100, distance_factor = 1 / 20}, weight = 2}, - {stack = {name = 'petroleum-gas-barrel', count = 100, distance_factor = 1 / 20}, weight = 2}, + {stack = {name = 'petroleum-gas-barrel', count = 100, distance_factor = 1 / 20}, weight = 5}, {stack = {name = 'lubricant-barrel', count = 100, distance_factor = 1 / 20}, weight = 1}, {stack = {name = 'sulfuric-acid-barrel', count = 100, distance_factor = 1 / 20}, weight = 1} } @@ -41,9 +41,7 @@ local factory = { recipe = 'basic-oil-processing', keep_active = true, output = { - {min_rate = 3.75 / 60, distance_factor = 3.75 / 60 / 512, item = 'heavy-oil', fluidbox_index = 2}, - {min_rate = 3.75 / 60, distance_factor = 3.75 / 60 / 512, item = 'light-oil', fluidbox_index = 3}, - {min_rate = 5 / 60, distance_factor = 5 / 60 / 512, item = 'petroleum-gas', fluidbox_index = 4} + {min_rate = 4.5 / 60, distance_factor = 4.5 / 60 / 512, item = 'petroleum-gas', fluidbox_index = 2} } } } From 909623902198b423e391ce427e434ae87fdabffd Mon Sep 17 00:00:00 2001 From: grilledham Date: Sat, 3 Aug 2019 12:11:25 +0100 Subject: [PATCH 10/21] remove missing items --- config.lua | 4 ---- 1 file changed, 4 deletions(-) diff --git a/config.lua b/config.lua index cb636b9f..311c947f 100644 --- a/config.lua +++ b/config.lua @@ -201,10 +201,6 @@ global.config = { {name = 'heat-interface', count = 10}, {name = 'compilatron-chest', count = 5}, {name = 'compilatron-chest', count = 5}, - {name = 'escape-pod-assembler', count = 5}, - {name = 'escape-pod-lab', count = 10}, - {name = 'escape-pod-power', count = 5}, - {name = 'pollution', count = 5}, {name = 'selection-tool', count = 1} } } From 48a4cd6d9343aa265edb931751d3b2ee154c9c33 Mon Sep 17 00:00:00 2001 From: grilledham Date: Sat, 3 Aug 2019 12:16:19 +0100 Subject: [PATCH 11/21] less trees --- map_gen/maps/crash_site/presets/desert.lua | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/map_gen/maps/crash_site/presets/desert.lua b/map_gen/maps/crash_site/presets/desert.lua index 43fe35c3..8430b48f 100644 --- a/map_gen/maps/crash_site/presets/desert.lua +++ b/map_gen/maps/crash_site/presets/desert.lua @@ -15,8 +15,12 @@ local config = { MGSP.cliff_none, { property_expression_names = { - ['control-setting:moisture:bias'] = '-0.500000', - ['control-setting:moisture:frequency:multiplier'] = '6.000000' + ['control-setting:moisture:bias'] = '-0.500000' + }, + trees = { + frequency = 6, + richness = 1, + size = 0.1666666716337204 } } } From 16a0f3cb09360cb5fd4d34767a601d154dc1e793 Mon Sep 17 00:00:00 2001 From: grilledham Date: Sat, 3 Aug 2019 14:26:34 +0100 Subject: [PATCH 12/21] reduce number of trees correctly --- map_gen/maps/crash_site/presets/desert.lua | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/map_gen/maps/crash_site/presets/desert.lua b/map_gen/maps/crash_site/presets/desert.lua index 8430b48f..37f33ff5 100644 --- a/map_gen/maps/crash_site/presets/desert.lua +++ b/map_gen/maps/crash_site/presets/desert.lua @@ -17,10 +17,12 @@ local config = { property_expression_names = { ['control-setting:moisture:bias'] = '-0.500000' }, - trees = { - frequency = 6, - richness = 1, - size = 0.1666666716337204 + autoplace_controls = { + trees = { + frequency = 6, + richness = 1, + size = 0.1666666716337204 + } } } } From b8077ba60d48844249c0d634e3f394a5d0fd65fc Mon Sep 17 00:00:00 2001 From: theorangeangle <36866626+theorangeangle@users.noreply.github.com> Date: Sun, 1 Sep 2019 20:25:21 -0500 Subject: [PATCH 13/21] fixed autofill config typo --- control.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/control.lua b/control.lua index 7b33815e..27ec1e64 100644 --- a/control.lua +++ b/control.lua @@ -103,7 +103,7 @@ end if config.turret_active_delay.enabled then require 'features.turret_active_delay' end -if config.autofill then +if config.autofill.enabled then require 'features.gui.autofill' end From 0f87f7040a15a499bdbd7089109c2583abf01a18 Mon Sep 17 00:00:00 2001 From: theorangeangle <36866626+theorangeangle@users.noreply.github.com> Date: Sun, 1 Sep 2019 22:01:32 -0500 Subject: [PATCH 14/21] Revert "Merge pull request #947 from SimonFlapse/diggy_cutscene" This reverts commit fc1d1af9d81431caf64969bdceea1f1fdd1ba33b, reversing changes made to 7d56edd5823f003a4cd5ccc998ecd8de89ef6bc5. --- .luacheckrc | 6 - config.lua | 5 - control.lua | 3 - features/cutscene/cutscene_controller.lua | 529 ---------------------- features/cutscene/rendering.lua | 341 -------------- features/gui/radio.lua | 213 --------- features/player_create.lua | 48 +- locale/en/redmew_command_text.cfg | 2 +- locale/en/redmew_features.cfg | 6 - locale/en/redmew_maps.cfg | 22 - map_gen/maps/diggy/config.lua | 4 - map_gen/maps/diggy/feature/cutscene.lua | 305 ------------- map_gen/maps/diggy/feature/experience.lua | 6 +- resources/vertices.lua | 16 - utils/rendering.lua | 114 ----- 15 files changed, 26 insertions(+), 1594 deletions(-) delete mode 100644 features/cutscene/cutscene_controller.lua delete mode 100644 features/cutscene/rendering.lua delete mode 100644 features/gui/radio.lua delete mode 100644 map_gen/maps/diggy/feature/cutscene.lua delete mode 100644 resources/vertices.lua delete mode 100644 utils/rendering.lua diff --git a/.luacheckrc b/.luacheckrc index 5fb748df..13497dc3 100644 --- a/.luacheckrc +++ b/.luacheckrc @@ -253,12 +253,6 @@ stds.factorio_control = { 'set_forces', 'get_players', 'set_players', - 'get_visible', - 'set_visible', - 'get_draw_on_ground', - 'set_draw_on_ground', - 'get_only_in_alt_mode', - 'set_only_in_alt_mode', 'get_color', 'set_color', 'get_width', diff --git a/config.lua b/config.lua index 3a48d7a2..311c947f 100644 --- a/config.lua +++ b/config.lua @@ -169,7 +169,6 @@ global.config = { 'Welcome to this map created by the RedMew team. You can join our discord at: redmew.com/discord', 'Click the question mark in the top left corner for server information and map details.' }, - cutscene = false, -- format is a table: {{message, weight}, {message, weight}}, where a higher weight has more chance to be shown random_join_message_set = require 'resources.join_messages', -- applied when cheat_mode is set to true @@ -307,10 +306,6 @@ global.config = { rich_text_gui = { enabled = true }, - -- adds a command to open a gui that can play sounds from a list - radio = { - enabled = false - }, -- adds a camera to watch another player camera = { enabled = true diff --git a/control.lua b/control.lua index 27ec1e64..5f3b30f8 100644 --- a/control.lua +++ b/control.lua @@ -144,9 +144,6 @@ end if config.rich_text_gui.enabled then require 'features.gui.rich_text' end -if config.radio.enabled or _DEBUG then - require 'features.gui.radio' -end if config.redmew_settings.enabled then require 'features.gui.redmew_settings' end diff --git a/features/cutscene/cutscene_controller.lua b/features/cutscene/cutscene_controller.lua deleted file mode 100644 index ce4aa080..00000000 --- a/features/cutscene/cutscene_controller.lua +++ /dev/null @@ -1,529 +0,0 @@ -local Event = require 'utils.event' -local Token = require 'utils.token' -local Task = require 'utils.task' -local Global = require 'utils.global' -local Command = require 'utils.command' -local Debug = require 'utils.debug' -local Gui = require 'utils.gui' - -local set_timeout_in_ticks = Task.set_timeout_in_ticks -local debug_print = Debug.print - -local skip_btn_name = Gui.uid_name() -local backward_btn_name = Gui.uid_name() -local forward_btn_name = Gui.uid_name() - -local Public = {} -local handler - -local cutscene_functions = {} -local running_cutscenes = {} -local replay = { - identifier = nil, - final_transition_time = nil -} -Global.register( - { - cutscene_functions = cutscene_functions, - running_cutscenes = running_cutscenes, - replay = replay - }, - function(tbl) - cutscene_functions = tbl.cutscene_functions - running_cutscenes = tbl.running_cutscenes - replay = tbl.replay - end -) - -local function valid(entity) - return entity and entity.valid -end - -local function waypoint_still_active(tick, player_index) - local running_cutscene = running_cutscenes[player_index] - tick = tick or -1 - if tick == -1 then - debug_print('Tick was nil', 5) - end - if not running_cutscene or tick < running_cutscene.start_tick then - return false - end - return true -end - -local toggle_gui_delayed = - Token.register( - function(params) - local player = params.player - if not waypoint_still_active(params.tick, player.index) then - debug_print('Cutscene is no longer active. Skipping toggle_gui') - return - end - local event = {player = player} - local clear = params.clear - if clear == 'left' then - player.gui.left.clear() - elseif clear == 'top' then - player.gui.top.clear() - elseif clear == 'center' then - player.gui.center.clear() - end - params.gui.toggle(event) - end -) - -function Public.toggle_gui(tick, player, gui, initial_delay, clear) - --[[if type(gui) == 'table' then - debug_print('Provided GUI is invalid.') - return - end]] - set_timeout_in_ticks(initial_delay, toggle_gui_delayed, {tick = tick, player = player, gui = gui, clear = clear}) -end - -local play_sound_delayed = - Token.register( - function(params) - local player = params.player - if not waypoint_still_active(params.tick, player.index) then - debug_print('Cutscene is no longer active. Skipping play_sound') - return - end - player.play_sound {path = params.path} - end -) - -function Public.play_sound(tick, player, path, times, delay, initial_delay) - if not game.is_valid_sound_path(path) then - debug_print('Provided SoundPath is invalid. Try opening /radio and browse for a valid path') - return - end - - if not waypoint_still_active(tick, player.index) then - debug_print('Cutscene is no longer active. Skipping play_sound') - return - end - - times = times or 1 - if times == 1 and not delay and initial_delay then - delay = initial_delay - end - if times > 1 or delay then - delay = delay or 20 - initial_delay = initial_delay or 0 - for i = 1, times, 1 do - set_timeout_in_ticks(initial_delay + delay * i, play_sound_delayed, {tick = tick, player = player, path = path}) - end - else - player.play_sound {path = path} - end -end - -local remove_renderings = - Token.register( - function(renderings) - for _, v in pairs(renderings) do - if rendering.is_valid(v) then - rendering.destroy(v) - debug_print('Deleted rendering with id: ' .. v) - end - end - end -) - ----Asserts if a given variable is of the expected type using type(). ---- ----@param expected_type string ----@param given any ----@param variable_reference_message string displayed when the expectation is not met -local function assert_type(expected_type, given, variable_reference_message, allow_nil) - local given_type = type(given) - if given_type ~= expected_type and (allow_nil and given_type ~= 'nil') then - error('Argument ' .. variable_reference_message .. " must be of type '" .. expected_type .. "', given '" .. given_type .. "'") - end -end - -function Public.register_cutscene_function(identifier, waypoints, func, terminate_func) - assert_type('string', identifier, 'identifier of function cutscene_controller.register_cutscene_function') - assert_type('table', waypoints, 'waypoints of function cutscene_controller.register_cutscene_function') - assert_type('number', func, 'func of function cutscene_controller.register_cutscene_function') - assert_type('number', terminate_func, 'func of function cutscene_controller.register_cutscene_function', true) - - cutscene_functions[identifier] = {func = func, waypoints = waypoints, update = false, terminate_func = terminate_func} -end - -function Public.register_running_cutscene(player_index, identifier, final_transition_time) - assert_type('number', player_index, 'player_index of function cutscene_controller.register_running_cutscene') - assert_type('string', identifier, 'identifier of function cutscene_controller.register_running_cutscene') - assert_type('number', final_transition_time, 'identifier of function cutscene_controller.register_running_cutscene', true) - - local player = game.get_player(player_index) - if not valid(player) then - return - end - - local cutscene_function = cutscene_functions[identifier] - if not cutscene_function then - return - end - - local waypoints = cutscene_function.waypoints - if not waypoints then - return - end - - if running_cutscenes[player_index] then - player.print({'cutscene_controller.cannot_start_new'}) - return - end - - running_cutscenes[player_index] = { - func = cutscene_function.func, - waypoints = waypoints, - update = cutscene_function.update, - final_transition_time = final_transition_time, - character = player.character, - terminate_func = cutscene_function.terminate_func, - rendering = {}, - current_index = -1, - start_tick = 0 - } - local running_cutscene = running_cutscenes[player_index] - - if player.controller_type == defines.controllers.cutscene then - debug_print('' .. player.name .. ' was already in another cutscene not controlled by this module. It has been stopped') - player.exit_cutscene() - end - player.set_controller {type = defines.controllers.ghost} - - final_transition_time = final_transition_time >= 0 and final_transition_time or 60 - running_cutscene.final_transition_time = final_transition_time - running_cutscene.identifier = identifier - player.set_controller { - type = defines.controllers.cutscene, - waypoints = waypoints, - final_transition_time = final_transition_time - } - - local flow = player.gui.top.add {type = 'flow'} - running_cutscene.btn = flow - - local btn = flow.add {type = 'sprite-button', name = skip_btn_name, caption = 'Skip cutscene'} - btn.style.minimal_height = 28 - btn.style.minimal_width = 150 - btn.style.font = 'default-large-bold' - btn.style.font_color = {r = 255, g = 215, b = 0} - - local back_btn = flow.add {type = 'sprite-button', name = backward_btn_name, caption = 'Go back'} - back_btn.style.minimal_height = 28 - back_btn.style.minimal_width = 100 - back_btn.style.font = 'default-large-bold' - back_btn.style.font_color = {r = 255, g = 215, b = 0} - - local forward_btn = flow.add {type = 'sprite-button', name = forward_btn_name, caption = 'Go forward'} - forward_btn.style.minimal_height = 28 - forward_btn.style.minimal_width = 100 - forward_btn.style.font = 'default-large-bold' - forward_btn.style.font_color = {r = 255, g = 215, b = 0} - - handler({player_index = player_index, waypoint_index = -1, tick = game.tick}) -end - -local function restart_cutscene(player_index, waypoints, start_index) - local current_running = running_cutscenes[player_index] - local final_transition_time = current_running.final_transition_time - current_running.update = false - local character = current_running.character - - if not character then - log('Player index: ' .. player_index .. ' managed to lose their character in a cutscene') - end - - local end_waypoint = { - -- end waypoint - position = character.position, - transition_time = final_transition_time, - time_to_wait = 1, - zoom = 1, - terminate = true - } - - table.insert(waypoints, end_waypoint) - - running_cutscenes[player_index] = { - func = current_running.func, - waypoints = waypoints, - update = false, - final_transition_time = final_transition_time, - character = character, - terminate_func = current_running.terminate_func, - rendering = current_running.rendering, - btn = current_running.btn, - current_index = current_running.current_index, - start_tick = current_running.start_tick - } - - debug_print('Updating cutscene for player_index ' .. player_index) - debug_print(running_cutscenes[player_index]) - - local player = game.get_player(player_index) - if not valid(player) then - return - end - - if player.controller_type == defines.controllers.cutscene then - player.exit_cutscene() - player.set_controller {type = defines.controllers.ghost} - end - - player.set_controller { - type = defines.controllers.cutscene, - waypoints = waypoints, - final_transition_time = final_transition_time - } - - if start_index then - player.jump_to_cutscene_waypoint(start_index + 1) - else - start_index = -1 - end - - handler({player_index = player_index, waypoint_index = start_index, tick = game.tick}) -end - -function Public.inject_waypoint(player_index, waypoint, waypoint_index, override) - local running_cutscene = running_cutscenes[player_index] - if not running_cutscene then - return - end - local waypoints = running_cutscene.waypoints - if not waypoints then - return - end - local copy_waypoints = {} - for i = 1, #waypoints do - table.insert(copy_waypoints, waypoints[i]) - end - if override then - copy_waypoints[waypoint_index] = waypoint - else - table.insert(copy_waypoints, waypoint_index, waypoint) - end - running_cutscene.update = copy_waypoints -end - -local callback_function = - Token.register( - function(params) - local player_index = params.player_index - local func_params = params.params - if waypoint_still_active(func_params.tick, player_index) then - Token.get(params.func)(player_index, params.waypoint_index, func_params) - else - debug_print('Skipping callback function. Cutscene got terminated!') - end - end -) - -local reconnect_character = - Token.register( - function(params) - local player_index = params.player_index - local player = game.get_player(player_index) - local running_cutscene = params.running_cutscene - local character = running_cutscene.character - local func = running_cutscene.terminate_func - if valid(player) and valid(character) then - player.exit_cutscene() - player.set_controller {type = defines.controllers.character, character = character} - if func then - Token.get(func)(player_index) - end - Token.get(remove_renderings)(running_cutscene.rendering) - running_cutscene.btn.destroy() - running_cutscenes[player_index] = nil - end - end -) - -function Public.terminate_cutscene(player_index, ticks) - local running_cutscene = running_cutscenes[player_index] - if not running_cutscene then - return - end - ticks = ticks and ticks or 1 - debug_print('Terminating cutscene in ' .. ticks .. ' Ticks') - - set_timeout_in_ticks( - ticks, - reconnect_character, - { - player_index = player_index, - running_cutscene = running_cutscene - } - ) -end - -function Public.register_rendering_id(player_index, tick, render_id) - if type(render_id) ~= 'table' then - render_id = {render_id} - end - local running_cutscene = running_cutscenes[player_index] - for _, id in pairs(render_id) do - if rendering.is_valid(id) then - if not waypoint_still_active(tick, player_index) then - debug_print('The rendering with id ' .. id .. ' was not added. Destroying it instead') - rendering.destroy(id) - else - table.insert(running_cutscene.rendering, id) - end - end - end -end - -function Public.register_replay(identifier, final_transition_time) - replay.identifier = identifier - replay.final_transition_time = final_transition_time - debug_print('Identifier ' .. identifier .. ' registered as replay cutscene') -end - -handler = function(event) - local player_index = event.player_index - local waypoint_index = event.waypoint_index - local tick = event.tick - - debug_print('Waypoint_index ' .. waypoint_index .. ' has finished at tick: ' .. tick) - - local running_cutscene = running_cutscenes[player_index] - if not running_cutscene then - return - end - running_cutscene.current_index = waypoint_index + 1 - running_cutscene.start_tick = tick - - local update = running_cutscene.update - if update then - restart_cutscene(player_index, update, waypoint_index) - return - end - local ticks = running_cutscene.waypoints[waypoint_index + 2] - if ticks then - ticks = ticks.transition_time - else - ticks = running_cutscene.final_transition_time - end - - local func = running_cutscene.func - if not func then - return - end - local current_waypoint = running_cutscene.waypoints[waypoint_index + 2] - if not current_waypoint or current_waypoint.terminate then - Public.terminate_cutscene(player_index, ticks) - return - end - local params = { - position = current_waypoint.position, - time_to_wait = current_waypoint.time_to_wait, - transition_time = current_waypoint.transition_time, - zoom = current_waypoint.zoom, - name = current_waypoint.name, - tick = tick - } - - debug_print('Waypoint_index ' .. waypoint_index + 1 .. ' (waypoint #' .. waypoint_index + 2 .. ') callback in ' .. ticks .. ' ticks') - - set_timeout_in_ticks(ticks, callback_function, {func = running_cutscene.func, player_index = player_index, waypoint_index = waypoint_index, params = params}) -end - -function Public.goTo(player_index, waypoint_index) - local running_cutscene = running_cutscenes[player_index] - if waypoint_index < 0 or waypoint_index > #running_cutscene.waypoints - 2 then - return false - end - Token.get(remove_renderings)(running_cutscene.rendering) - game.get_player(player_index).jump_to_cutscene_waypoint(waypoint_index) - handler({player_index = player_index, waypoint_index = waypoint_index - 1, tick = game.tick}) - running_cutscene.current_index = waypoint_index - return true -end - -local function restore(event) - Public.terminate_cutscene(event.player_index) -end - -Event.add(defines.events.on_cutscene_waypoint_reached, handler) -Event.add(defines.events.on_pre_player_left_game, restore) -Event.add(defines.events.on_player_joined_game, restore) - -local replay_cutscene = - Token.register( - function(params) - Public.register_running_cutscene(params.event.player_index, replay.identifier, replay.final_transition_time) - end -) - -local function replay_handler(_, player) - if not replay.identifier then - player.print({'cutscene_controller.cannot_replay'}) - return - end - Token.get(replay_cutscene)({event = {player_index = player.index}}) -end - -Command.add( - 'replay', - { - description = {'cutscene_controller.replay'}, - capture_excess_arguments = false, - allowed_by_server = false - }, - replay_handler -) - -local function skip_cutscene(_, player) - if not player or not player.valid then - return - end - if player.controller_type == defines.controllers.cutscene then - Public.terminate_cutscene(player.index) - end -end - -Command.add( - 'skip', - { - description = {'cutscene_controller.skip'}, - capture_excess_arguments = false, - allowed_by_server = false - }, - skip_cutscene -) - -Gui.on_click( - skip_btn_name, - function(event) - skip_cutscene(nil, game.get_player(event.player_index)) - end -) - -Gui.on_click( - backward_btn_name, - function(event) - local player_index = event.player_index - if Public.goTo(player_index, running_cutscenes[player_index].current_index - 1) == false then - game.get_player(player_index).print("Cutscene: You're already at the beginning") - end - end -) - -Gui.on_click( - forward_btn_name, - function(event) - local player_index = event.player_index - if Public.goTo(event.player_index, running_cutscenes[player_index].current_index + 1) == false then - game.get_player(player_index).print("Cutscene: You're already at the end") - end - end -) - -return Public diff --git a/features/cutscene/rendering.lua b/features/cutscene/rendering.lua deleted file mode 100644 index 539ce6dc..00000000 --- a/features/cutscene/rendering.lua +++ /dev/null @@ -1,341 +0,0 @@ -local RS = require 'map_gen.shared.redmew_surface' -local Debug = require 'utils.debug' -local Rendering = require 'utils.rendering' -local Vertices = require 'resources.vertices' -local insert = table.insert - -local toggle_debug = false --Set to true if you wish to get spammed with debug messages from the rendering module (Requires _DEBUG = true) - -local function debug_print(message, trace_levels) - if toggle_debug then - Debug.print(message, trace_levels) - end -end - -local Public = {} - ---At zoom level 1 a tile is 32x32 pixels ---tile size is calculated by 32 * zoom level. - -local function text_height_in_tiles(scale, zoom) - -- Default (count-font) at scale 10 is 125 pixels for lower letters and 109 for capital letters - -- At scale 5 this is 64 or very close to half of the size at scale 10 (62.5) - -- Therefore size hsa been determined to be (12.5 * scale) + 1 - local size = (12.5 * scale) + 1 - local pixel_per_tile = zoom * 32 - return size / pixel_per_tile, size -end - -local function calculate_percentages(settings, player_resolution) - local original_resolution = settings.original_resolution - return { - height = player_resolution.height / original_resolution.height, - width = player_resolution.width / original_resolution.width, - tile = (settings.original_zoom * 32) / (settings.player_zoom * 32) - } -end - -local function text_scale(percentage, scale) - return scale * (percentage.height + percentage.width) * 0.5 -end - -local function fit_to_screen(percentage, coordinates) - if not coordinates.fitted then - local height = percentage.height - local width = percentage.width - local tile = percentage.tile - for _, pos in pairs(coordinates) do - if type(pos) == 'number' then - coordinates.x = coordinates.x * width - coordinates.y = coordinates.y * height - break - else - pos.x = pos.x * width - pos.y = pos.y * height - end - end - for _, pos in pairs(coordinates) do - if type(pos) == 'number' then - coordinates.x = coordinates.x * tile - coordinates.y = coordinates.y * tile - break - else - pos.x = pos.x * tile - pos.y = pos.y * tile - end - end - coordinates.fitted = true - end - return coordinates -end - -local function fit_to_screen_edges(settings, player_resolution, coordinates) - if not coordinates.fitted then - local tile = settings.original_zoom * 32 - local player_tile = settings.player_zoom * 32 - local display_scale = player_resolution.scale or 1 - - local player_height = (player_resolution.height / player_tile) * 0.5 - local player_width = (player_resolution.width / player_tile) * 0.5 - - for _, pos in pairs(coordinates) do - if type(pos) == 'number' then - coordinates.y = -player_height + (((coordinates.y * tile) / player_tile) * display_scale) - coordinates.x = -player_width + (((coordinates.x * tile) / player_tile) * display_scale) - break - else - pos.y = -player_height + (((pos.y * tile) / player_tile) * display_scale) - pos.x = -player_width + (((pos.x * tile) / player_tile) * display_scale) - end - end - coordinates.fitted = true - end - return coordinates -end - -local function create_background_params(params) - local background_params = params.background - if background_params then - for k, v in pairs(params) do - if k ~= 'background' then - if not background_params[k] then - background_params[k] = v - end - end - end - else - background_params = params - end - return background_params -end - -local function text_background(settings, offset, player, percentages, size, number_text, params) - local margin = 0.01 / params.scale - local left_top = fit_to_screen(percentages, {x = -40, y = 0}) - local right_bottom = fit_to_screen(percentages, {x = 40, y = 0}) - left_top.y = -size * margin * 0.875 - right_bottom.y = size * (1.5 + (margin * 1.125)) * number_text - local background_params = create_background_params(params) - return Public.draw_rectangle(settings, offset, left_top, right_bottom, player, background_params) -end - -function Public.draw_text(settings, offset, text, player, params, draw_background, fit_to_edge) - local ids = {} - local player_resolution = player.display_resolution - player_resolution.scale = player.display_scale - local percentages = calculate_percentages(settings, player_resolution) - local scale = params.scale - - if draw_background ~= -1 then - scale = text_scale(percentages, scale) - local size = text_height_in_tiles(scale, settings.player_zoom) - if fit_to_edge then - offset = fit_to_screen_edges(settings, player_resolution, offset) - else - offset = fit_to_screen(percentages, offset) - end - offset.y = offset.y - size * 0.5 - end - local size = text_height_in_tiles(scale, settings.player_zoom) - - if draw_background == true then - insert(ids, text_background(settings, offset, player, percentages, size, 1, params, fit_to_edge)) - end - - local target = {x = player.position.x + offset.x, y = player.position.y + offset.y} - - local color = params.color - color = color and color or {r = 255, g = 255, b = 255} - - local font = params.font - - local surface = params.surface - surface = surface or RS.get_surface() - - local ttl = params.time_to_live - ttl = ttl and ttl or -1 - - local forces = params.forces - - local players = params.players - players = players or {} - - table.insert(players, player) - - local visible = params.visible - visible = visible or true - - local dog = params.draw_on_ground - dog = dog or false - - local orientation = params.orientation - orientation = orientation or 0 - - local alignment = params.alignment - alignment = alignment or 'center' - - --local swz = params.scale_with_zoom - local swz = true - - local oiam = params.only_in_alt_mode - oiam = oiam or false - - local rendering_params = { - text = {'', text}, - color = color, - target = target, - scale_with_zoom = swz, - surface = surface, - time_to_live = ttl, - alignment = alignment, - players = players, - scale = scale, - forces = forces, - visible = visible, - draw_on_ground = dog, - only_in_alt_mode = oiam, - orientation = orientation, - font = font - } - - debug_print(rendering_params) - - insert(ids, rendering.draw_text(rendering_params)) - return ids -end - -function Public.draw_multi_line_text(settings, offset, texts, player, params, draw_background, fit_to_edge) - local ids = {} - local player_resolution = player.display_resolution - player_resolution.scale = player.display_scale - local percentages = calculate_percentages(settings, player_resolution) - local scale = params.scale - - scale = text_scale(percentages, scale) - local size = text_height_in_tiles(scale, settings.player_zoom) - - if fit_to_edge then - offset = fit_to_screen_edges(settings, player_resolution, offset) - else - offset = fit_to_screen(percentages, offset) - end - - offset.y = offset.y - size * 0.5 - - if draw_background then - insert(ids, text_background(settings, offset, player, percentages, size, #texts, params, fit_to_edge)) - draw_background = -1 - end - - for i = 1, #texts do - insert(ids, Public.draw_text(settings, offset, texts[i], player, params, draw_background, fit_to_edge)[1]) - offset.y = offset.y + (size * 1.5) - end - return ids -end - -function Public.draw_rectangle(settings, offset, left_top, right_bottom, player, params, fit_to_edge) - local player_resolution = player.display_resolution - player_resolution.scale = player.display_scale - local percentages = calculate_percentages(settings, player_resolution) - if fit_to_edge then - offset = fit_to_screen_edges(settings, player_resolution, offset) - left_top = fit_to_screen_edges(settings, player_resolution, left_top) - right_bottom = fit_to_screen_edges(settings, player_resolution, right_bottom) - else - offset = fit_to_screen(percentages, offset) - left_top = fit_to_screen(percentages, left_top) - right_bottom = fit_to_screen(percentages, right_bottom) - end - - local target_left = {x = player.position.x + left_top.x + offset.x, y = player.position.y + left_top.y + offset.y} - local target_right = {x = player.position.x + right_bottom.x + offset.x, y = player.position.y + right_bottom.y + offset.y} - - local color = params.color - color = color and color or {} - - local width = params.width - width = width and width or 0 - - local filled = params.filled - filled = filled and filled or true - - local surface = params.surface - surface = surface or RS.get_surface() - - local ttl = params.time_to_live - ttl = ttl and ttl or -1 - - local forces = params.forces - - local players = params.players - players = players or {} - - table.insert(players, player) - - local visible = params.visible - visible = visible or true - - local dog = params.draw_on_ground - dog = dog or false - - local oiam = params.only_in_alt_mode - oiam = oiam or false - - local rendering_params = { - color = color, - width = width, - filled = filled, - left_top = target_left, - right_bottom = target_right, - surface = surface, - time_to_live = ttl, - forces = forces, - players = players, - visible = visible, - draw_on_ground = dog, - only_in_alt_mode = oiam - } - - debug_print(rendering_params) - - return rendering.draw_rectangle(rendering_params) -end - -local blackout_settings = {original_resolution = {height = 1440, width = 2560}, original_zoom = 1, player_zoom = 1} -function Public.blackout(player, zoom, ttl, color) - local left_top = {x = -40, y = -22.5} - local right_bottom = {x = 40, y = 22.5} - blackout_settings.player_zoom = zoom - return Public.draw_rectangle(blackout_settings, {x = 0, y = 0}, left_top, right_bottom, player, {color = color, time_to_live = ttl}) -end - -function Public.draw_arrow(settings, offset, player, params, fit_to_edge) - local player_resolution = player.display_resolution - player_resolution.scale = player.display_scale - local percentages = calculate_percentages(settings, player_resolution) - if fit_to_edge then - offset = fit_to_screen_edges(settings, player_resolution, offset) - else - offset = fit_to_screen(percentages, offset) - end - - local vertices = Rendering.scale(Vertices.arrow, percentages.tile, percentages.tile) - vertices = Rendering.rotate(vertices, params.rotation) - vertices = Rendering.translate(vertices, offset.x, offset.y) - - local color = params.color or {1, 1, 1, 1} - params.color = color - - local players = params.players - players = players or {} - - table.insert(players, player) - params.players = players - - params.surface = RS.get_surface() - --Debug.print(vertices) - return Rendering.draw_polygon(vertices, params) -end - -return Public diff --git a/features/gui/radio.lua b/features/gui/radio.lua deleted file mode 100644 index ec24bd14..00000000 --- a/features/gui/radio.lua +++ /dev/null @@ -1,213 +0,0 @@ -local Gui = require 'utils.gui' -local Command = require 'utils.command' -local Event = require 'utils.event' - -local main_button_name = Gui.uid_name() -local radio_frame = Gui.uid_name() -local close_radio = Gui.uid_name() - -local sounds = { - ['ambient'] = { - 'after-the-crash', - 'automation', - 'resource-deficiency', - 'are-we-alone', - 'beyond-factory-outskirts', - 'censeqs-discrepancy', - 'efficiency-program', - 'expansion', - 'the-search-for-iron', - 'gathering-horizon', - 'research-and-minerals', - 'solar-intervention', - 'the-oil-industry', - 'the-right-tools', - 'pollution', - 'turbine-dynamics', - 'sentient', - 'anomaly', - 'first-light', - 'transmit', - 'swell-pad', - 'world-ambience-1', - 'world-ambience-2', - 'world-ambience-3', - 'world-ambience-4', - 'world-ambience-5', - 'world-ambience-6' - }, - ['default'] = { - 'worm-sends-biters', - 'mainframe-activated', - 'car-repaired' - }, - ['utility'] = { - 'achievement_unlocked', - 'alert_destroyed', - 'armor_insert', - 'armor_remove', - 'axe_fighting', - 'axe_mining_ore', - 'build_big', - 'build_medium', - 'build_small', - 'cannot_build', - 'console_message', - 'crafting_finished', - 'deconstruct_big', - 'deconstruct_medium', - 'deconstruct_small', - 'default_manual_repair', - 'game_lost', - 'game_won', - 'gui_click', - 'inventory_move', - 'list_box_click', - 'metal_walking_sound', - 'mining_wood', - 'new_objective', - 'research_completed', - 'scenario_message', - 'tutorial_notice', - 'wire_connect_pole', - 'wire_disconnect', - 'wire_pickup' - } -} - -local function draw_radio(event) - local frame_caption - - frame_caption = 'Radio' - local player = event.player - local center = player.gui.center - - local frame = center[radio_frame] - if frame then - Gui.remove_data_recursively(frame) - frame.destroy() - return - end - - frame = center.add {type = 'frame', name = radio_frame, caption = frame_caption, direction = 'vertical'} - local scroll_pane = - frame.add { - type = 'scroll-pane', - vertical_scroll_policy = 'auto-and-reserve-space', - horizontal_scroll_policy = 'never' - } - Gui.set_data(scroll_pane, frame) - - local main_table = scroll_pane.add {type = 'table', column_count = 4} - - for type, sound in pairs(sounds) do - for i = 1, #sound do - local name = (type == 'default') and sound[i] or type .. '/' .. sound[i] - local textbox = main_table.add {type = 'text-box', text = type .. '/' .. sound[i]} - textbox.read_only = true - textbox.style.height = 28 - textbox.style.width = 250 - local button = main_table.add {type = 'button', name = 'radio_play:' .. name, caption = 'Play'} - button.style.width = 54 - end - end - - local information_pane = - frame.add { - type = 'scroll-pane', - vertical_scroll_policy = 'auto-and-reserve-space', - horizontal_scroll_policy = 'never' - } - information_pane.style.horizontally_stretchable = true - information_pane.style.horizontal_align = 'center' - Gui.set_data(information_pane, frame) - - local text = - [[ - Other types: - syntax = / - "tile-walking" - for example "tile-walking/concrete" - "tile-build" - "tile-mined" - "entity-build" - for example "entity-build/wooden-chest" - "entity-mined" - "entity-vehicle_impact" - "entity-open" - "entity-close" - ]] - local information = information_pane.add {type = 'text-box', text = text} - information.style.horizontally_stretchable = true - information.style.vertically_stretchable = true - information.style.minimal_height = 200 - information.style.minimal_width = 400 - - local bottom_flow = frame.add {type = 'flow', direction = 'horizontal'} - - local left_flow = bottom_flow.add {type = 'flow', direction = 'horizontal'} - left_flow.style.horizontal_align = 'left' - left_flow.style.horizontally_stretchable = true - - local close_button = left_flow.add {type = 'button', name = close_radio, caption = 'Close'} - Gui.set_data(close_button, frame) - - player.opened = frame -end - -Gui.on_click(main_button_name, draw_radio) - -Gui.on_click( - close_radio, - function(event) - local frame = Gui.get_data(event.element) - - Gui.remove_data_recursively(frame) - frame.destroy() - end -) - -Gui.on_custom_close( - radio_frame, - function(event) - local element = event.element - Gui.remove_data_recursively(element) - element.destroy() - end -) - -local function radio_command(_, player) - if player and player.valid then - local event = {player = player} - draw_radio(event) - end -end - -Command.add( - 'radio', - { - description = 'Opens radio gui', - capture_excess_arguments = false, - allowed_by_server = false - }, - radio_command -) - -local function handler(event) - local element = event.element - if not element or not element.valid then - return - end - local name = element.name - local subname = string.sub(name, 1, 11) - if subname == 'radio_play:' then - local path = string.sub(name, 12) - local player = game.get_player(event.player_index) - if (game.is_valid_sound_path(path)) then - player.play_sound {path = path} - return - else - player.print('Unable to play sound: ' .. path) - end - end -end - -Event.add(defines.events.on_gui_click, handler) diff --git a/features/player_create.lua b/features/player_create.lua index b3348e15..0a17ec5d 100644 --- a/features/player_create.lua +++ b/features/player_create.lua @@ -6,10 +6,25 @@ local pairs = pairs local get_random_weighted = table.get_random_weighted -local Public = {} - -function Public.show_start_up(player) +local function player_created(event) local config = global.config.player_create + local player = game.get_player(event.player_index) + + if not player or not player.valid then + return + end + + -- ensure the top menu is correctly styled + local gui = player.gui + gui.top.style = 'slot_table_spacing_horizontal_flow' + gui.left.style = 'slot_table_spacing_vertical_flow' + + local player_insert = player.insert + + for _, item in pairs(config.starting_items) do + player_insert(item) + end + local p = player.print for _, message in pairs(config.join_messages) do p(message) @@ -33,29 +48,12 @@ function Public.show_start_up(player) elseif not _DEBUG and not game.is_multiplayer() then player.print('To change your name in single-player, open chat and type the following /c game.player.name = "your_name"') end -end -local function player_created(event) - local config = global.config.player_create - local player = game.get_player(event.player_index) - - if not player or not player.valid then - return - end - - -- ensure the top menu is correctly styled - local gui = player.gui - gui.top.style = 'slot_table_spacing_horizontal_flow' - gui.left.style = 'slot_table_spacing_vertical_flow' - - local player_insert = player.insert - - for _, item in pairs(config.starting_items) do - player_insert(item) - end - if not config.cutscene then - Public.show_start_up(player) + -- Remove 2019-03-04 + if player.admin then + player.print('## - Regular commands have changed. /regular to promote /regular-remove to demote.') end + --End remove end Event.add(defines.events.on_player_created, player_created) @@ -127,5 +125,3 @@ if _CHEATS then Event.add(defines.events.on_player_created, player_created_cheat_mode) end - -return Public diff --git a/locale/en/redmew_command_text.cfg b/locale/en/redmew_command_text.cfg index 44d89d9e..70cea352 100644 --- a/locale/en/redmew_command_text.cfg +++ b/locale/en/redmew_command_text.cfg @@ -20,7 +20,7 @@ show_rail_block=Toggles rail block visualisation. server_time=Prints the server's time. seeds=List the seeds of all surfaces redmew_version=Prints the version of the Redmew scenario -whois=Provides information about a given player, admins can see the inventory of a player by adding "yes" as a second argument +whois=provides information about a given player, admins can see the inventory of a player by adding "yes" as a second argument meltdown_get=Gets the status of meltdown. meltdown_set=Sets the status of meltdown. redmew_color=Set will save your current color for future maps. Reset will erase your saved color. Random will give you a random color. diff --git a/locale/en/redmew_features.cfg b/locale/en/redmew_features.cfg index 33a1786f..ff6dc0c6 100644 --- a/locale/en/redmew_features.cfg +++ b/locale/en/redmew_features.cfg @@ -147,12 +147,6 @@ player_distance_walked=Distance walked satellites_launched=Satellites launched unknown_death_cause=Unknown -[cutscene_controller] -cannot_start_new=Can not start cutscene, you need to finish your current one. Try to run /skip before trying again -skip=Skips the current cutscene -replay=Replays the introduction cutscene -cannot_replay=There is no cutscene to replay - [autofill] insert_item=-__1__ __2__ (__3__) enable=Enable autofill diff --git a/locale/en/redmew_maps.cfg b/locale/en/redmew_maps.cfg index 692f05b0..effed9e5 100644 --- a/locale/en/redmew_maps.cfg +++ b/locale/en/redmew_maps.cfg @@ -43,28 +43,6 @@ score_cave_collapses=Cave collapses score_mine_size=Mine size score_experience_lost=Experience lost -cutscene_case_line2=Welcome to __1__ -cutscene_case_line4=This is a custom scenario developed by __1__ -cutscene_case_line5=Join us at __1__ -cutscene_case_line6=The following introduction will help you get started! -cutscene_case_line7=If you experience issues duing this cutscene let us know -cutscene_case0_line1=This is the starting area -cutscene_case0_line3=Expanding the mine is dangerous! -cutscene_case1_line1=Walls are used to keep the cave roof from crushing us -cutscene_case2_line1=The market provides extra supplies in exchange for coins -cutscene_case2_line3=You unlock new items when you level up -cutscene_case3_line1=Cave ins happens frequently when you don't add supports -cutscene_case3_line3=Different types of brick and concrete can reinforce our support pillars! -cutscene_case4_line1=This world contains brittle rocks -cutscene_case4_line3=Our tools are too powerful to preserve any resources from destroying them -cutscene_case5_line1=Most actions give experience! -cutscene_case5_line3=The floating text indicates the quantity and cause of the experience -cutscene_case6_line1=The native population is lurking in the dark -cutscene_case6_line3=Be wary when digging, always bring along some defences -cutscene_case7_line1=This concludes the introduction -cutscene_case7_line3=Have fun and keep digging! -replay_cutscene=To replay the introduction, use the __1__ command - # locale linked to the quadrants scenario [quadrants] on=ON diff --git a/map_gen/maps/diggy/config.lua b/map_gen/maps/diggy/config.lua index 3d3d8afb..0597d5bf 100644 --- a/map_gen/maps/diggy/config.lua +++ b/map_gen/maps/diggy/config.lua @@ -49,10 +49,6 @@ local Config = { starting_items = {} } }, - -- controls the introduction cutscene - cutscene = { - enabled = true - }, -- core feature diggy_hole = { enabled = true, diff --git a/map_gen/maps/diggy/feature/cutscene.lua b/map_gen/maps/diggy/feature/cutscene.lua deleted file mode 100644 index 9580327b..00000000 --- a/map_gen/maps/diggy/feature/cutscene.lua +++ /dev/null @@ -1,305 +0,0 @@ -local Event = require 'utils.event' -local Token = require 'utils.token' -local Task = require 'utils.task' -local Debug = require 'utils.debug' -local Cutscene = require 'features.cutscene.cutscene_controller' -local CS_Rendering = require 'features.cutscene.rendering' -local RS = require 'map_gen.shared.redmew_surface' -local Color = require 'resources.color_presets' -local PC = require 'features.player_create' -local Experience = require 'map_gen.maps.diggy.feature.experience' -local register_rendering = Cutscene.register_rendering_id -local play_sound = Cutscene.play_sound -local draw_text = CS_Rendering.draw_text -local draw_multi_line = CS_Rendering.draw_multi_line_text -local rad = math.rad -local Rendering = require 'utils.rendering' - -local DiggyCutscene = {} - -local delayed_draw_text = - Token.register( - function(params) - local tick = params.tick - local player = params.player - if params.play_sound > 1 then - play_sound(tick, player, 'utility/list_box_click', 1) - end - register_rendering(player.index, tick, draw_text(params.settings, params.offset, params.text, params.player, params.params, params.draw_background, params.fit_to_edge)) - end -) - -local function draw_text_auto_replacing(tick, settings, offset, texts, player, params, draw_background, fit_to_edge, time, between_time) - time = time or 400 - time = time / #texts - between_time = between_time or 30 - params.time_to_live = time - between_time - if params.background then - params.background.time_to_live = time - between_time - end - for i = 1, #texts do - if texts[i] ~= '' then - Task.set_timeout_in_ticks(time * (i - 1), delayed_draw_text, {tick = tick, settings = settings, offset = offset, text = texts[i], player = player, params = params, draw_background = draw_background, fit_to_edge = fit_to_edge, play_sound = i}) - end - end -end - -local delayed_draw_arrow = - Token.register( - function(params) - local player = params.player - local tick = params.tick - params = params.params - local rendering_parmas = params.params - local id = CS_Rendering.draw_arrow(params.settings, params.offset, player, rendering_parmas, params.fit_to_edge) - register_rendering(player.index, tick, id) - Rendering.blink(id, 20, rendering_parmas.time_to_live) - end -) - -local function delayed_function(func, player, tick, params, offset_time) - Task.set_timeout_in_ticks(offset_time, func, {player = player, tick = tick, params = params}) -end - -local delayed_fade_blackout = - Token.register( - function(params) - local render_params = params.params - local id = CS_Rendering.blackout(params.player, render_params.zoom, render_params.time_to_live, render_params.color) - register_rendering(params.player.index, params.tick, id) - Rendering.fade(id, render_params.time_to_live - 1, 10) - end -) - -local original_resolution = {height = 1440, width = 2560} -local original_zoom = 1 - -local function cutscene_function(player_index, waypoint_index, params) - local cases = {} - - local player = game.players[player_index] - local ttw = params.time_to_wait - local zoom = params.zoom - local tick = params.tick - local settings = {original_resolution = original_resolution, original_zoom = original_zoom, player_zoom = zoom} - - if waypoint_index ~= -1 then - play_sound(tick, player, 'utility/list_box_click', 1) - --play_sound(tick, player, 'utility/inventory_move', 1, 10) - end - cases[-1] = function() - play_sound(tick, player, 'utility/game_won') - play_sound(tick, player, 'ambient/first-light', 1, 550) - register_rendering(player_index, tick, CS_Rendering.blackout(player, zoom, ttw + 1)) - register_rendering(player_index, tick, draw_text(settings, {x = 0, y = -16}, 'Diggy', player, {scale = 10, time_to_live = ttw, color = Color.yellow}, false, false)) - register_rendering( - player_index, - tick, - draw_multi_line(settings, {x = 0, y = -5}, {{'diggy.cutscene_case_line2', 'Diggy'}, '---------------------', {'diggy.cutscene_case_line4', 'Redmew'}, {'diggy.cutscene_case_line5', 'www.redmew.com/discord'}}, player, {scale = 5, time_to_live = ttw}, false) - ) - draw_text_auto_replacing(tick, settings, {x = 0, y = 10}, {'', {'diggy.cutscene_case_line6'}}, player, {scale = 3}, false, false, ttw, 0) - draw_text_auto_replacing(tick, settings, {x = 0, y = 16}, {'', '', {'diggy.cutscene_case_line7'}}, player, {scale = 1}, false, false, ttw, 0) - end - cases[0] = function() - register_rendering(player_index, tick, CS_Rendering.blackout(player, zoom, ttw + 1)) - register_rendering(player_index, tick, draw_text(settings, {x = 0, y = 0}, 'Redmew - Diggy', player, {scale = 10, time_to_live = ttw - 60, color = Color.red}, false, false)) - register_rendering(player_index, tick, draw_text(settings, {x = 0, y = -5}, 'Introduction', player, {scale = 5, time_to_live = ttw - 60}, false, false)) - - delayed_function(delayed_draw_arrow, player, tick, {settings = settings, offset = {x = 7, y = 2.5}, params = {rotation = rad(-45), time_to_live = 275 * 3 - 30}, fit_to_edge = true}, 0) - - draw_text_auto_replacing(tick, settings, {x = 8.5, y = 3}, {'This is our toolbar!'}, player, {scale = 2.5, alignment = 'left'}, false, true, 275) - - draw_text_auto_replacing(tick, settings, {x = 8.5, y = 3}, {'', "Here you'll find a wide range of tools and informations about us!"}, player, {scale = 2.5, alignment = 'left'}, false, true, 275 * 2) - - draw_text_auto_replacing(tick, settings, {x = 8.5, y = 3}, {'', '', 'Hover your mouse over them for more information'}, player, {scale = 2.5, alignment = 'left'}, false, true, 275 * 3) - - delayed_function(delayed_draw_arrow, player, tick, {settings = settings, offset = {x = 1, y = 2.5}, params = {rotation = rad(-45), time_to_live = 275 - 30}, fit_to_edge = true}, 275 * 3) - - draw_text_auto_replacing(tick, settings, {x = 2.5, y = 3}, {'', '', '', 'You can toggle our toolbar with this button'}, player, {scale = 2.5, alignment = 'left'}, false, true, 275 * 4) - - delayed_function(delayed_draw_arrow, player, tick, {settings = settings, offset = {x = 3.5, y = 2.5}, params = {rotation = rad(-45), time_to_live = 275 - 30}, fit_to_edge = true}, 275 * 4.5) - - draw_text_auto_replacing(tick, settings, {x = 5, y = 3}, {'', '', '', '', 'This is the Diggy experience menu'}, player, {scale = 2.5, alignment = 'left'}, false, true, 275 * 5.5) - - delayed_function(delayed_draw_arrow, player, tick, {settings = settings, offset = {x = 15, y = 9}, params = {rotation = rad(-90), time_to_live = 275 - 30}, fit_to_edge = true}, 275 * 5.5) - - Cutscene.toggle_gui(tick, player, Experience, 275 * 5.5, 'left') - - draw_text_auto_replacing(tick, settings, {x = 17, y = 8.7}, {'', '', '', '', '', 'Here you can see the current progress of the mine'}, player, {scale = 2.5, alignment = 'left'}, false, true, 275 * 6.5) - - Cutscene.toggle_gui(tick, player, Experience, 275 * 6.5) - - delayed_function(delayed_fade_blackout, player, tick, {zoom = zoom, time_to_live = 120 + 61, color = {0, 0, 0, 1}}, ttw - 61) - end - cases[1] = function() - draw_text_auto_replacing(tick, settings, {x = 0, y = 18}, {{'diggy.cutscene_case0_line1'}, {'diggy.cutscene_case0_line3'}}, player, {scale = 2.5}, true, false, ttw) - local entity = RS.get_surface().find_entities_filtered {position = {0, 0}, radius = 20, name = 'stone-wall', limit = 1} - if entity[1] then - local position = entity[1].position - local waypoint = { - -- case 2 - position = position, - transition_time = 120, - time_to_wait = 275, - zoom = 5 - } - Debug.print_position(position, 'position of wall') - Cutscene.inject_waypoint(player_index, waypoint, waypoint_index + 3, true) - end - end - cases[2] = function() - --play_sound(tick, player, 'utility/build_small', 1, 25) - draw_text_auto_replacing(tick, settings, {x = 0, y = 18}, {{'diggy.cutscene_case1_line1'}}, player, {scale = 2.5}, true, false, ttw) - end - cases[3] = function() - draw_text_auto_replacing(tick, settings, {x = 0, y = 18}, {{'diggy.cutscene_case2_line1'}, {'diggy.cutscene_case2_line3'}}, player, {scale = 2.5}, true, false, ttw) - end - cases[4] = function() - draw_text_auto_replacing(tick, settings, {x = 0, y = 18}, {{'diggy.cutscene_case3_line1'}, {'diggy.cutscene_case3_line3'}}, player, {scale = 2.5}, true, false, ttw) - local radius = 10 - local entity - repeat - entity = RS.get_surface().find_entities_filtered {position = {0, 0}, radius = radius, name = 'rock-big', limit = 1} - if radius <= 10 then - radius = 0 - end - radius = radius + 25 - until entity[1] or radius >= 200 - local position = {0, 3.5} - local way_zoom = 0.4 - entity = entity[1] - if entity then - position = entity.position - way_zoom = 5 - Debug.print_position(position, 'position of rock') - end - local waypoint = { - -- case 5 - position = position, - transition_time = 120, - time_to_wait = 550, - zoom = way_zoom - } - Cutscene.inject_waypoint(player_index, waypoint, waypoint_index + 3) - end - cases[5] = function() - play_sound(waypoint_index, player, 'utility/axe_mining_ore', 3, 35) - draw_text_auto_replacing(tick, settings, {x = 0, y = 18}, {{'diggy.cutscene_case4_line1'}, {'diggy.cutscene_case4_line3'}}, player, {scale = 2.5}, true, false, ttw) - end - cases[6] = function() - play_sound(tick, player, 'utility/research_completed', 1, 5) - local exp = 2500 - local text = {'', '[img=item/automation-science-pack] ', {'diggy.float_xp_gained_research', exp}} - player.create_local_flying_text {position = params.position, text = text, color = Color.light_sky_blue, time_to_live = ttw / 3} - draw_text_auto_replacing(tick, settings, {x = 0, y = 18}, {{'diggy.cutscene_case5_line1'}, {'diggy.cutscene_case5_line3'}}, player, {scale = 2.5}, true, false, ttw) - end - cases[7] = function() - play_sound(tick, player, 'utility/axe_fighting', 5, 25, 10) - play_sound(tick, player, 'worm-sends-biters', 1, 70) - draw_text_auto_replacing(tick, settings, {x = 0, y = 18}, {{'diggy.cutscene_case6_line1'}, {'diggy.cutscene_case6_line3'}}, player, {scale = 2.5}, true, false, ttw) - end - cases[8] = function() - draw_text_auto_replacing(tick, settings, {x = 0, y = 18}, {{'diggy.cutscene_case7_line1'}, {'diggy.cutscene_case7_line3'}}, player, {scale = 2.5}, true, false, ttw) - --play_sound(tick, player, 'utility/tutorial_notice', 1) - end - local case = cases[waypoint_index] - if case then - case() - end -end - -local waypoints = { - { - -- case -1 - position = {x = 0, y = 0}, - transition_time = 60, - time_to_wait = 600, - zoom = 0.5 - }, - { - -- case -1.1 - position = {x = 0, y = 0}, - transition_time = 0, - time_to_wait = 275 * 7, - zoom = 0.5 - }, - { - -- case 0 - position = {x = 0, y = 0}, - transition_time = 120, - time_to_wait = 550, - zoom = 1 - }, - { - -- case 1 - position = {x = 0, y = 0}, - transition_time = 120, - time_to_wait = 275, - zoom = 1.5 - }, - { - -- case 2 - position = {x = 0.5, y = 3.5}, - transition_time = 120, - time_to_wait = 550, - zoom = 5 - }, - { - -- case 3 - position = {x = 0, y = 0}, - transition_time = 120, - time_to_wait = 550, - zoom = 2 - }, - -- inserting case 4 - { - -- case 5 - position = {x = 0, y = -2}, - transition_time = 120, - time_to_wait = 550, - zoom = 1.8 - }, - { - -- case 6 - position = {x = 0, y = 0}, - transition_time = 120, - time_to_wait = 550, - zoom = 0.3 - }, - { - -- case 7 - position = {x = 0, y = 0}, - transition_time = 120, - time_to_wait = 430, - zoom = 0.8 - } -} - -local function terminate_function(player_index) - local player = game.get_player(player_index) - PC.show_start_up(player) - player.print({'diggy.replay_cutscene', '/replay'}, Color.yellow) -end - -Cutscene.register_cutscene_function('Diggy_Welcome', waypoints, Token.register(cutscene_function), Token.register(terminate_function)) -Cutscene.register_replay('Diggy_Welcome', 120) - -local start_cutscene = - Token.register( - function(params) - Cutscene.register_running_cutscene(params.event.player_index, 'Diggy_Welcome', 120) - end -) - -function DiggyCutscene.register() - global.config.player_create.cutscene = true - - Event.add( - defines.events.on_player_created, - function(event) - Task.set_timeout_in_ticks(60, start_cutscene, {event = event}) - end - ) -end - -return DiggyCutscene diff --git a/map_gen/maps/diggy/feature/experience.lua b/map_gen/maps/diggy/feature/experience.lua index 2892b921..a9993b84 100644 --- a/map_gen/maps/diggy/feature/experience.lua +++ b/map_gen/maps/diggy/feature/experience.lua @@ -489,7 +489,7 @@ local function redraw_buff(data) end end -function Experience.toggle(event) +local function toggle(event) local player = event.player local gui = player.gui local left = gui.left @@ -559,7 +559,7 @@ end Gui.allow_player_to_toggle_top_element_visibility('Diggy.Experience.Button') -Gui.on_click('Diggy.Experience.Button', Experience.toggle) +Gui.on_click('Diggy.Experience.Button', toggle) Gui.on_custom_close( 'Diggy.Experience.Frame', function(event) @@ -576,7 +576,7 @@ local function update_gui() if frame and frame.valid then local data = {player = p, trigger = 'update_gui'} - Experience.toggle(data) + toggle(data) end end diff --git a/resources/vertices.lua b/resources/vertices.lua deleted file mode 100644 index e7a2792a..00000000 --- a/resources/vertices.lua +++ /dev/null @@ -1,16 +0,0 @@ -local shapes = { - arrow_point = { - --triangle - {1, 1}, -- right edge g - {-1, 1}, -- left edge b - {0, 0}, -- top (pointer) a - --rectangle - {0.5, 1}, -- right inner top f - {0.5, 2}, -- right inner bottom e - {-0.5, 1}, -- left inner top c - {-0.5, 2} -- left inner bottom d - }, - arrow = {{1, 0}, {-1, 0}, {0, -1}, {0.5, 0}, {0.5, 1}, {-0.5, 0}, {-0.5, 1}} -} - -return shapes diff --git a/utils/rendering.lua b/utils/rendering.lua deleted file mode 100644 index 4c24367c..00000000 --- a/utils/rendering.lua +++ /dev/null @@ -1,114 +0,0 @@ -local Token = require 'utils.token' -local Task = require 'utils.task' - -local Public = {} - -local cos = math.cos -local sin = math.sin - -local rendering = rendering -local draw_polygon = rendering.draw_polygon - -function Public.draw_polygon(positions, options) - local vertices = {} - - for i = 1, #positions do - vertices[i] = {target = positions[i]} - end - - local args = {vertices = vertices} - for k, v in pairs(options) do - args[k] = v - end - - return draw_polygon(args) -end - -function Public.translate(positions, x, y) - local result = {} - - for i = 1, #positions do - local pos = positions[i] - result[i] = {pos[1] + x, pos[2] + y} - end - - return result -end - -function Public.scale(positions, x, y) - local result = {} - - for i = 1, #positions do - local pos = positions[i] - result[i] = {pos[1] * x, pos[2] * y} - end - - return result -end - -function Public.rotate(positions, radians) - local qx = cos(radians) - local qy = sin(radians) - - local result = {} - - for i = 1, #positions do - local pos = positions[i] - local x, y = pos[1], pos[2] - local rot_x = qx * x - qy * y - local rot_y = qy * x + qx * y - - result[i] = {rot_x, rot_y} - end - - return result -end - -local fade_token = - Token.register( - function(params) - local id = params.id - if rendering.is_valid(id) then - rendering.set_color(id, params.color) - end - end -) - -function Public.fade(id, time, ticks) - ticks = ticks or 20 - local count = (time - time % ticks) / ticks - if rendering.is_valid(id) then - local color = rendering.get_color(id) - local a = color.a or 1 - local decrement = a / count - for i = 1, count do - a = a - decrement - a = a >= 0 and a or 0 - Task.set_timeout_in_ticks(ticks * i, fade_token, {id = id, color = {r = color.r, b = color.b, g = color.g, a = a}}) - end - end -end - -local blink_token = - Token.register( - function(params) - local id = params.id - if rendering.is_valid(id) then - rendering.set_visible(id, params.visible) - end - end -) - -function Public.blink(id, rate, time) - local count = (time - time % rate) / rate - rate = (time / count) * 2 - if rendering.is_valid(id) then - local visible = rendering.get_visible(id) - for i = 1, count do - visible = not visible - Task.set_timeout_in_ticks(rate * i, blink_token, {id = id, visible = visible}) - end - end -end - -return Public From 99fe5a8d88a311445c0d00b90325a059d360c46f Mon Sep 17 00:00:00 2001 From: SimonFlapse Date: Thu, 10 Oct 2019 10:24:41 +0200 Subject: [PATCH 15/21] Restricted landfill to 'water' (connected_dots) --- map_gen/maps/connected_dots.lua | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/map_gen/maps/connected_dots.lua b/map_gen/maps/connected_dots.lua index 6321e6e2..f5120993 100644 --- a/map_gen/maps/connected_dots.lua +++ b/map_gen/maps/connected_dots.lua @@ -20,6 +20,12 @@ RS.set_map_gen_settings( } ) +local allowed_landfill_tiles = { + ['water'] = true +} + +require 'map_gen.shared.restrict_landfill_tile'(allowed_landfill_tiles) + local function no_enemies(_, _, world, tile) for _, e in ipairs(world.surface.find_entities_filtered({force = 'enemy', position = {world.x, world.y}})) do e.destroy() From 16810d4a676cc1c8462e089ee6bdcd491d5661e5 Mon Sep 17 00:00:00 2001 From: SimonFlapse Date: Thu, 10 Oct 2019 10:40:32 +0200 Subject: [PATCH 16/21] Fixed pollution and updated map_settings reference --- map_gen/maps/danger_ores.lua | 4 ++-- resources/map_settings.lua | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/map_gen/maps/danger_ores.lua b/map_gen/maps/danger_ores.lua index 6e84e2c8..97787580 100644 --- a/map_gen/maps/danger_ores.lua +++ b/map_gen/maps/danger_ores.lua @@ -42,8 +42,8 @@ Global.register_init( uranium_seed = seed * 2 density_seed = seed * 3 game.map_settings.enemy_evolution.time_factor = 0.000002 - game.map_settings.enemy_evolution.destroy_factor = 0.000010 - game.map_settings.enemy_evolution.pollution_factor = 0.000075 + game.map_settings.enemy_evolution.destroy_factor = 0.0009 + game.map_settings.enemy_evolution.pollution_factor = 0.0000015 end ) diff --git a/resources/map_settings.lua b/resources/map_settings.lua index c18de210..5e377ee5 100644 --- a/resources/map_settings.lua +++ b/resources/map_settings.lua @@ -18,7 +18,7 @@ return { enabled = true, time_factor = 0.000004, destroy_factor = 0.002, - pollution_factor = 0.000015 + pollution_factor = 0.0000009 }, enemy_expansion = { enabled = true, From 5975942db8cc530adad9c43fcc55c8b1b670715b Mon Sep 17 00:00:00 2001 From: SimonFlapse Date: Thu, 10 Oct 2019 11:01:16 +0200 Subject: [PATCH 17/21] (Hoping to fix the removed cutscene changes) Revert "Revert "Merge pull request #947 from SimonFlapse/diggy_cutscene"" This reverts commit 0f87f7040a15a499bdbd7089109c2583abf01a18. --- .luacheckrc | 6 + config.lua | 5 + control.lua | 3 + features/cutscene/cutscene_controller.lua | 529 ++++++++++++++++++++++ features/cutscene/rendering.lua | 341 ++++++++++++++ features/gui/radio.lua | 213 +++++++++ features/player_create.lua | 48 +- locale/en/redmew_command_text.cfg | 2 +- locale/en/redmew_features.cfg | 6 + locale/en/redmew_maps.cfg | 22 + map_gen/maps/diggy/config.lua | 4 + map_gen/maps/diggy/feature/cutscene.lua | 305 +++++++++++++ map_gen/maps/diggy/feature/experience.lua | 6 +- resources/vertices.lua | 16 + utils/rendering.lua | 114 +++++ 15 files changed, 1594 insertions(+), 26 deletions(-) create mode 100644 features/cutscene/cutscene_controller.lua create mode 100644 features/cutscene/rendering.lua create mode 100644 features/gui/radio.lua create mode 100644 map_gen/maps/diggy/feature/cutscene.lua create mode 100644 resources/vertices.lua create mode 100644 utils/rendering.lua diff --git a/.luacheckrc b/.luacheckrc index 13497dc3..5fb748df 100644 --- a/.luacheckrc +++ b/.luacheckrc @@ -253,6 +253,12 @@ stds.factorio_control = { 'set_forces', 'get_players', 'set_players', + 'get_visible', + 'set_visible', + 'get_draw_on_ground', + 'set_draw_on_ground', + 'get_only_in_alt_mode', + 'set_only_in_alt_mode', 'get_color', 'set_color', 'get_width', diff --git a/config.lua b/config.lua index 311c947f..3a48d7a2 100644 --- a/config.lua +++ b/config.lua @@ -169,6 +169,7 @@ global.config = { 'Welcome to this map created by the RedMew team. You can join our discord at: redmew.com/discord', 'Click the question mark in the top left corner for server information and map details.' }, + cutscene = false, -- format is a table: {{message, weight}, {message, weight}}, where a higher weight has more chance to be shown random_join_message_set = require 'resources.join_messages', -- applied when cheat_mode is set to true @@ -306,6 +307,10 @@ global.config = { rich_text_gui = { enabled = true }, + -- adds a command to open a gui that can play sounds from a list + radio = { + enabled = false + }, -- adds a camera to watch another player camera = { enabled = true diff --git a/control.lua b/control.lua index 5f3b30f8..27ec1e64 100644 --- a/control.lua +++ b/control.lua @@ -144,6 +144,9 @@ end if config.rich_text_gui.enabled then require 'features.gui.rich_text' end +if config.radio.enabled or _DEBUG then + require 'features.gui.radio' +end if config.redmew_settings.enabled then require 'features.gui.redmew_settings' end diff --git a/features/cutscene/cutscene_controller.lua b/features/cutscene/cutscene_controller.lua new file mode 100644 index 00000000..ce4aa080 --- /dev/null +++ b/features/cutscene/cutscene_controller.lua @@ -0,0 +1,529 @@ +local Event = require 'utils.event' +local Token = require 'utils.token' +local Task = require 'utils.task' +local Global = require 'utils.global' +local Command = require 'utils.command' +local Debug = require 'utils.debug' +local Gui = require 'utils.gui' + +local set_timeout_in_ticks = Task.set_timeout_in_ticks +local debug_print = Debug.print + +local skip_btn_name = Gui.uid_name() +local backward_btn_name = Gui.uid_name() +local forward_btn_name = Gui.uid_name() + +local Public = {} +local handler + +local cutscene_functions = {} +local running_cutscenes = {} +local replay = { + identifier = nil, + final_transition_time = nil +} +Global.register( + { + cutscene_functions = cutscene_functions, + running_cutscenes = running_cutscenes, + replay = replay + }, + function(tbl) + cutscene_functions = tbl.cutscene_functions + running_cutscenes = tbl.running_cutscenes + replay = tbl.replay + end +) + +local function valid(entity) + return entity and entity.valid +end + +local function waypoint_still_active(tick, player_index) + local running_cutscene = running_cutscenes[player_index] + tick = tick or -1 + if tick == -1 then + debug_print('Tick was nil', 5) + end + if not running_cutscene or tick < running_cutscene.start_tick then + return false + end + return true +end + +local toggle_gui_delayed = + Token.register( + function(params) + local player = params.player + if not waypoint_still_active(params.tick, player.index) then + debug_print('Cutscene is no longer active. Skipping toggle_gui') + return + end + local event = {player = player} + local clear = params.clear + if clear == 'left' then + player.gui.left.clear() + elseif clear == 'top' then + player.gui.top.clear() + elseif clear == 'center' then + player.gui.center.clear() + end + params.gui.toggle(event) + end +) + +function Public.toggle_gui(tick, player, gui, initial_delay, clear) + --[[if type(gui) == 'table' then + debug_print('Provided GUI is invalid.') + return + end]] + set_timeout_in_ticks(initial_delay, toggle_gui_delayed, {tick = tick, player = player, gui = gui, clear = clear}) +end + +local play_sound_delayed = + Token.register( + function(params) + local player = params.player + if not waypoint_still_active(params.tick, player.index) then + debug_print('Cutscene is no longer active. Skipping play_sound') + return + end + player.play_sound {path = params.path} + end +) + +function Public.play_sound(tick, player, path, times, delay, initial_delay) + if not game.is_valid_sound_path(path) then + debug_print('Provided SoundPath is invalid. Try opening /radio and browse for a valid path') + return + end + + if not waypoint_still_active(tick, player.index) then + debug_print('Cutscene is no longer active. Skipping play_sound') + return + end + + times = times or 1 + if times == 1 and not delay and initial_delay then + delay = initial_delay + end + if times > 1 or delay then + delay = delay or 20 + initial_delay = initial_delay or 0 + for i = 1, times, 1 do + set_timeout_in_ticks(initial_delay + delay * i, play_sound_delayed, {tick = tick, player = player, path = path}) + end + else + player.play_sound {path = path} + end +end + +local remove_renderings = + Token.register( + function(renderings) + for _, v in pairs(renderings) do + if rendering.is_valid(v) then + rendering.destroy(v) + debug_print('Deleted rendering with id: ' .. v) + end + end + end +) + +---Asserts if a given variable is of the expected type using type(). +--- +---@param expected_type string +---@param given any +---@param variable_reference_message string displayed when the expectation is not met +local function assert_type(expected_type, given, variable_reference_message, allow_nil) + local given_type = type(given) + if given_type ~= expected_type and (allow_nil and given_type ~= 'nil') then + error('Argument ' .. variable_reference_message .. " must be of type '" .. expected_type .. "', given '" .. given_type .. "'") + end +end + +function Public.register_cutscene_function(identifier, waypoints, func, terminate_func) + assert_type('string', identifier, 'identifier of function cutscene_controller.register_cutscene_function') + assert_type('table', waypoints, 'waypoints of function cutscene_controller.register_cutscene_function') + assert_type('number', func, 'func of function cutscene_controller.register_cutscene_function') + assert_type('number', terminate_func, 'func of function cutscene_controller.register_cutscene_function', true) + + cutscene_functions[identifier] = {func = func, waypoints = waypoints, update = false, terminate_func = terminate_func} +end + +function Public.register_running_cutscene(player_index, identifier, final_transition_time) + assert_type('number', player_index, 'player_index of function cutscene_controller.register_running_cutscene') + assert_type('string', identifier, 'identifier of function cutscene_controller.register_running_cutscene') + assert_type('number', final_transition_time, 'identifier of function cutscene_controller.register_running_cutscene', true) + + local player = game.get_player(player_index) + if not valid(player) then + return + end + + local cutscene_function = cutscene_functions[identifier] + if not cutscene_function then + return + end + + local waypoints = cutscene_function.waypoints + if not waypoints then + return + end + + if running_cutscenes[player_index] then + player.print({'cutscene_controller.cannot_start_new'}) + return + end + + running_cutscenes[player_index] = { + func = cutscene_function.func, + waypoints = waypoints, + update = cutscene_function.update, + final_transition_time = final_transition_time, + character = player.character, + terminate_func = cutscene_function.terminate_func, + rendering = {}, + current_index = -1, + start_tick = 0 + } + local running_cutscene = running_cutscenes[player_index] + + if player.controller_type == defines.controllers.cutscene then + debug_print('' .. player.name .. ' was already in another cutscene not controlled by this module. It has been stopped') + player.exit_cutscene() + end + player.set_controller {type = defines.controllers.ghost} + + final_transition_time = final_transition_time >= 0 and final_transition_time or 60 + running_cutscene.final_transition_time = final_transition_time + running_cutscene.identifier = identifier + player.set_controller { + type = defines.controllers.cutscene, + waypoints = waypoints, + final_transition_time = final_transition_time + } + + local flow = player.gui.top.add {type = 'flow'} + running_cutscene.btn = flow + + local btn = flow.add {type = 'sprite-button', name = skip_btn_name, caption = 'Skip cutscene'} + btn.style.minimal_height = 28 + btn.style.minimal_width = 150 + btn.style.font = 'default-large-bold' + btn.style.font_color = {r = 255, g = 215, b = 0} + + local back_btn = flow.add {type = 'sprite-button', name = backward_btn_name, caption = 'Go back'} + back_btn.style.minimal_height = 28 + back_btn.style.minimal_width = 100 + back_btn.style.font = 'default-large-bold' + back_btn.style.font_color = {r = 255, g = 215, b = 0} + + local forward_btn = flow.add {type = 'sprite-button', name = forward_btn_name, caption = 'Go forward'} + forward_btn.style.minimal_height = 28 + forward_btn.style.minimal_width = 100 + forward_btn.style.font = 'default-large-bold' + forward_btn.style.font_color = {r = 255, g = 215, b = 0} + + handler({player_index = player_index, waypoint_index = -1, tick = game.tick}) +end + +local function restart_cutscene(player_index, waypoints, start_index) + local current_running = running_cutscenes[player_index] + local final_transition_time = current_running.final_transition_time + current_running.update = false + local character = current_running.character + + if not character then + log('Player index: ' .. player_index .. ' managed to lose their character in a cutscene') + end + + local end_waypoint = { + -- end waypoint + position = character.position, + transition_time = final_transition_time, + time_to_wait = 1, + zoom = 1, + terminate = true + } + + table.insert(waypoints, end_waypoint) + + running_cutscenes[player_index] = { + func = current_running.func, + waypoints = waypoints, + update = false, + final_transition_time = final_transition_time, + character = character, + terminate_func = current_running.terminate_func, + rendering = current_running.rendering, + btn = current_running.btn, + current_index = current_running.current_index, + start_tick = current_running.start_tick + } + + debug_print('Updating cutscene for player_index ' .. player_index) + debug_print(running_cutscenes[player_index]) + + local player = game.get_player(player_index) + if not valid(player) then + return + end + + if player.controller_type == defines.controllers.cutscene then + player.exit_cutscene() + player.set_controller {type = defines.controllers.ghost} + end + + player.set_controller { + type = defines.controllers.cutscene, + waypoints = waypoints, + final_transition_time = final_transition_time + } + + if start_index then + player.jump_to_cutscene_waypoint(start_index + 1) + else + start_index = -1 + end + + handler({player_index = player_index, waypoint_index = start_index, tick = game.tick}) +end + +function Public.inject_waypoint(player_index, waypoint, waypoint_index, override) + local running_cutscene = running_cutscenes[player_index] + if not running_cutscene then + return + end + local waypoints = running_cutscene.waypoints + if not waypoints then + return + end + local copy_waypoints = {} + for i = 1, #waypoints do + table.insert(copy_waypoints, waypoints[i]) + end + if override then + copy_waypoints[waypoint_index] = waypoint + else + table.insert(copy_waypoints, waypoint_index, waypoint) + end + running_cutscene.update = copy_waypoints +end + +local callback_function = + Token.register( + function(params) + local player_index = params.player_index + local func_params = params.params + if waypoint_still_active(func_params.tick, player_index) then + Token.get(params.func)(player_index, params.waypoint_index, func_params) + else + debug_print('Skipping callback function. Cutscene got terminated!') + end + end +) + +local reconnect_character = + Token.register( + function(params) + local player_index = params.player_index + local player = game.get_player(player_index) + local running_cutscene = params.running_cutscene + local character = running_cutscene.character + local func = running_cutscene.terminate_func + if valid(player) and valid(character) then + player.exit_cutscene() + player.set_controller {type = defines.controllers.character, character = character} + if func then + Token.get(func)(player_index) + end + Token.get(remove_renderings)(running_cutscene.rendering) + running_cutscene.btn.destroy() + running_cutscenes[player_index] = nil + end + end +) + +function Public.terminate_cutscene(player_index, ticks) + local running_cutscene = running_cutscenes[player_index] + if not running_cutscene then + return + end + ticks = ticks and ticks or 1 + debug_print('Terminating cutscene in ' .. ticks .. ' Ticks') + + set_timeout_in_ticks( + ticks, + reconnect_character, + { + player_index = player_index, + running_cutscene = running_cutscene + } + ) +end + +function Public.register_rendering_id(player_index, tick, render_id) + if type(render_id) ~= 'table' then + render_id = {render_id} + end + local running_cutscene = running_cutscenes[player_index] + for _, id in pairs(render_id) do + if rendering.is_valid(id) then + if not waypoint_still_active(tick, player_index) then + debug_print('The rendering with id ' .. id .. ' was not added. Destroying it instead') + rendering.destroy(id) + else + table.insert(running_cutscene.rendering, id) + end + end + end +end + +function Public.register_replay(identifier, final_transition_time) + replay.identifier = identifier + replay.final_transition_time = final_transition_time + debug_print('Identifier ' .. identifier .. ' registered as replay cutscene') +end + +handler = function(event) + local player_index = event.player_index + local waypoint_index = event.waypoint_index + local tick = event.tick + + debug_print('Waypoint_index ' .. waypoint_index .. ' has finished at tick: ' .. tick) + + local running_cutscene = running_cutscenes[player_index] + if not running_cutscene then + return + end + running_cutscene.current_index = waypoint_index + 1 + running_cutscene.start_tick = tick + + local update = running_cutscene.update + if update then + restart_cutscene(player_index, update, waypoint_index) + return + end + local ticks = running_cutscene.waypoints[waypoint_index + 2] + if ticks then + ticks = ticks.transition_time + else + ticks = running_cutscene.final_transition_time + end + + local func = running_cutscene.func + if not func then + return + end + local current_waypoint = running_cutscene.waypoints[waypoint_index + 2] + if not current_waypoint or current_waypoint.terminate then + Public.terminate_cutscene(player_index, ticks) + return + end + local params = { + position = current_waypoint.position, + time_to_wait = current_waypoint.time_to_wait, + transition_time = current_waypoint.transition_time, + zoom = current_waypoint.zoom, + name = current_waypoint.name, + tick = tick + } + + debug_print('Waypoint_index ' .. waypoint_index + 1 .. ' (waypoint #' .. waypoint_index + 2 .. ') callback in ' .. ticks .. ' ticks') + + set_timeout_in_ticks(ticks, callback_function, {func = running_cutscene.func, player_index = player_index, waypoint_index = waypoint_index, params = params}) +end + +function Public.goTo(player_index, waypoint_index) + local running_cutscene = running_cutscenes[player_index] + if waypoint_index < 0 or waypoint_index > #running_cutscene.waypoints - 2 then + return false + end + Token.get(remove_renderings)(running_cutscene.rendering) + game.get_player(player_index).jump_to_cutscene_waypoint(waypoint_index) + handler({player_index = player_index, waypoint_index = waypoint_index - 1, tick = game.tick}) + running_cutscene.current_index = waypoint_index + return true +end + +local function restore(event) + Public.terminate_cutscene(event.player_index) +end + +Event.add(defines.events.on_cutscene_waypoint_reached, handler) +Event.add(defines.events.on_pre_player_left_game, restore) +Event.add(defines.events.on_player_joined_game, restore) + +local replay_cutscene = + Token.register( + function(params) + Public.register_running_cutscene(params.event.player_index, replay.identifier, replay.final_transition_time) + end +) + +local function replay_handler(_, player) + if not replay.identifier then + player.print({'cutscene_controller.cannot_replay'}) + return + end + Token.get(replay_cutscene)({event = {player_index = player.index}}) +end + +Command.add( + 'replay', + { + description = {'cutscene_controller.replay'}, + capture_excess_arguments = false, + allowed_by_server = false + }, + replay_handler +) + +local function skip_cutscene(_, player) + if not player or not player.valid then + return + end + if player.controller_type == defines.controllers.cutscene then + Public.terminate_cutscene(player.index) + end +end + +Command.add( + 'skip', + { + description = {'cutscene_controller.skip'}, + capture_excess_arguments = false, + allowed_by_server = false + }, + skip_cutscene +) + +Gui.on_click( + skip_btn_name, + function(event) + skip_cutscene(nil, game.get_player(event.player_index)) + end +) + +Gui.on_click( + backward_btn_name, + function(event) + local player_index = event.player_index + if Public.goTo(player_index, running_cutscenes[player_index].current_index - 1) == false then + game.get_player(player_index).print("Cutscene: You're already at the beginning") + end + end +) + +Gui.on_click( + forward_btn_name, + function(event) + local player_index = event.player_index + if Public.goTo(event.player_index, running_cutscenes[player_index].current_index + 1) == false then + game.get_player(player_index).print("Cutscene: You're already at the end") + end + end +) + +return Public diff --git a/features/cutscene/rendering.lua b/features/cutscene/rendering.lua new file mode 100644 index 00000000..539ce6dc --- /dev/null +++ b/features/cutscene/rendering.lua @@ -0,0 +1,341 @@ +local RS = require 'map_gen.shared.redmew_surface' +local Debug = require 'utils.debug' +local Rendering = require 'utils.rendering' +local Vertices = require 'resources.vertices' +local insert = table.insert + +local toggle_debug = false --Set to true if you wish to get spammed with debug messages from the rendering module (Requires _DEBUG = true) + +local function debug_print(message, trace_levels) + if toggle_debug then + Debug.print(message, trace_levels) + end +end + +local Public = {} + +--At zoom level 1 a tile is 32x32 pixels +--tile size is calculated by 32 * zoom level. + +local function text_height_in_tiles(scale, zoom) + -- Default (count-font) at scale 10 is 125 pixels for lower letters and 109 for capital letters + -- At scale 5 this is 64 or very close to half of the size at scale 10 (62.5) + -- Therefore size hsa been determined to be (12.5 * scale) + 1 + local size = (12.5 * scale) + 1 + local pixel_per_tile = zoom * 32 + return size / pixel_per_tile, size +end + +local function calculate_percentages(settings, player_resolution) + local original_resolution = settings.original_resolution + return { + height = player_resolution.height / original_resolution.height, + width = player_resolution.width / original_resolution.width, + tile = (settings.original_zoom * 32) / (settings.player_zoom * 32) + } +end + +local function text_scale(percentage, scale) + return scale * (percentage.height + percentage.width) * 0.5 +end + +local function fit_to_screen(percentage, coordinates) + if not coordinates.fitted then + local height = percentage.height + local width = percentage.width + local tile = percentage.tile + for _, pos in pairs(coordinates) do + if type(pos) == 'number' then + coordinates.x = coordinates.x * width + coordinates.y = coordinates.y * height + break + else + pos.x = pos.x * width + pos.y = pos.y * height + end + end + for _, pos in pairs(coordinates) do + if type(pos) == 'number' then + coordinates.x = coordinates.x * tile + coordinates.y = coordinates.y * tile + break + else + pos.x = pos.x * tile + pos.y = pos.y * tile + end + end + coordinates.fitted = true + end + return coordinates +end + +local function fit_to_screen_edges(settings, player_resolution, coordinates) + if not coordinates.fitted then + local tile = settings.original_zoom * 32 + local player_tile = settings.player_zoom * 32 + local display_scale = player_resolution.scale or 1 + + local player_height = (player_resolution.height / player_tile) * 0.5 + local player_width = (player_resolution.width / player_tile) * 0.5 + + for _, pos in pairs(coordinates) do + if type(pos) == 'number' then + coordinates.y = -player_height + (((coordinates.y * tile) / player_tile) * display_scale) + coordinates.x = -player_width + (((coordinates.x * tile) / player_tile) * display_scale) + break + else + pos.y = -player_height + (((pos.y * tile) / player_tile) * display_scale) + pos.x = -player_width + (((pos.x * tile) / player_tile) * display_scale) + end + end + coordinates.fitted = true + end + return coordinates +end + +local function create_background_params(params) + local background_params = params.background + if background_params then + for k, v in pairs(params) do + if k ~= 'background' then + if not background_params[k] then + background_params[k] = v + end + end + end + else + background_params = params + end + return background_params +end + +local function text_background(settings, offset, player, percentages, size, number_text, params) + local margin = 0.01 / params.scale + local left_top = fit_to_screen(percentages, {x = -40, y = 0}) + local right_bottom = fit_to_screen(percentages, {x = 40, y = 0}) + left_top.y = -size * margin * 0.875 + right_bottom.y = size * (1.5 + (margin * 1.125)) * number_text + local background_params = create_background_params(params) + return Public.draw_rectangle(settings, offset, left_top, right_bottom, player, background_params) +end + +function Public.draw_text(settings, offset, text, player, params, draw_background, fit_to_edge) + local ids = {} + local player_resolution = player.display_resolution + player_resolution.scale = player.display_scale + local percentages = calculate_percentages(settings, player_resolution) + local scale = params.scale + + if draw_background ~= -1 then + scale = text_scale(percentages, scale) + local size = text_height_in_tiles(scale, settings.player_zoom) + if fit_to_edge then + offset = fit_to_screen_edges(settings, player_resolution, offset) + else + offset = fit_to_screen(percentages, offset) + end + offset.y = offset.y - size * 0.5 + end + local size = text_height_in_tiles(scale, settings.player_zoom) + + if draw_background == true then + insert(ids, text_background(settings, offset, player, percentages, size, 1, params, fit_to_edge)) + end + + local target = {x = player.position.x + offset.x, y = player.position.y + offset.y} + + local color = params.color + color = color and color or {r = 255, g = 255, b = 255} + + local font = params.font + + local surface = params.surface + surface = surface or RS.get_surface() + + local ttl = params.time_to_live + ttl = ttl and ttl or -1 + + local forces = params.forces + + local players = params.players + players = players or {} + + table.insert(players, player) + + local visible = params.visible + visible = visible or true + + local dog = params.draw_on_ground + dog = dog or false + + local orientation = params.orientation + orientation = orientation or 0 + + local alignment = params.alignment + alignment = alignment or 'center' + + --local swz = params.scale_with_zoom + local swz = true + + local oiam = params.only_in_alt_mode + oiam = oiam or false + + local rendering_params = { + text = {'', text}, + color = color, + target = target, + scale_with_zoom = swz, + surface = surface, + time_to_live = ttl, + alignment = alignment, + players = players, + scale = scale, + forces = forces, + visible = visible, + draw_on_ground = dog, + only_in_alt_mode = oiam, + orientation = orientation, + font = font + } + + debug_print(rendering_params) + + insert(ids, rendering.draw_text(rendering_params)) + return ids +end + +function Public.draw_multi_line_text(settings, offset, texts, player, params, draw_background, fit_to_edge) + local ids = {} + local player_resolution = player.display_resolution + player_resolution.scale = player.display_scale + local percentages = calculate_percentages(settings, player_resolution) + local scale = params.scale + + scale = text_scale(percentages, scale) + local size = text_height_in_tiles(scale, settings.player_zoom) + + if fit_to_edge then + offset = fit_to_screen_edges(settings, player_resolution, offset) + else + offset = fit_to_screen(percentages, offset) + end + + offset.y = offset.y - size * 0.5 + + if draw_background then + insert(ids, text_background(settings, offset, player, percentages, size, #texts, params, fit_to_edge)) + draw_background = -1 + end + + for i = 1, #texts do + insert(ids, Public.draw_text(settings, offset, texts[i], player, params, draw_background, fit_to_edge)[1]) + offset.y = offset.y + (size * 1.5) + end + return ids +end + +function Public.draw_rectangle(settings, offset, left_top, right_bottom, player, params, fit_to_edge) + local player_resolution = player.display_resolution + player_resolution.scale = player.display_scale + local percentages = calculate_percentages(settings, player_resolution) + if fit_to_edge then + offset = fit_to_screen_edges(settings, player_resolution, offset) + left_top = fit_to_screen_edges(settings, player_resolution, left_top) + right_bottom = fit_to_screen_edges(settings, player_resolution, right_bottom) + else + offset = fit_to_screen(percentages, offset) + left_top = fit_to_screen(percentages, left_top) + right_bottom = fit_to_screen(percentages, right_bottom) + end + + local target_left = {x = player.position.x + left_top.x + offset.x, y = player.position.y + left_top.y + offset.y} + local target_right = {x = player.position.x + right_bottom.x + offset.x, y = player.position.y + right_bottom.y + offset.y} + + local color = params.color + color = color and color or {} + + local width = params.width + width = width and width or 0 + + local filled = params.filled + filled = filled and filled or true + + local surface = params.surface + surface = surface or RS.get_surface() + + local ttl = params.time_to_live + ttl = ttl and ttl or -1 + + local forces = params.forces + + local players = params.players + players = players or {} + + table.insert(players, player) + + local visible = params.visible + visible = visible or true + + local dog = params.draw_on_ground + dog = dog or false + + local oiam = params.only_in_alt_mode + oiam = oiam or false + + local rendering_params = { + color = color, + width = width, + filled = filled, + left_top = target_left, + right_bottom = target_right, + surface = surface, + time_to_live = ttl, + forces = forces, + players = players, + visible = visible, + draw_on_ground = dog, + only_in_alt_mode = oiam + } + + debug_print(rendering_params) + + return rendering.draw_rectangle(rendering_params) +end + +local blackout_settings = {original_resolution = {height = 1440, width = 2560}, original_zoom = 1, player_zoom = 1} +function Public.blackout(player, zoom, ttl, color) + local left_top = {x = -40, y = -22.5} + local right_bottom = {x = 40, y = 22.5} + blackout_settings.player_zoom = zoom + return Public.draw_rectangle(blackout_settings, {x = 0, y = 0}, left_top, right_bottom, player, {color = color, time_to_live = ttl}) +end + +function Public.draw_arrow(settings, offset, player, params, fit_to_edge) + local player_resolution = player.display_resolution + player_resolution.scale = player.display_scale + local percentages = calculate_percentages(settings, player_resolution) + if fit_to_edge then + offset = fit_to_screen_edges(settings, player_resolution, offset) + else + offset = fit_to_screen(percentages, offset) + end + + local vertices = Rendering.scale(Vertices.arrow, percentages.tile, percentages.tile) + vertices = Rendering.rotate(vertices, params.rotation) + vertices = Rendering.translate(vertices, offset.x, offset.y) + + local color = params.color or {1, 1, 1, 1} + params.color = color + + local players = params.players + players = players or {} + + table.insert(players, player) + params.players = players + + params.surface = RS.get_surface() + --Debug.print(vertices) + return Rendering.draw_polygon(vertices, params) +end + +return Public diff --git a/features/gui/radio.lua b/features/gui/radio.lua new file mode 100644 index 00000000..ec24bd14 --- /dev/null +++ b/features/gui/radio.lua @@ -0,0 +1,213 @@ +local Gui = require 'utils.gui' +local Command = require 'utils.command' +local Event = require 'utils.event' + +local main_button_name = Gui.uid_name() +local radio_frame = Gui.uid_name() +local close_radio = Gui.uid_name() + +local sounds = { + ['ambient'] = { + 'after-the-crash', + 'automation', + 'resource-deficiency', + 'are-we-alone', + 'beyond-factory-outskirts', + 'censeqs-discrepancy', + 'efficiency-program', + 'expansion', + 'the-search-for-iron', + 'gathering-horizon', + 'research-and-minerals', + 'solar-intervention', + 'the-oil-industry', + 'the-right-tools', + 'pollution', + 'turbine-dynamics', + 'sentient', + 'anomaly', + 'first-light', + 'transmit', + 'swell-pad', + 'world-ambience-1', + 'world-ambience-2', + 'world-ambience-3', + 'world-ambience-4', + 'world-ambience-5', + 'world-ambience-6' + }, + ['default'] = { + 'worm-sends-biters', + 'mainframe-activated', + 'car-repaired' + }, + ['utility'] = { + 'achievement_unlocked', + 'alert_destroyed', + 'armor_insert', + 'armor_remove', + 'axe_fighting', + 'axe_mining_ore', + 'build_big', + 'build_medium', + 'build_small', + 'cannot_build', + 'console_message', + 'crafting_finished', + 'deconstruct_big', + 'deconstruct_medium', + 'deconstruct_small', + 'default_manual_repair', + 'game_lost', + 'game_won', + 'gui_click', + 'inventory_move', + 'list_box_click', + 'metal_walking_sound', + 'mining_wood', + 'new_objective', + 'research_completed', + 'scenario_message', + 'tutorial_notice', + 'wire_connect_pole', + 'wire_disconnect', + 'wire_pickup' + } +} + +local function draw_radio(event) + local frame_caption + + frame_caption = 'Radio' + local player = event.player + local center = player.gui.center + + local frame = center[radio_frame] + if frame then + Gui.remove_data_recursively(frame) + frame.destroy() + return + end + + frame = center.add {type = 'frame', name = radio_frame, caption = frame_caption, direction = 'vertical'} + local scroll_pane = + frame.add { + type = 'scroll-pane', + vertical_scroll_policy = 'auto-and-reserve-space', + horizontal_scroll_policy = 'never' + } + Gui.set_data(scroll_pane, frame) + + local main_table = scroll_pane.add {type = 'table', column_count = 4} + + for type, sound in pairs(sounds) do + for i = 1, #sound do + local name = (type == 'default') and sound[i] or type .. '/' .. sound[i] + local textbox = main_table.add {type = 'text-box', text = type .. '/' .. sound[i]} + textbox.read_only = true + textbox.style.height = 28 + textbox.style.width = 250 + local button = main_table.add {type = 'button', name = 'radio_play:' .. name, caption = 'Play'} + button.style.width = 54 + end + end + + local information_pane = + frame.add { + type = 'scroll-pane', + vertical_scroll_policy = 'auto-and-reserve-space', + horizontal_scroll_policy = 'never' + } + information_pane.style.horizontally_stretchable = true + information_pane.style.horizontal_align = 'center' + Gui.set_data(information_pane, frame) + + local text = + [[ + Other types: + syntax = / + "tile-walking" - for example "tile-walking/concrete" + "tile-build" + "tile-mined" + "entity-build" - for example "entity-build/wooden-chest" + "entity-mined" + "entity-vehicle_impact" + "entity-open" + "entity-close" + ]] + local information = information_pane.add {type = 'text-box', text = text} + information.style.horizontally_stretchable = true + information.style.vertically_stretchable = true + information.style.minimal_height = 200 + information.style.minimal_width = 400 + + local bottom_flow = frame.add {type = 'flow', direction = 'horizontal'} + + local left_flow = bottom_flow.add {type = 'flow', direction = 'horizontal'} + left_flow.style.horizontal_align = 'left' + left_flow.style.horizontally_stretchable = true + + local close_button = left_flow.add {type = 'button', name = close_radio, caption = 'Close'} + Gui.set_data(close_button, frame) + + player.opened = frame +end + +Gui.on_click(main_button_name, draw_radio) + +Gui.on_click( + close_radio, + function(event) + local frame = Gui.get_data(event.element) + + Gui.remove_data_recursively(frame) + frame.destroy() + end +) + +Gui.on_custom_close( + radio_frame, + function(event) + local element = event.element + Gui.remove_data_recursively(element) + element.destroy() + end +) + +local function radio_command(_, player) + if player and player.valid then + local event = {player = player} + draw_radio(event) + end +end + +Command.add( + 'radio', + { + description = 'Opens radio gui', + capture_excess_arguments = false, + allowed_by_server = false + }, + radio_command +) + +local function handler(event) + local element = event.element + if not element or not element.valid then + return + end + local name = element.name + local subname = string.sub(name, 1, 11) + if subname == 'radio_play:' then + local path = string.sub(name, 12) + local player = game.get_player(event.player_index) + if (game.is_valid_sound_path(path)) then + player.play_sound {path = path} + return + else + player.print('Unable to play sound: ' .. path) + end + end +end + +Event.add(defines.events.on_gui_click, handler) diff --git a/features/player_create.lua b/features/player_create.lua index 0a17ec5d..b3348e15 100644 --- a/features/player_create.lua +++ b/features/player_create.lua @@ -6,25 +6,10 @@ local pairs = pairs local get_random_weighted = table.get_random_weighted -local function player_created(event) +local Public = {} + +function Public.show_start_up(player) local config = global.config.player_create - local player = game.get_player(event.player_index) - - if not player or not player.valid then - return - end - - -- ensure the top menu is correctly styled - local gui = player.gui - gui.top.style = 'slot_table_spacing_horizontal_flow' - gui.left.style = 'slot_table_spacing_vertical_flow' - - local player_insert = player.insert - - for _, item in pairs(config.starting_items) do - player_insert(item) - end - local p = player.print for _, message in pairs(config.join_messages) do p(message) @@ -48,12 +33,29 @@ local function player_created(event) elseif not _DEBUG and not game.is_multiplayer() then player.print('To change your name in single-player, open chat and type the following /c game.player.name = "your_name"') end +end - -- Remove 2019-03-04 - if player.admin then - player.print('## - Regular commands have changed. /regular to promote /regular-remove to demote.') +local function player_created(event) + local config = global.config.player_create + local player = game.get_player(event.player_index) + + if not player or not player.valid then + return + end + + -- ensure the top menu is correctly styled + local gui = player.gui + gui.top.style = 'slot_table_spacing_horizontal_flow' + gui.left.style = 'slot_table_spacing_vertical_flow' + + local player_insert = player.insert + + for _, item in pairs(config.starting_items) do + player_insert(item) + end + if not config.cutscene then + Public.show_start_up(player) end - --End remove end Event.add(defines.events.on_player_created, player_created) @@ -125,3 +127,5 @@ if _CHEATS then Event.add(defines.events.on_player_created, player_created_cheat_mode) end + +return Public diff --git a/locale/en/redmew_command_text.cfg b/locale/en/redmew_command_text.cfg index 70cea352..44d89d9e 100644 --- a/locale/en/redmew_command_text.cfg +++ b/locale/en/redmew_command_text.cfg @@ -20,7 +20,7 @@ show_rail_block=Toggles rail block visualisation. server_time=Prints the server's time. seeds=List the seeds of all surfaces redmew_version=Prints the version of the Redmew scenario -whois=provides information about a given player, admins can see the inventory of a player by adding "yes" as a second argument +whois=Provides information about a given player, admins can see the inventory of a player by adding "yes" as a second argument meltdown_get=Gets the status of meltdown. meltdown_set=Sets the status of meltdown. redmew_color=Set will save your current color for future maps. Reset will erase your saved color. Random will give you a random color. diff --git a/locale/en/redmew_features.cfg b/locale/en/redmew_features.cfg index ff6dc0c6..33a1786f 100644 --- a/locale/en/redmew_features.cfg +++ b/locale/en/redmew_features.cfg @@ -147,6 +147,12 @@ player_distance_walked=Distance walked satellites_launched=Satellites launched unknown_death_cause=Unknown +[cutscene_controller] +cannot_start_new=Can not start cutscene, you need to finish your current one. Try to run /skip before trying again +skip=Skips the current cutscene +replay=Replays the introduction cutscene +cannot_replay=There is no cutscene to replay + [autofill] insert_item=-__1__ __2__ (__3__) enable=Enable autofill diff --git a/locale/en/redmew_maps.cfg b/locale/en/redmew_maps.cfg index effed9e5..692f05b0 100644 --- a/locale/en/redmew_maps.cfg +++ b/locale/en/redmew_maps.cfg @@ -43,6 +43,28 @@ score_cave_collapses=Cave collapses score_mine_size=Mine size score_experience_lost=Experience lost +cutscene_case_line2=Welcome to __1__ +cutscene_case_line4=This is a custom scenario developed by __1__ +cutscene_case_line5=Join us at __1__ +cutscene_case_line6=The following introduction will help you get started! +cutscene_case_line7=If you experience issues duing this cutscene let us know +cutscene_case0_line1=This is the starting area +cutscene_case0_line3=Expanding the mine is dangerous! +cutscene_case1_line1=Walls are used to keep the cave roof from crushing us +cutscene_case2_line1=The market provides extra supplies in exchange for coins +cutscene_case2_line3=You unlock new items when you level up +cutscene_case3_line1=Cave ins happens frequently when you don't add supports +cutscene_case3_line3=Different types of brick and concrete can reinforce our support pillars! +cutscene_case4_line1=This world contains brittle rocks +cutscene_case4_line3=Our tools are too powerful to preserve any resources from destroying them +cutscene_case5_line1=Most actions give experience! +cutscene_case5_line3=The floating text indicates the quantity and cause of the experience +cutscene_case6_line1=The native population is lurking in the dark +cutscene_case6_line3=Be wary when digging, always bring along some defences +cutscene_case7_line1=This concludes the introduction +cutscene_case7_line3=Have fun and keep digging! +replay_cutscene=To replay the introduction, use the __1__ command + # locale linked to the quadrants scenario [quadrants] on=ON diff --git a/map_gen/maps/diggy/config.lua b/map_gen/maps/diggy/config.lua index 1853ef2d..51face58 100644 --- a/map_gen/maps/diggy/config.lua +++ b/map_gen/maps/diggy/config.lua @@ -49,6 +49,10 @@ local Config = { starting_items = {} } }, + -- controls the introduction cutscene + cutscene = { + enabled = true + }, -- core feature diggy_hole = { enabled = true, diff --git a/map_gen/maps/diggy/feature/cutscene.lua b/map_gen/maps/diggy/feature/cutscene.lua new file mode 100644 index 00000000..9580327b --- /dev/null +++ b/map_gen/maps/diggy/feature/cutscene.lua @@ -0,0 +1,305 @@ +local Event = require 'utils.event' +local Token = require 'utils.token' +local Task = require 'utils.task' +local Debug = require 'utils.debug' +local Cutscene = require 'features.cutscene.cutscene_controller' +local CS_Rendering = require 'features.cutscene.rendering' +local RS = require 'map_gen.shared.redmew_surface' +local Color = require 'resources.color_presets' +local PC = require 'features.player_create' +local Experience = require 'map_gen.maps.diggy.feature.experience' +local register_rendering = Cutscene.register_rendering_id +local play_sound = Cutscene.play_sound +local draw_text = CS_Rendering.draw_text +local draw_multi_line = CS_Rendering.draw_multi_line_text +local rad = math.rad +local Rendering = require 'utils.rendering' + +local DiggyCutscene = {} + +local delayed_draw_text = + Token.register( + function(params) + local tick = params.tick + local player = params.player + if params.play_sound > 1 then + play_sound(tick, player, 'utility/list_box_click', 1) + end + register_rendering(player.index, tick, draw_text(params.settings, params.offset, params.text, params.player, params.params, params.draw_background, params.fit_to_edge)) + end +) + +local function draw_text_auto_replacing(tick, settings, offset, texts, player, params, draw_background, fit_to_edge, time, between_time) + time = time or 400 + time = time / #texts + between_time = between_time or 30 + params.time_to_live = time - between_time + if params.background then + params.background.time_to_live = time - between_time + end + for i = 1, #texts do + if texts[i] ~= '' then + Task.set_timeout_in_ticks(time * (i - 1), delayed_draw_text, {tick = tick, settings = settings, offset = offset, text = texts[i], player = player, params = params, draw_background = draw_background, fit_to_edge = fit_to_edge, play_sound = i}) + end + end +end + +local delayed_draw_arrow = + Token.register( + function(params) + local player = params.player + local tick = params.tick + params = params.params + local rendering_parmas = params.params + local id = CS_Rendering.draw_arrow(params.settings, params.offset, player, rendering_parmas, params.fit_to_edge) + register_rendering(player.index, tick, id) + Rendering.blink(id, 20, rendering_parmas.time_to_live) + end +) + +local function delayed_function(func, player, tick, params, offset_time) + Task.set_timeout_in_ticks(offset_time, func, {player = player, tick = tick, params = params}) +end + +local delayed_fade_blackout = + Token.register( + function(params) + local render_params = params.params + local id = CS_Rendering.blackout(params.player, render_params.zoom, render_params.time_to_live, render_params.color) + register_rendering(params.player.index, params.tick, id) + Rendering.fade(id, render_params.time_to_live - 1, 10) + end +) + +local original_resolution = {height = 1440, width = 2560} +local original_zoom = 1 + +local function cutscene_function(player_index, waypoint_index, params) + local cases = {} + + local player = game.players[player_index] + local ttw = params.time_to_wait + local zoom = params.zoom + local tick = params.tick + local settings = {original_resolution = original_resolution, original_zoom = original_zoom, player_zoom = zoom} + + if waypoint_index ~= -1 then + play_sound(tick, player, 'utility/list_box_click', 1) + --play_sound(tick, player, 'utility/inventory_move', 1, 10) + end + cases[-1] = function() + play_sound(tick, player, 'utility/game_won') + play_sound(tick, player, 'ambient/first-light', 1, 550) + register_rendering(player_index, tick, CS_Rendering.blackout(player, zoom, ttw + 1)) + register_rendering(player_index, tick, draw_text(settings, {x = 0, y = -16}, 'Diggy', player, {scale = 10, time_to_live = ttw, color = Color.yellow}, false, false)) + register_rendering( + player_index, + tick, + draw_multi_line(settings, {x = 0, y = -5}, {{'diggy.cutscene_case_line2', 'Diggy'}, '---------------------', {'diggy.cutscene_case_line4', 'Redmew'}, {'diggy.cutscene_case_line5', 'www.redmew.com/discord'}}, player, {scale = 5, time_to_live = ttw}, false) + ) + draw_text_auto_replacing(tick, settings, {x = 0, y = 10}, {'', {'diggy.cutscene_case_line6'}}, player, {scale = 3}, false, false, ttw, 0) + draw_text_auto_replacing(tick, settings, {x = 0, y = 16}, {'', '', {'diggy.cutscene_case_line7'}}, player, {scale = 1}, false, false, ttw, 0) + end + cases[0] = function() + register_rendering(player_index, tick, CS_Rendering.blackout(player, zoom, ttw + 1)) + register_rendering(player_index, tick, draw_text(settings, {x = 0, y = 0}, 'Redmew - Diggy', player, {scale = 10, time_to_live = ttw - 60, color = Color.red}, false, false)) + register_rendering(player_index, tick, draw_text(settings, {x = 0, y = -5}, 'Introduction', player, {scale = 5, time_to_live = ttw - 60}, false, false)) + + delayed_function(delayed_draw_arrow, player, tick, {settings = settings, offset = {x = 7, y = 2.5}, params = {rotation = rad(-45), time_to_live = 275 * 3 - 30}, fit_to_edge = true}, 0) + + draw_text_auto_replacing(tick, settings, {x = 8.5, y = 3}, {'This is our toolbar!'}, player, {scale = 2.5, alignment = 'left'}, false, true, 275) + + draw_text_auto_replacing(tick, settings, {x = 8.5, y = 3}, {'', "Here you'll find a wide range of tools and informations about us!"}, player, {scale = 2.5, alignment = 'left'}, false, true, 275 * 2) + + draw_text_auto_replacing(tick, settings, {x = 8.5, y = 3}, {'', '', 'Hover your mouse over them for more information'}, player, {scale = 2.5, alignment = 'left'}, false, true, 275 * 3) + + delayed_function(delayed_draw_arrow, player, tick, {settings = settings, offset = {x = 1, y = 2.5}, params = {rotation = rad(-45), time_to_live = 275 - 30}, fit_to_edge = true}, 275 * 3) + + draw_text_auto_replacing(tick, settings, {x = 2.5, y = 3}, {'', '', '', 'You can toggle our toolbar with this button'}, player, {scale = 2.5, alignment = 'left'}, false, true, 275 * 4) + + delayed_function(delayed_draw_arrow, player, tick, {settings = settings, offset = {x = 3.5, y = 2.5}, params = {rotation = rad(-45), time_to_live = 275 - 30}, fit_to_edge = true}, 275 * 4.5) + + draw_text_auto_replacing(tick, settings, {x = 5, y = 3}, {'', '', '', '', 'This is the Diggy experience menu'}, player, {scale = 2.5, alignment = 'left'}, false, true, 275 * 5.5) + + delayed_function(delayed_draw_arrow, player, tick, {settings = settings, offset = {x = 15, y = 9}, params = {rotation = rad(-90), time_to_live = 275 - 30}, fit_to_edge = true}, 275 * 5.5) + + Cutscene.toggle_gui(tick, player, Experience, 275 * 5.5, 'left') + + draw_text_auto_replacing(tick, settings, {x = 17, y = 8.7}, {'', '', '', '', '', 'Here you can see the current progress of the mine'}, player, {scale = 2.5, alignment = 'left'}, false, true, 275 * 6.5) + + Cutscene.toggle_gui(tick, player, Experience, 275 * 6.5) + + delayed_function(delayed_fade_blackout, player, tick, {zoom = zoom, time_to_live = 120 + 61, color = {0, 0, 0, 1}}, ttw - 61) + end + cases[1] = function() + draw_text_auto_replacing(tick, settings, {x = 0, y = 18}, {{'diggy.cutscene_case0_line1'}, {'diggy.cutscene_case0_line3'}}, player, {scale = 2.5}, true, false, ttw) + local entity = RS.get_surface().find_entities_filtered {position = {0, 0}, radius = 20, name = 'stone-wall', limit = 1} + if entity[1] then + local position = entity[1].position + local waypoint = { + -- case 2 + position = position, + transition_time = 120, + time_to_wait = 275, + zoom = 5 + } + Debug.print_position(position, 'position of wall') + Cutscene.inject_waypoint(player_index, waypoint, waypoint_index + 3, true) + end + end + cases[2] = function() + --play_sound(tick, player, 'utility/build_small', 1, 25) + draw_text_auto_replacing(tick, settings, {x = 0, y = 18}, {{'diggy.cutscene_case1_line1'}}, player, {scale = 2.5}, true, false, ttw) + end + cases[3] = function() + draw_text_auto_replacing(tick, settings, {x = 0, y = 18}, {{'diggy.cutscene_case2_line1'}, {'diggy.cutscene_case2_line3'}}, player, {scale = 2.5}, true, false, ttw) + end + cases[4] = function() + draw_text_auto_replacing(tick, settings, {x = 0, y = 18}, {{'diggy.cutscene_case3_line1'}, {'diggy.cutscene_case3_line3'}}, player, {scale = 2.5}, true, false, ttw) + local radius = 10 + local entity + repeat + entity = RS.get_surface().find_entities_filtered {position = {0, 0}, radius = radius, name = 'rock-big', limit = 1} + if radius <= 10 then + radius = 0 + end + radius = radius + 25 + until entity[1] or radius >= 200 + local position = {0, 3.5} + local way_zoom = 0.4 + entity = entity[1] + if entity then + position = entity.position + way_zoom = 5 + Debug.print_position(position, 'position of rock') + end + local waypoint = { + -- case 5 + position = position, + transition_time = 120, + time_to_wait = 550, + zoom = way_zoom + } + Cutscene.inject_waypoint(player_index, waypoint, waypoint_index + 3) + end + cases[5] = function() + play_sound(waypoint_index, player, 'utility/axe_mining_ore', 3, 35) + draw_text_auto_replacing(tick, settings, {x = 0, y = 18}, {{'diggy.cutscene_case4_line1'}, {'diggy.cutscene_case4_line3'}}, player, {scale = 2.5}, true, false, ttw) + end + cases[6] = function() + play_sound(tick, player, 'utility/research_completed', 1, 5) + local exp = 2500 + local text = {'', '[img=item/automation-science-pack] ', {'diggy.float_xp_gained_research', exp}} + player.create_local_flying_text {position = params.position, text = text, color = Color.light_sky_blue, time_to_live = ttw / 3} + draw_text_auto_replacing(tick, settings, {x = 0, y = 18}, {{'diggy.cutscene_case5_line1'}, {'diggy.cutscene_case5_line3'}}, player, {scale = 2.5}, true, false, ttw) + end + cases[7] = function() + play_sound(tick, player, 'utility/axe_fighting', 5, 25, 10) + play_sound(tick, player, 'worm-sends-biters', 1, 70) + draw_text_auto_replacing(tick, settings, {x = 0, y = 18}, {{'diggy.cutscene_case6_line1'}, {'diggy.cutscene_case6_line3'}}, player, {scale = 2.5}, true, false, ttw) + end + cases[8] = function() + draw_text_auto_replacing(tick, settings, {x = 0, y = 18}, {{'diggy.cutscene_case7_line1'}, {'diggy.cutscene_case7_line3'}}, player, {scale = 2.5}, true, false, ttw) + --play_sound(tick, player, 'utility/tutorial_notice', 1) + end + local case = cases[waypoint_index] + if case then + case() + end +end + +local waypoints = { + { + -- case -1 + position = {x = 0, y = 0}, + transition_time = 60, + time_to_wait = 600, + zoom = 0.5 + }, + { + -- case -1.1 + position = {x = 0, y = 0}, + transition_time = 0, + time_to_wait = 275 * 7, + zoom = 0.5 + }, + { + -- case 0 + position = {x = 0, y = 0}, + transition_time = 120, + time_to_wait = 550, + zoom = 1 + }, + { + -- case 1 + position = {x = 0, y = 0}, + transition_time = 120, + time_to_wait = 275, + zoom = 1.5 + }, + { + -- case 2 + position = {x = 0.5, y = 3.5}, + transition_time = 120, + time_to_wait = 550, + zoom = 5 + }, + { + -- case 3 + position = {x = 0, y = 0}, + transition_time = 120, + time_to_wait = 550, + zoom = 2 + }, + -- inserting case 4 + { + -- case 5 + position = {x = 0, y = -2}, + transition_time = 120, + time_to_wait = 550, + zoom = 1.8 + }, + { + -- case 6 + position = {x = 0, y = 0}, + transition_time = 120, + time_to_wait = 550, + zoom = 0.3 + }, + { + -- case 7 + position = {x = 0, y = 0}, + transition_time = 120, + time_to_wait = 430, + zoom = 0.8 + } +} + +local function terminate_function(player_index) + local player = game.get_player(player_index) + PC.show_start_up(player) + player.print({'diggy.replay_cutscene', '/replay'}, Color.yellow) +end + +Cutscene.register_cutscene_function('Diggy_Welcome', waypoints, Token.register(cutscene_function), Token.register(terminate_function)) +Cutscene.register_replay('Diggy_Welcome', 120) + +local start_cutscene = + Token.register( + function(params) + Cutscene.register_running_cutscene(params.event.player_index, 'Diggy_Welcome', 120) + end +) + +function DiggyCutscene.register() + global.config.player_create.cutscene = true + + Event.add( + defines.events.on_player_created, + function(event) + Task.set_timeout_in_ticks(60, start_cutscene, {event = event}) + end + ) +end + +return DiggyCutscene diff --git a/map_gen/maps/diggy/feature/experience.lua b/map_gen/maps/diggy/feature/experience.lua index a9993b84..2892b921 100644 --- a/map_gen/maps/diggy/feature/experience.lua +++ b/map_gen/maps/diggy/feature/experience.lua @@ -489,7 +489,7 @@ local function redraw_buff(data) end end -local function toggle(event) +function Experience.toggle(event) local player = event.player local gui = player.gui local left = gui.left @@ -559,7 +559,7 @@ end Gui.allow_player_to_toggle_top_element_visibility('Diggy.Experience.Button') -Gui.on_click('Diggy.Experience.Button', toggle) +Gui.on_click('Diggy.Experience.Button', Experience.toggle) Gui.on_custom_close( 'Diggy.Experience.Frame', function(event) @@ -576,7 +576,7 @@ local function update_gui() if frame and frame.valid then local data = {player = p, trigger = 'update_gui'} - toggle(data) + Experience.toggle(data) end end diff --git a/resources/vertices.lua b/resources/vertices.lua new file mode 100644 index 00000000..e7a2792a --- /dev/null +++ b/resources/vertices.lua @@ -0,0 +1,16 @@ +local shapes = { + arrow_point = { + --triangle + {1, 1}, -- right edge g + {-1, 1}, -- left edge b + {0, 0}, -- top (pointer) a + --rectangle + {0.5, 1}, -- right inner top f + {0.5, 2}, -- right inner bottom e + {-0.5, 1}, -- left inner top c + {-0.5, 2} -- left inner bottom d + }, + arrow = {{1, 0}, {-1, 0}, {0, -1}, {0.5, 0}, {0.5, 1}, {-0.5, 0}, {-0.5, 1}} +} + +return shapes diff --git a/utils/rendering.lua b/utils/rendering.lua new file mode 100644 index 00000000..4c24367c --- /dev/null +++ b/utils/rendering.lua @@ -0,0 +1,114 @@ +local Token = require 'utils.token' +local Task = require 'utils.task' + +local Public = {} + +local cos = math.cos +local sin = math.sin + +local rendering = rendering +local draw_polygon = rendering.draw_polygon + +function Public.draw_polygon(positions, options) + local vertices = {} + + for i = 1, #positions do + vertices[i] = {target = positions[i]} + end + + local args = {vertices = vertices} + for k, v in pairs(options) do + args[k] = v + end + + return draw_polygon(args) +end + +function Public.translate(positions, x, y) + local result = {} + + for i = 1, #positions do + local pos = positions[i] + result[i] = {pos[1] + x, pos[2] + y} + end + + return result +end + +function Public.scale(positions, x, y) + local result = {} + + for i = 1, #positions do + local pos = positions[i] + result[i] = {pos[1] * x, pos[2] * y} + end + + return result +end + +function Public.rotate(positions, radians) + local qx = cos(radians) + local qy = sin(radians) + + local result = {} + + for i = 1, #positions do + local pos = positions[i] + local x, y = pos[1], pos[2] + local rot_x = qx * x - qy * y + local rot_y = qy * x + qx * y + + result[i] = {rot_x, rot_y} + end + + return result +end + +local fade_token = + Token.register( + function(params) + local id = params.id + if rendering.is_valid(id) then + rendering.set_color(id, params.color) + end + end +) + +function Public.fade(id, time, ticks) + ticks = ticks or 20 + local count = (time - time % ticks) / ticks + if rendering.is_valid(id) then + local color = rendering.get_color(id) + local a = color.a or 1 + local decrement = a / count + for i = 1, count do + a = a - decrement + a = a >= 0 and a or 0 + Task.set_timeout_in_ticks(ticks * i, fade_token, {id = id, color = {r = color.r, b = color.b, g = color.g, a = a}}) + end + end +end + +local blink_token = + Token.register( + function(params) + local id = params.id + if rendering.is_valid(id) then + rendering.set_visible(id, params.visible) + end + end +) + +function Public.blink(id, rate, time) + local count = (time - time % rate) / rate + rate = (time / count) * 2 + if rendering.is_valid(id) then + local visible = rendering.get_visible(id) + for i = 1, count do + visible = not visible + Task.set_timeout_in_ticks(rate * i, blink_token, {id = id, visible = visible}) + end + end +end + +return Public From 96eb1605341d5165fed75b812f6e00af2e54e8ea Mon Sep 17 00:00:00 2001 From: SimonFlapse Date: Thu, 10 Oct 2019 11:10:30 +0200 Subject: [PATCH 18/21] Added warning in default.lua to help guide newcomers --- map_gen/maps/default.lua | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/map_gen/maps/default.lua b/map_gen/maps/default.lua index 3192177a..ddb91f64 100644 --- a/map_gen/maps/default.lua +++ b/map_gen/maps/default.lua @@ -1 +1,12 @@ -- A blank file to allow map_selection to have a default + +-- Added warning to help guide newcomers +local Event = require 'utils.event' + +Event.add( + defines.events.on_player_joined_game, + function() + game.print('[color=red]THIS IS THE DEFAULT MAP! IT CONTAINS NO CUSTOM MAP GEN![/color]') + game.print('[color=yellow]Visit https://redmew.com/guide and follow step 3[/color]') + end +) From 5122634a3aa8310aa4a41f6a03dd0b4e927f260e Mon Sep 17 00:00:00 2001 From: SimonFlapse Date: Thu, 10 Oct 2019 11:29:28 +0200 Subject: [PATCH 19/21] Bunch of simple map descriptions --- map_gen/maps/fish_islands.lua | 23 +++++++++++++++++++++++ map_gen/maps/fractal_balls.lua | 9 +++++++++ map_gen/maps/fruit_loops.lua | 10 ++++++++++ map_gen/maps/gears.lua | 10 ++++++++++ map_gen/maps/loading_screen.lua | 9 +++++++++ 5 files changed, 61 insertions(+) diff --git a/map_gen/maps/fish_islands.lua b/map_gen/maps/fish_islands.lua index e15ef9fa..ca9b40cc 100644 --- a/map_gen/maps/fish_islands.lua +++ b/map_gen/maps/fish_islands.lua @@ -3,6 +3,7 @@ local math = require 'utils.math' local table = require 'utils.table' local RS = require 'map_gen.shared.redmew_surface' local MGSP = require 'resources.map_gen_settings' +local ScenarioInfo = require 'features.gui.info' local degrees = math.degrees @@ -19,6 +20,28 @@ RS.set_map_gen_settings( } ) +ScenarioInfo.set_map_name('Fish Islands') +ScenarioInfo.set_map_description( +[[ +What a lovely day for a fishing trip. +I hope we brought enough Soy Sauce! +]] +) +ScenarioInfo.set_map_extra_info( +[[ +Fish islands are spread around in the water + +The fishes heads contains high amount of resources + +Some one placed worms around the lit of our soy sauce +Exterminate them so we can enjoy our fish with some delicious +soy sauce! (Not sponsered by Kikkoman) + +(Kikkoman is a registered trademark under Kikkoman Corporation, Japan) +]] +) + + local value = b.exponential_value local pic = require 'map_gen.data.presets.fish' diff --git a/map_gen/maps/fractal_balls.lua b/map_gen/maps/fractal_balls.lua index 59274cbc..a2614b88 100644 --- a/map_gen/maps/fractal_balls.lua +++ b/map_gen/maps/fractal_balls.lua @@ -1,6 +1,7 @@ local b = require 'map_gen.shared.builders' local RS = require 'map_gen.shared.redmew_surface' local MGSP = require 'resources.map_gen_settings' +local ScenarioInfo = require 'features.gui.info' local degrees = require "utils.math".degrees @@ -11,6 +12,14 @@ RS.set_map_gen_settings( } ) +ScenarioInfo.set_map_name('Fractal Balls') +ScenarioInfo.set_map_description( +[[ +These balls just keeps on going! +Always part of something bigger. +]] +) + local function value(base, mult) return function(x, y) return mult * (math.abs(x) + math.abs(y)) + base diff --git a/map_gen/maps/fruit_loops.lua b/map_gen/maps/fruit_loops.lua index 9619dfd3..8a715e45 100644 --- a/map_gen/maps/fruit_loops.lua +++ b/map_gen/maps/fruit_loops.lua @@ -3,6 +3,7 @@ local math = require 'utils.math' local table = require 'utils.table' local RS = require 'map_gen.shared.redmew_surface' local MGSP = require 'resources.map_gen_settings' +local ScenarioInfo = require 'features.gui.info' -- change these to change the pattern. local seed1 = 17000 @@ -16,6 +17,15 @@ RS.set_map_gen_settings( } ) +ScenarioInfo.set_map_name('Fruit Loops') +ScenarioInfo.set_map_description( +[[ +It's like swimming in a bowl of cereal! +[...] +What monster uses water in their cereal? +]] +) + local function value(base, mult, pow) return function(x, y) local d_sq = x * x + y * y diff --git a/map_gen/maps/gears.lua b/map_gen/maps/gears.lua index 6b955493..6a445370 100644 --- a/map_gen/maps/gears.lua +++ b/map_gen/maps/gears.lua @@ -3,6 +3,7 @@ local pic = require "map_gen.data.presets.gears" local RS = require 'map_gen.shared.redmew_surface' local MGSP = require 'resources.map_gen_settings' +local ScenarioInfo = require 'features.gui.info' RS.set_map_gen_settings( { @@ -11,6 +12,15 @@ RS.set_map_gen_settings( } ) +ScenarioInfo.set_map_name('Gears') +ScenarioInfo.set_map_description( +[[ +Am I inside an assembling machine? + +This is like a huge maze of never ending gears! +]] +) + pic = b.decompress(pic) local shape = b.picture(pic) diff --git a/map_gen/maps/loading_screen.lua b/map_gen/maps/loading_screen.lua index b3c263ca..e17ce5a6 100644 --- a/map_gen/maps/loading_screen.lua +++ b/map_gen/maps/loading_screen.lua @@ -1,4 +1,13 @@ local b = require "map_gen.shared.builders" +local ScenarioInfo = require 'features.gui.info' + +ScenarioInfo.set_map_name('Loading Screen') +ScenarioInfo.set_map_description( +[[ +Did I, or did I not enter a server? +Why am I still seeing the menu background??? +]] +) local pic = require "map_gen.data.presets.factory" pic = b.decompress(pic) From 153eaf03ac525b13c2e28452844f43e9feae9e3d Mon Sep 17 00:00:00 2001 From: SimonFlapse Date: Thu, 10 Oct 2019 11:39:41 +0200 Subject: [PATCH 20/21] Fix for #984 --- ..._2048by2048.PNG => square_spiral_2048by2048.PNG} | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename map_gen/data/.map_previews/{rectangular_spiral_2048by2048.PNG => square_spiral_2048by2048.PNG} (100%) diff --git a/map_gen/data/.map_previews/rectangular_spiral_2048by2048.PNG b/map_gen/data/.map_previews/square_spiral_2048by2048.PNG similarity index 100% rename from map_gen/data/.map_previews/rectangular_spiral_2048by2048.PNG rename to map_gen/data/.map_previews/square_spiral_2048by2048.PNG From 0f88751faf0d277112008af2dfd19c74eaed8858 Mon Sep 17 00:00:00 2001 From: grilledham Date: Mon, 14 Oct 2019 19:04:46 +0100 Subject: [PATCH 21/21] fix crashsite no wall bug --- map_gen/maps/crash_site/scenario.lua | 2 -- 1 file changed, 2 deletions(-) diff --git a/map_gen/maps/crash_site/scenario.lua b/map_gen/maps/crash_site/scenario.lua index 7b0de16f..ef3eddae 100644 --- a/map_gen/maps/crash_site/scenario.lua +++ b/map_gen/maps/crash_site/scenario.lua @@ -774,8 +774,6 @@ local function init() local bounds = b.rectangle(grid_block_size * (grid_number_of_blocks) + 1) map = b.choose(bounds, map, b.empty_shape) - map = b.remove_entities_by_name(map, 'stone-wall') - return map end