125 lines
3.3 KiB
Lua
125 lines
3.3 KiB
Lua
local f0_local0 = module
|
|
local f0_local1, f0_local2 = ...
|
|
f0_local0( f0_local1, package.seeall )
|
|
require( "LUI.CoD" )
|
|
f0_local0 = hashset( {
|
|
"keybind",
|
|
"action_slot_pressed",
|
|
"game_message",
|
|
"hide_host_migration",
|
|
"obituary",
|
|
"show_host_migration_triggered",
|
|
"toggle_pause",
|
|
"weapon_change",
|
|
"show_hud_menu",
|
|
"hide_hud_menu",
|
|
"playerstate_client_changed",
|
|
"close_rival_info",
|
|
"open_rival_info",
|
|
"camera_client_changed",
|
|
"refresh_options_button",
|
|
"update_mlg_prev_next",
|
|
"spectate_team_change"
|
|
} )
|
|
function isDirectDispatchEventType( f1_arg0 )
|
|
return f0_local0[f1_arg0]
|
|
end
|
|
|
|
function new()
|
|
local f2_local0 = {}
|
|
setmetatable( f2_local0, {
|
|
__index = _M
|
|
} )
|
|
f2_local0.direct_dispatch = {}
|
|
f2_local0.omnvar_update = {}
|
|
f2_local0.dvar_update = {}
|
|
return f2_local0
|
|
end
|
|
|
|
function setupRoot( f3_arg0, f3_arg1 )
|
|
f3_arg1:registerEventHandler( "omnvar_update", omnvarUpdateDispatcher )
|
|
f3_arg1:registerEventHandler( "dvar_update", dvarUpdateDispatcher )
|
|
for f3_local3, f3_local4 in pairs( f0_local0 ) do
|
|
f3_arg1:registerEventHandler( f3_local3, directDispatcher )
|
|
end
|
|
end
|
|
|
|
function registerOmnvarHandler( f4_arg0, f4_arg1, f4_arg2, f4_arg3 )
|
|
assert( type( f4_arg1 ) == "userdata" )
|
|
assert( type( f4_arg2 ) == "string" )
|
|
assert( type( f4_arg3 ) == "function" )
|
|
local f4_local0 = f4_arg0.omnvar_update
|
|
local f4_local1 = f4_arg0.omnvar_update[f4_arg2]
|
|
if not f4_local1 then
|
|
f4_local1 = setmetatable( {}, {
|
|
__mode = "k"
|
|
} )
|
|
end
|
|
f4_local0[f4_arg2] = f4_local1
|
|
f4_arg0.omnvar_update[f4_arg2][f4_arg1] = f4_arg3
|
|
end
|
|
|
|
function omnvarUpdateDispatcher( f5_arg0, f5_arg1 )
|
|
local f5_local0 = f5_arg0.eventCatcher.omnvar_update[f5_arg1.omnvar]
|
|
if f5_local0 then
|
|
for f5_local4, f5_local5 in pairs( f5_local0 ) do
|
|
if not f5_local4:isClosed() then
|
|
f5_local5( f5_local4, f5_arg1 )
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function registerDvarHandler( f6_arg0, f6_arg1, f6_arg2, f6_arg3 )
|
|
assert( type( f6_arg1 ) == "userdata" )
|
|
assert( type( f6_arg2 ) == "string" )
|
|
assert( type( f6_arg3 ) == "function" )
|
|
if not f6_arg0.dvar_update[f6_arg2] then
|
|
assert( Engine.WatchDvar( f6_arg2 ), "failed to watch dvar" )
|
|
f6_arg0.dvar_update[f6_arg2] = setmetatable( {}, {
|
|
__mode = "k"
|
|
} )
|
|
end
|
|
f6_arg0.dvar_update[f6_arg2][f6_arg1] = f6_arg3
|
|
end
|
|
|
|
function dvarUpdateDispatcher( f7_arg0, f7_arg1 )
|
|
local f7_local0 = f7_arg0.eventCatcher.dvar_update[f7_arg1.dvar]
|
|
if f7_local0 then
|
|
for f7_local4, f7_local5 in pairs( f7_local0 ) do
|
|
if not f7_local4:isClosed() then
|
|
f7_local5( f7_local4, f7_arg1 )
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function registerDirectDispatchHandler( f8_arg0, f8_arg1, f8_arg2, f8_arg3 )
|
|
assert( type( f8_arg1 ) == "userdata" )
|
|
assert( type( f8_arg2 ) == "string" )
|
|
assert( type( f8_arg3 ) == "function" )
|
|
local f8_local0 = f8_arg0.direct_dispatch
|
|
local f8_local1 = f8_arg0.direct_dispatch[f8_arg2]
|
|
if not f8_local1 then
|
|
f8_local1 = setmetatable( {}, {
|
|
__mode = "k"
|
|
} )
|
|
end
|
|
f8_local0[f8_arg2] = f8_local1
|
|
f8_arg0.direct_dispatch[f8_arg2][f8_arg1] = f8_arg3
|
|
end
|
|
|
|
function directDispatcher( f9_arg0, f9_arg1 )
|
|
local f9_local0 = f9_arg0.eventCatcher.direct_dispatch[f9_arg1.name]
|
|
if f9_local0 then
|
|
for f9_local4, f9_local5 in pairs( f9_local0 ) do
|
|
if not f9_local4:isClosed() then
|
|
assert( f9_local4.m_eventHandlers[f9_arg1.name] == f9_local5 )
|
|
f9_local5( f9_local4, f9_arg1 )
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
LockTable( _M )
|