myspace / CommonLua /Classes /DeveloperOptions.lua
sirnii's picture
Upload 1816 files
b6a38d7 verified
raw
history blame
2.19 kB
DefineClass.DeveloperOptions = {
__parents = { "PropertyObject" },
option_name = "",
}
function DeveloperOptions:GetProperty(property)
local meta = table.find_value(self.properties, "id", property)
if meta and not prop_eval(meta.dont_save, self, meta) then
return GetDeveloperOption(property, self.class, self.option_name, meta.default)
end
return PropertyObject.GetProperty(self, property)
end
function DeveloperOptions:SetProperty(property, value)
local meta = table.find_value(self.properties, "id", property)
if meta and not prop_eval(meta.dont_save, self, meta) then
return SetDeveloperOption(property, value, self.class, self.option_name)
end
return PropertyObject.SetProperty(self, property, value)
end
function GetDeveloperOption(option, storage, substorage, default)
storage = storage or "Developer"
substorage = substorage or "General"
local ds = LocalStorage and LocalStorage[storage]
return ds and ds[substorage] and ds[substorage][option] or default or false
end
function SetDeveloperOption(option, value, storage, substorage)
if not LocalStorage then
print("no local storage available!")
return
end
storage = storage or "Developer"
substorage = substorage or "General"
value = value or nil
local infos = LocalStorage[storage] or {}
local info = infos[substorage] or {}
info[option] = value
infos[substorage] = info
LocalStorage[storage] = infos
Msg("DeveloperOptionsChanged", storage, substorage, option, value)
DelayedCall(0, SaveLocalStorage)
end
function GetDeveloperHistory(class, name)
if not LocalStorage then
return {}
end
local history = LocalStorage.History or {}
LocalStorage.History = history
history[class] = history[class] or {}
local list = history[class][name] or {}
history[class][name] = list
return list
end
function AddDeveloperHistory(class, name, entry, max_size, accept_empty)
max_size = max_size or 20
if not LocalStorage or not accept_empty and (entry or "") == "" then
return
end
local history = GetDeveloperHistory(class, name)
table.remove_entry(history, entry)
table.insert(history, 1, entry)
while #history > max_size do
table.remove(history)
end
SaveLocalStorageDelayed()
end