204 lines
5.7 KiB
Plaintext
204 lines
5.7 KiB
Plaintext
autoImport("CoreView");
|
|
PetPackagePart = class("PetPackagePart", CoreView)
|
|
|
|
autoImport("BagItemCell");
|
|
autoImport("WrapListCtrl");
|
|
|
|
PetPackagePart.IsNoticeShow = "ServantMainView_IsNoticeShow"
|
|
|
|
function PetPackagePart:ctor()
|
|
-- 220,280
|
|
-- ShowItemTip
|
|
end
|
|
|
|
local PetPackagePart_Path = "GUI/v1/part/PetPackagePart"
|
|
function PetPackagePart:CreateSelf(parent)
|
|
if(self.inited == true)then
|
|
return;
|
|
end
|
|
|
|
self.inited = true;
|
|
|
|
self.gameObject = self:LoadPreferb_ByFullPath(PetPackagePart_Path, parent, true);
|
|
|
|
self:UpdateLocalPosCache();
|
|
|
|
self:InitPart();
|
|
end
|
|
|
|
function PetPackagePart:InitPart()
|
|
self:InitScrollPull();
|
|
|
|
self.closeButton = self:FindGO("CloseButton");
|
|
self:AddClickEvent(self.closeButton, function (go)
|
|
self:Hide();
|
|
end);
|
|
|
|
self.petHelpButton = self:FindGO("PetHelpButton");
|
|
self:AddClickEvent(self.petHelpButton, function (go)
|
|
local helpData = Table_Help[2100];
|
|
if(helpData)then
|
|
self.closecomp.enabled = false
|
|
TipsView.Me():ShowGeneralHelp(helpData.Desc, helpData.Title)
|
|
end
|
|
end);
|
|
|
|
local container = self:FindGO("ItemContainer");
|
|
self.itemCtrl = WrapListCtrl.new(container, BagItemCell, "BagItemCell", WrapListCtrl_Dir.Vertical, 4, 104);
|
|
self.itemCtrl:AddEventListener(MouseEvent.MouseClick, self.ClickItemCell, self);
|
|
self.itemCells = self.itemCtrl:GetCells();
|
|
|
|
self.normalStick = self:FindComponent("NormalStick", UIWidget);
|
|
|
|
self.closecomp = self.gameObject:GetComponent(CloseWhenClickOtherPlace);
|
|
self.closecomp.callBack = function (go)
|
|
self:Hide();
|
|
end
|
|
|
|
self:MapEvent();
|
|
end
|
|
|
|
function PetPackagePart:InitScrollPull()
|
|
self.waitting = self:FindComponent("Waitting", UILabel);
|
|
self.scrollView = self:FindComponent("ItemScrollView", ROUIScrollView);
|
|
self.panel = self.scrollView.gameObject:GetComponent(UIPanel)
|
|
self.scrollView.OnBackToStop = function ()
|
|
self.waitting.text = ZhString.ItemNormalList_Refreshing;
|
|
end
|
|
self.scrollView.OnStop = function ()
|
|
self.scrollView:Revert();
|
|
ServiceItemProxy.Instance:CallPackageSort(SceneItem_pb.EPACKTYPE_PET);
|
|
end
|
|
self.scrollView.OnPulling = function (offsetY, triggerY)
|
|
self.waitting.text = offsetY<triggerY and ZhString.ItemNormalList_PullRefresh or ZhString.ItemNormalList_CanRefresh;
|
|
end
|
|
self.scrollView.OnRevertFinished = function ()
|
|
self.waitting.text = ZhString.ItemNormalList_PullRefresh;
|
|
end
|
|
end
|
|
|
|
function PetPackagePart:AddIgnoreBounds(obj)
|
|
if(self.gameObject and self.closecomp)then
|
|
self.closecomp:AddTarget(obj.transform);
|
|
end
|
|
end
|
|
|
|
function PetPackagePart:ClickItemCell(cellCtl)
|
|
local go = cellCtl and cellCtl.gameObject;
|
|
local data = cellCtl and cellCtl.data;
|
|
local newChooseId = data and data.id or 0;
|
|
|
|
if(self.chooseId~=newChooseId)then
|
|
self.chooseId = newChooseId;
|
|
self:ShowPackageItemTip(data, go);
|
|
else
|
|
self.chooseId = 0;
|
|
self:ShowPackageItemTip();
|
|
end
|
|
for _,cell in pairs(self.itemCells) do
|
|
cell:SetChooseId(self.chooseId);
|
|
end
|
|
end
|
|
|
|
function PetPackagePart:ShowPackageItemTip(data, cellGO)
|
|
if(data == nil)then
|
|
self:ShowItemTip();
|
|
return;
|
|
end
|
|
|
|
local offset = {};
|
|
local x = LuaGameObject.InverseTransformPointByTransform(UIManagerProxy.Instance.UIRoot.transform,
|
|
cellGO.transform,
|
|
Space.World)
|
|
if(x > 0)then
|
|
offset[1] = -650;
|
|
offset[2] = 0;
|
|
else
|
|
offset[1] = 190;
|
|
offset[2] = 0;
|
|
end
|
|
|
|
local callback = function ()
|
|
self.chooseId = 0;
|
|
for _,cell in pairs(self.itemCells) do
|
|
cell:SetChooseId(self.chooseId);
|
|
end
|
|
end;
|
|
local sdata = {
|
|
itemdata = data,
|
|
ignoreBounds = ignoreBounds,
|
|
callback = callback,
|
|
funcConfig = FunctionItemFunc.GetItemFuncIds(data.staticData.id),
|
|
};
|
|
local itemtip = self:ShowItemTip(sdata, self.normalStick, NGUIUtil.AnchorSide.Right, offset);
|
|
itemtip:AddIgnoreBounds(self.gameObject);
|
|
self:AddIgnoreBounds(itemtip.gameObject);
|
|
end
|
|
|
|
function PetPackagePart:UpdateInfo()
|
|
local petBag = BagProxy.Instance.petBagData;
|
|
local items = petBag:GetItems();
|
|
self.itemCtrl:ResetDatas(items);
|
|
end
|
|
|
|
local tempV3 = LuaVector3();
|
|
function PetPackagePart:SetPos(x,y,z)
|
|
if(self.gameObject)then
|
|
tempV3:Set(x,y,z);
|
|
self.gameObject.transform.position = tempV3;
|
|
|
|
self:UpdateLocalPosCache();
|
|
end
|
|
end
|
|
|
|
function PetPackagePart:UpdateLocalPosCache()
|
|
self.localPos_x, self.localPos_y, self.localPos_z = LuaGameObject.GetLocalPosition(self.gameObject.transform);
|
|
end
|
|
|
|
function PetPackagePart:SetLocalOffset(x,y,z)
|
|
tempV3:Set(self.localPos_x + x, self.localPos_y + y, self.localPos_z + z);
|
|
self.gameObject.transform.localPosition = tempV3;
|
|
end
|
|
|
|
function PetPackagePart:MapEvent()
|
|
end
|
|
|
|
function PetPackagePart:Show()
|
|
if(not self.inited)then
|
|
return;
|
|
end
|
|
|
|
local petBag = BagProxy.Instance.petBagData;
|
|
local items = petBag:GetItems();
|
|
local isNoticeShow = FunctionPlayerPrefs.Me():GetBool(PetPackagePart.IsNoticeShow)
|
|
if not isNoticeShow and #items > 0 then
|
|
self.closecomp.enabled = false
|
|
GameFacade.Instance:sendNotification(UIEvent.ShowUI,{viewname = "PetPackagePopView"})
|
|
end
|
|
|
|
self.gameObject:SetActive(true);
|
|
|
|
EventManager.Me():AddEventListener(ItemEvent.PetUpdate, self.UpdateInfo, self)
|
|
EventManager.Me():AddEventListener(UICloseEvent.GeneralHelpClose, self.ResetClosecomp, self)
|
|
EventManager.Me():AddEventListener(UICloseEvent.PetPackagePopViewClose, self.ResetClosecomp, self)
|
|
end
|
|
|
|
function PetPackagePart:Hide()
|
|
if(not self.inited)then
|
|
return;
|
|
end
|
|
|
|
ServiceItemProxy.Instance:CallBrowsePackage(SceneItem_pb.EPACKTYPE_PET);
|
|
self.gameObject:SetActive(false);
|
|
|
|
EventManager.Me():RemoveEventListener(ItemEvent.PetUpdate, self.UpdateInfo, self)
|
|
EventManager.Me():RemoveEventListener(UICloseEvent.GeneralHelpClose, self.ResetClosecomp, self)
|
|
EventManager.Me():RemoveEventListener(UICloseEvent.PetPackagePopViewClose, self.ResetClosecomp, self)
|
|
|
|
TipManager.Instance:CloseTip();
|
|
end
|
|
|
|
function PetPackagePart:ResetClosecomp()
|
|
self.closecomp.enabled = true
|
|
end
|