local function PostLoadFunc(element, controllerIndex, controller) element:addEventHandler("button_action", function(arg0, arg1) local dataSource = element:GetDataSource() Lobby.JoinServer(controllerIndex, dataSource.index) end) end function SystemLinkJoinMenuRow(menu, controller) local self = LUI.UIButton.new() self:SetAnchorsAndPosition(0, 1, 0, 1, 0, 1790 * _1080p, 0, 35 * _1080p) self.id = "SystemLinkJoinMenuRow" self._animationSets = {} self._sequences = {} local controllerIndex = controller and controller.controllerIndex if not controllerIndex and not Engine.InFrontend() then controllerIndex = self:getRootController() end assert(controllerIndex) local DropShadow = nil DropShadow = LUI.UIImage.new() DropShadow.id = "DropShadow" DropShadow:SetRGBFromInt(0, 0) DropShadow:SetAlpha(0.3, 0) DropShadow:setImage(RegisterMaterial("widg_gradient_top_to_bottom"), 0) DropShadow:SetAnchorsAndPosition(0, 0, 1, 0, 0, 0, 0, _1080p * 4) self:addElement(DropShadow) self.DropShadow = DropShadow local RowBG = nil RowBG = LUI.UIImage.new() RowBG.id = "RowBG" RowBG:SetRGBFromInt(0, 0) RowBG:SetAlpha(0.5, 0) self:addElement(RowBG) self.RowBG = RowBG local Host = nil Host = LUI.UIStyledText.new() Host.id = "Host" Host:SetRGBFromInt(14277081, 0) Host:SetFontSize(24 * _1080p) Host:SetFont(FONTS.GetFont(FONTS.MainMedium.File)) Host:SetAlignment(LUI.Alignment.Left) Host:SetStartupDelay(1000) Host:SetLineHoldTime(400) Host:SetAnimMoveTime(3000) Host:SetEndDelay(1000) Host:SetCrossfadeTime(400) Host:SetAutoScrollStyle(LUI.UIStyledText.AutoScrollStyle.ScrollH) Host:SetMaxVisibleLines(1) Host:SetAnchorsAndPosition(0, 1, 0.5, 0.5, _1080p * 9, _1080p * 275, _1080p * -12, _1080p * 12) Host:SubscribeToModelThroughElement(self, "host", function() local dataSource = self:GetDataSource() dataSource = dataSource.host:GetValue(controllerIndex) if dataSource ~= nil then Host:setText(dataSource, 0) end end) self:addElement(Host) self.Host = Host local Players = nil Players = LUI.UIText.new() Players.id = "Players" Players:SetRGBFromInt(14277081, 0) Players:SetFontSize(24 * _1080p) Players:SetFont(FONTS.GetFont(FONTS.MainMedium.File)) Players:SetAlignment(LUI.Alignment.Center) Players:SetAnchorsAndPosition(0, 1, 0.5, 0.5, _1080p * 283, _1080p * 418, _1080p * -12, _1080p * 12) Players:SubscribeToModelThroughElement(self, "players", function() local dataSource = self:GetDataSource() dataSource = dataSource.players:GetValue(controllerIndex) if dataSource ~= nil then Players:setText(dataSource, 0) end end) self:addElement(Players) self.Players = Players local Status = nil Status = LUI.UIText.new() Status.id = "Status" Status:SetRGBFromInt(14277081, 0) Status:SetFontSize(24 * _1080p) Status:SetFont(FONTS.GetFont(FONTS.MainMedium.File)) Status:SetAlignment(LUI.Alignment.Left) Status:SetAnchorsAndPosition(0, 1, 0.5, 0.5, _1080p * 426, _1080p * 620, _1080p * -12, _1080p * 12) Status:SubscribeToModelThroughElement(self, "status", function() local dataSource = self:GetDataSource() dataSource = dataSource.status:GetValue(controllerIndex) if dataSource ~= nil then Status:setText(ToUpperCase(dataSource), 0) end end) self:addElement(Status) self.Status = Status local Map = nil Map = LUI.UIStyledText.new() Map.id = "Map" Map:SetRGBFromInt(14277081, 0) Map:SetFontSize(24 * _1080p) Map:SetFont(FONTS.GetFont(FONTS.MainMedium.File)) Map:SetAlignment(LUI.Alignment.Left) Map:SetStartupDelay(1250) Map:SetLineHoldTime(400) Map:SetAnimMoveTime(3000) Map:SetEndDelay(1000) Map:SetCrossfadeTime(500) Map:SetAutoScrollStyle(LUI.UIStyledText.AutoScrollStyle.ScrollH) Map:SetMaxVisibleLines(1) Map:SetAnchorsAndPosition(0, 1, 0.5, 0.5, _1080p * 627, _1080p * 853, _1080p * -12, _1080p * 12) Map:SubscribeToModelThroughElement(self, "map", function() local dataSource = self:GetDataSource() dataSource = dataSource.map:GetValue(controllerIndex) if dataSource ~= nil then Map:setText(dataSource, 0) end end) self:addElement(Map) self.Map = Map local Type = nil Type = LUI.UIText.new() Type.id = "Type" Type:SetRGBFromInt(14277081, 0) Type:SetFontSize(24 * _1080p) Type:SetFont(FONTS.GetFont(FONTS.MainMedium.File)) Type:SetAlignment(LUI.Alignment.Left) Type:SetAnchorsAndPosition(0, 1, 0.5, 0.5, _1080p * 862, _1080p * 1115, _1080p * -12, _1080p * 12) Type:SubscribeToModelThroughElement(self, "type", function() local dataSource = self:GetDataSource() dataSource = dataSource.type:GetValue(controllerIndex) if dataSource ~= nil then Type:setText(dataSource, 0) end end) self:addElement(Type) self.Type = Type local Mod = nil Mod = LUI.UIStyledText.new() Mod.id = "Mod" Mod:SetRGBFromInt(14277081, 0) Mod:SetFontSize(24 * _1080p) Mod:SetFont(FONTS.GetFont(FONTS.MainMedium.File)) Mod:SetAlignment(LUI.Alignment.Left) Mod:SetStartupDelay(1250) Mod:SetLineHoldTime(400) Mod:SetAnimMoveTime(3000) Mod:SetEndDelay(1000) Mod:SetCrossfadeTime(500) Mod:SetAutoScrollStyle(LUI.UIStyledText.AutoScrollStyle.ScrollH) Mod:SetMaxVisibleLines(1) Mod:SetAnchorsAndPosition(0, 1, 0.5, 0.5, _1080p * 1125, _1080p * 1400, _1080p * -12, _1080p * 12) Mod:SubscribeToModelThroughElement(self, "mod", function() local dataSource = self:GetDataSource() dataSource = dataSource.mod:GetValue(controllerIndex) if dataSource ~= nil then Mod:setText(dataSource, 0) end end) self:addElement(Mod) self.Mod = Mod local Ping = nil Ping = LUI.UIText.new() Ping.id = "Ping" Ping:SetRGBFromInt(14277081, 0) Ping:SetFontSize(24 * _1080p) Ping:SetFont(FONTS.GetFont(FONTS.MainMedium.File)) Ping:SetAlignment(LUI.Alignment.Center) Ping:SetAnchorsAndPosition(0, 1, 0.5, 0.5, _1080p * 1410, _1080p * 1460, _1080p * -12, _1080p * 12) Ping:SubscribeToModelThroughElement(self, "ping", function() local dataSource = self:GetDataSource() dataSource = dataSource.ping:GetValue(controllerIndex) if dataSource ~= nil then Ping:setText(dataSource, 0) end end) self:addElement(Ping) self.Ping = Ping local PrivateS = nil PrivateS = LUI.UIText.new() PrivateS.id = "PrivateS" PrivateS:SetRGBFromInt(14277081, 0) PrivateS:SetFontSize(24 * _1080p) PrivateS:SetFont(FONTS.GetFont(FONTS.MainMedium.File)) PrivateS:SetAlignment(LUI.Alignment.Center) PrivateS:SetAnchorsAndPosition(0, 1, 0.5, 0.5, _1080p * 1470, _1080p * 1550, _1080p * -12, _1080p * 12) PrivateS:SubscribeToModelThroughElement(self, "priv", function() local dataSource = self:GetDataSource() dataSource = dataSource.priv:GetValue(controllerIndex) if dataSource ~= nil then PrivateS:setText(dataSource, 0) end end) self:addElement(PrivateS) self.PrivateS = PrivateS local Cap = nil Cap = LUI.UIImage.new() Cap.id = "Cap" Cap:SetRGBFromInt(14277081, 0) Cap:SetAnchorsAndPosition(0, 1, 0, 0, 0, _1080p * 6, 0, 0) self:addElement(Cap) self.Cap = Cap self._animationSets.DefaultAnimationSet = function() self._sequences.DefaultSequence = function() end RowBG:RegisterAnimationSequence("ButtonOver", {{function() return self.RowBG:SetAlpha(1, 0) end}, {function() return self.RowBG:SetRGBFromInt(14277081, 0) end}}) Host:RegisterAnimationSequence("ButtonOver", {{function() return self.Host:SetRGBFromInt(0, 0) end}}) Players:RegisterAnimationSequence("ButtonOver", {{function() return self.Players:SetRGBFromInt(0, 0) end}}) Status:RegisterAnimationSequence("ButtonOver", {{function() return self.Status:SetRGBFromInt(0, 0) end}}) Map:RegisterAnimationSequence("ButtonOver", {{function() return self.Map:SetRGBFromInt(0, 0) end}}) Type:RegisterAnimationSequence("ButtonOver", {{function() return self.Type:SetRGBFromInt(0, 0) end}}) Mod:RegisterAnimationSequence("ButtonOver", {{function() return self.Mod:SetRGBFromInt(0, 0) end}}) Ping:RegisterAnimationSequence("ButtonOver", {{function() return self.Ping:SetRGBFromInt(0, 0) end}}) PrivateS:RegisterAnimationSequence("ButtonOver", {{function() return self.PrivateS:SetRGBFromInt(0, 0) end}}) Cap:RegisterAnimationSequence("ButtonOver", {{function() return self.Cap:SetRGBFromInt(0, 0) end}}) self._sequences.ButtonOver = function() RowBG:AnimateSequence("ButtonOver") Host:AnimateSequence("ButtonOver") Players:AnimateSequence("ButtonOver") Status:AnimateSequence("ButtonOver") Map:AnimateSequence("ButtonOver") Type:AnimateSequence("ButtonOver") Mod:AnimateSequence("ButtonOver") Ping:AnimateSequence("ButtonOver") PrivateS:AnimateSequence("ButtonOver") Cap:AnimateSequence("ButtonOver") end RowBG:RegisterAnimationSequence("ButtonUp", {{function() return self.RowBG:SetAlpha(0.5, 0) end}, {function() return self.RowBG:SetRGBFromInt(0, 0) end}}) Host:RegisterAnimationSequence("ButtonUp", {{function() return self.Host:SetRGBFromInt(14277081, 0) end}}) Players:RegisterAnimationSequence("ButtonUp", {{function() return self.Players:SetRGBFromInt(14277081, 0) end}}) Status:RegisterAnimationSequence("ButtonUp", {{function() return self.Status:SetRGBFromInt(14277081, 0) end}}) Map:RegisterAnimationSequence("ButtonUp", {{function() return self.Map:SetRGBFromInt(14277081, 0) end}}) Type:RegisterAnimationSequence("ButtonUp", {{function() return self.Type:SetRGBFromInt(14277081, 0) end}}) Mod:RegisterAnimationSequence("ButtonUp", {{function() return self.Mod:SetRGBFromInt(14277081, 0) end}}) Ping:RegisterAnimationSequence("ButtonUp", {{function() return self.Ping:SetRGBFromInt(14277081, 0) end}}) PrivateS:RegisterAnimationSequence("ButtonUp", {{function() return self.PrivateS:SetRGBFromInt(14277081, 0) end}}) Cap:RegisterAnimationSequence("ButtonUp", {{function() return self.Cap:SetRGBFromInt(14277081, 0) end}}) self._sequences.ButtonUp = function() RowBG:AnimateSequence("ButtonUp") Host:AnimateSequence("ButtonUp") Players:AnimateSequence("ButtonUp") Status:AnimateSequence("ButtonUp") Map:AnimateSequence("ButtonUp") Type:AnimateSequence("ButtonUp") Mod:AnimateSequence("ButtonUp") Ping:AnimateSequence("ButtonUp") PrivateS:AnimateSequence("ButtonUp") Cap:AnimateSequence("ButtonUp") end end self._animationSets.DefaultAnimationSet() self:addEventHandler("button_over", function(arg0, arg1) ACTIONS.AnimateSequence(self, "ButtonOver") end) self:addEventHandler("button_up", function(arg0, arg1) ACTIONS.AnimateSequence(self, "ButtonUp") end) PostLoadFunc(self, controllerIndex, controller) return self end MenuBuilder.m_types["SystemLinkJoinMenuRow"] = SystemLinkJoinMenuRow