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