123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- local UILogic = {
- Properties = {
- Debug = false,
- QuitInputEvent = "Quit",
- ResetInputEvent = "Reset",
- CtrlInputEvent = "Ctrl"
- },
- InputHandlers = {
- Quit = {},
- Reset = {},
- Ctrl = {}
- },
- GameplayEventHandlers = {
- OnCancel = {},
- OnQuit = {}
- }
- }
- function UILogic:OnActivate()
- self.ctrlPressed = false
- self.resetPressed = false
- self.quitCanvasVisible = false
- for event, handler in pairs(self.InputHandlers) do
- local id = InputEventNotificationId(event)
- handler.busHandler = InputEventNotificationBus.Connect(handler, id)
- handler.component = self
- end
- for event, handler in pairs(self.GameplayEventHandlers) do
- local id = GameplayNotificationId(EntityId(0), event, "float")
- handler.busHandler = GameplayNotificationBus.Connect(handler, id)
- handler.component = self
- end
- end
- function UILogic:SetCanvasVisible(visible)
- if visible then
- if self.quitCanvasVisible == false then
- self.quitCanvasVisible = true
- -- show cursor
- while UiCursorBus.Broadcast.IsUiCursorVisible() == false do
- UiCursorBus.Broadcast.IncrementVisibleCounter()
- end
- FlyCameraInputBus.Broadcast.SetIsEnabled(false)
- UiCanvasAssetRefBus.Event.LoadCanvas(self.entityId)
- end
- else
- self.quitCanvasVisible = false
- -- hide cursor
- UiCursorBus.Broadcast.DecrementVisibleCounter()
- FlyCameraInputBus.Broadcast.SetIsEnabled(true)
- UiCanvasAssetRefBus.Event.UnloadCanvas(self.entityId)
- end
- end
- function UILogic.GameplayEventHandlers.OnCancel:OnEventBegin(value)
- self.component:SetCanvasVisible(false)
- end
- function UILogic.GameplayEventHandlers.OnQuit:OnEventBegin(value)
- Debug.Log("Exiting application")
- ConsoleRequestBus.Broadcast.ExecuteConsoleCommand("quit")
- end
- function UILogic:Reset()
- if self.resetPressed and self.ctrlPressed then
- Debug.Log("Re-loading level")
- ROSConDemoRequestBus.Broadcast.ReloadLevel();
- --ConsoleRequestBus.Broadcast.ExecuteConsoleCommand("LoadLevel main")
- end
- end
- function UILogic.InputHandlers.Quit:OnPressed(value)
- self.component:SetCanvasVisible(true)
- end
- function UILogic.InputHandlers.Reset:OnPressed(value)
- self.component.resetPressed = true
- self.component:Reset()
- end
- function UILogic.InputHandlers.Reset:OnReleased(value)
- self.component.resetPressed = false
- end
- function UILogic.InputHandlers.Ctrl:OnPressed(value)
- self.component.ctrlPressed = true
- end
- function UILogic.InputHandlers.Ctrl:OnReleased(value)
- self.component.ctrlPressed = false
- end
- function UILogic:OnDeactivate()
- for event, handler in pairs(self.InputHandlers) do
- handler.busHandler:Disconnect()
- end
- for event, handler in pairs(self.GameplayEventHandlers) do
- handler.busHandler:Disconnect()
- end
- end
- return UILogic
|