-
Автор темы
- #1
В нле нельзя регать больше одной функции на один колбек, что иногда бывает неудобным. Вот типо либка, чтобы облегчить жизнь
Код:
local callbacks = {
debug = true,
}
callbacks.setup = function( callback )
assert( type( callback ) == "string", "Invalid type of callback" )
callbacks[ callback ] = { }
callbacks[ callback ].list = { }
callbacks[ callback ].func = function( ... )
for i, j in pairs( callbacks[ callback ].list ) do
j( ... )
end
end
Cheat.RegisterCallback( callback, callbacks[ callback ].func )
if callbacks.debug then
print( "Created callback: " .. callback )
end
end
callbacks.push = function( callback, func )
assert( func, "Undefined callbacked variable" )
assert( type( func ) == "function", "Invalid type of callbacked variable" )
if not callbacks[ callback ] then
callbacks.setup( callback )
end
table.insert( callbacks[ callback ].list, func )
if callbacks.debug then
print( "Pushed function to " .. callback )
end
end
callbacks.pop = function( callback, func )
assert( callbacks[ callback ], "Undefined callback" )
assert( type( func ) == "function", "Invalid type of variable to pop" )
for k, v in pairs( callbacks[ callback ].list ) do
if v == func then
table.remove( callbacks[ callback ].list, k )
if callbacks.debug then
print( "Poped function from " .. callback )
end
return
end
end
if callbacks.debug then
print( "Didnt find function to pop" )
end
end