Начинающий
- Статус
- Оффлайн
- Регистрация
- 30 Ноя 2020
- Сообщения
- 80
- Реакции
- 18
Код:
local c_events = {}
local m_events = { __index = c_events }
local events = {}
local events_list = {}
function c_events.create(event_name)
if (type(event_name) ~= 'string') then
error('Invalid event of callback')
return
end
events_list[event_name] = {}
events_list[event_name].list = {}
events_list[event_name].func = function(...)
for key, value in pairs(events_list[event_name].list) do
value.func(...)
end
end
callbacks.register(event_name, events_list[event_name].func)
return setmetatable({
event_name = event_name
}, m_events)
end
function c_events:set(callback)
if (callback == nil) then
error('Undefined callbacked variable')
return
end
if (type(callback) ~= 'function') then
error('Invalid type of callbacked variable')
return
end
table.insert(events_list[self.event_name].list, {func = callback})
end
events.render = c_events.create('paint')
events.pre_frame_stage = c_events.create('pre_frame_stage')
events.post_frame_stage = c_events.create('post_frame_stage')
events.post_move = c_events.create('post_move')
events.post_anim_update = c_events.create('post_anim_update')
events.player_death = c_events.create('player_death')
events.bullet_impact = c_events.create('bullet_impact')
---@note: example
function 500_DOLLARS_IND()
end
events.render:set(500_DOLLARS_IND)