1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-03-12 13:13:27 +00:00

Move permanentStorage option from settings to groups

This commit is contained in:
uramer 2022-05-16 21:24:20 +00:00 committed by Petr Mikheev
parent 5110c4a50e
commit 14d83b218e
2 changed files with 9 additions and 15 deletions

View File

@ -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()

View File

@ -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',