Facebook
From chivenos#0001, 3 Years ago, written in Lua.
Embed
Download Paste or View Raw
Hits: 72
  1. function setPosition(mousePos,part,target,surface) --Snapping the parts
  2.         if(target == nil) then 
  3.                 return mousePos + Vector3.new(0,part.Size.Y/2,0)
  4.                
  5.         elseif(target.Parent.Name == "BuildPartModel") then
  6.                 return mousePos + Vector3.new(0,part.Size.Y/2,0)
  7.                
  8.         elseif(surface == "Right" or surface == "Left") then
  9.                 local targetPosX = target.Position.X
  10.                 local targetSize = target.Size
  11.                 local targetEdgePos
  12.                
  13.                 if(mousePos.X >= targetPosX) then
  14.                         targetEdgePos = targetPosX + targetSize.X/2 + part.Size.X/2
  15.                         return Vector3.new(targetEdgePos,target.Position.Y,target.Position.Z)
  16.                        
  17.                 else
  18.                         targetEdgePos = targetPosX - targetSize.X/2 - part.Size.X/2
  19.                         return Vector3.new(targetEdgePos,target.Position.Y,target.Position.Z)
  20.                 end
  21.                
  22.         elseif(surface == "Back" or surface == "Front") then
  23.                 local targetPosZ = target.Position.Z
  24.                 local targetSize = target.Size
  25.                 local targetEdgePos
  26.  
  27.                 if(mousePos.Z >= targetPosZ) then
  28.                         targetEdgePos = targetPosZ + targetSize.Z/2 + part.Size.Z/2
  29.                         return Vector3.new(target.position.X,target.Position.Y,targetEdgePos)
  30.  
  31.                 else
  32.                         targetEdgePos = targetPosZ - targetSize.Z/2 - part.Size.Z/2
  33.                         return Vector3.new(target.position.X,target.Position.Y,targetEdgePos)
  34.                 end
  35.                
  36.         elseif(surface == "Top" or surface == "Bottom") then
  37.                 return  Vector3.new(target.Position.X,target.Position.Y + target.Size.Y/2 + part.Size.Y/2,target.Position.Z)
  38.         end
  39. end