mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2024-12-29 12:20:41 +00:00
126 lines
4.6 KiB
Lua
126 lines
4.6 KiB
Lua
---
|
|
-- `openmw.storage` contains functions to work with permanent Lua storage.
|
|
-- @module storage
|
|
-- @usage
|
|
-- local storage = require('openmw.storage')
|
|
-- local myModData = storage.globalSection('MyModExample')
|
|
-- myModData:set("someVariable", 1.0)
|
|
-- myModData:set("anotherVariable", { exampleStr='abc', exampleBool=true })
|
|
-- local async = require('openmw.async')
|
|
-- myModData:subscribe(async:callback(function(section, key)
|
|
-- if key then
|
|
-- print('Value is changed:', key, '=', myModData:get(key))
|
|
-- else
|
|
-- print('All values are changed')
|
|
-- end
|
|
-- end))
|
|
|
|
--- Possible @{#LifeTime} values
|
|
-- @field [parent=#storage] #LifeTime LIFE_TIME
|
|
|
|
--- `storage.LIFE_TIME`
|
|
-- @type LifeTime
|
|
-- @field #number Persistent "0" Data is stored for the whole game session and remains on disk after quitting the game
|
|
-- @field #number GameSession "1" Data is stored for the whole game session
|
|
-- @field #number Temporary "2" Data is stored until script context reset
|
|
|
|
---
|
|
-- Get a section of the global storage; can be used by any script, but only global scripts can change values.
|
|
-- Menu scripts can only access it when a game is running.
|
|
-- Creates the section if it doesn't exist.
|
|
-- @function [parent=#storage] globalSection
|
|
-- @param #string sectionName
|
|
-- @return #StorageSection
|
|
|
|
---
|
|
-- Get a section of the player storage; can only be used by player and menu scripts.
|
|
-- Creates the section if it doesn't exist.
|
|
-- @function [parent=#storage] playerSection
|
|
-- @param #string sectionName
|
|
-- @return #StorageSection
|
|
|
|
---
|
|
-- Get all global sections as a table; can be used by global scripts only.
|
|
-- Note that adding/removing items to the returned table doesn't create or remove sections.
|
|
-- @function [parent=#storage] allGlobalSections
|
|
-- @return #table
|
|
|
|
---
|
|
-- Get all player sections as a table; can only be used by player and menu scripts.
|
|
-- Note that adding/removing items to the returned table doesn't create or remove sections.
|
|
-- @function [parent=#storage] allPlayerSections
|
|
-- @return #table
|
|
|
|
---
|
|
-- A map `key -> value` that represents a storage section.
|
|
-- @type StorageSection
|
|
|
|
---
|
|
-- Get value by a string key; if value is a table makes it readonly.
|
|
-- @function [parent=#StorageSection] get
|
|
-- @param self
|
|
-- @param #string key
|
|
-- @return #any
|
|
|
|
---
|
|
-- Get value by a string key; if value is a table returns a copy.
|
|
-- @function [parent=#StorageSection] getCopy
|
|
-- @param self
|
|
-- @param #string key
|
|
-- @return #any
|
|
|
|
---
|
|
-- Subscribe to changes in this section.
|
|
-- First argument of the callback is the name of the section (so one callback can be used for different sections).
|
|
-- The second argument is the changed key (or `nil` if `reset` was used and all values were changed at the same time)
|
|
-- @function [parent=#StorageSection] subscribe
|
|
-- @param self
|
|
-- @param openmw.async#Callback callback
|
|
|
|
---
|
|
-- Copy all values and return them as a table.
|
|
-- @function [parent=#StorageSection] asTable
|
|
-- @param self
|
|
-- @return #table
|
|
|
|
---
|
|
-- Remove all existing values and assign values from given (the arg is optional) table.
|
|
-- This function can not be used for a global storage section from a local script.
|
|
-- Note: `section:reset()` removes the section.
|
|
-- @function [parent=#StorageSection] reset
|
|
-- @param self
|
|
-- @param #table values (optional) New values
|
|
|
|
---
|
|
-- (DEPRECATED, use `setLifeTime(openmw.storage.LIFE_TIME.Temporary)`) Make the whole section temporary: will be removed on exit or when load a save.
|
|
-- Temporary sections have the same interface to get/set values, the only difference is they will not
|
|
-- be saved to the permanent storage on exit.
|
|
-- This function can be used for a global storage section from a global script or for a player storage section from a player or menu script.
|
|
-- @function [parent=#StorageSection] removeOnExit
|
|
-- @param self
|
|
-- @usage
|
|
-- local storage = require('openmw.storage')
|
|
-- local myModData = storage.globalSection('MyModExample')
|
|
-- myModData:removeOnExit()
|
|
|
|
---
|
|
-- Set the life time of given storage section.
|
|
-- New sections initially have a Persistent life time.
|
|
-- This function can be used for a global storage section from a global script or for a player storage section from a player or menu script.
|
|
-- @function [parent=#StorageSection] setLifeTime
|
|
-- @param self
|
|
-- @param #LifeTime lifeTime Section life time
|
|
-- @usage
|
|
-- local storage = require('openmw.storage')
|
|
-- local myModData = storage.globalSection('MyModExample')
|
|
-- myModData:setLifeTime(storage.LIFE_TIME.Temporary)
|
|
|
|
---
|
|
-- Set value by a string key; can not be used for global storage from a local script.
|
|
-- @function [parent=#StorageSection] set
|
|
-- @param self
|
|
-- @param #string key
|
|
-- @param #any value
|
|
|
|
return nil
|