diff options
| author | arngo <[email protected]> | 2022-01-24 23:22:29 -0500 |
|---|---|---|
| committer | arngo <[email protected]> | 2022-01-24 23:22:29 -0500 |
| commit | 6443ce770c9df27050069158759277f0c8150f60 (patch) | |
| tree | 3a284f1819f874d3f8acf5864e9c84a1749c645d | |
| parent | b495eabf193fc01c09cf65b41a67abd5714abecf (diff) | |
| download | orc-arena-of-time-6443ce770c9df27050069158759277f0c8150f60.tar.gz orc-arena-of-time-6443ce770c9df27050069158759277f0c8150f60.zip | |
skeleton code for level loading system
| -rw-r--r-- | main.rb | 1 | ||||
| -rw-r--r-- | src/levels.rb | 38 |
2 files changed, 39 insertions, 0 deletions
@@ -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] + ], +} + [email protected](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) |
