local f0_local0 = module local f0_local1, f0_local2 = ... f0_local0( f0_local1, package.seeall ) CoD.PrintModuleLoad( _NAME ) function CanSomeoneAccessFriendslist() for f1_local0 = 0, Engine.GetMaxControllerCount() - 1, 1 do if Engine.HasActiveLocalClient( f1_local0 ) and Engine.UserCanAccessFriendsList( f1_local0 ) then return true end end return false end function online_friends_widget( f2_arg0, f2_arg1 ) if not f2_arg1 then f2_arg1 = {} end local self = LUI.UIElement.new( { topAnchor = false, bottomAnchor = true, leftAnchor = false, rightAnchor = true, bottom = -35, right = -100, width = 50, height = 36, alpha = 1 } ) self:registerAnimationState( "disabled", { alpha = 0 } ) self.id = "online_friends_widget" self:registerEventHandler( "show_widget", function ( element, event ) local f3_local0 = element:getParent() if f3_local0 then local f3_local1 = LUI.ButtonHelperText.CommonEvents.addFriendsButton f3_local1.ignorePopups = f2_arg1.ignorePopups f3_local0:processEvent( f3_local1 ) element:animateToState( "default", 100 ) if Engine.IsXB3() or not Engine.IsConsoleGame() then Engine.ExecNow( "friends_widget_refresh" ) end end end ) self:registerEventHandler( "hide_widget", function ( element, event ) local f4_local0 = element:getParent() if f4_local0 then local f4_local1 = LUI.ButtonHelperText.CommonEvents.removeFriendsButton f4_local1.dispatchChildren = true f4_local0:processEvent( f4_local1 ) element:animateToState( "disabled", 0 ) end end ) self:registerEventHandler( "live_connection", function ( element, event ) if event.signed_in == nil then local f5_local0 = Engine.IsNetworkConnected() if f5_local0 then f5_local0 = Engine.IsUserSignedInToLive() end event.signed_in = f5_local0 end if event.signed_in and CanSomeoneAccessFriendslist() then element:processEvent( { name = "show_widget" } ) else element:processEvent( { name = "hide_widget" } ) end end ) self:registerEventHandler( "network_connection", function ( element, event ) if not event.plugged_in then element:processEvent( { name = "hide_widget" } ) elseif Engine.IsUserSignedInToLive() then element:processEvent( { name = "show_widget" } ) end end ) self:registerEventHandler( "menu_create", function ( element, event ) element:processEvent( { name = "live_connection" } ) end ) local f2_local1 = LUI.UIBindButton.new() f2_local1.id = "friends_bind_buttons_id" f2_local1:registerEventHandler( "button_alt2", function ( element, event ) if Engine.IsNetworkConnected() and Engine.IsUserSignedInToLive( event.controller ) then local f8_local0 = Engine.UserCanAccessFriendsList( event.controller ) local f8_local1 = Engine.IsUserAGuest( event.controller ) if f8_local0 and not f8_local1 then if Engine.InFrontend() then LUI.FlowManager.RequestPopupMenu( element, "popup_friends", true, event.controller, false, {} ) else LUI.FlowManager.RequestAddMenu( element, "popup_friends", true, event.controller, false, {} ) end elseif f8_local1 then LUI.FlowManager.RequestPopupMenu( element, "mp_no_guest_popup", false, event.controller, false ) elseif Engine.IsPS3() and event.controller ~= 0 then LUI.FlowManager.RequestPopupMenu( element, "mp_wrong_controller_popup", false, event.controller, false ) end end return true end ) self:addElement( f2_local1 ) local f2_local2 = LUI.UIImage.new local f2_local3 = { topAnchor = false, bottomAnchor = false, leftAnchor = true, rightAnchor = false, top = -5, bottom = 5, left = 0, right = 10, material = RegisterMaterial( "widg_triangle" ) } if not Engine.InFrontend() then local f2_local4 = Engine.GetDvarBool( "dedicated_dhclient" ) local f2_local5 = 0.7 end f2_local3.alpha = f2_local4 and f2_local5 or 0.25 f2_local3.zRot = -135 f2_local2 = f2_local2( f2_local3 ) f2_local2.id = "friends_triangle_id" self:addElement( f2_local2 ) if Friends then f2_local3 = LUI.UIText.new( CoD.ColorizeState( Colors.frontend_hilite, { topAnchor = false, bottomAnchor = false, leftAnchor = false, rightAnchor = true, left = 0, right = 0, height = CoD.TextSettings.BigFont.Height, font = CoD.TextSettings.BigFont.Font, alignment = LUI.Alignment.Right } ) ) f2_local3.id = "friends_number_text" f2_local3:setupUIBindText( "CountOnlineFriends" ) self:addElement( f2_local3 ) end return self end LUI.MenuBuilder.registerType( "online_friends_widget", online_friends_widget ) LockTable( _M )