diff options
| author | realtradam <[email protected]> | 2021-05-18 04:49:47 -0400 |
|---|---|---|
| committer | realtradam <[email protected]> | 2021-05-18 04:49:47 -0400 |
| commit | 120b693ffd02bc5c7f41ff2b9657facc7117daae (patch) | |
| tree | 59e9f982dc2ee994cbbb65411065b35445048502 /app/ECS/systems | |
| parent | 24524ad0b1c7a2aeea0bad28092e946cef8026fa (diff) | |
| download | typemon-code-120b693ffd02bc5c7f41ff2b9657facc7117daae.tar.gz typemon-code-120b693ffd02bc5c7f41ff2b9657facc7117daae.zip | |
.
Diffstat (limited to 'app/ECS/systems')
| -rw-r--r-- | app/ECS/systems/00_player.rb | 21 | ||||
| -rw-r--r-- | app/ECS/systems/99_render.rb | 37 |
2 files changed, 36 insertions, 22 deletions
diff --git a/app/ECS/systems/00_player.rb b/app/ECS/systems/00_player.rb index a78137a..9b03def 100644 --- a/app/ECS/systems/00_player.rb +++ b/app/ECS/systems/00_player.rb @@ -1,15 +1,12 @@ -class ECS - class Systems - class Player - def self.run - ECS::Components::PlayerControl.data.each do |id, data| - if !(ECS::Components::Renderable.id & ECS::Entity.signatures[id]).zero? - ECS::Components::Sprite.data[id].y += 10 if $gtk.args.inputs.keyboard.key_held.send(data.north) - ECS::Components::Sprite.data[id].y -= 10 if $gtk.args.inputs.keyboard.key_held.send(data.south) - ECS::Components::Sprite.data[id].x += 10 if $gtk.args.inputs.keyboard.key_held.send(data.east) - ECS::Components::Sprite.data[id].x -= 10 if $gtk.args.inputs.keyboard.key_held.send(data.west) - #$gtk.args.outputs.labels << ECS::Components::Label.data[id].vars - end +class Systems + class Player + def self.run + Components::PlayerControl.data.each do |id, data| + if !(Components::Sprite.id & Entity.signatures[id]).zero? + Components::Sprite.data[id].y += 10 if $gtk.args.inputs.keyboard.key_held.send(data.north) + Components::Sprite.data[id].y -= 10 if $gtk.args.inputs.keyboard.key_held.send(data.south) + Components::Sprite.data[id].x += 10 if $gtk.args.inputs.keyboard.key_held.send(data.east) + Components::Sprite.data[id].x -= 10 if $gtk.args.inputs.keyboard.key_held.send(data.west) end end end diff --git a/app/ECS/systems/99_render.rb b/app/ECS/systems/99_render.rb index 0751bc2..37b562a 100644 --- a/app/ECS/systems/99_render.rb +++ b/app/ECS/systems/99_render.rb @@ -1,13 +1,30 @@ -class ECS - class Systems - class Render - def self.run - ECS::Components::Renderable.data.sort_by { |v| v[1].z }.each do |key, data| - if !(ECS::Components::Sprite.id & ECS::Entity.signatures[key]).zero? - #ECS::Components::Based.data[key].x += 2 - $gtk.args.outputs.sprites << ECS::Components::Sprite.data[key].set - elsif !(ECS::Components::Label.id & ECS::Entity.signatures[key]).zero? - $gtk.args.outputs.labels << ECS::Components::Label.data[key].set +class Systems + class Render + def self.run + Components::Renderable.data.sort_by { |v| v[1].z }.each do |key, data| + if !(Components::Sprite.id & Entity.signatures[key]).zero? + #Components::Based.data[key].x += 2 + $gtk.args.outputs.sprites << Components::Sprite.data[key].set + elsif !(Components::Label.id & Entity.signatures[key]).zero? + $gtk.args.outputs.labels << Components::Label.data[key].set + elsif !(Components::Map.id & Entity.signatures[key]).zero? + #puts Components::Map.data[key].json.inspect + Components::Map.data[key].json['layers'].each do |layer| + layer['chunks'].each do |chunk| + chunk['data'].each_slice(chunk['width']).with_index do |row, row_index| + row.each_with_index do |tile, column_index| + unless tile.zero? + temp = Helper.get_tile(json_name: 'tileset_Room_Builder_16x16', tile_index: tile) + temp[:x] = Components::Map.data[key].x + (Components::Map.data[key].tilewidth * column_index) + chunk['x'] + temp[:y] = Components::Map.data[key].y - (Components::Map.data[key].tileheight * (row_index + 1)) - chunk['y'] #REVERSED + temp[:w] = Components::Map.data[key].tilewidth + temp[:h] = Components::Map.data[key].tileheight + #puts60 temp.inspect + $gtk.args.outputs.sprites << temp + end + end + end + end end end end |
