local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local TweenService = require(ReplicatedStorage.Modules.TweenService)
local Utilities = require(ReplicatedStorage.Modules.Utilities)
local Knit = require(ReplicatedStorage.Packages.Knit)
local Player = Players.LocalPlayer
local PlayerGui = Player.PlayerGui
local MainMenu = {}
MainMenu.__index = MainMenu
function MainMenu.new()
local CameraController = Knit.GetController("CameraController")
local self = setmetatable({
connections = {},
}, MainMenu)
self.MainMenuGui = PlayerGui.MainMenu
TweenService.Prepare(self.MainMenuGui, TweenService.TweenAction.Fade)
local MainMenuContainer = self.MainMenuGui.MainMenu
self.Backdrop = TweenService.GroupElements(self.MainMenuGui.Backdrop:GetChildren(), TweenService.TweenAction.Fade)
self.Container = TweenService.GroupElements(MainMenuContainer:GetDescendants(), TweenService.TweenAction.Fade)
CameraController:SetCamera(CameraController.CameraPosition.MainMenu, false)
self.Backdrop:state()
self.Container:state()
Utilities.bindConnection(
self.connections,
MainMenuContainer.Play.MouseButton1Click,
Utilities.sugar(self, self.Play)
)
return self
end
function MainMenu:Play()
local MenuController = Knit.GetController("MenuController")
MenuController:SetMenu(MenuController.Menu.Game)
end
function MainMenu:Destroy()
Utilities.disconnect(self.connections)
self.Backdrop:state(true, true)
self.Container:state(true)
end
return MainMenu
i have my own TweenService and Utilities module.