diff options
| author | realtradam <[email protected]> | 2021-12-19 22:51:56 -0500 |
|---|---|---|
| committer | realtradam <[email protected]> | 2021-12-19 22:51:56 -0500 |
| commit | b203083dc920985da2e44e8bcfd6079ce2a900ba (patch) | |
| tree | 991383255cf8aae029229c079760b3f707bb7e14 /app/systems/rules | |
| parent | 0c2d73d8a43d8aab8f6549a738084a3f4d8549ce (diff) | |
| download | SteelWings-b203083dc920985da2e44e8bcfd6079ce2a900ba.tar.gz SteelWings-b203083dc920985da2e44e8bcfd6079ce2a900ba.zip | |
minimum speed component
Diffstat (limited to 'app/systems/rules')
| -rw-r--r-- | app/systems/rules/minimum_speed.rb | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/app/systems/rules/minimum_speed.rb b/app/systems/rules/minimum_speed.rb new file mode 100644 index 0000000..a78ee21 --- /dev/null +++ b/app/systems/rules/minimum_speed.rb @@ -0,0 +1,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 +) + |
