Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local startPos = Vector3.new(330, 78, 468)
- local endPos = Vector3.new(288, 126, 549)
- local mirrorSide = "right"
- local regionWidth = math.abs(startPos.X - endPos.X)
- local baseOffset = regionWidth + 3
- local mirrorOffset = mirrorSide == "left" and baseOffset or -baseOffset
- local regionCenter = Vector3.new(
- (startPos.X + endPos.X) / 2,
- (startPos.Y + endPos.Y) / 2,
- (startPos.Z + endPos.Z) / 2
- )
- local regionSize = Vector3.new(
- regionWidth + 1,
- math.abs(startPos.Y - endPos.Y) + 1,
- math.abs(startPos.Z - endPos.Z) + 1
- )
- local blocks = BlockService.getNearbyBlocks(regionCenter, regionSize, nil)
- if not blocks then return end
- local placedPositions = {}
- for _, block in ipairs(blocks) do
- local pos = block.position
- if not pos then continue end
- local mirroredX = (regionCenter.X - (pos.X - regionCenter.X)) + mirrorOffset
- local mirroredPos = Vector3.new(mirroredX, pos.Y, pos.Z)
- local key = mirroredPos.X .. "," .. mirroredPos.Y .. "," .. mirroredPos.Z
- if placedPositions[key] or BlockService.getBlockAt(mirroredPos) then
- continue
- end
- BlockService.placeBlock(block.blockType, mirroredPos)
- placedPositions[key] = true
- end
Advertisement
Add Comment
Please, Sign In to add comment