I am making a placement system for my game but when I try to place blocks that are rotated (not axis-alinged) the offsets break.
local function GetPlacementPosition(gridSize, partSize, position, normal, target) local gridCorner = Vector3.new( math.floor(position.X / gridSize + 0.5) * gridSize, math.floor(position.Y / gridSize + 0.5) * gridSize, math.floor(position.Z / gridSize + 0.5) * gridSize ) return gridCorner + partSize * normal / 2 end local pos = GetPlacementPosition(grid.Value, preview.Parts.Hitbox.Size, target, ray.Normal, plrMouse.Target) local cf = CFrame.new(clamp pos to plot walls) preview:SetPrimaryPartCFrame(cf)
Rotated 90 deg: prnt.sc/131hf0l
Rotated 45 deg: prnt.sc/131hdtp
If the links dont work try copying them and pasting on your browser's search bar