Advertisement
giganciprogramowania

l2 moduleScript

Mar 3rd, 2023
971
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.47 KB | None | 0 0
  1. local module = {}
  2. local tweenService = game:GetService("TweenService")
  3.  
  4.  
  5. local screenGui = script.Parent:WaitForChild("ScreenGui")
  6.  
  7.  
  8. local OpenSpeed = 0.8
  9. local CloseSpeed = 0.2
  10.  
  11.  
  12. local OpenEasingStyle = Enum.EasingStyle.Back
  13. local OpenEasingDirection = Enum.EasingDirection.Out
  14.  
  15.  
  16. local ClosingEasingStyle = Enum.EasingStyle.Sine
  17. local ClosingEasingDirection = Enum.EasingDirection.Out
  18.  
  19.  
  20. function module.GetFrame(frameName)
  21. local frames = screenGui:GetDescendants()
  22. local frame = nil
  23.  
  24.  
  25. for i, item in pairs(frames) do
  26. if item.Name == frameName then
  27. frame = item
  28. end
  29. end
  30.  
  31. return frame
  32. end
  33.  
  34.  
  35.  
  36.  
  37. function module.OpenFrame(frameName)
  38.  
  39.  
  40. local frame = module.GetFrame(frameName)
  41.  
  42.  
  43. if frame then
  44. local normalSize = frame.Size
  45. frame.Size = UDim2.fromScale(0, 0)
  46. task.wait(CloseSpeed + 0.1)
  47. frame.Visible = true
  48.  
  49.  
  50. local openTween = tweenService:Create(
  51. frame,
  52. TweenInfo.new(
  53. OpenSpeed,
  54. OpenEasingStyle,
  55. OpenEasingDirection),
  56. {
  57. Size = normalSize
  58. }
  59. )
  60.  
  61.  
  62. openTween:Play()
  63. end
  64. end
  65.  
  66.  
  67. function module.CloseFrame(frameName)
  68.  
  69. local frame = module.GetFrame(frameName)
  70.  
  71. if frame then
  72. local normalSize = frame.Size
  73. local closeTween = tweenService:Create(
  74. frame,
  75. TweenInfo.new(
  76. CloseSpeed,
  77. ClosingEasingStyle,
  78. ClosingEasingDirection),
  79. {
  80. Size = UDim2.fromScale(0, 0)
  81. }
  82. )
  83. closeTween:Play()
  84. closeTween.Completed:Connect(function()
  85. frame.Visible = false
  86. frame.Size = normalSize
  87. end)
  88. end
  89. end
  90.  
  91.  
  92. for _, v in pairs(screenGui:GetDescendants()) do
  93. if v:IsA("GuiButton") then
  94. if v:FindFirstChild("Opens") then
  95. if v:FindFirstChild("Opens").Value ~= nil then
  96. v.MouseButton1Click:Connect(function()
  97. module.OpenFrame(v:FindFirstChild("Opens").Value.Name)
  98. end)
  99. end
  100. end
  101. if v:FindFirstChild("Closes") then
  102. if v:FindFirstChild("Closes").Value ~= nil then
  103. v.MouseButton1Click:Connect(function()
  104. module.CloseFrame(v:FindFirstChild("Closes").Value.Name)
  105. end)
  106. end
  107. end
  108. end
  109. end
  110.  
  111.  
  112. return module
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement