mirror of
https://github.com/copyrighttxt/watrbx-game-engine.git
synced 2026-09-05 13:17:49 +00:00
GEEKING
This commit is contained in:
@@ -0,0 +1,152 @@
|
||||
--[[
|
||||
// SocialMorePane.lua
|
||||
|
||||
// Shows a full grid view of a social view. Only shown if social items for a given
|
||||
// view are above a threshold set by SocialPane.lua
|
||||
// User by SocialPane.lua
|
||||
|
||||
// TODO:
|
||||
Bug with TabDock where its removing focus of the last tab when re-entering the tab dock
|
||||
]]
|
||||
local CoreGui = Game:GetService("CoreGui")
|
||||
local GuiRoot = CoreGui:FindFirstChild("RobloxGui")
|
||||
local Modules = GuiRoot:FindFirstChild("Modules")
|
||||
local ContextActionService = game:GetService("ContextActionService")
|
||||
local GuiService = game:GetService("GuiService")
|
||||
|
||||
local AssetManager = require(Modules:FindFirstChild('AssetManager'))
|
||||
local EventHub = require(Modules:FindFirstChild('EventHub'))
|
||||
local Utility = require(Modules:FindFirstChild('Utility'))
|
||||
local GlobalSettings = require(Modules:FindFirstChild('GlobalSettings'))
|
||||
local ScrollingGridModule = require(Modules:FindFirstChild('ScrollingGrid'))
|
||||
local ScreenManager = require(Modules:FindFirstChild('ScreenManager'))
|
||||
local Strings = require(Modules:FindFirstChild('LocalizedStrings'))
|
||||
local FriendsData = require(Modules:FindFirstChild('FriendsData'))
|
||||
local FriendsView = require(Modules:FindFirstChild('FriendsView'))
|
||||
|
||||
local createSocialScreen = function(currentScreenTitle, previousScreenName)
|
||||
local this = {}
|
||||
|
||||
local mySocialView = nil
|
||||
|
||||
local container = Utility.Create'Frame'
|
||||
{
|
||||
Name = "SocialContainer";
|
||||
Size = UDim2.new(1, 0, 1, 0);
|
||||
BackgroundTransparency = 1;
|
||||
Visible = false;
|
||||
}
|
||||
local backLabel = Utility.Create'ImageLabel'
|
||||
{
|
||||
-- PLACE HOLDER
|
||||
Name = "BackLabel";
|
||||
Position = UDim2.new(0, 0, 0, 0);
|
||||
BackgroundTransparency = 1;
|
||||
ZIndex = 2;
|
||||
Parent = container;
|
||||
}
|
||||
AssetManager.LocalImage(backLabel,
|
||||
'rbxasset://textures/ui/Shell/Icons/BackIcon', {['720'] = UDim2.new(0,32,0,32); ['1080'] = UDim2.new(0,48,0,48);})
|
||||
|
||||
-- Right now previous screen is always Friends, but we're still using previousScreenName in case
|
||||
-- recently played with ever makes it in
|
||||
local backText = Utility.Create'TextLabel'
|
||||
{
|
||||
Name = "BackText";
|
||||
Size = UDim2.new(0, 0, 0, backLabel.Size.Y.Offset);
|
||||
Position = UDim2.new(0, backLabel.Size.X.Offset + 8, 0, 0);
|
||||
BackgroundTransparency = 1;
|
||||
Font = GlobalSettings.RegularFont;
|
||||
FontSize = GlobalSettings.ButtonSize;
|
||||
TextXAlignment = Enum.TextXAlignment.Left;
|
||||
TextColor3 = GlobalSettings.WhiteTextColor;
|
||||
Text = string.upper(previousScreenName);
|
||||
Parent = container;
|
||||
}
|
||||
local titleLabel = Utility.Create'TextLabel'
|
||||
{
|
||||
Name = "TitleLabel";
|
||||
Size = UDim2.new(0, 0, 0, 35);
|
||||
Position = UDim2.new(0, 16, 0, backLabel.Size.Y.Offset + 74);
|
||||
BackgroundTransparency = 1;
|
||||
Text = string.upper(currentScreenTitle);
|
||||
TextColor3 = GlobalSettings.WhiteTextColor;
|
||||
TextXAlignment = Enum.TextXAlignment.Left;
|
||||
Font = GlobalSettings.LightFont;
|
||||
FontSize = GlobalSettings.HeaderSize;
|
||||
Parent = container;
|
||||
}
|
||||
|
||||
local socialScrollingGrid = ScrollingGridModule()
|
||||
socialScrollingGrid:SetSize(UDim2.new(0, 1438, 0, 610))
|
||||
socialScrollingGrid:SetCellSize(Vector2.new(446, 114))
|
||||
socialScrollingGrid:SetSpacing(Vector2.new(50, 10))
|
||||
socialScrollingGrid:SetScrollDirection(socialScrollingGrid.Enum.ScrollDirection.Horizontal)
|
||||
socialScrollingGrid:SetPosition(UDim2.new(0, 0, 0, titleLabel.Position.Y.Offset + titleLabel.Size.Y.Offset + 90))
|
||||
socialScrollingGrid:SetClipping(false)
|
||||
socialScrollingGrid:SetParent(container)
|
||||
|
||||
--[[ Set Images ]]--
|
||||
local function setSocialView()
|
||||
print('set the social screen data')
|
||||
local friendsData = FriendsData.GetOnlineFriendsAsync()
|
||||
mySocialView = FriendsView(socialScrollingGrid, friendsData, nil, nil)
|
||||
end
|
||||
|
||||
--[[ Public API ]]--
|
||||
function this:Show()
|
||||
container.Visible = true
|
||||
self.TransitionTweens = ScreenManager:DefaultFadeIn(container)
|
||||
ScreenManager:PlayDefaultOpenSound()
|
||||
end
|
||||
|
||||
function this:Hide()
|
||||
container.Visible = false
|
||||
container.Parent = nil
|
||||
ScreenManager:DefaultCancelFade(self.TransitionTweens)
|
||||
self.TransitionTweens = nil
|
||||
end
|
||||
|
||||
function this:Focus()
|
||||
if self.SavedSelectedObject and self.SavedSelectedObject:IsDescendantOf(container) then
|
||||
GuiService.SelectedCoreObject = self.SavedSelectedObject
|
||||
else
|
||||
if mySocialView then
|
||||
GuiService.SelectedCoreObject = mySocialView:GetDefaultFocusItem()
|
||||
end
|
||||
end
|
||||
--
|
||||
ContextActionService:BindCoreAction("ReturnFromSocialScreen",
|
||||
function(actionName, inputState, inputObject)
|
||||
if inputState == Enum.UserInputState.End then
|
||||
ScreenManager:CloseCurrent()
|
||||
end
|
||||
end,
|
||||
false, Enum.KeyCode.ButtonB)
|
||||
end
|
||||
|
||||
function this:RemoveFocus()
|
||||
local selectedObject = GuiService.SelectedCoreObject
|
||||
if selectedObject and selectedObject:IsDescendantOf(container) then
|
||||
self.SavedSelectedObject = selectedObject
|
||||
GuiService.SelectedCoreObject = nil
|
||||
else
|
||||
self.SavedSelectedObject = nil
|
||||
end
|
||||
ContextActionService:UnbindCoreAction("ReturnFromSocialScreen")
|
||||
end
|
||||
|
||||
function this:SetPosition(newPosition)
|
||||
container.Position = newPosition
|
||||
end
|
||||
|
||||
function this:SetParent(newParent)
|
||||
container.Parent = newParent
|
||||
end
|
||||
|
||||
setSocialView()
|
||||
|
||||
return this
|
||||
end
|
||||
|
||||
return createSocialScreen
|
||||
Reference in New Issue
Block a user