Window Event signals
This commit is contained in:
parent
477c16f4bc
commit
eeb1218b58
1 changed files with 14 additions and 2 deletions
|
@ -1,8 +1,15 @@
|
|||
local ReplicatedStorage = game:GetService("ReplicatedStorage")
|
||||
local replicated = game:GetService("ReplicatedStorage")
|
||||
local signal = require(ReplicatedStorage.Modules.Utility.Signal)
|
||||
local trove = require(replicated.Modules.Utility.Trove)
|
||||
local types = require(script.Types)
|
||||
|
||||
local manager: types.Manager = {
|
||||
Events = {
|
||||
WindowOpened = signal.new(),
|
||||
WindowClosed = signal.new(),
|
||||
},
|
||||
|
||||
Packages = {Trove = trove},
|
||||
|
||||
Windows = {
|
||||
|
@ -11,6 +18,8 @@ local manager: types.Manager = {
|
|||
},
|
||||
} :: types.Manager
|
||||
|
||||
--[[ Window Methods ]]
|
||||
|
||||
function manager:GetWindow(name: string)
|
||||
return self.Windows.Stored[name]
|
||||
end
|
||||
|
@ -20,6 +29,8 @@ function manager:OpenWindow(window: types.Window)
|
|||
window:Open()
|
||||
|
||||
self.Windows.Open[window.Name] = window
|
||||
|
||||
self.Events.WindowOpened:Fire(window, true)
|
||||
end
|
||||
|
||||
function manager:CloseWindow(window: types.Window)
|
||||
|
@ -27,12 +38,13 @@ function manager:CloseWindow(window: types.Window)
|
|||
window:Remove()
|
||||
|
||||
self.Windows.Open[window.Name] = nil
|
||||
|
||||
self.Events.WindowClosed:Fire(window, true)
|
||||
end
|
||||
|
||||
function manager:CloseAllWindows()
|
||||
for _, window in self.Windows.Open do
|
||||
window:Close()
|
||||
window:Remove()
|
||||
self:CloseWindow(window)
|
||||
end
|
||||
|
||||
self.Windows.Open = {}
|
||||
|
|
Loading…
Reference in a new issue