feat: add 'double-click to join server' to server browser
This commit is contained in:
parent
09a60ffba4
commit
2c81c4c6df
113
data/ui_scripts/doubleclick_join_server/__init__.lua
Normal file
113
data/ui_scripts/doubleclick_join_server/__init__.lua
Normal file
@ -0,0 +1,113 @@
|
||||
require( "ui.uieditor.widgets.PC.ServerBrowser.ServerBrowserRowInternal" )
|
||||
require( "ui.uieditor.widgets.Lobby.Common.FE_FocusBarContainer" )
|
||||
|
||||
CoD.ServerBrowserRow = InheritFrom( LUI.UIElement )
|
||||
CoD.ServerBrowserRow.new = function ( menu, controller )
|
||||
local self = LUI.UIElement.new()
|
||||
if PreLoadFunc then
|
||||
PreLoadFunc( self, controller )
|
||||
end
|
||||
self:setUseStencil( false )
|
||||
self:setClass( CoD.ServerBrowserRow )
|
||||
self.id = "ServerBrowserRow"
|
||||
self.soundSet = "default"
|
||||
self:setLeftRight( true, false, 0, 700 )
|
||||
self:setTopBottom( true, false, 0, 22 )
|
||||
self:makeFocusable()
|
||||
self:setHandleMouse( true )
|
||||
|
||||
if CoD.isPC then
|
||||
self:registerEventHandler( "leftmousedown", function ()
|
||||
if self:isInFocus() then
|
||||
JoinServerBrowser( self, self, controller, menu )
|
||||
end
|
||||
end )
|
||||
end
|
||||
self.anyChildUsesUpdateState = true
|
||||
|
||||
local background = LUI.UIImage.new()
|
||||
background:setLeftRight( true, true, 0, 0 )
|
||||
background:setTopBottom( true, true, 0, 0 )
|
||||
background:setRGB( 0.2, 0.2, 0.2 )
|
||||
background:setAlpha( 0.8 )
|
||||
self:addElement( background )
|
||||
self.background = background
|
||||
|
||||
local rowItems = CoD.ServerBrowserRowInternal.new( menu, controller )
|
||||
rowItems:setLeftRight( true, false, 0, 700 )
|
||||
rowItems:setTopBottom( true, false, 0, 22 )
|
||||
rowItems:linkToElementModel( self, nil, false, function ( model )
|
||||
rowItems:setModel( model, controller )
|
||||
end )
|
||||
self:addElement( rowItems )
|
||||
self.rowItems = rowItems
|
||||
|
||||
local FocusBarB = CoD.FE_FocusBarContainer.new( menu, controller )
|
||||
FocusBarB:setLeftRight( true, true, -2, 2 )
|
||||
FocusBarB:setTopBottom( false, true, -1, 3 )
|
||||
FocusBarB:setAlpha( 0 )
|
||||
FocusBarB:setZoom( 1 )
|
||||
self:addElement( FocusBarB )
|
||||
self.FocusBarB = FocusBarB
|
||||
|
||||
local FocusBarT = CoD.FE_FocusBarContainer.new( menu, controller )
|
||||
FocusBarT:setLeftRight( true, true, -2, 2 )
|
||||
FocusBarT:setTopBottom( true, false, -2, 2 )
|
||||
FocusBarT:setAlpha( 0 )
|
||||
FocusBarT:setZoom( 1 )
|
||||
self:addElement( FocusBarT )
|
||||
self.FocusBarT = FocusBarT
|
||||
|
||||
self.clipsPerState = {
|
||||
DefaultState = {
|
||||
DefaultClip = function ()
|
||||
self:setupElementClipCounter( 3 )
|
||||
background:completeAnimation()
|
||||
self.background:setRGB( 0.2, 0.2, 0.2 )
|
||||
self.clipFinished( background, {} )
|
||||
FocusBarB:completeAnimation()
|
||||
self.FocusBarB:setAlpha( 0 )
|
||||
self.clipFinished( FocusBarB, {} )
|
||||
FocusBarT:completeAnimation()
|
||||
self.FocusBarT:setAlpha( 0 )
|
||||
self.clipFinished( FocusBarT, {} )
|
||||
end,
|
||||
Focus = function ()
|
||||
self:setupElementClipCounter( 3 )
|
||||
background:completeAnimation()
|
||||
self.background:setRGB( 0.2, 0.2, 0.2 )
|
||||
self.clipFinished( background, {} )
|
||||
FocusBarB:completeAnimation()
|
||||
self.FocusBarB:setAlpha( 1 )
|
||||
self.clipFinished( FocusBarB, {} )
|
||||
FocusBarT:completeAnimation()
|
||||
self.FocusBarT:setAlpha( 1 )
|
||||
self.clipFinished( FocusBarT, {} )
|
||||
end,
|
||||
Over = function ()
|
||||
self:setupElementClipCounter( 3 )
|
||||
background:completeAnimation()
|
||||
self.background:setRGB( 0.39, 0.39, 0.39 )
|
||||
self.clipFinished( background, {} )
|
||||
FocusBarB:completeAnimation()
|
||||
self.FocusBarB:setAlpha( 0 )
|
||||
self.clipFinished( FocusBarB, {} )
|
||||
FocusBarT:completeAnimation()
|
||||
self.FocusBarT:setAlpha( 0 )
|
||||
self.clipFinished( FocusBarT, {} )
|
||||
end
|
||||
}
|
||||
}
|
||||
LUI.OverrideFunction_CallOriginalSecond( self, "close", function ( element )
|
||||
element.rowItems:close()
|
||||
element.FocusBarB:close()
|
||||
element.FocusBarT:close()
|
||||
element.m_leftMouseDown = nil
|
||||
end )
|
||||
|
||||
if PostLoadFunc then
|
||||
PostLoadFunc( self, controller, menu )
|
||||
end
|
||||
|
||||
return self
|
||||
end
|
Loading…
Reference in New Issue
Block a user