Hey Devs!
I am currently making a node-based pathfinding system. I am trying to implement a way to get neighbours of a position of a node.
What it would do is wait and if all nodes have been added then add the neighbours. The code below is trying to detect if there is a node between the minimum spacing and maximum spacing of all the 3D ways for a node to be.
The problem is that the if statement still passes even if the supposed neighbour node is further away than the MaxSpacing variable allows. I also believe that there is a better, more optimized way to implement this but I simply cannot think of anything at all.
All help is appreciated! Thanks!
local MinSpacing = 10
local MaxSpacing = 50
if (NewNode.Position + Vector3.new(MinSpacing,0,0)).Magnitude <= v.Position.Magnitude and v.Position.Magnitude <= (NewNode.Position + Vector3.new(MaxSpacing,0,0)).Magnitude
or (NewNode.Position + Vector3.new(0,MinSpacing,0)).Magnitude <= v.Position.Magnitude and v.Position.Magnitude <= (NewNode.Position + Vector3.new(0,MaxSpacing,0)).Magnitude
or (NewNode.Position + Vector3.new(0,0,MinSpacing)).Magnitude <= v.Position.Magnitude and v.Position.Magnitude <= (NewNode.Position + Vector3.new(0,0,MaxSpacing)).Magnitude
or (NewNode.Position + Vector3.new(-MinSpacing,0,0)).Magnitude <= v.Position.Magnitude and v.Position.Magnitude <= (NewNode.Position + Vector3.new(-MaxSpacing,0,0)).Magnitude
or (NewNode.Position + Vector3.new(0,-MinSpacing,0)).Magnitude <= v.Position.Magnitude and v.Position.Magnitude <= (NewNode.Position + Vector3.new(0,-MaxSpacing,0)).Magnitude
or (NewNode.Position + Vector3.new(0,0,-MinSpacing)).Magnitude <= v.Position.Magnitude and v.Position.Magnitude <= (NewNode.Position + Vector3.new(0,0,-MaxSpacing)).Magnitude
or (NewNode.Position + Vector3.new(MinSpacing,0,MinSpacing)).Magnitude <= v.Position.Magnitude and v.Position.Magnitude <= (NewNode.Position + Vector3.new(MaxSpacing,0,MaxSpacing)).Magnitude
or (NewNode.Position + Vector3.new(MinSpacing,0,-MinSpacing)).Magnitude <= v.Position.Magnitude and v.Position.Magnitude <= (NewNode.Position + Vector3.new(MaxSpacing,0,-MaxSpacing)).Magnitude
or (NewNode.Position + Vector3.new(-MinSpacing,0,-MinSpacing)).Magnitude <= v.Position.Magnitude and v.Position.Magnitude <= (NewNode.Position + Vector3.new(-MaxSpacing,0,-MaxSpacing)).Magnitude
or (NewNode.Position + Vector3.new(-MinSpacing,0,MinSpacing)).Magnitude <= v.Position.Magnitude and v.Position.Magnitude <= (NewNode.Position + Vector3.new(-MaxSpacing,0,MaxSpacing)).Magnitude
or (NewNode.Position + Vector3.new(MinSpacing,MinSpacing,0)).Magnitude <= v.Position.Magnitude and v.Position.Magnitude <= (NewNode.Position + Vector3.new(MaxSpacing,MaxSpacing,0)).Magnitude
or (NewNode.Position + Vector3.new(-MinSpacing,MinSpacing,0)).Magnitude <= v.Position.Magnitude and v.Position.Magnitude <= (NewNode.Position + Vector3.new(-MaxSpacing,MaxSpacing,0)).Magnitude
or (NewNode.Position + Vector3.new(0,MinSpacing,MinSpacing)).Magnitude <= v.Position.Magnitude and v.Position.Magnitude <= (NewNode.Position + Vector3.new(0,MaxSpacing,MaxSpacing)).Magnitude
or (NewNode.Position + Vector3.new(0,MinSpacing,-MinSpacing)).Magnitude <= v.Position.Magnitude and v.Position.Magnitude <= (NewNode.Position + Vector3.new(0,MaxSpacing,-MaxSpacing)).Magnitude
or (NewNode.Position + Vector3.new(MinSpacing,MinSpacing,MinSpacing)).Magnitude <= v.Position.Magnitude and v.Position.Magnitude <= (NewNode.Position + Vector3.new(MaxSpacing,MaxSpacing,MaxSpacing)).Magnitude
or (NewNode.Position + Vector3.new(MinSpacing,MinSpacing,-MinSpacing)).Magnitude <= v.Position.Magnitude and v.Position.Magnitude <= (NewNode.Position + Vector3.new(MaxSpacing,MaxSpacing,-MaxSpacing)).Magnitude
or (NewNode.Position + Vector3.new(-MinSpacing,MinSpacing,MinSpacing)).Magnitude <= v.Position.Magnitude and v.Position.Magnitude <= (NewNode.Position + Vector3.new(-MaxSpacing,MaxSpacing,MaxSpacing)).Magnitude
or (NewNode.Position + Vector3.new(-MinSpacing,MinSpacing,-MinSpacing)).Magnitude <= v.Position.Magnitude and v.Position.Magnitude <= (NewNode.Position + Vector3.new(-MaxSpacing,MaxSpacing,-MaxSpacing)).Magnitude
or (NewNode.Position + Vector3.new(MinSpacing,-MinSpacing,0)).Magnitude <= v.Position.Magnitude and v.Position.Magnitude <= (NewNode.Position + Vector3.new(MaxSpacing,-MaxSpacing,0)).Magnitude
or (NewNode.Position + Vector3.new(-MinSpacing,-MinSpacing,0)).Magnitude <= v.Position.Magnitude and v.Position.Magnitude <= (NewNode.Position + Vector3.new(-MaxSpacing,-MaxSpacing,0)).Magnitude
or (NewNode.Position + Vector3.new(0,-MinSpacing,MinSpacing)).Magnitude <= v.Position.Magnitude and v.Position.Magnitude <= (NewNode.Position + Vector3.new(0,-MaxSpacing,MaxSpacing)).Magnitude
or (NewNode.Position + Vector3.new(0,-MinSpacing,-MinSpacing)).Magnitude <= v.Position.Magnitude and v.Position.Magnitude <= (NewNode.Position + Vector3.new(0,-MaxSpacing,-MaxSpacing)).Magnitude
or (NewNode.Position + Vector3.new(MinSpacing,-MinSpacing,MinSpacing)).Magnitude <= v.Position.Magnitude and v.Position.Magnitude <= (NewNode.Position + Vector3.new(MaxSpacing,-MaxSpacing,MaxSpacing)).Magnitude
or (NewNode.Position + Vector3.new(MinSpacing,-MinSpacing,-MinSpacing)).Magnitude <= v.Position.Magnitude and v.Position.Magnitude <= (NewNode.Position + Vector3.new(MaxSpacing,-MaxSpacing,-MaxSpacing)).Magnitude
or (NewNode.Position + Vector3.new(-MinSpacing,-MinSpacing,MinSpacing)).Magnitude <= v.Position.Magnitude and v.Position.Magnitude <= (NewNode.Position + Vector3.new(-MaxSpacing,-MaxSpacing,MaxSpacing)).Magnitude
or (NewNode.Position + Vector3.new(-MinSpacing,-MinSpacing,-MinSpacing)).Magnitude <= v.Position.Magnitude and v.Position.Magnitude <= (NewNode.Position + Vector3.new(-MaxSpacing,-MaxSpacing,-MaxSpacing)).Magnitude then