summaryrefslogtreecommitdiffhomepage
path: root/app/systems/rules/minimum_speed.rb
blob: a78ee211d916aaeb1a2e543024534d28690351e0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
FF::Scn::BoidRules.add(
  FF::Sys.new('BoidMinimumSpeed', priority: 98) do
    FF::Cmp::BoidMinimumSpeed.each do |minspeed_component|
      boid = minspeed_component.entities[0].components[FF::Cmp::Boid][0]
      mag = Math.sqrt((boid.vx ** 2) + (boid.vy ** 2))
      if mag < minspeed_component.speed
        boid.vx = (boid.vx / mag) * minspeed_component.speed
        boid.vy = (boid.vy / mag) * minspeed_component.speed
      end
    end
  end
)