I am creating a tool where players can move different furniture around the map by left clicking on the furniture and then placing the furniture by moving their mouse to their desired location and letting go of the left click.
I ONLY want the furniture to move on the X axis but for some reason it is changing the rotation of the model as well. How can I make it only move on the X and/or Z axis and NOT affect rotation?
My code in a LocalScript
local player = game.Players.LocalPlayer
local mouse = player:GetMouse()
local moveEvent = nil --We need to store the event so we may disconnect when left-click is released
local firstPosition = nil --Initialize to later store the brick's position
local finalPosition = nil --Initialize to later store the brick's moving position
local target = nil
mouse.Button1Down:connect(function()
target = mouse.Target
if target and target.Parent.Name == "Furniture" then
--target.Parent.PrimaryPart = target --Each model will have a target beforehand
mouse.TargetFilter = target
firstPosition = target.Position
--print('firstPosi is', firstPosition)
moveEvent = mouse.Move:connect(function()
--Nothing here as of now, placeholder
end)
end
end)
mouse.Button1Up:connect(function()
finalPosition = mouse.Hit.p
--print('mouse up first pos', firstPosition)
--print('final minus first pos', finalPosition.x - firstPosition.x)
--print('final minus first pos ABS', math.abs(finalPosition.x - firstPosition.x))
if math.abs(finalPosition.x - firstPosition.x) > 2 then --The position of the first click compared to when the player lets go of the left click has to be more than 2 studs or whatever
print('yes')
--target.Parent.PrimaryPart.Position.x = finalPosition.x --Only moves the individual part and not the whole model so this does not work D:
--target.Parent.PrimaryPart.Position.z = finalPosition.z --Same issue but on z axis
target.Parent:SetPrimaryPartCFrame(mouse.Hit)
end
end)
