summaryrefslogtreecommitdiffhomepage
path: root/lib/rules/seperation.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rules/seperation.rb')
-rw-r--r--lib/rules/seperation.rb17
1 files changed, 16 insertions, 1 deletions
diff --git a/lib/rules/seperation.rb b/lib/rules/seperation.rb
index 20fd2e6..65493e8 100644
--- a/lib/rules/seperation.rb
+++ b/lib/rules/seperation.rb
@@ -1,5 +1,6 @@
FF::Sys.new('Seperation', priority: 50) do
- FF::Cmp::Boids.each do |boid_update|
+ FF::Cmp::Fish[0].entities.each do |ent|
+ boid_update = ent.components[FF::Cmp::Boids].first
newvec = [0.0,0.0]
FF::Cmp::Boids.each do |boid_check|
next if boid_check == boid_update
@@ -11,6 +12,20 @@ FF::Sys.new('Seperation', priority: 50) do
boid_update.cx += newvec[0] / $config.seperation
boid_update.cy += newvec[1] / $config.seperation
end
+ FF::Cmp::Piranha[0].entities.each do |ent|
+ boid_update = ent.components[FF::Cmp::Boids].first
+ newvec = [0.0,0.0]
+ FF::Cmp::Piranha[0].entities.each do |ent2|
+ boid_check = ent2.components[FF::Cmp::Boids].first
+ next if boid_check == boid_update
+ if Math.sqrt(((-boid_check.x + boid_update.x)**2) + ((-boid_check.y + boid_update.y)**2)).abs < $config.seperation_distance
+ newvec[0] -= boid_check.x - boid_update.x
+ newvec[1] -= boid_check.y - boid_update.y
+ end
+ end
+ boid_update.cx += newvec[0] / ($config.seperation / 10)
+ boid_update.cy += newvec[1] / ($config.seperation / 10)
+ end
end
=begin