Fuxx
This commit is contained in:
parent
8268fba83d
commit
7ed2a6e110
9565 changed files with 1315332 additions and 90 deletions
55
home/.config/awesome/lib/rubato/manager.lua
Normal file
55
home/.config/awesome/lib/rubato/manager.lua
Normal file
|
@ -0,0 +1,55 @@
|
|||
if not RUBATO_DIR then RUBATO_DIR = (...):match("(.-)[^%.]+$") end
|
||||
|
||||
local easing = require(RUBATO_DIR.."easing")
|
||||
|
||||
local function make_props_immutable(table)
|
||||
setmetatable(table, {
|
||||
__index = function(self, key)
|
||||
if self._props[key] then return self._props[key]
|
||||
else return rawget(self, key) end
|
||||
end,
|
||||
__newindex = function(self, key, value)
|
||||
if self._props[key] then return
|
||||
else self._props[key] = value end
|
||||
end,
|
||||
})
|
||||
end
|
||||
|
||||
local function manager()
|
||||
local obj = {_props = {}}
|
||||
make_props_immutable(obj)
|
||||
|
||||
obj._props.timeds = {}
|
||||
|
||||
obj._props.timed = {_props = {}}
|
||||
obj._props.timed._props.defaults = {
|
||||
duration = 1,
|
||||
pos = 0,
|
||||
prop_intro = false,
|
||||
intro = 0.2,
|
||||
easing = easing.linear,
|
||||
awestore_compat = false,
|
||||
log = function() end,
|
||||
override_simulate = false,
|
||||
override_dt = false,
|
||||
rate = 60,
|
||||
}
|
||||
make_props_immutable(obj.timed)
|
||||
obj._props.timed._props.override = {_props = {
|
||||
clear = function() for _, timed in pairs(obj.timeds) do timed:reset_values() end end,
|
||||
forall = function(func) for _, timed in pairs(obj.timeds) do func(timed) end end,
|
||||
}}
|
||||
|
||||
setmetatable(obj.timed.override, {
|
||||
__index = function(self, key) return self._props[key] end,
|
||||
__newindex = function(self, key, value)
|
||||
for _, timed in pairs(obj.timeds) do timed[key] = value end
|
||||
self._props[key] = value
|
||||
end
|
||||
})
|
||||
|
||||
return obj
|
||||
end
|
||||
|
||||
if not RUBATO_MANAGER then RUBATO_MANAGER = manager() end
|
||||
return RUBATO_MANAGER
|
Loading…
Add table
Add a link
Reference in a new issue