diff options
author | Aki <nthirtyone@gmail.com> | 2017-09-13 04:07:16 +0200 |
---|---|---|
committer | Aki <nthirtyone@gmail.com> | 2017-09-13 04:07:16 +0200 |
commit | 291e9ffce1151be503f1c4550e6f4ff3230960b9 (patch) | |
tree | a1ffbd1375fe93990c2fc016b9e8da8fe9b7c4e4 | |
parent | f15ace4d5b9f62b6288a2b6750bc48159ebebe00 (diff) | |
download | roflnauts-291e9ffce1151be503f1c4550e6f4ff3230960b9.zip roflnauts-291e9ffce1151be503f1c4550e6f4ff3230960b9.tar.gz roflnauts-291e9ffce1151be503f1c4550e6f4ff3230960b9.tar.bz2 |
CloudGenerator's atlas and quads are loaded from map config
-rw-r--r-- | config/animations/default-clouds.lua | 18 | ||||
-rw-r--r-- | config/maps/default.lua | 3 | ||||
-rw-r--r-- | not/CloudGenerator.lua | 22 | ||||
-rw-r--r-- | not/World.lua | 6 |
4 files changed, 27 insertions, 22 deletions
diff --git a/config/animations/default-clouds.lua b/config/animations/default-clouds.lua new file mode 100644 index 0000000..bbf8a28 --- /dev/null +++ b/config/animations/default-clouds.lua @@ -0,0 +1,18 @@ +return +{ + default = { + [1] = love.graphics.newQuad( 1, 1, 158,47, 478,49), + frames = 1, + repeated = true + }, + default2 = { + [1] = love.graphics.newQuad(160, 1, 158,47, 478,49), + frames = 1, + repeated = true + }, + default3 = { + [1] = love.graphics.newQuad(319, 1, 158,47, 478,49), + frames = 1, + repeated = true + } +} diff --git a/config/maps/default.lua b/config/maps/default.lua index ebfcbb8..216e703 100644 --- a/config/maps/default.lua +++ b/config/maps/default.lua @@ -14,7 +14,8 @@ return }, create = { { - clouds = true + clouds = "assets/clouds.png", + animations = "default-clouds" }, { ratio = 0, diff --git a/not/CloudGenerator.lua b/not/CloudGenerator.lua index fb1b617..3285938 100644 --- a/not/CloudGenerator.lua +++ b/not/CloudGenerator.lua @@ -4,28 +4,10 @@ CloudGenerator = require "not.Object":extends() require "not.Cloud" -local animations = { - default = { - [1] = love.graphics.newQuad( 1, 1, 158,47, 478,49), - frames = 1, - repeated = true - }, - default2 = { - [1] = love.graphics.newQuad(160, 1, 158,47, 478,49), - frames = 1, - repeated = true - }, - default3 = { - [1] = love.graphics.newQuad(319, 1, 158,47, 478,49), - frames = 1, - repeated = true - } -} - -- TODO: Allow map config to modify cloud styles: maximum cloud count, animations and atlas. -function CloudGenerator:new (world) +function CloudGenerator:new (atlas, animations, world) self.world = world - self.atlas = "assets/clouds.png" + self.atlas = atlas self.quads = animations self.count = 18 self.interval = 6 diff --git a/not/World.lua b/not/World.lua index 5d46b5b..e0febb7 100644 --- a/not/World.lua +++ b/not/World.lua @@ -97,7 +97,11 @@ function World:buildMap () bg.layer = self:addLayer(width, height, op.ratio) end if op.clouds then - self:insertEntity(CloudGenerator(self)):run(6, true) + local animations = op.animations + if type(animations) == "string" then + animations = require("config.animations." .. animations) + end + self:insertEntity(CloudGenerator(op.clouds, animations, self)):run(6, true) end end end |