From fee80f42f0889f2d484e25f4366f14b68c65ba70 Mon Sep 17 00:00:00 2001 From: realtradam Date: Wed, 19 May 2021 05:42:53 -0400 Subject: fully working map import --- app/ECS/components/00_renderable.rb | 2 +- app/ECS/components/05_interactable.rb | 16 ++++++++++++++++ app/ECS/components/05_map_object.rb | 16 ---------------- app/ECS/components/06_grid_singleton.rb | 16 ---------------- app/ECS/components/06_level.rb | 25 +++++++++++++++++++++++++ app/ECS/components/07_collidable.rb | 22 ++++++++++++++++++++++ app/ECS/components/debug_singleton.rb | 13 +++++++++++++ 7 files changed, 77 insertions(+), 33 deletions(-) create mode 100644 app/ECS/components/05_interactable.rb delete mode 100644 app/ECS/components/05_map_object.rb delete mode 100644 app/ECS/components/06_grid_singleton.rb create mode 100644 app/ECS/components/06_level.rb create mode 100644 app/ECS/components/07_collidable.rb create mode 100644 app/ECS/components/debug_singleton.rb (limited to 'app/ECS/components') diff --git a/app/ECS/components/00_renderable.rb b/app/ECS/components/00_renderable.rb index 270e5f9..4008691 100644 --- a/app/ECS/components/00_renderable.rb +++ b/app/ECS/components/00_renderable.rb @@ -4,7 +4,7 @@ class Components attr_accessor :z def initialize - @z = z + @z = 0 end def set(**opts) diff --git a/app/ECS/components/05_interactable.rb b/app/ECS/components/05_interactable.rb new file mode 100644 index 0000000..305bb02 --- /dev/null +++ b/app/ECS/components/05_interactable.rb @@ -0,0 +1,16 @@ +class Components + # If an entity can be rendered on screen + class Interactable < BaseComponent + attr_accessor :z + + def initialize + @z = z + end + + def set(**opts) + opts.each do |key, value| + self.send "#{key}=", value + end + end + end +end diff --git a/app/ECS/components/05_map_object.rb b/app/ECS/components/05_map_object.rb deleted file mode 100644 index 270e5f9..0000000 --- a/app/ECS/components/05_map_object.rb +++ /dev/null @@ -1,16 +0,0 @@ -class Components - # If an entity can be rendered on screen - class Renderable < BaseComponent - attr_accessor :z - - def initialize - @z = z - end - - def set(**opts) - opts.each do |key, value| - self.send "#{key}=", value - end - end - end -end diff --git a/app/ECS/components/06_grid_singleton.rb b/app/ECS/components/06_grid_singleton.rb deleted file mode 100644 index 392d770..0000000 --- a/app/ECS/components/06_grid_singleton.rb +++ /dev/null @@ -1,16 +0,0 @@ -class Components - # If an entity can be rendered on screen - class GridSingleton < BaseComponent - attr_accessor :z - - def initialize - @z = 0 - end - - def set(**opts) - opts.each do |key, value| - self.send "#{key}=", value - end - end - end -end diff --git a/app/ECS/components/06_level.rb b/app/ECS/components/06_level.rb new file mode 100644 index 0000000..4d692e6 --- /dev/null +++ b/app/ECS/components/06_level.rb @@ -0,0 +1,25 @@ +class Components + # If an entity can be rendered on screen + class Level < BaseComponent + attr_accessor :z + + def initialize + @grid = [[]] #Array.new(1) { Array.new(1) } + end + + def set(x: x, y: y, **opts) + smart_array(x, y).merge(opts) + end + + # Things that the smart_array holds + # + # player: is the player in the square? + # hitbox: true/false + # interact: id/false + def smart_array(x, y) + @grid[x] = [] if @grid[x].nil? + @grix[x][y] = {} if @grid[x][y].nil? + @grid[x][y] + end + end +end diff --git a/app/ECS/components/07_collidable.rb b/app/ECS/components/07_collidable.rb new file mode 100644 index 0000000..207e138 --- /dev/null +++ b/app/ECS/components/07_collidable.rb @@ -0,0 +1,22 @@ +class Components + # If an entity can be rendered on screen + class Collidable < BaseComponent + class <