1187 lines
39 KiB
Lua
1187 lines
39 KiB
Lua
local uiCtrl = require_ex('UI/Panels/Base/UICtrl')
|
||
local PANEL_ID = PanelId.DomainItemTransferSelect
|
||
local RouteStatus = GEnums.DomainTransportRouteStatusType
|
||
local INIT_NUMBER_SELECTOR_CUR_VALUE = math.maxinteger
|
||
local SEC_PER_HOUR = 3600
|
||
local SEC_PER_MIN = 60
|
||
local MIN_PER_HOUR = 60
|
||
local TRANSMISSION_MIN_VALUE = 1
|
||
|
||
local LOSSLESS_TRANSMISSION_INSTRUCTION_ID = "lossless_transmission_instruction"
|
||
local LOSSLESS_VALUE_INSTRUCTION_ID = "lossless_value_instruction"
|
||
|
||
local NORMAL_TRANSMISSION_STATE = "WarehouseTransfer"
|
||
local LOSSLESS_TRANSMISSION_STATE = "NoConsumptionTransfer"
|
||
|
||
local DEPOT_SLOT_NORMAL_STYLE = "ShowStorageTag"
|
||
local DEPOT_SLOT_TRANSMISSION_STYLE = "HideStorageTag"
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl = HL.Class('DomainItemTransferSelectCtrl', uiCtrl.UICtrl)
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl.s_messages = HL.StaticField(HL.Table) << {
|
||
[MessageConst.ON_FAC_TRANS_ROUTE_CHANGE] = '_OnNotifyRouteInfoChange',
|
||
}
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl.m_targetDomain = HL.Field(HL.String) << ""
|
||
|
||
|
||
DomainItemTransferSelectCtrl.m_chosenItemId = HL.Field(HL.String) << ""
|
||
|
||
|
||
DomainItemTransferSelectCtrl.m_chosenItemCount = HL.Field(HL.Number) << 0
|
||
|
||
|
||
DomainItemTransferSelectCtrl.m_chosenItemCell = HL.Field(HL.Any)
|
||
|
||
|
||
DomainItemTransferSelectCtrl.m_waitingToClose = HL.Field(HL.Boolean) << false
|
||
|
||
|
||
DomainItemTransferSelectCtrl.m_info = HL.Field(HL.Any)
|
||
|
||
|
||
DomainItemTransferSelectCtrl.m_losslessTransmission = HL.Field(HL.Boolean) << false
|
||
|
||
|
||
DomainItemTransferSelectCtrl.m_maxTransmissionValue = HL.Field(HL.Number) << 0
|
||
|
||
|
||
DomainItemTransferSelectCtrl.m_losslessTransmissionUnlocked = HL.Field(HL.Boolean) << false
|
||
|
||
|
||
DomainItemTransferSelectCtrl.m_allowSend = HL.Field(HL.Boolean) << false
|
||
|
||
|
||
DomainItemTransferSelectCtrl.m_destinationCellCache = HL.Field(HL.Forward("UIListCache"))
|
||
|
||
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl.OnCreate = HL.Override(HL.Any) << function(self, args)
|
||
self.m_info = args.info
|
||
|
||
self.m_destinationCellCache = UIUtils.genCellCache(self.view.selectEndPointRoot.siteCell)
|
||
|
||
self.view.btnBack.onClick:AddListener(function()
|
||
self:_Close()
|
||
end)
|
||
|
||
self.view.detailsBtn.onClick:AddListener(function()
|
||
self:_OnClickLosslessTransmissionInfoBtn()
|
||
end)
|
||
|
||
self.view.totalValueDetailsBtn.onClick:AddListener(function()
|
||
self:_OnClickLosslessValueInstructionBtn()
|
||
end)
|
||
|
||
self.view.transferTabNode.onValueChanged:AddListener(function(isOn)
|
||
self:_OnLosslessTransmissionToggleChanged(isOn)
|
||
end)
|
||
|
||
self.view.cantSwitchMaskBtn.onClick:AddListener(function()
|
||
self:_OnClickCantSwitchMaskBtn()
|
||
end)
|
||
|
||
if DeviceInfo.usingController then
|
||
self:_InitControllerAbility()
|
||
end
|
||
|
||
self:_InitBtn()
|
||
|
||
self:_InitFromDomainInfo()
|
||
self:_InitLeftSidePlatformInfo(self.m_info.toDomain)
|
||
self:_InitNumberSelector()
|
||
self:_InitTransmissionMode()
|
||
|
||
if not self:_IsCurrentTransmitting() then
|
||
self:_OpenSelectTargetRoot()
|
||
else
|
||
self:_OpenDepot()
|
||
end
|
||
|
||
self.view.depotExtraRoot.timeRemainingTxt.text = self:_GetTimeText()
|
||
self:_StartCoroutine(function()
|
||
while true do
|
||
coroutine.wait(UIConst.FAC_COMMON_UI_UPDATE_INTERVAL)
|
||
self.view.depotExtraRoot.timeRemainingTxt.text = self:_GetTimeText()
|
||
end
|
||
end)
|
||
end
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl.OnHide = HL.Override() << function(self)
|
||
if not DeviceInfo.usingController then
|
||
return
|
||
end
|
||
|
||
self:_ManuallyStopFocusLeftNode()
|
||
end
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl.OnClose = HL.Override() << function(self)
|
||
if DeviceInfo.usingController then
|
||
Notify(MessageConst.HIDE_COMMON_HOVER_TIP)
|
||
end
|
||
end
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._OpenDepot = HL.Method() << function(self)
|
||
self:_ToggleLosslessTabOrTag(true)
|
||
self:_SetDepotSlotStyleByLossless()
|
||
|
||
LayoutRebuilder.ForceRebuildLayoutImmediate(self.view.forceRebuildTarget)
|
||
self.view.leftItemSlotRoot.gameObject:SetActive(true)
|
||
self.view.changeTransNode.gameObject:SetActive(true)
|
||
self.view.selectEndPointRoot.gameObject:SetActive(false)
|
||
self.view.selectingTargetMask.gameObject:SetActive(false)
|
||
self.view.leftLineWithEffect.gameObject:SetActive(true)
|
||
self.view.leftLineWithoutEffect.gameObject:SetActive(false)
|
||
|
||
self.view.sliderImg.gameObject:SetActive(self:_IsCurrentTransmitting())
|
||
|
||
|
||
if self.m_losslessTransmission then
|
||
self.view.leftLineWithEffect:SetState(LOSSLESS_TRANSMISSION_STATE)
|
||
else
|
||
self.view.leftLineWithEffect:SetState(NORMAL_TRANSMISSION_STATE)
|
||
end
|
||
|
||
local depotArgs = {
|
||
domainId = self.m_info.fromDomain,
|
||
|
||
customOnUpdateCell = function(cell, info, luaIndex)
|
||
local itemInfoPack = {
|
||
id = info.id
|
||
}
|
||
cell.item:InitItem(itemInfoPack, function()
|
||
self:_OnClickItem(cell, info.id)
|
||
self.view.depotExtraRoot.timeRemainingTxt.text = self:_GetTimeText()
|
||
end)
|
||
|
||
cell.item.view.button.onLongPress:RemoveAllListeners()
|
||
cell.item.view.button.onLongPress:AddListener(function()
|
||
Notify(MessageConst.SHOW_ITEM_TIPS, {
|
||
itemId = info.id,
|
||
transform = cell.item.gameObject.transform,
|
||
onClose = function()
|
||
cell.item.view.selectedBG.gameObject:SetActive(false)
|
||
end,
|
||
posType = UIConst.UI_TIPS_POS_TYPE.LeftMid,
|
||
})
|
||
cell.item.view.selectedBG.gameObject:SetActive(true)
|
||
end)
|
||
|
||
cell.item.view.selectMarkNode.gameObject:SetActive(self.m_chosenItemId == info.id)
|
||
local itemCount = self:_GetItemCount(info.id)
|
||
cell.item.view.storageNumberText.text = UIUtils.getNumString(itemCount)
|
||
|
||
local itemValue = self:_GetItemValue(info.id)
|
||
cell.item.view.transferValueTxt.text = itemValue
|
||
|
||
|
||
cell.item.view.storageImage.gameObject:SetActive(not self.m_losslessTransmission)
|
||
|
||
if self.m_chosenItemId == info.id then
|
||
self.m_chosenItemCell = cell
|
||
end
|
||
|
||
if DeviceInfo.usingController then
|
||
cell.item.view.button.onIsNaviTargetChanged = function(isTarget, isGroupChanged, naviTargetEnabledAgain)
|
||
if isTarget then
|
||
self:_OnFocusTarget(cell, info, luaIndex)
|
||
end
|
||
end
|
||
end
|
||
end,
|
||
|
||
customItemInfoListPostProcess = function(allItemInfoList)
|
||
if allItemInfoList == nil or next(allItemInfoList) == nil then
|
||
return {}
|
||
end
|
||
|
||
local fromDomainId = self.m_info.fromDomain
|
||
local result = {}
|
||
for _, info in ipairs(allItemInfoList) do
|
||
local id = info.id
|
||
local facSuccess, facItemData = Tables.factoryItemTable:TryGetValue(id)
|
||
if facSuccess and not facItemData.itemState then
|
||
if self.m_losslessTransmission then
|
||
|
||
for i = 0, facItemData.losslessDomainIds.Count - 1 do
|
||
if facItemData.losslessDomainIds[i] == fromDomainId then
|
||
table.insert(result, info)
|
||
end
|
||
end
|
||
else
|
||
for i = 0, facItemData.transferDomainIds.Count - 1 do
|
||
if facItemData.transferDomainIds[i] == fromDomainId then
|
||
table.insert(result, info)
|
||
end
|
||
end
|
||
end
|
||
end
|
||
end
|
||
return result
|
||
end,
|
||
|
||
onChangeTypeFunction = function()
|
||
self:_ClearSelectedItem()
|
||
self:_UpdateNumber()
|
||
end,
|
||
|
||
showHistory = true,
|
||
disableDrag = true,
|
||
}
|
||
|
||
self.view.depot:InitDepot(GEnums.ItemValuableDepotType.Factory,
|
||
function(itemId, cell)
|
||
self:_OnClickItem(cell, itemId)
|
||
end,
|
||
depotArgs)
|
||
|
||
self:_RefreshLeftSideItem()
|
||
self:_RefreshBtnAndText()
|
||
self:_UpdateNumber()
|
||
|
||
if DeviceInfo.usingController then
|
||
self:Notify(MessageConst.CLOSE_CONTROLLER_SMALL_MENU, self.view.leftNode.groupId)
|
||
InputManagerInst:ToggleGroup(self.view.leftNode.groupId, false)
|
||
InputManagerInst:ToggleBinding(self.m_unFocusLeftBindId, false)
|
||
|
||
self.view.controllerFocusHintNode.gameObject:SetActive(true)
|
||
|
||
self.view.leftItemSlotRootInputBindingGroupMonoTarget.enabled = false
|
||
self.view.transferTabNodeInputBindingGroupMonoTarget.enabled = false
|
||
self.view.noConsumptionTransferDetails.enabled = false
|
||
self.view.selectEndPointRootInputBindingGroupMonoTarget.enabled = false
|
||
self.view.changeTransNode.enabled = false
|
||
|
||
InputManagerInst:ToggleBinding(self.m_focusLeftBindId, true)
|
||
end
|
||
end
|
||
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._TryGetCell = HL.Method(HL.String).Return(HL.Any) << function(self, itemId)
|
||
local depot = self.view.depot
|
||
local depotContent = depot.view.depotContent
|
||
local depotCellIndex = depotContent:GetItemIndex(itemId)
|
||
local cell = depotContent:GetCell(depotCellIndex)
|
||
return cell
|
||
end
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._RefreshLeftSideItem = HL.Method() << function(self)
|
||
local view = self.view.leftItemSlotRoot
|
||
|
||
|
||
|
||
|
||
if not self:_IsCurrentTransmitting() and string.isEmpty(self.m_chosenItemId) then
|
||
view.itemSlotCenterTriangle.gameObject:SetActive(false)
|
||
view.itemCanceled.gameObject:SetActive(false)
|
||
view.itemTarget.gameObject:SetActive(false)
|
||
view.itemEmpty.gameObject:SetActive(true)
|
||
return
|
||
|
||
elseif not self:_IsCurrentTransmitting() and not string.isEmpty(self.m_chosenItemId) then
|
||
view.itemSlotCenterTriangle.gameObject:SetActive(true)
|
||
view.itemCanceled.gameObject:SetActive(false)
|
||
view.itemTarget.gameObject:SetActive(true)
|
||
view.itemEmpty.gameObject:SetActive(false)
|
||
local itemDataPack = {
|
||
id = self.m_chosenItemId,
|
||
count = self.m_chosenItemCount,
|
||
}
|
||
view.itemTarget:InitItem(itemDataPack, true)
|
||
view.itemTarget:SetExtraInfo({ isSideTips = DeviceInfo.usingController })
|
||
return
|
||
|
||
elseif self:_IsCurrentTransmitting() and not self:_IsItemModified() then
|
||
view.itemSlotCenterTriangle.gameObject:SetActive(false)
|
||
view.itemCanceled.gameObject:SetActive(false)
|
||
view.itemTarget.gameObject:SetActive(true)
|
||
view.itemEmpty.gameObject:SetActive(false)
|
||
local itemDataPack = {
|
||
id = self.m_info.itemId,
|
||
count = self.m_info.itemNumMax,
|
||
}
|
||
view.itemTarget:InitItem(itemDataPack, true)
|
||
view.itemTarget:SetExtraInfo({ isSideTips = DeviceInfo.usingController })
|
||
return
|
||
|
||
elseif self:_IsCurrentTransmitting() and self:_IsItemModified() then
|
||
view.itemSlotCenterTriangle.gameObject:SetActive(true)
|
||
view.itemCanceled.gameObject:SetActive(true)
|
||
view.itemTarget.gameObject:SetActive(true)
|
||
view.itemEmpty.gameObject:SetActive(false)
|
||
local itemCanceledPack = {
|
||
id = self.m_info.itemId,
|
||
count = self.m_info.itemNumMax,
|
||
}
|
||
view.itemCanceled:InitItem(itemCanceledPack, true)
|
||
view.itemCanceled:SetExtraInfo({ isSideTips = DeviceInfo.usingController })
|
||
local itemTargetPack = {
|
||
id = self.m_chosenItemId,
|
||
count = self.m_chosenItemCount,
|
||
}
|
||
view.itemTarget:InitItem(itemTargetPack, true)
|
||
view.animationNode:Play("domainItemtransferselect_leftitemslot_changein")
|
||
return
|
||
end
|
||
end
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._ClearSelectedItem = HL.Method() << function(self)
|
||
self:_OnClickItem(nil, "")
|
||
end
|
||
|
||
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._OnClickItem = HL.Method(HL.Any, HL.String) << function(self, itemCell, itemId)
|
||
|
||
if self:_IsCurrentTransmitting() and itemId == self.m_chosenItemId then
|
||
return
|
||
end
|
||
|
||
|
||
if self.m_chosenItemCell ~= nil then
|
||
local view = self.m_chosenItemCell.view
|
||
if view ~= nil then
|
||
local toggle = view.item.view.selectMarkNode
|
||
if toggle ~= nil then
|
||
toggle.gameObject:SetActive(false)
|
||
end
|
||
end
|
||
self.m_chosenItemCell = nil
|
||
end
|
||
|
||
|
||
if string.isEmpty(itemId) or not self:_IsCurrentTransmitting() and itemId == self.m_chosenItemId then
|
||
self:_ClearChosenItem()
|
||
return
|
||
end
|
||
|
||
if itemId ~= self.m_chosenItemId and not string.isEmpty(itemId) then
|
||
self.m_chosenItemCell = itemCell
|
||
self.m_chosenItemId = itemId
|
||
local targetCount = self:_GetCurrentNeedAssignCount()
|
||
self:_ChangeCount(targetCount)
|
||
self.m_chosenItemCell.view.item.view.selectMarkNode.gameObject:SetActive(true)
|
||
end
|
||
|
||
self:_RefreshBtnAndText()
|
||
self:_RefreshLeftSideItem()
|
||
self:_UpdateNumber()
|
||
|
||
self:_UpdateNumberSelector()
|
||
self:_UpdateTransmissionValue()
|
||
end
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._ClearChosenItem = HL.Method() << function(self)
|
||
self.m_chosenItemId = self.m_info.itemId
|
||
self:_ChangeCount(self.m_info.itemNumMax)
|
||
if self:_IsCurrentTransmitting() then
|
||
local toggleCell = self:_TryGetCell(self.m_info.itemId)
|
||
self.m_chosenItemCell = toggleCell
|
||
if self.m_chosenItemCell ~= nil then
|
||
self.m_chosenItemCell.view.item.view.selectMarkNode.gameObject:SetActive(true)
|
||
end
|
||
end
|
||
self:_RefreshBtnAndText()
|
||
self:_RefreshLeftSideItem()
|
||
self:_UpdateNumber()
|
||
|
||
self:_UpdateTransmissionValue()
|
||
end
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._GetCurrentNeedAssignCount = HL.Method().Return(HL.Number) << function(self)
|
||
if self:_IsCurrentTransmitting() then
|
||
return self.view.depotExtraRoot.numberSelector.curNumber
|
||
end
|
||
|
||
if self.m_chosenItemCount ~= 0 then
|
||
return self.m_chosenItemCount
|
||
end
|
||
|
||
return INIT_NUMBER_SELECTOR_CUR_VALUE
|
||
end
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._RefreshBtnAndText = HL.Method() << function(self)
|
||
local itemModified = self:_IsItemModified()
|
||
local blockOrRetry = self.m_info.status == RouteStatus.blocked or self.m_info.status == RouteStatus.retry
|
||
local isFocusItemEqualChosen = self:_IsFocusItemEqualChosen()
|
||
|
||
self.view.startTransBtn.gameObject:SetActive(self.m_allowSend and itemModified and isFocusItemEqualChosen)
|
||
self.view.transmittingFakeBtn.gameObject:SetActive(self.m_allowSend and self:_IsCurrentTransmitting() and not blockOrRetry and
|
||
(not itemModified or not isFocusItemEqualChosen))
|
||
self.view.transPausedFakeBtn.gameObject:SetActive(self.m_allowSend and blockOrRetry and
|
||
(not itemModified or not isFocusItemEqualChosen))
|
||
self.view.cancelSelectBtn.gameObject:SetActive(self.m_allowSend and self:_IsCurrentTransmitting() and itemModified)
|
||
self.view.transLocked.gameObject:SetActive(not self.m_allowSend)
|
||
|
||
local depotExtra = self.view.depotExtraRoot
|
||
local hasNoChosenItem = string.isEmpty(self.m_chosenItemId)
|
||
self.view.depot.view.bottomNode.gameObject:SetActive(hasNoChosenItem or not isFocusItemEqualChosen)
|
||
self.view.depot.view.sortNode.gameObject:SetActive(hasNoChosenItem or not isFocusItemEqualChosen)
|
||
depotExtra.selectItemInDepotRoot.gameObject:SetActive(hasNoChosenItem or not isFocusItemEqualChosen)
|
||
if hasNoChosenItem or not isFocusItemEqualChosen then
|
||
depotExtra.timeRemainingRoot.gameObject:SetActive(false)
|
||
else
|
||
depotExtra.timeRemainingRoot.gameObject:SetActive(not blockOrRetry or itemModified)
|
||
end
|
||
|
||
depotExtra.numberSelector.gameObject:SetActive(not hasNoChosenItem and isFocusItemEqualChosen)
|
||
self.view.depot.view.sortNode.gameObject:SetActive(hasNoChosenItem or not isFocusItemEqualChosen)
|
||
end
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._Close = HL.Method() << function(self)
|
||
self:PlayAnimationOutAndClose()
|
||
|
||
if DeviceInfo.usingController then
|
||
self:Notify(MessageConst.CLOSE_CONTROLLER_SMALL_MENU, self.view.leftNode.groupId)
|
||
InputManagerInst:ToggleGroup(self.view.leftNode.groupId, false)
|
||
InputManagerInst:ToggleBinding(self.m_unFocusLeftBindId, false)
|
||
end
|
||
end
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._InitBtn = HL.Method() << function(self)
|
||
self.view.changeTargetBtn.onClick:AddListener(function()
|
||
self:_OpenSelectTargetRoot(true)
|
||
end)
|
||
|
||
self.view.stopTransBtn.onClick:AddListener(function()
|
||
self:Notify(MessageConst.SHOW_POP_UP, {
|
||
content = Language.LUA_FAC_TRANS_CONFIRM_RESET,
|
||
onConfirm = function()
|
||
self:_DoResetRoute()
|
||
end,
|
||
onCancel = function()
|
||
self:_ClearSelectedItem()
|
||
self:_UpdateNumber()
|
||
end
|
||
})
|
||
end)
|
||
|
||
self.view.changeTargetBtn.gameObject:SetActive(not self:_IsCurrentTransmitting())
|
||
self.view.stopTransBtn.gameObject:SetActive(self:_IsCurrentTransmitting())
|
||
|
||
self.view.cancelSelectBtn.onClick:AddListener(function()
|
||
self:_ClearSelectedItem()
|
||
end)
|
||
|
||
if self:_IsCurrentTransmitting() then
|
||
self.view.startTransBtnText.text = Language.LUA_FAC_TRANS_MODIFY_BTN_TEXT
|
||
self.view.startTransBtn.onClick:AddListener(function()
|
||
self:Notify(MessageConst.SHOW_POP_UP, {
|
||
content = self.m_info.lossless and Language.LUA_FAC_TRANS_CONFIRM_MODIFY_LOSSLESS or Language.LUA_FAC_TRANS_CONFIRM_MODIFY,
|
||
onConfirm = function()
|
||
self:_DoChangeRoute()
|
||
end,
|
||
onCancel = function()
|
||
self:_ClearSelectedItem()
|
||
self:_UpdateNumber()
|
||
end
|
||
})
|
||
end)
|
||
else
|
||
self.view.startTransBtnText.text = Language.LUA_FAC_TRANS_START_BTN_TEXT
|
||
self.view.startTransBtn.onClick:AddListener(function()
|
||
self:_DoChangeRoute()
|
||
end)
|
||
end
|
||
end
|
||
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._OpenSelectTargetRoot = HL.Method(HL.Opt(HL.Boolean)) << function(self, clickBtn)
|
||
self:_ToggleLosslessTabOrTag(false)
|
||
|
||
self.view.selectingTargetMask.gameObject:SetActive(true)
|
||
self.view.leftItemSlotRoot.gameObject:SetActive(false)
|
||
self.view.changeTransNode.gameObject:SetActive(false)
|
||
self.view.selectEndPointRoot.gameObject:SetActive(true)
|
||
self.view.leftLineWithEffect.gameObject:SetActive(false)
|
||
self.view.leftLineWithoutEffect.gameObject:SetActive(true)
|
||
self:_InitLeftSidePlatformInfo("")
|
||
|
||
local domainList = {}
|
||
for _, domainInfo in pairs(Tables.domainDataTable) do
|
||
local domainId = domainInfo.domainId
|
||
local notSelf = domainId ~= self.m_info.fromDomain
|
||
local valid = Tables.factoryDomainItemTransmissionTable:ContainsKey(domainId)
|
||
if notSelf and valid then
|
||
table.insert(domainList, domainInfo)
|
||
end
|
||
end
|
||
table.sort(domainList, Utils.genSortFunction({ "sortId" }, true))
|
||
self.m_destinationCellCache:Refresh(#domainList, function(cell, index)
|
||
local domainData = domainList[index]
|
||
local domainName = domainData.domainName
|
||
local domainId = domainData.domainId
|
||
cell.text.text = domainName
|
||
cell.icon:LoadSprite(UIConst.UI_SPRITE_FAC_TRANS, UIConst.FAC_TRANS_DOMAIN_ICONS[domainId])
|
||
cell.button.onClick:AddListener(function()
|
||
self:_OnSelectTargetDomain(domainId)
|
||
end)
|
||
end)
|
||
|
||
if clickBtn == true then
|
||
self.animationWrapper:Play("domainItemtransferselect_panel_select_in")
|
||
end
|
||
|
||
if DeviceInfo.usingController then
|
||
self.view.controllerFocusHintNode.gameObject:SetActive(false)
|
||
|
||
self:Notify(MessageConst.CLOSE_CONTROLLER_SMALL_MENU, self.view.leftNode.groupId)
|
||
InputManagerInst:ToggleGroup(self.view.leftNode.groupId, true)
|
||
InputManagerInst:ToggleBinding(self.m_unFocusLeftBindId, false)
|
||
|
||
self.view.transferTabNodeInputBindingGroupMonoTarget.enabled = true
|
||
self.view.noConsumptionTransferDetails.enabled = true
|
||
self.view.selectEndPointRootInputBindingGroupMonoTarget.enabled = true
|
||
self.view.changeTransNode.enabled = true
|
||
|
||
InputManagerInst:ToggleBinding(self.m_focusLeftBindId, false)
|
||
|
||
self:_SetFocusTargetByIndex(1)
|
||
end
|
||
end
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._UpdateNumber = HL.Method() << function(self)
|
||
local view = self.view.leftItemSlotRoot
|
||
local isFocusItemEqualChosen = self:_IsFocusItemEqualChosen()
|
||
if not self:_IsItemModified() then
|
||
local showNotEnoughItem = self.m_info.itemNum ~= self.m_info.itemNumMax
|
||
local subCondition = not self.m_losslessTransmission and isFocusItemEqualChosen
|
||
self.view.notEnoughItemText.text = tostring(self.m_info.itemNum)
|
||
self.view.notEnoughItemRoot.gameObject:SetActive(showNotEnoughItem and subCondition)
|
||
if self:_IsCurrentTransmitting() then
|
||
local itemTargetPack = {
|
||
id = self.m_chosenItemId,
|
||
count = self.m_chosenItemCount,
|
||
}
|
||
view.itemTarget:InitItem(itemTargetPack, true)
|
||
view.itemTarget:SetExtraInfo({ isSideTips = DeviceInfo.usingController })
|
||
end
|
||
elseif string.isEmpty(self.m_chosenItemId) then
|
||
self.view.notEnoughItemRoot.gameObject:SetActive(false)
|
||
else
|
||
local itemTargetPack = {
|
||
id = self.m_chosenItemId,
|
||
count = self.m_chosenItemCount,
|
||
}
|
||
view.itemTarget:InitItem(itemTargetPack, true)
|
||
view.itemTarget:SetExtraInfo({ isSideTips = DeviceInfo.usingController })
|
||
local depotCount = self:_GetItemCount(self.m_chosenItemId)
|
||
local subCondition = not self.m_losslessTransmission and isFocusItemEqualChosen
|
||
self.view.notEnoughItemRoot.gameObject:SetActive(depotCount < self.m_chosenItemCount and subCondition)
|
||
self.view.notEnoughItemText.text = tostring(depotCount)
|
||
end
|
||
end
|
||
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._GetItemCount = HL.Method(HL.String).Return(HL.Number) << function(self, itemId)
|
||
local factoryDepot = GameInstance.player.inventory.factoryDepot
|
||
local depotInChapter = factoryDepot:GetOrFallback(Utils.getCurrentScope())
|
||
local actualDepot = depotInChapter[ScopeUtil.ChapterIdStr2Int(self.m_info.fromDomain)]
|
||
local count = actualDepot:GetCount(itemId)
|
||
return count
|
||
end
|
||
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._GetItemValue = HL.Method(HL.String).Return(HL.Number) << function(self, itemId)
|
||
local factoryItemCfg = Tables.factoryItemTable[itemId]
|
||
return factoryItemCfg.value
|
||
end
|
||
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._InitLeftSidePlatformInfo = HL.Method(HL.String) << function(self, targetDomainId)
|
||
local fromDomainId = self.m_info.fromDomain
|
||
local domainInfo = Tables.domainDataTable[fromDomainId]
|
||
self.view.platformFrom.destinationTxt.text = domainInfo.domainName
|
||
self.view.platformFrom.domainLevelTxt.text = GameInstance.player.domainDevelopmentSystem:GetDomainDevelopmentLv(fromDomainId)
|
||
self.view.platformFrom.domainIconImg:LoadSprite(UIConst.UI_SPRITE_FAC_TRANS,
|
||
UIConst.FAC_TRANS_DOMAIN_ICONS[fromDomainId])
|
||
|
||
local toDomainId
|
||
toDomainId = string.isEmpty(targetDomainId) and self.m_info.toDomain or targetDomainId
|
||
local hasToDomain = not string.isEmpty(toDomainId)
|
||
self.view.platformTo.domainLevelTxt.gameObject:SetActive(hasToDomain)
|
||
self.view.platformTo.destinationTxt.gameObject:SetActive(hasToDomain)
|
||
self.view.platformTo.domainLevelNode.gameObject:SetActive(hasToDomain)
|
||
self.view.platformTo.domainIconImg.gameObject:SetActive(hasToDomain)
|
||
if hasToDomain then
|
||
self.view.platformTo.destinationTxt.text = Tables.domainDataTable[toDomainId].domainName
|
||
self.view.platformTo.domainLevelTxt.text = GameInstance.player.domainDevelopmentSystem:GetDomainDevelopmentLv(toDomainId)
|
||
self.view.platformTo.domainIconImg:LoadSprite(UIConst.UI_SPRITE_FAC_TRANS,
|
||
UIConst.FAC_TRANS_DOMAIN_ICONS[toDomainId])
|
||
end
|
||
end
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._IsCurrentTransmitting = HL.Method().Return(HL.Boolean) << function(self)
|
||
return self.m_info.status ~= RouteStatus.idle
|
||
end
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._GetDefaultNumber = HL.Method().Return(HL.Number) << function(self)
|
||
if self:_IsCurrentTransmitting() then
|
||
return self.m_info.itemNumMax
|
||
end
|
||
return INIT_NUMBER_SELECTOR_CUR_VALUE
|
||
end
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._IsItemModified = HL.Method().Return(HL.Boolean) << function(self)
|
||
return self.m_chosenItemId ~= self.m_info.itemId or self.m_chosenItemCount ~= self.m_info.itemNumMax
|
||
end
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._GiveUpItemSelect = HL.Method() << function(self)
|
||
if self:_IsCurrentTransmitting() then
|
||
self.m_chosenItemId = self.m_info.itemId
|
||
self:_ChangeCount(self.m_info.itemNumMax)
|
||
self.m_chosenItemCount = 0
|
||
return
|
||
end
|
||
|
||
self.m_chosenItemId = ""
|
||
self.m_chosenItemCount = 0
|
||
end
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._DoChangeRoute = HL.Method() << function(self)
|
||
local fromDomain = self.m_info.fromDomain
|
||
local toDomain = self.m_targetDomain
|
||
local index = self.m_info.index
|
||
local lossless = self.m_losslessTransmission
|
||
local itemId = self.m_chosenItemId
|
||
local itemCount = self.m_chosenItemCount
|
||
GameInstance.player.remoteFactory:SendReqSetHubTransRoute(fromDomain, toDomain, index, lossless, itemId, itemCount)
|
||
self.m_waitingToClose = true
|
||
end
|
||
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._ChangeCount = HL.Method(HL.Number) << function(self, count)
|
||
self.m_chosenItemCount = count
|
||
self.view.depotExtraRoot.numberSelector:_Refresh(count)
|
||
end
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._DoResetRoute = HL.Method() << function(self)
|
||
local routeInfo = self.m_info
|
||
GameInstance.player.remoteFactory:SendReqResetHubTransRoute(routeInfo.fromDomain, routeInfo.index)
|
||
self.m_waitingToClose = true
|
||
end
|
||
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._OnSelectTargetDomain = HL.Method(HL.String) << function(self, domainId)
|
||
|
||
|
||
local hasChangedMode = self.m_losslessTransmission ~= self.view.transferTabNode.isOn
|
||
if hasChangedMode then
|
||
self:_ClearChosenItem()
|
||
|
||
|
||
|
||
self.view.depot.view.depotContent.view.itemList:UpdateCount(0)
|
||
end
|
||
self.m_losslessTransmission = self.view.transferTabNode.isOn
|
||
|
||
self:_UpdateTransmissionTag()
|
||
|
||
self.animationWrapper:Play("domainItemtransferselect_panel_select_out", function()
|
||
|
||
end)
|
||
self:_InitLeftSidePlatformInfo(domainId)
|
||
self.m_targetDomain = domainId
|
||
self:_OpenDepot()
|
||
end
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._OnNotifyRouteInfoChange = HL.Method() << function(self)
|
||
if self.m_waitingToClose then
|
||
self:_Close()
|
||
end
|
||
end
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._GetTimeText = HL.Method().Return(HL.String) << function(self)
|
||
local curTime = DateTimeUtils.GetCurrentTimestampBySeconds()
|
||
local lastTryTime = self.m_info.timeStamp - self.m_info.progress
|
||
local curProgress = curTime - lastTryTime
|
||
local needTime = Tables.factoryConst.domainTransportIntervalTime
|
||
local curNeedTimeSec = needTime - curProgress
|
||
if not self:_IsCurrentTransmitting() or self:_IsItemModified() then
|
||
curNeedTimeSec = needTime
|
||
end
|
||
|
||
while curNeedTimeSec < 0 do
|
||
local reverse = -curNeedTimeSec
|
||
local times = reverse // needTime
|
||
if reverse % needTime > 0 then
|
||
times = times + 1
|
||
end
|
||
curNeedTimeSec = curNeedTimeSec + needTime * times
|
||
end
|
||
local curNeedHour = curNeedTimeSec // SEC_PER_HOUR
|
||
local restSec = curNeedTimeSec % SEC_PER_HOUR
|
||
local curNeedMin = restSec // SEC_PER_MIN
|
||
restSec = restSec % SEC_PER_MIN
|
||
if restSec % SEC_PER_MIN > 0 then
|
||
curNeedMin = curNeedMin + 1
|
||
end
|
||
if curNeedMin >= MIN_PER_HOUR then
|
||
curNeedMin = curNeedMin - 60
|
||
curNeedHour = curNeedHour + 1
|
||
end
|
||
local hourText = ""
|
||
if curNeedHour > 0 then
|
||
hourText = string.format(Language.LUA_TIME_HOUR, curNeedHour)
|
||
end
|
||
local minuteText = ""
|
||
if curNeedMin > 0 then
|
||
minuteText = string.format(Language.LUA_TIME_MIN, curNeedMin)
|
||
end
|
||
local text = hourText .. minuteText
|
||
return text
|
||
end
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._OnClickLosslessTransmissionInfoBtn = HL.Method() << function(self)
|
||
UIManager:Open(PanelId.InstructionBook, LOSSLESS_TRANSMISSION_INSTRUCTION_ID)
|
||
end
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._OnClickLosslessValueInstructionBtn = HL.Method() << function(self)
|
||
UIManager:Open(PanelId.InstructionBook, LOSSLESS_VALUE_INSTRUCTION_ID)
|
||
end
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._OnClickCantSwitchMaskBtn = HL.Method() << function(self)
|
||
local fromDomainId = self.m_info.fromDomain
|
||
local domainCfg = Tables.domainDataTable[fromDomainId]
|
||
local domainTransmissionCfg = Tables.factoryDomainItemTransmissionTable[fromDomainId]
|
||
local unlockLosslessLevel = domainTransmissionCfg.unlockLosslessLevel
|
||
|
||
self:Notify(MessageConst.SHOW_TOAST,
|
||
string.format(Language.LUA_DOMAIN_ITEM_TRANSMISSION_CANT_SWITCH_MODE, domainCfg.domainName,
|
||
unlockLosslessLevel))
|
||
|
||
end
|
||
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._ToggleLosslessTabOrTag = HL.Method(HL.Boolean) << function(self, isTag)
|
||
|
||
self.view.transferTabNode.gameObject:SetActive(not isTag)
|
||
self.view.transferTagNode.gameObject:SetActive(isTag)
|
||
end
|
||
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._OnLosslessTransmissionToggleChanged = HL.Method(HL.Boolean) << function(self, isOn)
|
||
self:_UpdateLosslessTabView(isOn)
|
||
end
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._SetDepotSlotStyleByLossless = HL.Method() << function(self)
|
||
|
||
local state = self.m_losslessTransmission and DEPOT_SLOT_TRANSMISSION_STYLE or DEPOT_SLOT_NORMAL_STYLE
|
||
self.view.depotNode:SetState(state)
|
||
end
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._InitNumberSelector = HL.Method() << function(self)
|
||
local maxValue = INIT_NUMBER_SELECTOR_CUR_VALUE
|
||
if not string.isEmpty(self.m_chosenItemId) then
|
||
local factoryItemCfg = Tables.factoryItemTable[self.m_chosenItemId]
|
||
maxValue = math.floor(self.m_maxTransmissionValue / factoryItemCfg.value)
|
||
end
|
||
|
||
self.view.depotExtraRoot.numberSelector:InitNumberSelector(self:_GetDefaultNumber(), TRANSMISSION_MIN_VALUE,
|
||
maxValue, function()
|
||
if not string.isEmpty(self.m_chosenItemId) then
|
||
self.m_chosenItemCount = self.view.depotExtraRoot.numberSelector.curNumber
|
||
else
|
||
self.m_chosenItemCount = 0
|
||
end
|
||
self:_UpdateNumber()
|
||
self:_RefreshBtnAndText()
|
||
self:_UpdateTransmissionValue()
|
||
end)
|
||
end
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._UpdateNumberSelector = HL.Method() << function(self)
|
||
if string.isEmpty(self.m_chosenItemId) then
|
||
return
|
||
end
|
||
|
||
local factoryItemCfg = Tables.factoryItemTable[self.m_chosenItemId]
|
||
|
||
local minValue = TRANSMISSION_MIN_VALUE
|
||
local maxValue = math.floor(self.m_maxTransmissionValue / factoryItemCfg.value)
|
||
|
||
local curValue = math.max(self.view.depotExtraRoot.numberSelector.curNumber, maxValue)
|
||
|
||
self.view.depotExtraRoot.numberSelector:RefreshNumber(curValue, minValue, maxValue)
|
||
end
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._UpdateTransmissionValue = HL.Method() << function(self)
|
||
local curTransmissionValue = 0
|
||
if not string.isEmpty(self.m_chosenItemId) and self:_IsFocusItemEqualChosen() then
|
||
local selectItemFacCfg = Tables.factoryItemTable[self.m_chosenItemId]
|
||
curTransmissionValue = selectItemFacCfg.value * self.m_chosenItemCount
|
||
end
|
||
|
||
self.view.totalValueTxt.text = string.format("%d/%d", curTransmissionValue, self.m_maxTransmissionValue)
|
||
end
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._InitFromDomainInfo = HL.Method() << function(self)
|
||
local fromDomainId = self.m_info.fromDomain
|
||
local allowSend = GameInstance.player.remoteFactory:FacDomainTransAllowSend(fromDomainId)
|
||
local allowLosslessSend = GameInstance.player.remoteFactory:FacDomainTransAllowLosslessSend(fromDomainId)
|
||
local fromDomainLv = GameInstance.player.domainDevelopmentSystem:GetDomainDevelopmentLv(fromDomainId)
|
||
local fromDomainTransCfg = Tables.factoryDomainItemTransmissionTable[fromDomainId]
|
||
|
||
local refLevel
|
||
if allowSend then
|
||
|
||
if not fromDomainTransCfg.levelToCapacity:ContainsKey(fromDomainLv) then
|
||
|
||
logger.error("当前达到的地区发展等级与HUB跨区域传输升级表中无法匹配,请检查")
|
||
refLevel = #fromDomainTransCfg.levelToCapacity
|
||
else
|
||
refLevel = fromDomainLv
|
||
end
|
||
else
|
||
refLevel = fromDomainTransCfg.unlockLevel
|
||
end
|
||
|
||
self.m_maxTransmissionValue = fromDomainTransCfg.levelToCapacity[refLevel]
|
||
self.m_losslessTransmissionUnlocked = allowLosslessSend
|
||
self.m_allowSend = allowSend
|
||
|
||
if self.m_info.status ~= RouteStatus.idle then
|
||
self.m_chosenItemId = self.m_info.itemId
|
||
self.m_chosenItemCount = self.m_info.itemNumMax
|
||
self.m_targetDomain = self.m_info.toDomain
|
||
self.m_losslessTransmission = self.m_info.lossless
|
||
end
|
||
|
||
|
||
if not self.m_allowSend then
|
||
local domainCfg = Tables.domainDataTable[fromDomainId]
|
||
self.view.promptTxt.text = string.format(Language.LUA_DOMAIN_ITEM_TRANSMISSION_CANT_SEND, domainCfg.domainName,
|
||
fromDomainTransCfg.unlockLevel)
|
||
end
|
||
end
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._InitTransmissionMode = HL.Method() << function(self)
|
||
self.m_losslessTransmission = self.m_info.lossless
|
||
|
||
self.view.transferTabNode:SetIsOnWithoutNotify(self.m_losslessTransmission)
|
||
|
||
|
||
self.view.cantSwitchMaskBtn.gameObject:SetActive(not self.m_losslessTransmissionUnlocked)
|
||
|
||
self:_UpdateLosslessTabView(self.m_losslessTransmission)
|
||
self:_UpdateTransmissionTag()
|
||
end
|
||
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._UpdateLosslessTabView = HL.Method(HL.Boolean) << function(self, losslessTransmission)
|
||
if losslessTransmission then
|
||
self.view.noConsumptionTransferTab:SetState("SelectState")
|
||
self.view.warehouseTransferTab:SetState("UnselectState")
|
||
else
|
||
self.view.warehouseTransferTab:SetState("SelectState")
|
||
self.view.noConsumptionTransferTab:SetState(self.m_losslessTransmissionUnlocked and "UnlockState" or "LockState")
|
||
end
|
||
end
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._UpdateTransmissionTag = HL.Method() << function(self)
|
||
|
||
self.view.warehouseTransferNode.gameObject:SetActive(not self.m_losslessTransmission)
|
||
self.view.noConsumptionTransferNode.gameObject:SetActive(self.m_losslessTransmission)
|
||
end
|
||
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl.m_focusLeftBindId = HL.Field(HL.Number) << -1
|
||
|
||
|
||
DomainItemTransferSelectCtrl.m_unFocusLeftBindId = HL.Field(HL.Number) << -1
|
||
|
||
|
||
DomainItemTransferSelectCtrl.m_destinationFocusLuaIndex = HL.Field(HL.Number) << 1
|
||
|
||
|
||
DomainItemTransferSelectCtrl.m_focusItemId = HL.Field(HL.String) << ""
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._InitControllerAbility = HL.Method() << function(self)
|
||
self.view.controllerHintPlaceholder:InitControllerHintPlaceholder({ self.view.inputGroup.groupId })
|
||
|
||
|
||
self.m_focusLeftBindId = InputManagerInst:CreateBindingByActionId("domain_trans_select_focus_left", function()
|
||
|
||
self:Notify(MessageConst.SHOW_AS_CONTROLLER_SMALL_MENU, {
|
||
panelId = PANEL_ID,
|
||
isGroup = true,
|
||
id = self.view.leftNode.groupId,
|
||
hintPlaceholder = self.view.controllerHintPlaceholder,
|
||
rectTransform = self.view.controllerFocusHintNode,
|
||
useNormalFrame = true,
|
||
noHighlight = true,
|
||
})
|
||
InputManagerInst:ToggleGroup(self.view.leftNode.groupId, true)
|
||
InputManagerInst:ToggleBinding(self.m_unFocusLeftBindId, true)
|
||
self.view.controllerFocusHintNode.gameObject:SetActive(false)
|
||
|
||
local hasItemFocus = self.view.leftItemSlotRoot.itemCanceled.gameObject.activeInHierarchy or
|
||
self.view.leftItemSlotRoot.itemTarget.gameObject.activeInHierarchy
|
||
self.view.leftItemSlotRootInputBindingGroupMonoTarget.enabled = hasItemFocus
|
||
self.view.transferTabNodeInputBindingGroupMonoTarget.enabled = true
|
||
self.view.noConsumptionTransferDetails.enabled = true
|
||
self.view.selectEndPointRootInputBindingGroupMonoTarget.enabled = true
|
||
self.view.changeTransNode.enabled = true
|
||
Notify(MessageConst.HIDE_COMMON_HOVER_TIP)
|
||
|
||
end, self.view.inputGroup.groupId)
|
||
|
||
|
||
self.m_unFocusLeftBindId = InputManagerInst:CreateBindingByActionId("common_back", function()
|
||
self:_ManuallyStopFocusLeftNode()
|
||
end, self.view.leftNode.groupId)
|
||
|
||
local depotItemList = self.view.depot.view.depotContent.view.itemList
|
||
depotItemList.onGraduallyShowFinish:AddListener(function()
|
||
self:_InitDepotItemFocus()
|
||
end)
|
||
|
||
depotItemList.onSelectedCell:AddListener(function(go, csIndex)
|
||
self:_OnSelectedCell(go, csIndex)
|
||
end)
|
||
end
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._ManuallyStopFocusLeftNode = HL.Method() << function(self)
|
||
self:Notify(MessageConst.CLOSE_CONTROLLER_SMALL_MENU, self.view.leftNode.groupId)
|
||
InputManagerInst:ToggleGroup(self.view.leftNode.groupId, false)
|
||
InputManagerInst:ToggleBinding(self.m_unFocusLeftBindId, false)
|
||
|
||
self.view.controllerFocusHintNode.gameObject:SetActive(true)
|
||
|
||
self.view.leftItemSlotRootInputBindingGroupMonoTarget.enabled = false
|
||
self.view.transferTabNodeInputBindingGroupMonoTarget.enabled = false
|
||
self.view.noConsumptionTransferDetails.enabled = false
|
||
self.view.selectEndPointRootInputBindingGroupMonoTarget.enabled = false
|
||
self.view.changeTransNode.enabled = false
|
||
end
|
||
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._SetFocusTargetByIndex = HL.Method(HL.Number) << function(self, index)
|
||
self.m_destinationFocusLuaIndex = index
|
||
|
||
local firstCell = self.m_destinationCellCache:Get(index)
|
||
InputManagerInst.controllerNaviManager:SetTarget(firstCell.siteCell)
|
||
end
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._InitDepotItemFocus = HL.Method() << function(self)
|
||
local focusLuaIndexIndex = 1
|
||
local itemList = self.view.depot.view.depotContent.m_itemInfoList
|
||
for luaIndex, item in ipairs(itemList) do
|
||
if item.id == self.m_chosenItemId then
|
||
focusLuaIndexIndex = luaIndex
|
||
end
|
||
end
|
||
|
||
|
||
self.view.depot.view.depotContent.view.itemList:ScrollToIndex(CSIndex(focusLuaIndexIndex), true)
|
||
|
||
local itemSlot = self.view.depot.view.depotContent.m_getCell(focusLuaIndexIndex)
|
||
if itemSlot then
|
||
InputManagerInst.controllerNaviManager:SetTarget(itemSlot.view.item.view.button)
|
||
self.m_focusItemId = itemList[focusLuaIndexIndex].id
|
||
else
|
||
InputManagerInst.controllerNaviManager:SetTarget(nil)
|
||
self.m_focusItemId = ""
|
||
end
|
||
|
||
self:_UpdateNumber()
|
||
self:_RefreshBtnAndText()
|
||
self:_UpdateTransmissionValue()
|
||
end
|
||
|
||
|
||
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._OnFocusTarget = HL.Method(HL.Forward("ItemSlot"), HL.Table, HL.Number)
|
||
<< function(self, cell, info, luaIndex)
|
||
self.m_focusItemId = info.id
|
||
|
||
|
||
if string.isEmpty(self.m_chosenItemId) then
|
||
return
|
||
end
|
||
|
||
self:_UpdateNumber()
|
||
self:_RefreshBtnAndText()
|
||
self:_UpdateTransmissionValue()
|
||
end
|
||
|
||
|
||
|
||
DomainItemTransferSelectCtrl._IsFocusItemEqualChosen = HL.Method().Return(HL.Boolean) << function(self)
|
||
if DeviceInfo.usingController then
|
||
return self.m_focusItemId == self.m_chosenItemId
|
||
else
|
||
return true
|
||
end
|
||
end
|
||
|
||
|
||
|
||
HL.Commit(DomainItemTransferSelectCtrl) |