From 14d83b218e6bd4db54eb5b7bb03341c3a10ab5ac Mon Sep 17 00:00:00 2001 From: uramer Date: Mon, 16 May 2022 21:24:20 +0000 Subject: [PATCH] Move permanentStorage option from settings to groups --- .../scripts/omw/settings/common.lua | 17 ++++++----------- .../scripts/omw/settings/player.lua | 7 +++---- 2 files changed, 9 insertions(+), 15 deletions(-) diff --git a/files/builtin_scripts/scripts/omw/settings/common.lua b/files/builtin_scripts/scripts/omw/settings/common.lua index 8150f2cc61..0d5e6d234a 100644 --- a/files/builtin_scripts/scripts/omw/settings/common.lua +++ b/files/builtin_scripts/scripts/omw/settings/common.lua @@ -12,9 +12,6 @@ local function validateSettingOptions(options) if type(options.key) ~= 'string' then error('Setting must have a key') end - if type(options.permanentStorage) ~= 'boolean' then - error('Setting must have a permanentStorage flag') - end if type(options.renderer) ~= 'string' then error('Setting must have a renderer') end @@ -52,6 +49,9 @@ local function validateGroupOptions(options) if options.description ~= nil and type(options.description) ~= 'string' then error('Group description key must be a string') end + if type(options.permanentStorage) ~= 'boolean' then + error('Group must have a permanentStorage flag') + end if type(options.settings) ~= 'table' then error('Group must have a table of settings') end @@ -63,7 +63,6 @@ end local function registerSetting(options) return { key = options.key, - permanentStorage = options.permanentStorage, default = options.default, renderer = options.renderer, argument = options.argument, @@ -85,7 +84,7 @@ local function registerGroup(options) l10n = options.l10n, name = options.name, description = options.description, - + permanentStorage = options.permanentStorage, settings = {}, } local valueSection = contextSection(options.key) @@ -121,12 +120,8 @@ return { onSave = function() local saved = {} for groupKey, group in pairs(groupSection:asTable()) do - local section = contextSection(groupKey) - saved[groupKey] = {} - for key, value in pairs(section:asTable()) do - if group.settings[key] and not group.settings[key].permanentStorage then - saved[groupKey][key] = value - end + if not group.permanentStorage then + saved[groupKey] = contextSection(groupKey):asTable() end end groupSection:reset() diff --git a/files/builtin_scripts/scripts/omw/settings/player.lua b/files/builtin_scripts/scripts/omw/settings/player.lua index a4201bc8a8..2efe5f0820 100644 --- a/files/builtin_scripts/scripts/omw/settings/player.lua +++ b/files/builtin_scripts/scripts/omw/settings/player.lua @@ -19,6 +19,7 @@ require('scripts.omw.settings.renderers')(render.registerRenderer) -- @field #string page Key of a page which will contain this group -- @field #number order Groups within the same page are sorted by this number, or their key for equal values. -- Defaults to 0. +-- @field #boolean permanentStorage Whether the group should be stored in permanent storage, or in the save file -- @field #list<#SettingOptions> settings A [iterables#List](iterables.html#List) of #SettingOptions --- @@ -29,7 +30,6 @@ require('scripts.omw.settings.renderers')(render.registerRenderer) -- @field default A default value -- @field #string renderer A renderer key -- @field argument An argument for the renderer --- @field #boolean permanentStorage Whether the setting should is stored in permanent storage, or in the save file return { interfaceName = 'Settings', @@ -51,6 +51,7 @@ return { -- l10n = 'MyMod', -- name = 'My Group Name', -- description = 'My Group Description', + -- permanentStorage = false, -- settings = { -- { -- key = 'Greeting', @@ -58,7 +59,6 @@ return { -- name = 'Greeting', -- description = 'Text to display when the game starts', -- default = 'Hello, world!', - -- permanentStorage = false, -- }, -- }, -- } @@ -118,10 +118,10 @@ return { -- l10n = 'test', -- name = 'Player', -- description = 'Player settings group', + -- permanentStorage = false, -- settings = { -- { -- key = 'Greeting', - -- permanentStorage = true, -- default = 'Hi', -- renderer = 'textLine', -- name = 'Text Input', @@ -129,7 +129,6 @@ return { -- }, -- { -- key = 'Flag', - -- permanentStorage = false, -- default = false, -- renderer = 'yeNo', -- name = 'Flag',