2022-03-07 20:28:05 +00:00
|
|
|
local common = require('scripts.omw.settings.common')
|
|
|
|
local render = require('scripts.omw.settings.render')
|
2022-04-18 06:42:02 +00:00
|
|
|
|
2022-04-13 18:08:33 +00:00
|
|
|
local ui = require('openmw.ui')
|
|
|
|
local async = require('openmw.async')
|
|
|
|
local util = require('openmw.util')
|
2022-04-18 06:42:02 +00:00
|
|
|
local core = require('openmw.core')
|
2022-04-13 18:08:33 +00:00
|
|
|
|
|
|
|
render.registerRenderer('text', function(value, set, arg)
|
|
|
|
return {
|
|
|
|
type = ui.TYPE.TextEdit,
|
|
|
|
props = {
|
2022-04-16 08:41:20 +00:00
|
|
|
size = util.vector2(arg and arg.size or 300, 30),
|
2022-04-13 18:08:33 +00:00
|
|
|
text = value,
|
|
|
|
textColor = util.color.rgb(1, 1, 1),
|
2022-04-16 08:41:20 +00:00
|
|
|
textSize = 15,
|
|
|
|
textAlignV = ui.ALIGNMENT.Center,
|
2022-04-13 18:08:33 +00:00
|
|
|
},
|
|
|
|
events = {
|
|
|
|
textChanged = async:callback(function(s) set(s) end),
|
|
|
|
},
|
|
|
|
}
|
|
|
|
end)
|
2022-03-07 20:28:05 +00:00
|
|
|
|
|
|
|
return {
|
|
|
|
interfaceName = 'Settings',
|
|
|
|
interface = {
|
|
|
|
SCOPE = common.SCOPE,
|
2022-04-18 06:42:02 +00:00
|
|
|
group = common.group,
|
2022-03-07 20:28:05 +00:00
|
|
|
registerRenderer = render.registerRenderer,
|
2022-04-18 06:42:02 +00:00
|
|
|
registerGroup = function(options)
|
|
|
|
core.sendGlobalEvent(common.EVENTS.RegisterGroup, options)
|
|
|
|
end,
|
2022-03-07 20:28:05 +00:00
|
|
|
},
|
|
|
|
engineHandlers = {
|
|
|
|
onLoad = function(saved)
|
2022-04-18 06:42:02 +00:00
|
|
|
common.loadScope(common.SCOPE.SavePlayer, saved)
|
2022-03-07 20:28:05 +00:00
|
|
|
end,
|
|
|
|
onSave = function()
|
2022-04-18 06:42:02 +00:00
|
|
|
common.saveScope(common.SCOPE.SavePlayer)
|
2022-03-07 20:28:05 +00:00
|
|
|
end,
|
|
|
|
},
|
|
|
|
eventHandlers = {
|
|
|
|
[common.EVENTS.GroupRegistered] = render.onGroupRegistered,
|
2022-04-18 06:42:02 +00:00
|
|
|
[common.EVENTS.SettingChanged] = render.onSettingChanged,
|
|
|
|
[common.EVENTS.Subscribe] = common.handleSubscription,
|
2022-03-07 20:28:05 +00:00
|
|
|
}
|
|
|
|
}
|