--[[ Author: Jarth Filename: LibJarthSharedBase_Fragments.lua ]] -- ------------------------------------------------------------------------------------------------- -- VARIABLES -- ------------------------------------------------------------------------------------------------- local sharedBaseModule = JarthSharedBase ------------------------------------------------------------------------------------------------- -- FUNCTIONS -- ------------------------------------------------------------------------------------------------- function JarthSharedBase.HelperSetFragmentBehaviour(value, scene, fragment, statement, isHidden) if scene ~= nil then if value then if not scene:HasFragment(fragment) then scene:AddFragment(fragment) end -- Case when landing on a scene, before a transition if statement then isHidden = false end else scene:RemoveFragment(fragment) end end return isHidden end ------------------------------------------------------------------------------------------------- -- PRIVATE FUNCTIONS -- ------------------------------------------------------------------------------------------------- function JarthSharedBase:SetFragmentBehaviour(frame, saved, fragment, isVisible) local isHidden = true local currentScene = SCENE_MANAGER:GetCurrentScene() local currentSceneIsGameMenuInGame = currentScene ~= nil and currentScene:GetName() == "gameMenuInGame" if fragment == nil then fragment = ZO_HUDFadeSceneFragment:New(frame) end isHidden = sharedBaseModule.HelperSetFragmentBehaviour(saved.ShowBarOnHud, HUD_SCENE, fragment, currentScene == nil, isHidden) isHidden = sharedBaseModule.HelperSetFragmentBehaviour(saved.ShowBarOnHudUI, HUD_UI_SCENE, fragment, false, isHidden) isHidden = sharedBaseModule.HelperSetFragmentBehaviour(saved.ShowBarInMenu, SCENE_MANAGER:GetScene("gameMenuInGame"), fragment, currentSceneIsGameMenuInGame, isHidden) isHidden = sharedBaseModule.HelperSetFragmentBehaviour(saved.ShowBarInInventory, SCENE_MANAGER:GetScene("inventory"), fragment, false, isHidden) isHidden = sharedBaseModule.HelperSetFragmentBehaviour(saved.ShowBarInInteract, SCENE_MANAGER:GetScene("interact"), fragment, false, isHidden) isHidden = sharedBaseModule.HelperSetFragmentBehaviour(saved.ShowBarInBank, SCENE_MANAGER:GetScene("bank"), fragment, false, isHidden) isHidden = sharedBaseModule.HelperSetFragmentBehaviour(saved.ShowBarInFence, SCENE_MANAGER:GetScene("fence_keyboard"), fragment, false, isHidden) isHidden = sharedBaseModule.HelperSetFragmentBehaviour(saved.ShowBarInStore, SCENE_MANAGER:GetScene("store"), fragment, false, isHidden) frame:SetHidden(isHidden and not isVisible) return fragment end