From 6443ce770c9df27050069158759277f0c8150f60 Mon Sep 17 00:00:00 2001 From: arngo <27396817+arngo@users.noreply.github.com> Date: Mon, 24 Jan 2022 23:22:29 -0500 Subject: skeleton code for level loading system --- main.rb | 1 + src/levels.rb | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 src/levels.rb diff --git a/main.rb b/main.rb index 5fe7b00..348c108 100644 --- a/main.rb +++ b/main.rb @@ -1,5 +1,6 @@ require 'src/init.rb' require 'src/helper.rb' +require 'src/levels.rb' require 'src/logic.rb' require 'src/loop.rb' diff --git a/src/levels.rb b/src/levels.rb new file mode 100644 index 0000000..77f8b7f --- /dev/null +++ b/src/levels.rb @@ -0,0 +1,38 @@ +FECS::Cmp.new('CurrentLevel', level: 0) + +@current_level = FECS::Cmp::CurrentLevel.new + +@levels = [] + +level0 = { + start: [0,0], + scissor_dimensions: [300,300], + #scissor_path: [], + end: [40,40,10,10], + walls: [ + [250,250,250,150], + [350,200,50,350], + [70,470,200,200], + [350,200,50,350], + [470,470,200,200] + ], +} + +@levels.push(level0) + +FECS::Sys.new('ConstructLevel') do + # use current_level component to know which level from levels array to load + # create entities e.g. walls + # set properties for scissor box + # set properties for end goal zone + # move player to start +end + +FECS::Sys.new('DestroyLevel') do + # delete all level specific entities and their components + # dont delete entities that carry over to next level +end + +# changing the level will destroy the current level and set up the next one +FECS::Sys::ConstructLevel.trigger_when_is_set(@current_level, :level) +FECS::Sys::DestroyLevel.trigger_when_is_set(@current_level, :level) -- cgit v1.2.3