iw6-lui/lui/luibindbutton.dec.lua
2024-09-12 17:25:45 +02:00

106 lines
3.3 KiB
Lua

LUI.UIBindButton = {}
LUI.UIBindButton.GamepadButton = function ( f1_arg0, f1_arg1 )
if f1_arg0:handleGamepadButton( f1_arg1 ) then
return true
elseif f1_arg0.m_ownerController ~= nil and f1_arg0.m_ownerController ~= f1_arg1.controller then
DebugPrint( "Item Exclusive to controller " .. f1_arg1.controller )
return false
elseif f1_arg1.down == true then
local f1_local0 = false
local f1_local1 = {
controller = f1_arg1.controller,
qualifier = f1_arg1.qualifier
}
if not f1_arg0.disabled then
f1_local0 = true
if f1_arg1.button == "secondary" then
f1_local1.name = "button_secondary"
elseif f1_arg1.button == "alt1" then
f1_local1.name = "button_alt1"
elseif f1_arg1.button == "alt2" then
f1_local1.name = "button_alt2"
elseif f1_arg1.button == "right_trigger" then
f1_local1.name = "button_right_trigger"
elseif f1_arg1.button == "left_trigger" then
f1_local1.name = "button_left_trigger"
elseif f1_arg1.button == "shoulderr" then
f1_local1.name = "button_shoulderr"
elseif f1_arg1.button == "shoulderl" then
f1_local1.name = "button_shoulderl"
elseif f1_arg1.button == "right_stick" then
f1_local1.name = "button_right_stick"
elseif f1_arg1.button == "left_stick" then
f1_local1.name = "button_left_stick"
elseif f1_arg1.button == "left" then
f1_local1.name = "button_left"
elseif f1_arg1.button == "right" then
f1_local1.name = "button_right"
elseif f1_arg1.button == "up" then
f1_local1.name = "button_up"
elseif f1_arg1.button == "down" then
f1_local1.name = "button_down"
elseif f1_arg1.button == "start" then
f1_local1.name = "button_start"
elseif f1_arg1.button == "select" then
f1_local1.name = "button_select"
elseif f1_arg1.button == "options" then
f1_local1.name = "button_options"
else
f1_local0 = false
end
end
if f1_local0 and f1_arg0:processEvent( f1_local1 ) then
if f1_arg0.actionSFX then
Engine.PlaySound( f1_arg0.actionSFX )
end
return true
end
end
return f1_arg0:dispatchEventToChildren( f1_arg1 )
end
LUI.UIBindButton.ElementEnable = function ( f2_arg0, f2_arg1 )
f2_arg0.disabled = nil
end
LUI.UIBindButton.ElementDisable = function ( f3_arg0, f3_arg1 )
f3_arg0.disabled = true
end
LUI.UIBindButton.Enable = function ( f4_arg0 )
f4_arg0:processEvent( {
name = "enable",
dispatchChildren = true
} )
end
LUI.UIBindButton.Disable = function ( f5_arg0 )
f5_arg0:processEvent( {
name = "disable",
dispatchChildren = true
} )
end
LUI.UIBindButton.SetActionSFX = function ( f6_arg0, f6_arg1 )
f6_arg0.actionSFX = f6_arg1
end
LUI.UIBindButton.build = function ( f7_arg0, f7_arg1 )
return LUI.UIBindButton.new()
end
LUI.UIBindButton.new = function ( menu, controller )
local self = LUI.UIElement.new( menu )
self.id = "LUIBindButton"
self.enable = LUI.UIBindButton.Enable
self.disable = LUI.UIBindButton.Disable
self.setActionSFX = LUI.UIBindButton.SetActionSFX
self:registerEventHandlerIfFree( "enable", LUI.UIBindButton.ElementEnable )
self:registerEventHandlerIfFree( "disable", LUI.UIBindButton.ElementDisable )
self:registerEventHandlerIfFree( "popup_active", LUI.UIBindButton.ElementDisable )
self:registerEventHandlerIfFree( "popup_inactive", LUI.UIBindButton.ElementEnable )
self:registerEventHandler( "gamepad_button", LUI.UIBindButton.GamepadButton )
return self
end