Files
Endfield-Data/LuaScripts/UI/Panels/DebugMarketingCamera/DebugMarketingCameraCtrl.lua
2025-12-02 20:37:18 +07:00

179 lines
5.8 KiB
Lua

local uiCtrl = require_ex('UI/Panels/Base/UICtrl')
local PANEL_ID = PanelId.DebugMarketingCamera
DebugMarketingCameraCtrl = HL.Class('DebugMarketingCameraCtrl', uiCtrl.UICtrl)
DebugMarketingCameraCtrl.s_messages = HL.StaticField(HL.Table) << {
}
DebugMarketingCameraCtrl.m_camController = HL.Field(CS.Beyond.Gameplay.View.MarketingCameraController)
DebugMarketingCameraCtrl.OnCreate = HL.Override(HL.Any) << function(self, arg)
InputManagerInst.enableController = false
InputManagerInst.enableMarketingCamera = true
InputManagerInst:CheckUsingController()
CameraUtils:OpenMarketingCamera()
self:_StartUpdate(function()
self:_Update()
end)
self:BindInputPlayerAction("marketing_cam_offset_down", function()
logger.info("MarketingCam: marketing_cam_offset_down")
self.m_camController:SetOffsetInputY(-1)
end)
self:BindInputPlayerAction("marketing_cam_offset_up", function()
logger.info("MarketingCam: marketing_cam_offset_up")
self.m_camController:SetOffsetInputY(1)
end)
self:BindInputPlayerAction("marketing_cam_offset_left", function()
logger.info("MarketingCam: marketing_cam_offset_left")
self.m_camController:SetOffsetInputX(-1)
end)
self:BindInputPlayerAction("marketing_cam_offset_right", function()
logger.info("MarketingCam: marketing_cam_offset_right")
self.m_camController:SetOffsetInputX(1)
end)
self:BindInputPlayerAction("marketing_cam_rot_spd_up", function()
logger.info("MarketingCam: marketing_cam_rot_spd_up")
self.m_camController:ChangeRotationSpeed(1)
end)
self:BindInputPlayerAction("marketing_cam_rot_spd_down", function()
logger.info("MarketingCam: marketing_cam_rot_spd_down")
self.m_camController:ChangeRotationSpeed(-1)
end)
self:BindInputPlayerAction("marketing_cam_trans_spd_up", function()
logger.info("MarketingCam: marketing_cam_trans_spd_up")
self.m_camController:ChangeMoveSpeed(1)
end)
self:BindInputPlayerAction("marketing_cam_trans_spd_down", function()
logger.info("MarketingCam: marketing_cam_trans_spd_down")
self.m_camController:ChangeMoveSpeed(-1)
end)
self:BindInputPlayerAction("marketing_cam_attach_to_obj", function()
logger.info("MarketingCam: marketing_cam_attach_to_obj")
self.m_camController:Attach()
end)
self:BindInputPlayerAction("marketing_cam_detach_to_obj", function()
logger.info("MarketingCam: marketing_cam_detach_to_obj")
self.m_camController:Detach()
end)
self:BindInputPlayerAction("marketing_cam_toggle_attach_mode", function()
logger.info("MarketingCam: marketing_cam_toggle_attach_mode")
self.m_camController:ToggleAttachMode()
end)
self:BindInputPlayerAction("marketing_cam_attach_to_next", function()
logger.info("MarketingCam: marketing_cam_attach_to_next")
self.m_camController:AttachToNextTarget()
end)
self:BindInputPlayerAction("marketing_cam_attach_to_prev", function()
logger.info("MarketingCam: marketing_cam_attach_to_prev")
self.m_camController:AttachToPrevTarget()
end)
self:BindInputPlayerAction("marketing_cam_toggle_space_mode", function()
logger.info("MarketingCam: marketing_cam_toggle_space_mode")
self.m_camController:ToggleMoveSpaceMode()
end)
self:BindInputPlayerAction("marketing_cam_fov_up", function()
logger.info("MarketingCam: marketing_cam_fov_up")
self.m_camController:ChangeFov(1)
end)
self:BindInputPlayerAction("marketing_cam_fov_down", function()
logger.info("MarketingCam: marketing_cam_fov_down")
self.m_camController:ChangeFov(-1)
end)
self:BindInputPlayerAction("marketing_cam_enter_roll_mode", function()
self.m_camController:EnterRollMode()
end)
self:BindInputPlayerAction("marketing_cam_leave_roll_mode", function()
self.m_camController:LeaveRollMode()
end)
self:BindInputPlayerAction("marketing_cam_attach_rot_left", function()
logger.info("MarketingCam: marketing_cam_attach_rot_left")
self.m_camController:SetAttachRotateInputX(-1)
end)
self:BindInputPlayerAction("marketing_cam_attach_rot_right", function()
logger.info("MarketingCam: marketing_cam_attach_rot_right")
self.m_camController:SetAttachRotateInputX(1)
end)
self:BindInputPlayerAction("marketing_cam_height_up", function()
logger.info("MarketingCam: marketing_cam_height_up")
self.m_camController:ChangeHeight(InputManagerInst:GetGamepadTriggerValue(false))
end)
self:BindInputPlayerAction("marketing_cam_height_down", function()
logger.info("MarketingCam: marketing_cam_height_down")
self.m_camController:ChangeHeight(-InputManagerInst:GetGamepadTriggerValue(true))
end)
end
DebugMarketingCameraCtrl.OnClose = HL.Override() << function(self)
CameraUtils:CloseMarketingCamera()
InputManagerInst.enableMarketingCamera = false
end
DebugMarketingCameraCtrl._Update = HL.Method() << function(self)
if not self.m_camController then
self.m_camController = GameInstance.cameraManager:GetMainMarketingCameraController()
end
if not self.m_camController then
return
end
local moveX = InputManagerInst:GetAxis("HorizontalController")
local moveY = InputManagerInst:GetAxis("VerticalController")
if moveX ~= 0 or moveY ~= 0 then
logger.info("MarketingCam: Move", moveX, moveY)
self.m_camController:SetMoveInput(moveX, moveY)
end
local viewX = InputManagerInst:GetAxis("View X")
local viewY = InputManagerInst:GetAxis("View Y")
if viewX ~= 0 or viewY ~= 0 then
logger.info("MarketingCam: View", viewX, viewY)
self.m_camController:SetRotateInput(viewX, viewY)
end
end
HL.Commit(DebugMarketingCameraCtrl)