From 0b7c4a5058ad479133b3e7cf18d3c233379cdc58 Mon Sep 17 00:00:00 2001 From: phlux <8382485+thephluxer@users.noreply.github.com> Date: Tue, 18 Feb 2025 00:59:33 +0100 Subject: [PATCH 01/12] add auto record option --- locale/en/locale.cfg | 2 ++ scripts/config.lua | 1 + settings.lua | 7 +++++++ 3 files changed, 10 insertions(+) diff --git a/locale/en/locale.cfg b/locale/en/locale.cfg index 265c3fb..2076079 100644 --- a/locale/en/locale.cfg +++ b/locale/en/locale.cfg @@ -101,12 +101,14 @@ tlbe-save-folder=Save location tlbe-sequential-names=Sequential names tlbe-show-stats=Show camera status tlbe-use-interval=Use interval as speed setting +tlbe-auto-record=Automatic recording [mod-setting-description] tlbe-save-folder=Relative from 'User Data Directory' tlbe-sequential-names=Use sequential numbering per camera for the screenshot numbers. When disabled, game ticks are used for screenshot numbering. tlbe-show-stats=This requires the Stats GUI mod to be loaded. tlbe-use-interval=Use intervals (between frames) instead of speed gain in the camera settings. When this setting is changed, reopen camera settings to update the UI. +tlbe-auto-record=Start recording automatically with main camera on new game [shortcut] tlbe=Time Lapse Base Edition diff --git a/scripts/config.lua b/scripts/config.lua index 4b1053a..7dc10aa 100644 --- a/scripts/config.lua +++ b/scripts/config.lua @@ -56,6 +56,7 @@ function Config.newPlayerSettings(player) local camera = Camera.newCamera(player, {}) camera.name = "main" + camera.enabled = guiSettings["tlbe-auto-record"].value camera.trackers = { trackers[1], trackers[2], trackers[3] } return { diff --git a/settings.lua b/settings.lua index 93540ac..154de9c 100644 --- a/settings.lua +++ b/settings.lua @@ -27,6 +27,13 @@ data:extend( setting_type = "runtime-per-user", default_value = false, order = "9" + }, + { + type = "bool-setting", + name = "tlbe-auto-record", + setting_type = "runtime-per-user", + default_value = false, + order = "12" } } ) From c2c62e19d83bb6dc254048f85935d2c824c21033 Mon Sep 17 00:00:00 2001 From: phlux <8382485+thephluxer@users.noreply.github.com> Date: Tue, 18 Feb 2025 03:06:25 +0100 Subject: [PATCH 02/12] fix config readout --- scripts/config.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/config.lua b/scripts/config.lua index 7dc10aa..ea02a55 100644 --- a/scripts/config.lua +++ b/scripts/config.lua @@ -56,7 +56,7 @@ function Config.newPlayerSettings(player) local camera = Camera.newCamera(player, {}) camera.name = "main" - camera.enabled = guiSettings["tlbe-auto-record"].value + camera.enabled = settings.get_player_settings(player)["tlbe-auto-record"].value camera.trackers = { trackers[1], trackers[2], trackers[3] } return { From 9bc521dacb0dffd70b304a67f1fab439df8f3b10 Mon Sep 17 00:00:00 2001 From: phlux <8382485+thephluxer@users.noreply.github.com> Date: Tue, 18 Feb 2025 03:09:14 +0100 Subject: [PATCH 03/12] add seed-subfolder option --- locale/en/locale.cfg | 2 ++ scripts/main.lua | 22 ++++++++++++++++++++-- settings.lua | 7 +++++++ 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/locale/en/locale.cfg b/locale/en/locale.cfg index 2076079..679edd3 100644 --- a/locale/en/locale.cfg +++ b/locale/en/locale.cfg @@ -102,6 +102,7 @@ tlbe-sequential-names=Sequential names tlbe-show-stats=Show camera status tlbe-use-interval=Use interval as speed setting tlbe-auto-record=Automatic recording +tlbe-seed-subfolder=Map-Seed Subfolder [mod-setting-description] tlbe-save-folder=Relative from 'User Data Directory' @@ -109,6 +110,7 @@ tlbe-sequential-names=Use sequential numbering per camera for the screenshot num tlbe-show-stats=This requires the Stats GUI mod to be loaded. tlbe-use-interval=Use intervals (between frames) instead of speed gain in the camera settings. When this setting is changed, reopen camera settings to update the UI. tlbe-auto-record=Start recording automatically with main camera on new game +tlbe-seed-subfolder=Generate a subfolder for each map seed [shortcut] tlbe=Time Lapse Base Edition diff --git a/scripts/main.lua b/scripts/main.lua index e99dfec..926d700 100644 --- a/scripts/main.lua +++ b/scripts/main.lua @@ -165,14 +165,32 @@ function Main.takeScreenshot(player, playerSettings, camera, activeTracker, forc alwaysDay = nil end + local savePath + if playerSettings.seedSubfolder then + savePath = string.format( + "%s/%s/%d/%010d-%s.png", + playerSettings.saveFolder, + camera.saveFolder, + game.default_map_gen_settings.seed, + screenshotNumber, camera.saveName + ) + else + savePath = string.format( + "%s/%s/%010d-%s.png", + playerSettings.saveFolder, + camera.saveFolder, + screenshotNumber, + camera.saveName + ) + end + game.take_screenshot { by_player = player, surface = camera.surfaceName or game.surfaces[1], position = camera.centerPos, resolution = { camera.width, camera.height }, zoom = camera.zoom, - path = string.format("%s/%s/%010d-%s.png", playerSettings.saveFolder, camera.saveFolder, screenshotNumber - , camera.saveName), + path = savePath, show_entity_info = camera.entityInfo, show_gui = camera.showGUI, allow_in_replay = true, diff --git a/settings.lua b/settings.lua index 154de9c..9fc5ac4 100644 --- a/settings.lua +++ b/settings.lua @@ -34,6 +34,13 @@ data:extend( setting_type = "runtime-per-user", default_value = false, order = "12" + }, + { + type = "bool-setting", + name = "tlbe-seed-subfolder", + setting_type = "runtime-per-user", + default_value = false, + order = "15" } } ) From b474d62a0f8bcf81ff9094779ebdc58606620f10 Mon Sep 17 00:00:00 2001 From: phlux <8382485+thephluxer@users.noreply.github.com> Date: Tue, 18 Feb 2025 03:14:23 +0100 Subject: [PATCH 04/12] read seed-subfolder setting --- scripts/config.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/config.lua b/scripts/config.lua index ea02a55..41eb576 100644 --- a/scripts/config.lua +++ b/scripts/config.lua @@ -42,6 +42,7 @@ function Config.reload(event) playerSettings.sequentialNames = guiSettings["tlbe-sequential-names"].value playerSettings.showCameraStatus = guiSettings["tlbe-show-stats"].value playerSettings.useInterval = guiSettings["tlbe-use-interval"].value + playerSettings.seedSubfolder = guiSettings["tlbe-seed-subfolder"].value ---@diagnostic enable: assign-type-mismatch end From 2e6523a7b4fe75332a41c2204f5ef81041a3f8d3 Mon Sep 17 00:00:00 2001 From: phlux <8382485+thephluxer@users.noreply.github.com> Date: Tue, 18 Feb 2025 03:29:26 +0100 Subject: [PATCH 05/12] fix main camera naming --- scripts/config.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/config.lua b/scripts/config.lua index 41eb576..434cd99 100644 --- a/scripts/config.lua +++ b/scripts/config.lua @@ -56,7 +56,7 @@ function Config.newPlayerSettings(player) } local camera = Camera.newCamera(player, {}) - camera.name = "main" + Camera.setName(camera, "main") camera.enabled = settings.get_player_settings(player)["tlbe-auto-record"].value camera.trackers = { trackers[1], trackers[2], trackers[3] } From dab2856fbfc4530c00a2507eead8ed414d091ac6 Mon Sep 17 00:00:00 2001 From: phlux <8382485+thephluxer@users.noreply.github.com> Date: Tue, 18 Feb 2025 09:02:57 +0100 Subject: [PATCH 06/12] fix tests --- scripts/config.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/config.lua b/scripts/config.lua index 434cd99..57d2e48 100644 --- a/scripts/config.lua +++ b/scripts/config.lua @@ -34,6 +34,7 @@ function Config.reload(event) local playerSettings = storage.playerSettings[event.player_index] if playerSettings == nil then playerSettings = Config.newPlayerSettings(player) + playerSettings.cameras[1] = guiSettings["tlbe-auto-record"].value storage.playerSettings[event.player_index] = playerSettings end @@ -57,7 +58,6 @@ function Config.newPlayerSettings(player) local camera = Camera.newCamera(player, {}) Camera.setName(camera, "main") - camera.enabled = settings.get_player_settings(player)["tlbe-auto-record"].value camera.trackers = { trackers[1], trackers[2], trackers[3] } return { From 4cec8e85a691ad6411b72758965cd3bdc1da3609 Mon Sep 17 00:00:00 2001 From: phlux <8382485+thephluxer@users.noreply.github.com> Date: Tue, 18 Feb 2025 09:16:27 +0100 Subject: [PATCH 07/12] using correct property to enable auto-record --- scripts/config.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/config.lua b/scripts/config.lua index 57d2e48..60f1110 100644 --- a/scripts/config.lua +++ b/scripts/config.lua @@ -34,7 +34,7 @@ function Config.reload(event) local playerSettings = storage.playerSettings[event.player_index] if playerSettings == nil then playerSettings = Config.newPlayerSettings(player) - playerSettings.cameras[1] = guiSettings["tlbe-auto-record"].value + playerSettings.cameras[playerSettings.guiPersist.selectedCamera].enabled = guiSettings["tlbe-auto-record"].value storage.playerSettings[event.player_index] = playerSettings end From 3c47b6bdde0aeea7ed8dfe6d6e34506b0a3c74e4 Mon Sep 17 00:00:00 2001 From: phlux <8382485+thephluxer@users.noreply.github.com> Date: Tue, 18 Feb 2025 09:32:30 +0100 Subject: [PATCH 08/12] add ability to choose file format --- locale/en/locale.cfg | 4 +++- scripts/config.lua | 1 + scripts/main.lua | 11 +++++++---- settings.lua | 8 ++++++++ 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/locale/en/locale.cfg b/locale/en/locale.cfg index 679edd3..13091fc 100644 --- a/locale/en/locale.cfg +++ b/locale/en/locale.cfg @@ -102,7 +102,8 @@ tlbe-sequential-names=Sequential names tlbe-show-stats=Show camera status tlbe-use-interval=Use interval as speed setting tlbe-auto-record=Automatic recording -tlbe-seed-subfolder=Map-Seed Subfolder +tlbe-seed-subfolder=Map-Seed subfolder +tlbe-save-format=Image format [mod-setting-description] tlbe-save-folder=Relative from 'User Data Directory' @@ -111,6 +112,7 @@ tlbe-show-stats=This requires the Stats GUI mod to be loaded. tlbe-use-interval=Use intervals (between frames) instead of speed gain in the camera settings. When this setting is changed, reopen camera settings to update the UI. tlbe-auto-record=Start recording automatically with main camera on new game tlbe-seed-subfolder=Generate a subfolder for each map seed +tlbe-save-format=Format of screenshot files [shortcut] tlbe=Time Lapse Base Edition diff --git a/scripts/config.lua b/scripts/config.lua index 60f1110..c438318 100644 --- a/scripts/config.lua +++ b/scripts/config.lua @@ -44,6 +44,7 @@ function Config.reload(event) playerSettings.showCameraStatus = guiSettings["tlbe-show-stats"].value playerSettings.useInterval = guiSettings["tlbe-use-interval"].value playerSettings.seedSubfolder = guiSettings["tlbe-seed-subfolder"].value + playerSettings.saveFormat = guiSettings["tlbe-save-format"].value ---@diagnostic enable: assign-type-mismatch end diff --git a/scripts/main.lua b/scripts/main.lua index 926d700..9392395 100644 --- a/scripts/main.lua +++ b/scripts/main.lua @@ -168,19 +168,22 @@ function Main.takeScreenshot(player, playerSettings, camera, activeTracker, forc local savePath if playerSettings.seedSubfolder then savePath = string.format( - "%s/%s/%d/%010d-%s.png", + "%s/%s/%d/%010d-%s.%s", playerSettings.saveFolder, camera.saveFolder, game.default_map_gen_settings.seed, - screenshotNumber, camera.saveName + screenshotNumber, + camera.saveName, + playerSettings.saveFormat ) else savePath = string.format( - "%s/%s/%010d-%s.png", + "%s/%s/%010d-%s.%s", playerSettings.saveFolder, camera.saveFolder, screenshotNumber, - camera.saveName + camera.saveName, + playerSettings.saveFormat ) end diff --git a/settings.lua b/settings.lua index 9fc5ac4..5f5ed3a 100644 --- a/settings.lua +++ b/settings.lua @@ -41,6 +41,14 @@ data:extend( setting_type = "runtime-per-user", default_value = false, order = "15" + }, + { + type = "string-setting", + name = "tlbe-save-format", + setting_type = "runtime-per-user", + default_value = "png", + allowed_values = { "png", "jpg" }, + order = "18" } } ) From b5c1157f1e330031ee7eab5ec872a4284e7aeb0f Mon Sep 17 00:00:00 2001 From: phlux <8382485+thephluxer@users.noreply.github.com> Date: Tue, 18 Feb 2025 09:46:20 +0100 Subject: [PATCH 09/12] disable remember promt when auto-record is on --- control.lua | 8 ++++++-- scripts/config.lua | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/control.lua b/control.lua index 4936743..76115f6 100644 --- a/control.lua +++ b/control.lua @@ -21,7 +21,9 @@ local function init_new_player(index, player) TLBE.GUI.initialize(player, storage.playerSettings[index]) player.print({ "mod-loaded" }, { r = 1, g = 0.5, b = 0 }) - player.print({ "mod-loaded2" }) + if not player.autoRecord then + player.print({ "mod-loaded2" }) + end end local function on_init() @@ -71,7 +73,9 @@ local function on_player_created(event) TLBE.Config.reload(event) local player = game.players[event.player_index] - player.print({ "mod-loaded2" }, { r = 1, g = 0.5, b = 0 }) + if not player.autoRecord then + player.print({ "mod-loaded2" }, { r = 1, g = 0.5, b = 0 }) + end TLBE.GUI.initialize(player, storage.playerSettings[event.player_index]) end diff --git a/scripts/config.lua b/scripts/config.lua index c438318..f9c6b9f 100644 --- a/scripts/config.lua +++ b/scripts/config.lua @@ -43,6 +43,7 @@ function Config.reload(event) playerSettings.sequentialNames = guiSettings["tlbe-sequential-names"].value playerSettings.showCameraStatus = guiSettings["tlbe-show-stats"].value playerSettings.useInterval = guiSettings["tlbe-use-interval"].value + playerSettings.autoRecord = guiSettings["tlbe-auto-record"].value playerSettings.seedSubfolder = guiSettings["tlbe-seed-subfolder"].value playerSettings.saveFormat = guiSettings["tlbe-save-format"].value ---@diagnostic enable: assign-type-mismatch From 88d0cb764ba439861b6899d4c4fe92d17a6c26ff Mon Sep 17 00:00:00 2001 From: phlux <8382485+thephluxer@users.noreply.github.com> Date: Tue, 18 Feb 2025 09:55:32 +0100 Subject: [PATCH 10/12] fix remember prompt supression --- control.lua | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/control.lua b/control.lua index 76115f6..1ca4898 100644 --- a/control.lua +++ b/control.lua @@ -21,7 +21,9 @@ local function init_new_player(index, player) TLBE.GUI.initialize(player, storage.playerSettings[index]) player.print({ "mod-loaded" }, { r = 1, g = 0.5, b = 0 }) - if not player.autoRecord then + + local playerSettings = storage.playerSettings[index] + if not playerSettings.autoRecord then player.print({ "mod-loaded2" }) end end @@ -73,7 +75,8 @@ local function on_player_created(event) TLBE.Config.reload(event) local player = game.players[event.player_index] - if not player.autoRecord then + local playerSettings = storage.playerSettings[event.player_index] + if not playerSettings.autoRecord then player.print({ "mod-loaded2" }, { r = 1, g = 0.5, b = 0 }) end From f91f23ba94563da53b186366aca3bee9f9be968b Mon Sep 17 00:00:00 2001 From: phlux <8382485+thephluxer@users.noreply.github.com> Date: Tue, 18 Feb 2025 10:06:30 +0100 Subject: [PATCH 11/12] improve settings order and description --- locale/en/locale.cfg | 4 ++-- settings.lua | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/locale/en/locale.cfg b/locale/en/locale.cfg index 13091fc..1e838e2 100644 --- a/locale/en/locale.cfg +++ b/locale/en/locale.cfg @@ -102,7 +102,7 @@ tlbe-sequential-names=Sequential names tlbe-show-stats=Show camera status tlbe-use-interval=Use interval as speed setting tlbe-auto-record=Automatic recording -tlbe-seed-subfolder=Map-Seed subfolder +tlbe-seed-subfolder=Map seed subfolder tlbe-save-format=Image format [mod-setting-description] @@ -111,7 +111,7 @@ tlbe-sequential-names=Use sequential numbering per camera for the screenshot num tlbe-show-stats=This requires the Stats GUI mod to be loaded. tlbe-use-interval=Use intervals (between frames) instead of speed gain in the camera settings. When this setting is changed, reopen camera settings to update the UI. tlbe-auto-record=Start recording automatically with main camera on new game -tlbe-seed-subfolder=Generate a subfolder for each map seed +tlbe-seed-subfolder=Generate a subfolder for each map seed to store screenshots in tlbe-save-format=Format of screenshot files [shortcut] diff --git a/settings.lua b/settings.lua index 5f5ed3a..9c2920d 100644 --- a/settings.lua +++ b/settings.lua @@ -33,14 +33,14 @@ data:extend( name = "tlbe-auto-record", setting_type = "runtime-per-user", default_value = false, - order = "12" + order = "13" }, { type = "bool-setting", name = "tlbe-seed-subfolder", setting_type = "runtime-per-user", default_value = false, - order = "15" + order = "4" }, { type = "string-setting", @@ -48,7 +48,7 @@ data:extend( setting_type = "runtime-per-user", default_value = "png", allowed_values = { "png", "jpg" }, - order = "18" + order = "2" } } ) From ad9dad6b16fc30ca8056402c6237be6bdf36ff42 Mon Sep 17 00:00:00 2001 From: phlux <8382485+thephluxer@users.noreply.github.com> Date: Wed, 19 Feb 2025 08:48:59 +0100 Subject: [PATCH 12/12] add changelog entries --- changelog.txt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/changelog.txt b/changelog.txt index 537d9c6..cb21451 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,13 @@ --------------------------------------------------------------------------------------------------- +Version: 2.1.0 +Date: 19-02-2025 + Features: + - Add (per player) setting to automatically activate recording with main camera on new game + - Add (per player) setting to save screenshots in map seed named subdirectories + - Add (per player) setting to change screenshot format (png/jpg) + Bugfixes: + - Fix main camera producing screenshot files with wrong camera name +--------------------------------------------------------------------------------------------------- Version: 2.0.4 Date: 07-11-2024 Bugfixes: