summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--app/components/debug/debug_vector_arrow.rb2
-rw-r--r--app/components/debug/singleton_debug_vector_arrow.rb3
-rw-r--r--app/components/singleton_camera.rb (renamed from app/components/camera.rb)1
-rw-r--r--app/components/teams/enemy_team.rb1
-rw-r--r--app/components/teams/player_team.rb1
-rw-r--r--app/components/teams/singleton_enemy_team.rb3
-rw-r--r--app/components/teams/singleton_player_team.rb3
-rw-r--r--app/factories/ships/osprey.rb2
-rw-r--r--app/main.rb6
-rw-r--r--app/systems/death.rb4
-rw-r--r--app/systems/debug/debug_render_vector_arrow.rb4
-rw-r--r--app/systems/rules/separation.rb2
-rw-r--r--app/systems/start_game.rb2
13 files changed, 20 insertions, 14 deletions
diff --git a/app/components/debug/debug_vector_arrow.rb b/app/components/debug/debug_vector_arrow.rb
deleted file mode 100644
index e65161d..0000000
--- a/app/components/debug/debug_vector_arrow.rb
+++ /dev/null
@@ -1,2 +0,0 @@
-FF::Cmp.new('DebugVectorArrow',
- length: 1)
diff --git a/app/components/debug/singleton_debug_vector_arrow.rb b/app/components/debug/singleton_debug_vector_arrow.rb
new file mode 100644
index 0000000..f06cd27
--- /dev/null
+++ b/app/components/debug/singleton_debug_vector_arrow.rb
@@ -0,0 +1,3 @@
+FF::Cmp.new('SingletonDebugVectorArrow',
+ singleton: true,
+ length: 1)
diff --git a/app/components/camera.rb b/app/components/singleton_camera.rb
index dc61bae..6d072c1 100644
--- a/app/components/camera.rb
+++ b/app/components/singleton_camera.rb
@@ -1,4 +1,5 @@
FF::Cmp.new('SingletonCamera',
+ singleton: true,
:x, :y,
:zoom, :angle)
diff --git a/app/components/teams/enemy_team.rb b/app/components/teams/enemy_team.rb
deleted file mode 100644
index 9d4e0d1..0000000
--- a/app/components/teams/enemy_team.rb
+++ /dev/null
@@ -1 +0,0 @@
-FF::Cmp.new('EnemyTeam')
diff --git a/app/components/teams/player_team.rb b/app/components/teams/player_team.rb
deleted file mode 100644
index 6e1b126..0000000
--- a/app/components/teams/player_team.rb
+++ /dev/null
@@ -1 +0,0 @@
-FF::Cmp.new('PlayerTeam')
diff --git a/app/components/teams/singleton_enemy_team.rb b/app/components/teams/singleton_enemy_team.rb
new file mode 100644
index 0000000..262d809
--- /dev/null
+++ b/app/components/teams/singleton_enemy_team.rb
@@ -0,0 +1,3 @@
+FF::Cmp.new('SingletonEnemyTeam',
+ singleton: true)
+FF::Cmp::SingletonEnemyTeam.new
diff --git a/app/components/teams/singleton_player_team.rb b/app/components/teams/singleton_player_team.rb
new file mode 100644
index 0000000..22c68ee
--- /dev/null
+++ b/app/components/teams/singleton_player_team.rb
@@ -0,0 +1,3 @@
+FF::Cmp.new('SingletonPlayerTeam',
+ singleton: true)
+FF::Cmp::SingletonPlayerTeam.new
diff --git a/app/factories/ships/osprey.rb b/app/factories/ships/osprey.rb
index 1f57cb1..4dd5874 100644
--- a/app/factories/ships/osprey.rb
+++ b/app/factories/ships/osprey.rb
@@ -13,7 +13,7 @@ class Factory
FF::Cmp::Hp.new(health: 100),
FF::Cmp::CollisionDamage.new(damage: 100),
FF::Cmp::Hitcircle.new(r: 12),
- FF::Cmp::DebugVectorArrow[0],
+ FF::Cmp::SingletonDebugVectorArrow[0],
FF::Cmp::SingletonCamera[0],
)
end
diff --git a/app/main.rb b/app/main.rb
index f5cc908..9056d53 100644
--- a/app/main.rb
+++ b/app/main.rb
@@ -11,11 +11,13 @@ require 'app/components/rules/cohesion.rb'
require 'app/components/rules/alignment.rb'
require 'app/components/rules/separation.rb'
require 'app/components/rules/follow.rb'
-require 'app/components/debug/debug_vector_arrow.rb'
-require 'app/components/camera.rb'
+require 'app/components/debug/singleton_debug_vector_arrow.rb'
+require 'app/components/singleton_camera.rb'
require 'app/components/stats/collision_damage.rb'
require 'app/components/stats/hp.rb'
require 'app/components/hitcircle.rb'
+require 'app/components/teams/singleton_player_team.rb'
+require 'app/components/teams/singleton_enemy_team.rb'
require 'app/systems/init_title_screen.rb'
require 'app/systems/title_screen.rb'
diff --git a/app/systems/death.rb b/app/systems/death.rb
index d9cd792..7c10212 100644
--- a/app/systems/death.rb
+++ b/app/systems/death.rb
@@ -4,11 +4,9 @@ FF::Scn::BoidRules.add(
if hp.health <= 0
component_hash = hp.entities[0].components.clone
component_hash.each_pair do |manager, manager_array|
- next if manager.equal?(FF::Cmp::SingletonCamera)
next if manager.equal?(FF::Cmp::Hp)
- next if manager.equal?(FF::Cmp::DebugVectorArrow)
manager_array.each do |component|
- # unless singleton
+ next if component.respond_to?(:singleton)
component.delete
end
end
diff --git a/app/systems/debug/debug_render_vector_arrow.rb b/app/systems/debug/debug_render_vector_arrow.rb
index ae53d1c..0a0ed62 100644
--- a/app/systems/debug/debug_render_vector_arrow.rb
+++ b/app/systems/debug/debug_render_vector_arrow.rb
@@ -1,8 +1,8 @@
FF::Sys.new('DebugRenderVectorArrow', priority: 100) do
- FF::Cmp::DebugVectorArrow[0].entities.each do |entity|
+ FF::Cmp::SingletonDebugVectorArrow[0].entities.each do |entity|
boid = entity.components[FF::Cmp::Boid][0]
sprite = entity.components[FF::Cmp::Sprite][0]
- length = FF::Cmp::DebugVectorArrow[0].length
+ length = FF::Cmp::SingletonDebugVectorArrow[0].length
#puts "vx: #{boid.vx}"
#puts "cx: #{boid.cx}"
boid_x = 0
diff --git a/app/systems/rules/separation.rb b/app/systems/rules/separation.rb
index 9e223d2..5aeda8a 100644
--- a/app/systems/rules/separation.rb
+++ b/app/systems/rules/separation.rb
@@ -14,7 +14,7 @@ FF::Scn::BoidRules.add(
end
end
- #unless separation.entities[0].components[FF::Cmp::DebugVectorArrow].nil?
+ #unless separation.entities[0].components[FF::Cmp::SingletonDebugVectorArrow].nil?
# puts "newvec: #{newvec}"
# puts "cx: #{boid_update.cx} cy: #{boid_update.cy}"
# puts "vx: #{boid_update.vx} vy: #{boid_update.vy}"
diff --git a/app/systems/start_game.rb b/app/systems/start_game.rb
index 39cc63c..c197863 100644
--- a/app/systems/start_game.rb
+++ b/app/systems/start_game.rb
@@ -8,7 +8,7 @@ FF::Sys.new('StartGame', priority: 50 ) do
FF::Cmp::Title[0].delete
FF::Stg.remove FF::Scn::TitleScreen
- debug_arrow = FF::Cmp::DebugVectorArrow.new(length: 5)
+ debug_arrow = FF::Cmp::SingletonDebugVectorArrow.new(length: 5)
position = [
{x: 100, y: 100},
{x: 500, y: 500},