Files
BusyRabbit/Content/Lua/UI/PickBar.lua
2025-07-09 01:08:35 +08:00

68 lines
1.6 KiB
Lua

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)