Hello everyone,
I’ve been dealing with this problem for a couple of hours and I finally gave up.
The Problem : Well I created a model of a Tree and I want to spawn it around the border, well I managed to do that but I want to have some king of distance between the trees so that wouldn’t collide with each other.
can anyone help me with that?
Code:
local Border = {
MinX = -500,
MaxX = 500,
MinY = 30,
MaxY = 34.5,
MinZ = -500,
MaxZ = 500
}
local MaxTrees = 200
local TreeRespawnTimeMin = 10 --60
local TreeRespawnTimeMax = 20 --180
local DistanceBetweenTrees = 12
while true do
wait(0.1)--[[.random(RespawnTimeMin, RespawnTimeMax)]]
if #game.Workspace.GameTrees:GetChildren() < maxTrees then
--Models
local Tree = TreeModel
local TreeClone = Tree:Clone()
--Positioning
TreeClone.Parent = game.Workspace.GameTrees
TreeClone:PivotTo(CFrame.new(math.random(border.MinX, border.MaxX), math.random(border.MinY, border.MaxY), math.random(border.MinZ,border.MaxZ)))
--args
local distX = 0
local distZ = 0
local bool = true
repeat
wait(0.1)
for i,v in pairs(game.Workspace.GameTrees:GetChildren()) do
distX = math.abs(v.PrimaryPart.Position.X - TreeClone.PrimaryPart.Position.X)
distZ = math.abs(v.PrimaryPart.Position.Z - TreeClone.PrimaryPart.Position.Z)
wait(0.1)
print("----------------------------")
print("dist X:" .. distX)
print("dist Z:" .. distZ)
print("----------------------------")
if distX < DistanceBetweenTrees and distZ < DistanceBetweenTrees then
--TreeClone:PivotTo(CFrame.new(math.random(border.MinX, border.MaxX), math.random(border.MinY, border.MaxY), math.random(border.MinZ,border.MaxZ)))
bool = false
end
end
if not bool then
TreeClone:PivotTo(CFrame.new(math.random(border.MinX, border.MaxX), math.random(border.MinY, border.MaxY), math.random(border.MinZ,border.MaxZ)))
end
until(distX > DistanceBetweenTrees and distZ > DistanceBetweenTrees)
print(TreeClone:GetPivot())
end
end