add rules & add 'show-content-access' rule
This commit is contained in:
@@ -223,3 +223,35 @@ console.add_command(
|
||||
fragment:place({x, y, z}, rotation)
|
||||
end
|
||||
)
|
||||
|
||||
console.add_command(
|
||||
"rule.set name:str value:bool",
|
||||
"Set rule value",
|
||||
function(args, kwargs)
|
||||
local name = args[1]
|
||||
local value = args[2]
|
||||
rules.set(name, value)
|
||||
return "rule '"..name.."' set to "..tostring(value)
|
||||
end
|
||||
)
|
||||
|
||||
console.add_command(
|
||||
"rule.list",
|
||||
"Show registered rules list",
|
||||
function(args, kwargs)
|
||||
local names = ""
|
||||
for name, rule in pairs(rules.rules) do
|
||||
if #names > 0 then
|
||||
names = names .. "\n "
|
||||
else
|
||||
names = " "
|
||||
end
|
||||
local value = rule.value
|
||||
if value == nil then
|
||||
value = "not set"
|
||||
end
|
||||
names = names .. name .. ":\t" .. tostring(value)
|
||||
end
|
||||
return "registered rules:\n" .. names
|
||||
end
|
||||
)
|
||||
|
||||
@@ -168,6 +168,64 @@ end
|
||||
|
||||
math.randomseed(time.uptime() * 1536227939)
|
||||
|
||||
rules = {nexid = 1, rules = {}}
|
||||
local _rules = rules
|
||||
|
||||
function _rules.get_rule(name)
|
||||
local rule = _rules.rules[name]
|
||||
if rule == nil then
|
||||
rule = {listeners={}}
|
||||
_rules.rules[name] = rule
|
||||
end
|
||||
return rule
|
||||
end
|
||||
|
||||
function _rules.get(name)
|
||||
local rule = _rules.rules[name]
|
||||
if rule == nil then
|
||||
return nil
|
||||
end
|
||||
return rule.value
|
||||
end
|
||||
|
||||
function _rules.set(name, value)
|
||||
local rule = _rules.get_rule(name)
|
||||
rule.value = value
|
||||
for _, handler in pairs(rule.listeners) do
|
||||
handler(value)
|
||||
end
|
||||
end
|
||||
|
||||
function _rules.listen(name, handler)
|
||||
local rule = _rules.get_rule(name)
|
||||
local id = _rules.nexid
|
||||
_rules.nextid = _rules.nexid + 1
|
||||
rule.listeners[utf8.encode(id)] = handler
|
||||
return id
|
||||
end
|
||||
|
||||
function _rules.create(name, value, handler)
|
||||
print(name, value, handler)
|
||||
_rules.set(name, value)
|
||||
return _rules.listen(name, handler)
|
||||
end
|
||||
|
||||
function _rules.unlisten(name, id)
|
||||
local rule = _rules.get_rule(name)
|
||||
rule.listeners[utf8.encode(id)] = nil
|
||||
end
|
||||
|
||||
function _rules.clear()
|
||||
_rules.rules = {}
|
||||
_rules.nextid = 1
|
||||
end
|
||||
|
||||
function __vc_create_hud_rules()
|
||||
_rules.create("show-content-access", hud._is_content_access(), function(value)
|
||||
hud._set_content_access(value)
|
||||
end)
|
||||
end
|
||||
|
||||
-- --------- Deprecated functions ------ --
|
||||
local function wrap_deprecated(func, name, alternatives)
|
||||
return function (...)
|
||||
|
||||
Reference in New Issue
Block a user