2025-06-04 05:02:57 +08:00

118 lines
2.3 KiB
Plaintext

SealProxy = class('SealProxy', pm.Proxy)
SealProxy.Instance = nil;
SealProxy.NAME = "SealProxy"
autoImport("SealData");
function SealProxy:ctor(proxyName, data)
self.proxyName = proxyName or SealProxy.NAME
if(SealProxy.Instance == nil) then
SealProxy.Instance = self
end
if data ~= nil then
self:setData(data)
end
self:InitSeal();
end
function SealProxy:InitSeal()
self.sealDataMap = {};
self.nowAcceptSeal = nil;
self.nowSealPos = LuaVector3();
self.nowSealTasks = {};
end
function SealProxy:SetNowSealTasks(serverlist)
TableUtility.ArrayClear(self.nowSealTasks)
for i=1, #serverlist do
table.insert(self.nowSealTasks, serverlist[i])
end
end
function SealProxy:SetNowAcceptSeal(sealId, sealPos)
self:ResetAcceptSealInfo();
self.nowAcceptSeal = sealId;
if(sealPos == nil)then
self.nowSealPos:Set(0, 0, 0);
else
self.nowSealPos:Set(sealPos.x/1000, sealPos.y/1000, sealPos.z/1000);
end
end
function SealProxy:ResetAcceptSealInfo()
self.nowAcceptSeal = 0;
self.nowSealPos:Set(0,0,0);
self.speed = 0;
self.curvalue = 0;
self.maxvalue = 1;
end
function SealProxy:SetSealTimer(data)
if(data)then
self.speed = data.speed;
self.curvalue = data.curvalue;
self.maxvalue = data.maxvalue;
self.stoptime = data.stoptime;
self.maxtime = data.maxtime;
end
end
function SealProxy:ResetSealData()
self.sealDataMap = {};
end
function SealProxy:SetSealData(datas)
for i=1,#datas do
local data = datas[i];
if(data)then
local sealData = self.sealDataMap[data.mapid];
if(not sealData)then
sealData = SealData.new(data);
self.sealDataMap[data.mapid] = sealData;
else
sealData:SetData(data);
end
end
end
end
function SealProxy:UpdateSeals(newdatas, deldatas)
self:SetSealData(newdatas);
-- delete
for i=1,#deldatas do
local tempDel = deldatas[i];
local catchData = self.sealDataMap[tempDel.mapid];
if(catchData)then
catchData:DeleteSealItem(tempDel.items);
end
end
end
function SealProxy:GetSealData(mapid)
return self.sealDataMap[mapid];
end
function SealProxy:GetSealItem(mapid, sealid)
local sealData = self.sealDataMap[mapid];
if(sealData)then
return sealData.itemMap[sealid];
end
end
function SealProxy:GetSealingItem()
for mapid,sealData in pairs(self.sealDataMap)do
for sealid,sealItem in pairs(sealData.itemMap)do
if(sealItem.issealing)then
return sealItem;
end
end
end
end