mirror of
https://github.com/copyrighttxt/watrbx-game-engine.git
synced 2026-09-05 13:17:49 +00:00
97 lines
2.3 KiB
Lua
97 lines
2.3 KiB
Lua
local InputService = game:GetService("UserInputService")
|
|
local CoreGui = game:GetService("CoreGui")
|
|
local RobloxGui = CoreGui:WaitForChild("RobloxGui")
|
|
local Panel3D = require(RobloxGui.Modules.VR.Panel3D)
|
|
local VRHub = require(RobloxGui.Modules.VR.VRHub)
|
|
local Util = require(RobloxGui.Modules.Settings.Utility)
|
|
|
|
local RecenterModule = {}
|
|
RecenterModule.ModuleName = "Recenter"
|
|
RecenterModule.KeepVRTopbarOpen = true
|
|
RecenterModule.VRIsExclusive = true
|
|
RecenterModule.VRClosesNonExclusive = false
|
|
VRHub:RegisterModule(RecenterModule)
|
|
|
|
local countdownPanel = Panel3D.Get("RecenterCountdown")
|
|
countdownPanel:SetType(Panel3D.Type.HorizontalFollow)
|
|
countdownPanel:ResizeStuds(5, 3, 128)
|
|
countdownPanel:SetCanFade(false)
|
|
|
|
local countdown = Util:Create "TextLabel" {
|
|
Parent = countdownPanel:GetGUI(),
|
|
|
|
Position = UDim2.new(0.5, -64, 0.5, -64),
|
|
Size = UDim2.new(0, 128, 0, 128),
|
|
|
|
BackgroundTransparency = 0.9,
|
|
BackgroundColor3 = Color3.new(0.2, 0.2, 0.2),
|
|
|
|
TextColor3 = Color3.new(1, 1, 1),
|
|
Text = "",
|
|
TextScaled = true,
|
|
Font = Enum.Font.SourceSansBold,
|
|
|
|
Visible = true
|
|
}
|
|
local recenterFrame = Util:Create "ImageLabel" {
|
|
Parent = countdownPanel:GetGUI(),
|
|
|
|
Position = UDim2.new(0, 0, 0, 0),
|
|
Size = UDim2.new(1, 0, 1, 0),
|
|
|
|
BackgroundTransparency = 1,
|
|
|
|
Image = "rbxasset://textures/ui/VR/recenterFrame.png"
|
|
}
|
|
|
|
countdownPanel:SetVisible(false)
|
|
|
|
local isCountingDown = false
|
|
|
|
VRHub.ModuleOpened.Event:connect(function(moduleName)
|
|
if moduleName ~= RecenterModule.ModuleName then
|
|
local module = VRHub:GetModule(moduleName)
|
|
if module.VRIsExclusive then
|
|
isCountingDown = false
|
|
countdownPanel:SetVisible(false)
|
|
end
|
|
end
|
|
end)
|
|
|
|
function RecenterModule:SetVisible(visible)
|
|
if visible then
|
|
if isCountingDown then
|
|
isCountingDown = false
|
|
VRHub:FireModuleClosed(RecenterModule.ModuleName)
|
|
return
|
|
else
|
|
VRHub:FireModuleOpened(RecenterModule.ModuleName)
|
|
end
|
|
|
|
spawn(function()
|
|
isCountingDown = true
|
|
countdownPanel:SetVisible(true)
|
|
|
|
for i = 3, 1, -1 do
|
|
if isCountingDown then
|
|
countdown.Text = tostring(i)
|
|
wait(1)
|
|
end
|
|
end
|
|
|
|
if isCountingDown then
|
|
InputService:RecenterUserHeadCFrame()
|
|
end
|
|
|
|
countdownPanel:SetVisible(false)
|
|
isCountingDown = false
|
|
|
|
VRHub:FireModuleClosed(RecenterModule.ModuleName)
|
|
end)
|
|
else
|
|
VRHub:FireModuleClosed(RecenterModule.ModuleName)
|
|
end
|
|
end
|
|
|
|
|
|
return RecenterModule |