From df014f61c2a927df0c2c625b79f2cc8e4df30db2 Mon Sep 17 00:00:00 2001 From: _Tradam Date: Wed, 26 May 2021 02:13:07 -0400 Subject: Revert "split off FelFlame" --- app/lib/FelFlame | 1 - app/lib/component_manager.rb | 20 +++++++++ app/lib/components/00_renderable.rb | 16 +++++++ app/lib/components/01_sprite.rb | 44 +++++++++++++++++++ app/lib/components/02_label.rb | 27 ++++++++++++ app/lib/components/03_player_control.rb | 21 +++++++++ app/lib/components/04_map.rb | 21 +++++++++ app/lib/components/05_interactable.rb | 16 +++++++ app/lib/components/06_collidable.rb | 22 ++++++++++ app/lib/components/07_battle.rb | 4 ++ app/lib/components/07_indoor.rb | 4 ++ app/lib/components/07_overworld.rb | 16 +++++++ app/lib/components/debug_singleton.rb | 13 ++++++ app/lib/entity_manager.rb | 63 +++++++++++++++++++++++++++ app/lib/helpers/00_tileset.rb | 49 +++++++++++++++++++++ app/lib/helpers/01_component.rb | 76 +++++++++++++++++++++++++++++++++ app/lib/signatures.rb | 43 +++++++++++++++++++ app/lib/system_manager.rb | 5 +++ app/lib/systems/00_update_levels.rb | 34 +++++++++++++++ app/lib/systems/10_player.rb | 41 ++++++++++++++++++ app/lib/systems/99_render.rb | 37 ++++++++++++++++ app/lib/test.rb | 18 ++++++++ 22 files changed, 590 insertions(+), 1 deletion(-) delete mode 160000 app/lib/FelFlame create mode 100644 app/lib/component_manager.rb create mode 100644 app/lib/components/00_renderable.rb create mode 100644 app/lib/components/01_sprite.rb create mode 100644 app/lib/components/02_label.rb create mode 100644 app/lib/components/03_player_control.rb create mode 100644 app/lib/components/04_map.rb create mode 100644 app/lib/components/05_interactable.rb create mode 100644 app/lib/components/06_collidable.rb create mode 100644 app/lib/components/07_battle.rb create mode 100644 app/lib/components/07_indoor.rb create mode 100644 app/lib/components/07_overworld.rb create mode 100644 app/lib/components/debug_singleton.rb create mode 100644 app/lib/entity_manager.rb create mode 100644 app/lib/helpers/00_tileset.rb create mode 100644 app/lib/helpers/01_component.rb create mode 100644 app/lib/signatures.rb create mode 100644 app/lib/system_manager.rb create mode 100644 app/lib/systems/00_update_levels.rb create mode 100644 app/lib/systems/10_player.rb create mode 100644 app/lib/systems/99_render.rb create mode 100644 app/lib/test.rb (limited to 'app/lib') diff --git a/app/lib/FelFlame b/app/lib/FelFlame deleted file mode 160000 index 7bec71d..0000000 --- a/app/lib/FelFlame +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 7bec71db2680e0503f39c31047f5f90ca89433df diff --git a/app/lib/component_manager.rb b/app/lib/component_manager.rb new file mode 100644 index 0000000..f5261a2 --- /dev/null +++ b/app/lib/component_manager.rb @@ -0,0 +1,20 @@ +#require 'app/ECS/base_component.rb' + +#require 'app/ECS/components/00_test_component.rb' +#require 'app/ECS/components/01_based.rb' + +class Components + class < 1 + return {} + end + + json_tiles = self.get_json_tiles(json_name) + raise Exception.new "Error, json file not a tileset" unless json_tiles['type'] == 'tileset' + return tile_index - json_tiles['tilecount'] if tile_index > json_tiles['tilecount'] + source_height_tiles = (tile_index.to_i / json_tiles['columns'].to_i).to_i# * json_tiles['tileheight'] + { w: json_tiles['tilewidth'], + h: json_tiles['tileheight'], + path: json_tiles['image'].split('mygame/').last.delete('\\'), + source_x: [((tile_index % json_tiles['columns']) - 1) * json_tiles['tilewidth'], 0].max, + # source_y gets special treatment + source_y: [json_tiles['imageheight'] - ((source_height_tiles + 1) * json_tiles['tileheight']), 0].max, + source_w: json_tiles['tilewidth'], + source_h: json_tiles['tileheight'] } + end + end +end diff --git a/app/lib/helpers/01_component.rb b/app/lib/helpers/01_component.rb new file mode 100644 index 0000000..4937ec9 --- /dev/null +++ b/app/lib/helpers/01_component.rb @@ -0,0 +1,76 @@ +class Helper + class BaseComponent + class <= Components::Map.data[key].json['tilesets'].count + end + unless tile.empty? + 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 + $gtk.args.outputs.sprites << tile + end + end + end + end + end + end + end + end + end + end +end diff --git a/app/lib/test.rb b/app/lib/test.rb new file mode 100644 index 0000000..13fd401 --- /dev/null +++ b/app/lib/test.rb @@ -0,0 +1,18 @@ +require_relative './entity_manager.rb' +require_relative './component_manager.rb' +require_relative './system_manager.rb' + +move = '0001'.to_i(2) +base = '0010'.to_i(2) +both = '0011'.to_i(2) +Entity.new(move) +Entity.new(base) +Entity.new(both) + +3.times do + Systems.constants.each do |constant| + puts "|----#{constant.to_s.upcase}----|" + Systems::const_get(constant).run + end + #ECS::Entity.destroy_entity(ECS::Entity.all.last.id) unless ECS::Entity.all.empty? +end -- cgit v1.2.3