add gs
This commit is contained in:
@@ -0,0 +1,118 @@
|
||||
local CoreGui = game:GetService("CoreGui")
|
||||
local GuiRoot = CoreGui:FindFirstChild("RobloxGui")
|
||||
local Modules = GuiRoot:FindFirstChild("Modules")
|
||||
local ShellModules = Modules:FindFirstChild("Shell")
|
||||
local Templates = ShellModules:FindFirstChild("Templates")
|
||||
|
||||
local SettingsScreenConsole = require(Templates:FindFirstChild('SettingsScreenConsole'))
|
||||
|
||||
local PlatformService = nil
|
||||
pcall(function() PlatformService = game:GetService('PlatformService') end)
|
||||
local UserInputService = game:GetService('UserInputService')
|
||||
local ThirdPartyUserService = nil
|
||||
pcall(function() ThirdPartyUserService = game:GetService('ThirdPartyUserService') end)
|
||||
|
||||
local BaseScreen = require(ShellModules:FindFirstChild('BaseScreen'))
|
||||
local Errors = require(ShellModules:FindFirstChild('Errors'))
|
||||
local ErrorOverlay = require(ShellModules:FindFirstChild('ErrorOverlay'))
|
||||
local ScreenManager = require(ShellModules:FindFirstChild('ScreenManager'))
|
||||
local Strings = require(ShellModules:FindFirstChild('LocalizedStrings'))
|
||||
local AccountScreen = require(ShellModules:FindFirstChild('AccountScreen'))
|
||||
local Analytics = require(ShellModules:FindFirstChild('Analytics'))
|
||||
|
||||
local function createSettingsScreen()
|
||||
local this = BaseScreen(true)
|
||||
|
||||
local userInputServiceChangedCn = nil
|
||||
|
||||
function this:GetVersionInfo()
|
||||
if UserSettings().GameSettings:InStudioMode() or UserInputService:GetPlatform() == Enum.Platform.Windows then
|
||||
return {Major = 1, Minor = 0, Build = 0, Revision = 0}
|
||||
elseif PlatformService then
|
||||
return PlatformService:GetVersionIdInfo();
|
||||
end
|
||||
|
||||
return {Major = 1, Minor = 1, Build = 1, Revision = 1}
|
||||
end
|
||||
|
||||
function this:OpenAccountScreen()
|
||||
local accountScreen = AccountScreen()
|
||||
if accountScreen then
|
||||
accountScreen:SetParent(this.view.Container.Parent)
|
||||
ScreenManager:OpenScreen(accountScreen, true)
|
||||
else
|
||||
ScreenManager:OpenScreen(ErrorOverlay(Errors.Default), false)
|
||||
end
|
||||
end
|
||||
|
||||
function this:OpenSwitchProfileScreen()
|
||||
if UserSettings().GameSettings:InStudioMode() or UserInputService:GetPlatform() == Enum.Platform.Windows then
|
||||
ScreenManager:OpenScreen(ErrorOverlay(Errors.Test.FeatureNotAvailableInStudio), false)
|
||||
return
|
||||
end
|
||||
|
||||
if ThirdPartyUserService then
|
||||
ThirdPartyUserService:ShowAccountPicker()
|
||||
end
|
||||
end
|
||||
|
||||
function this:OpenOverscanScreen()
|
||||
local RoactScreenManagerWrapper = require(ShellModules.Components.RoactScreenManagerWrapper)
|
||||
local overscanComponent = require(ShellModules.Components.Overscan.Overscan)
|
||||
local overscanElement = RoactScreenManagerWrapper.new(overscanComponent, GuiRoot, {
|
||||
ImageVisible = true,
|
||||
BackgroundTransparency = 0,
|
||||
})
|
||||
|
||||
ScreenManager:OpenScreen(overscanElement)
|
||||
end
|
||||
|
||||
function this:OpenHelpScreen()
|
||||
if UserSettings().GameSettings:InStudioMode() or UserInputService:GetPlatform() == Enum.Platform.Windows then
|
||||
ScreenManager:OpenScreen(ErrorOverlay(Errors.Test.FeatureNotAvailableInStudio), false)
|
||||
else
|
||||
pcall(function()
|
||||
-- errors will be handled by xbox
|
||||
return PlatformService:PopupHelpUI()
|
||||
end)
|
||||
end
|
||||
end
|
||||
|
||||
local function CreateView()
|
||||
return SettingsScreenConsole(this)
|
||||
end
|
||||
|
||||
--[[ Public API ]]--
|
||||
function this:GetAnalyticsInfo()
|
||||
return {[Analytics.WidgetNames('WidgetId')] = Analytics.WidgetNames('SettingsScreenId')}
|
||||
end
|
||||
|
||||
--Override
|
||||
function this:GetDefaultSelectionObject()
|
||||
return this.view and this.view:GetDefaultSelectionObject()
|
||||
end
|
||||
|
||||
local baseHide = this.Hide
|
||||
function this:Hide()
|
||||
baseHide(self)
|
||||
if userInputServiceChangedCn then
|
||||
userInputServiceChangedCn:disconnect()
|
||||
userInputServiceChangedCn = nil
|
||||
end
|
||||
end
|
||||
|
||||
function this:ScreenRemoved()
|
||||
spawn(function()
|
||||
if PlatformService ~= nil then
|
||||
PlatformService:SaveSettings()
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
this.view = CreateView()
|
||||
this:SetTitle(Strings:LocalizedString("SettingsWord"))
|
||||
|
||||
return this
|
||||
end
|
||||
|
||||
return createSettingsScreen
|
||||
Reference in New Issue
Block a user