summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorarngo <[email protected]>2022-01-24 23:22:29 -0500
committerarngo <[email protected]>2022-01-24 23:22:29 -0500
commit6443ce770c9df27050069158759277f0c8150f60 (patch)
tree3a284f1819f874d3f8acf5864e9c84a1749c645d
parentb495eabf193fc01c09cf65b41a67abd5714abecf (diff)
downloadorc-arena-of-time-6443ce770c9df27050069158759277f0c8150f60.tar.gz
orc-arena-of-time-6443ce770c9df27050069158759277f0c8150f60.zip
skeleton code for level loading system
-rw-r--r--main.rb1
-rw-r--r--src/levels.rb38
2 files changed, 39 insertions, 0 deletions
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]
+ ],
+}
+
+
+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)