118 lines
2.3 KiB
Plaintext
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
|
|
|
|
|
|
|
|
|