5e0d58cfad
EN: 1.2.0.60 CN: 1.2.0.61 JP: 1.2.0.63 KR: 1.2.0.67
114 lines
3.9 KiB
Lua
114 lines
3.9 KiB
Lua
local PrologueCtrl = class("PrologueCtrl", BaseCtrl)
|
|
local ConfigData = require("GameCore.Data.ConfigData")
|
|
local PlayerCharData = PlayerData.Char
|
|
local GameResourceLoader = require("Game.Common.Resource.GameResourceLoader")
|
|
local ResType = GameResourceLoader.ResType
|
|
local AdventureModuleHelper = CS.AdventureModuleHelper
|
|
local InteractiveManagerIns = CS.InteractiveManager.Instance
|
|
PrologueCtrl._mapNodeConfig = {
|
|
cgRoot = {
|
|
sNodeName = "--safe_area--",
|
|
sComponentName = "CanvasGroup"
|
|
},
|
|
btnHand = {
|
|
sComponentName = "ButtonEx",
|
|
callback = "OnBtn_ClickHand"
|
|
},
|
|
trHand = {sNodeName = "btnHand", sComponentName = "Transform"},
|
|
imgHandIcon = {sComponentName = "Image"},
|
|
tmpInteract = {nCount = 2, sComponentName = "TMP_Text"},
|
|
animBtnHand = {sNodeName = "btnHand", sComponentName = "Animator"},
|
|
goJoystick = {
|
|
sNodeName = "--joystick--"
|
|
},
|
|
rtJoystick = {
|
|
sNodeName = "--joystick--",
|
|
sComponentName = "RectTransform"
|
|
},
|
|
cgJoystick = {
|
|
sNodeName = "--joystick--",
|
|
sComponentName = "CanvasGroup"
|
|
}
|
|
}
|
|
PrologueCtrl._mapEventConfig = {
|
|
InputEnable = "OnEvent_InputEnable",
|
|
interactiveUI = "OnUIInfoShow",
|
|
InteractiveEnable = "OnBtn_ClickHand",
|
|
FadeIn = "OnFadeIn"
|
|
}
|
|
function PrologueCtrl:Awake()
|
|
self.tbDefine_FunctionBtn = {
|
|
[1] = {
|
|
sName = "Interactive",
|
|
nHoldThreshold = 0.1
|
|
}
|
|
}
|
|
NovaAPI.RegisterVirtualJoystick("Horizontal", "Vertical", self._mapNode.goJoystick)
|
|
local nW = math.floor(Settings.CURRENT_CANVAS_FULL_RECT_WIDTH)
|
|
local nH = math.floor(Settings.CURRENT_CANVAS_FULL_RECT_HEIGHT)
|
|
self._mapNode.rtJoystick.sizeDelta = Vector2(nW / 2, nH * 2 / 3)
|
|
for nIndex, v in ipairs(self.tbDefine_FunctionBtn) do
|
|
NovaAPI.RegisterRealButton(v.sName, v.nHoldThreshold)
|
|
end
|
|
self:SetVisible(false)
|
|
self._mapNode.trHand.localScale = Vector3.zero
|
|
end
|
|
function PrologueCtrl:OnPreExit()
|
|
NovaAPI.UnRegisterVirtualJoystick("Horizontal", "Vertical")
|
|
for nIndex, v in ipairs(self.tbDefine_FunctionBtn) do
|
|
NovaAPI.UnRegisterRealButton(v.sName)
|
|
end
|
|
end
|
|
function PrologueCtrl:OnDestroy()
|
|
end
|
|
function PrologueCtrl:OnFadeIn()
|
|
end
|
|
function PrologueCtrl:OnEvent_InputEnable(bEnable)
|
|
self:SetVisible(bEnable == true)
|
|
end
|
|
function PrologueCtrl:SetVisible(bVisible)
|
|
NovaAPI.SetCanvasGroupAlpha(self._mapNode.cgRoot, bVisible == true and 1 or 0)
|
|
NovaAPI.SetCanvasGroupInteractable(self._mapNode.cgRoot, bVisible == true)
|
|
NovaAPI.SetCanvasGroupBlocksRaycasts(self._mapNode.cgRoot, bVisible == true)
|
|
end
|
|
function PrologueCtrl:OnBtn_ClickHand(btn)
|
|
if self.bInteractiveInCD == true then
|
|
return
|
|
end
|
|
if self.bShowUI ~= true then
|
|
return
|
|
end
|
|
printLog("发送时交互id" .. tostring(self.nInteractiveId))
|
|
local bSuccess = safe_call_cs_func(InteractiveManagerIns.setInteractiveObjState, InteractiveManagerIns, self.nInteractiveId)
|
|
self._mapNode.trHand.localScale = bSuccess == true and Vector3.zero or Vector3.one
|
|
self.bInteractiveInCD = true
|
|
self._mapNode.btnHand.interactable = false
|
|
self:AddTimer(1, 0.2, "SetBtnHandInteractable", true, true, true)
|
|
end
|
|
function PrologueCtrl:SetBtnHandInteractable()
|
|
self.bInteractiveInCD = false
|
|
self._mapNode.btnHand.interactable = true
|
|
end
|
|
function PrologueCtrl:OnUIInfoShow(nInteractiveId, bShowUI, sIcon, sText, nDuration)
|
|
if bShowUI ~= true and self.nInteractiveId ~= nInteractiveId then
|
|
return
|
|
end
|
|
printLog("交互id" .. tostring(nInteractiveId))
|
|
self.nInteractiveId = nInteractiveId
|
|
self.bShowUI = bShowUI
|
|
if self.bInteractiveInCD ~= true then
|
|
self._mapNode.btnHand.interactable = true
|
|
end
|
|
if self._mapNode.trHand.localScale.x == 0 and bShowUI == true then
|
|
self._mapNode.animBtnHand:SetTrigger("tPlay")
|
|
end
|
|
self._mapNode.trHand.localScale = bShowUI == true and Vector3.one or Vector3.zero
|
|
NovaAPI.SetTMPText(self._mapNode.tmpInteract[1], sText)
|
|
NovaAPI.SetTMPText(self._mapNode.tmpInteract[2], sText)
|
|
if type(sIcon) == "string" and sIcon ~= "" then
|
|
self:SetPngSprite(self._mapNode.imgHandIcon, sIcon)
|
|
NovaAPI.SetImageNativeSize(self._mapNode.imgHandIcon)
|
|
end
|
|
end
|
|
return PrologueCtrl
|