I made a script that spawns trees and then moves them if the leaves are touching other leaves. It spawns trees but I need it to repeat until the leaves are not touching
Excerpt of script
if Grnd.Material == Enum.Material.Grass and Grnd.BrickColor == BrickColor.new("Forest green") then
for i = 1,10 do
wait()
treecopy = basetree:clone()
treecopy.Parent = frm
treecopy:SetPrimaryPartCFrame(Grnd.CFrame * CFrame.new(math.random(-25, 25), 0 + 5, (math.random(-25, 25))))
local results = treecopy.Leaves:GetTouchingParts()
local trees = {}
for i, treeCluster in pairs(results) do
table.insert(trees, treeCluster)
if treeCluster.Name == "Leaves" then
wait()
treecopy:SetPrimaryPartCFrame(treecopy.Trunk.CFrame * CFrame.new(math.random(-5, 5), 0, (math.random(-5, 5))))
treecopy.Leaves.BrickColor = BrickColor.new("Lime green")
end
end
end
end
I tried adding this after changing the color on line 14 but it doesn't work
repeat
treecopy:SetPrimaryPartCFrame(treecopy.Trunk.CFrame * CFrame.new(math.random(-5, 5), 0, (math.random(-5, 5))))
wait()
until treeCluster.Name ~= "Leaves"
And tried this also
until results ~= "Leaves"
This script does move it and change the color(so I can see which ones were moved) but it will still place the trees intersecting with other trees.
