summaryrefslogtreecommitdiffhomepage
path: root/app/ECS/systems
diff options
context:
space:
mode:
authorrealtradam <[email protected]>2021-05-19 02:23:17 -0400
committerrealtradam <[email protected]>2021-05-19 02:23:17 -0400
commit490b20123c75cf8eb5de7039993cb704e3d7a0c8 (patch)
tree302caf2be626efd0ac14baed36b8201bc49d0795 /app/ECS/systems
parent120b693ffd02bc5c7f41ff2b9657facc7117daae (diff)
downloadtypemon-code-490b20123c75cf8eb5de7039993cb704e3d7a0c8.tar.gz
typemon-code-490b20123c75cf8eb5de7039993cb704e3d7a0c8.zip
working json to sprite conversion
Diffstat (limited to 'app/ECS/systems')
-rw-r--r--app/ECS/systems/00_player.rb4
-rw-r--r--app/ECS/systems/99_render.rb19
2 files changed, 13 insertions, 10 deletions
diff --git a/app/ECS/systems/00_player.rb b/app/ECS/systems/00_player.rb
index 9b03def..0a0492a 100644
--- a/app/ECS/systems/00_player.rb
+++ b/app/ECS/systems/00_player.rb
@@ -3,8 +3,8 @@ class Systems
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].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
diff --git a/app/ECS/systems/99_render.rb b/app/ECS/systems/99_render.rb
index 37b562a..a2f697b 100644
--- a/app/ECS/systems/99_render.rb
+++ b/app/ECS/systems/99_render.rb
@@ -3,24 +3,27 @@ class Systems
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
+ iter = 0
+ loop do
+ tile = Helper.get_tile(json_name: Components::Map.data[key].json['tilesets'][iter]['source'].split('/').last.delete('\\').delete_suffix('.tsx'), tile_index: tile)
+ break if tile.is_a?(Hash)
+ raise Exception.new "#{Components::Map.data[key].json['json_name']} not valid map, exceeded tile range" if (iter += 1) > layer['chunks'].count
+ end
+ tile[:x] = Components::Map.data[key].x + (Components::Map.data[key].tilewidth * column_index) + chunk['x']
+ tile[:y] = Components::Map.data[key].y + (Components::Map.data[key].tileheight * (row_index)) + chunk['y']
+ tile[:w] = Components::Map.data[key].tilewidth
+ tile[:h] = Components::Map.data[key].tileheight
#puts60 temp.inspect
- $gtk.args.outputs.sprites << temp
+ $gtk.args.outputs.sprites << tile
end
end
end