Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

editor: Fix EDF custom elements rotation issues on undo/manual Adjustment #546

Merged
merged 2 commits into from
Sep 16, 2024
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 13 additions & 7 deletions [editor]/move_keyboard/move_keyboard.lua
Original file line number Diff line number Diff line change
Expand Up @@ -190,9 +190,9 @@ local function onClientRender_keyboard()
else
local tempRotX, tempRotY, tempRotZ = rotX, rotY, rotZ
if (not tempRotX) then return false end
q8X marked this conversation as resolved.
Show resolved Hide resolved

local yaw, pitch, roll = 0, 0, 0

-- yaw
if (getCommandTogSTATE("element_move_right")) then
yaw = speed
Expand All @@ -206,14 +206,14 @@ local function onClientRender_keyboard()
elseif (getCommandTogSTATE("element_move_downwards")) then
pitch = -speed
end

-- roll
if (getCommandTogSTATE("element_move_forward")) then
roll = speed
elseif (getCommandTogSTATE("element_move_backward")) then
roll = -speed
end

-- Perform rotation about one axis at a time
if yaw ~= 0 then
tempRotX, tempRotY, tempRotZ = exports.editor_main:applyIncrementalRotation(selectedElement, "yaw", yaw, world_space)
Expand Down Expand Up @@ -289,7 +289,7 @@ local function onClientRender_keyboard()
if (not tempRotX) then return false end

local yaw, pitch, roll = 0, 0, 0

-- yaw
if (getCommandTogSTATE("element_move_right")) then
yaw = speed
Expand All @@ -303,14 +303,14 @@ local function onClientRender_keyboard()
elseif (getCommandTogSTATE("element_move_downwards")) then
pitch = -speed
end

-- roll
if (getCommandTogSTATE("element_move_forward")) then
roll = speed
elseif (getCommandTogSTATE("element_move_backward")) then
roll = -speed
end

-- Perform rotation about one axis at a time
if yaw ~= 0 then
tempRotX, tempRotY, tempRotZ = exports.editor_main:applyIncrementalRotation(selectedElement, "yaw", yaw, world_space)
Expand Down Expand Up @@ -404,6 +404,9 @@ function attachElement(element)
posX, posY, posZ = getElementPosition(element)
movementType = MOVEMENT_MOVE

-- Clear the quat rotation when attaching to element
exports.editor_main:clearElementQuat(selectedElement)

if (getElementType(element) == "vehicle") or (getElementType(element) == "object") then
rotX, rotY, rotZ = getElementRotation(element, "ZYX")
elseif (getElementType(element) == "player") or (getElementType(element) == "ped") then
Expand All @@ -420,6 +423,9 @@ function detachElement()
if (selectedElement) then
disable()

-- Clear the quat rotation when detaching from element
exports.editor_main:clearElementQuat(selectedElement)

-- fix for local elements
if not isElementLocal(selectedElement) then
-- sync position/rotation
Expand Down