miduo_client/Assets/ManagedResources/~Lua/Modules/MapFight/View/MapPointMineral.lua

57 lines
1.9 KiB
Lua
Raw Normal View History

2020-05-09 13:31:21 +08:00
MapPointMineral = {}
MapPointMineral.__index = MapPointMineral
local mapNpcOp = "UI_MapPoint_mineral"
function MapPointMineral.New(mineral, Ctrl)
local instance = {}
setmetatable(instance, MapPointMineral)
instance.mineralData = mineral
local u, v = Map_Pos2UV(mineral.pos)
instance.posData = TileMapView.GetMapData():GetMapData(u, v)
instance.leader = poolManager:LoadAsset(mapNpcOp, PoolManager.AssetType.GameObject)
instance.leader.transform:SetParent(Util.GetTransform(Ctrl, "uiObj#"))
instance.leader:GetComponent("RectTransform").anchoredPosition3D = TileMapView.GetLiveTilePos(u, v) * 100
instance.leader.transform.localScale = Vector3.one
instance.num = Util.GetGameObject(instance.leader, "Text"):GetComponent("Text")
instance.num.text = tostring(mineral.nums)
instance:AddListener()
instance.leader:SetActive(true)
return instance
end
function MapPointMineral:AddListener()
Game.GlobalEvent:AddEvent(GameEvent.MapFight.MineralPointRemove, self.OnRemove, self)
Game.GlobalEvent:AddEvent(GameEvent.MapFight.MineralPointChange, self.OnRefreshNums, self)
end
--移除事件监听(用于子类重写)
function MapPointMineral:RemoveListener()
Game.GlobalEvent:RemoveEvent(GameEvent.MapFight.MineralPointRemove, self.OnRemove, self)
Game.GlobalEvent:RemoveEvent(GameEvent.MapFight.MineralPointChange, self.OnRefreshNums, self)
end
function MapPointMineral:OnRemove(agent)
if agent.pos ~= self.mineralData.pos then return end
2020-06-23 18:36:24 +08:00
Log(Language[11341])
2020-05-09 13:31:21 +08:00
self:Dispose()
end
function MapPointMineral:OnRefreshNums(agent)
if agent.pos ~= self.mineralData.pos then return end
self.num.text = tostring(agent.nums)
self.mineralData.nums = agent.nums
end
function MapPointMineral:Dispose()
self:RemoveListener()
poolManager:UnLoadAsset(mapNpcOp, self.leader, PoolManager.AssetType.GameObject)
end