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:
parent
5110c4a50e
commit
14d83b218e
@ -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()
|
||||
|
@ -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',
|
||||
|
Loading…
x
Reference in New Issue
Block a user