--[[ Author: Jarth Filename: MementoBar_Fragments.lua ]] -- ------------------------------------------------------------------------------------------------- -- VARIABLES -- ------------------------------------------------------------------------------------------------- local MementoBar = MementoBar ------------------------------------------------------------------------------------------------- -- Helper FUNCTIONS -- ------------------------------------------------------------------------------------------------- function MementoBar:HelperSetFragmentBehaviour(value, scene, fragment, statement, frameIsHidden) if value then scene:AddFragment(fragment) -- Case when landing on a scene, before a transition if statement then frameIsHidden = false end else scene:RemoveFragment(fragment) end return frameIsHidden end ------------------------------------------------------------------------------------------------- -- PRIVATE FUNCTIONS -- ------------------------------------------------------------------------------------------------- function MementoBar:SetFragmentBehaviour() local base = MementoBar local frame = MementoBar_Frame local saved = base.Saved local fragment = base.Fragment local currentScene = SCENE_MANAGER:GetCurrentScene() local frameIsHidden = true if fragment == nil then base.Fragment = ZO_HUDFadeSceneFragment:New(frame) fragment = base.Fragment end frameIsHidden = MementoBar:HelperSetFragmentBehaviour(saved.ShowBarOnHud, HUD_SCENE, fragment, currentScene == nil, frameIsHidden) frameIsHidden = MementoBar:HelperSetFragmentBehaviour(saved.ShowBarOnHudUI, HUD_UI_SCENE, fragment, false, frameIsHidden) frameIsHidden = MementoBar:HelperSetFragmentBehaviour( saved.ShowBarInMenu, SCENE_MANAGER:GetScene("gameMenuInGame"), fragment, currentScene ~= nil and currentScene:GetName() == "gameMenuInGame", frameIsHidden ) frameIsHidden = MementoBar:HelperSetFragmentBehaviour(saved.ShowBarInStore, SCENE_MANAGER:GetScene("store"), fragment, false, frameIsHidden) frameIsHidden = MementoBar:HelperSetFragmentBehaviour(saved.ShowBarInInventory, SCENE_MANAGER:GetScene("inventory"), fragment, false, frameIsHidden) frame:SetHidden(frameIsHidden) end