Files
Endfield-Data/LuaScripts/Phase/PhaseItem/PhaseGameObjectItem.lua
2025-12-02 20:37:18 +07:00

116 lines
2.2 KiB
Lua

local phaseItemBase = require_ex('Phase/Core/PhaseItemBase')
PhaseGameObjectItem = HL.Class("PhaseGameObjectItem", phaseItemBase.PhaseItemBase)
do
PhaseGameObjectItem.go = HL.Field(HL.Userdata)
PhaseGameObjectItem.view = HL.Field(HL.Table)
PhaseGameObjectItem.cacheName = HL.Field(HL.String) << ""
end
do
PhaseGameObjectItem._OnInit = HL.Override() << function(self)
self.go = nil
self.view = {}
end
PhaseGameObjectItem.BindGameObject = HL.Method(HL.Any) << function(self, go)
self.go = go
self.view = Utils.wrapLuaNode(go)
self:_GameObjectInit()
end
PhaseGameObjectItem.SetActive = HL.Method(HL.Boolean) << function (self, active)
if self.go then
self.go:SetActive(active)
end
end
PhaseGameObjectItem._GameObjectInit = HL.Virtual() << function (self)
if self.view and self.view.config then
if self.view.config:HasValue("INIT_POS") then
self.go.transform.position = self.view.config.INIT_POS
end
end
end
end
do
PhaseGameObjectItem._DoTransitionInCoroutine = HL.Override(HL.Boolean, HL.Opt(HL.Table)) << function(self, fastMode, args)
end
PhaseGameObjectItem._DoTransitionBehindCoroutine = HL.Override(HL.Boolean, HL.Opt(HL.Table)) << function(self, fastMode, args)
end
PhaseGameObjectItem._DoTransitionOutCoroutine = HL.Override(HL.Boolean, HL.Opt(HL.Table)) << function(self, fastMode, args)
end
PhaseGameObjectItem._CheckAllTransitionDone = HL.Override().Return(HL.Boolean) << function(self)
return true
end
PhaseGameObjectItem._OnDestroy = HL.Override() << function(self)
if string.isEmpty(self.cacheName) then
CSUtils.ClearUIComponents(self.go)
GameObject.DestroyImmediate(self.go)
else
PhaseManager:TryCacheGo(self.phaseId, self.cacheName, self.go)
end
self.go = nil
self.view = {}
end
end
HL.Commit(PhaseGameObjectItem)