local PickBar = {} local Reactive = require("Core.Reactive") local ESlateVisibility = import("ESlateVisibility") local function ResetWatcher(Bar) if Bar.watcher then Bar.watcher:Destroy() Bar.watcher = nil end end function PickBar:ctor() self.watcher = nil self.level_item = nil end function PickBar:OnInitialized() self.ProcessBar:SetVisibility(ESlateVisibility.Collapsed) print("PickBar:OnInitialized") end function PickBar:BindLevelItem(LevelItem) ResetWatcher(self) self.level_item = LevelItem -- self.watcher = Reactive.Watcher(function() -- self:UpdateState() -- end) self.watcher = Reactive.Watcher(function() local process = LevelItem:GetPickProcess() if process < 1.0 then self.ProcessBar:SetPercent(process) self.ProcessBar:SetVisibility(ESlateVisibility.SelfHitTestInvisible) else self.ProcessBar:SetVisibility(ESlateVisibility.Collapsed) self.ProcessBar:SetPercent(1.0) end end) end -- function PickBar:UpdateState() -- local process = self.level_item:GetPickProcess() -- if process < 1.0 then -- self.ProcessBar:SetVisibility(ESlateVisibility.SelfHitTestInvisible) -- self.ProcessBar:SetPercent(process) -- else -- self.ProcessBar:SetVisibility(ESlateVisibility.Collapsed) -- self.ProcessBar:SetPercent(1.0) -- end -- end function PickBar:OnDestroy() ResetWatcher(self) end function PickBar:Construct() print("PickBar:Construct") end function PickBar:Destruct() print("PickBar:Destruct") end return Class(nil, nil, PickBar)