From 07d2bda40a714d60a446db4730652ef433b8d674 Mon Sep 17 00:00:00 2001 From: Kazhnuz Date: Fri, 8 Mar 2019 21:20:08 +0100 Subject: [PATCH] scenes/maps: add dot object when cursor --- .../assets/sprites/gui/leveldot.png | Bin 0 -> 240 bytes .../datas/levels/coralsands.lua | 8 ++++++ imperium-porcorum.love/datas/levels/list.lua | 1 + .../scenes/worldmap/init.lua | 22 +++++++++++++++++ .../scenes/worldmap/leveldot.lua | 23 ++++++++++++++++++ 5 files changed, 54 insertions(+) create mode 100644 imperium-porcorum.love/assets/sprites/gui/leveldot.png create mode 100644 imperium-porcorum.love/datas/levels/coralsands.lua create mode 100644 imperium-porcorum.love/datas/levels/list.lua create mode 100644 imperium-porcorum.love/scenes/worldmap/leveldot.lua diff --git a/imperium-porcorum.love/assets/sprites/gui/leveldot.png b/imperium-porcorum.love/assets/sprites/gui/leveldot.png new file mode 100644 index 0000000000000000000000000000000000000000..86d0808a97f82f735f7a516cc729552f04ef3ae5 GIT binary patch literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqY)RhkE)4%caKYZ?lYt_f1s;*b z3=De8Ak0{?)V>TT$X?><>&pI^nM0UUcq&gBFHlIb#5JPCIX^cyHLrxhxhOTUBsE2$ zJhLQ2!QIn0AiR-J9H=P5)5S4F;&N&KLEa+6HOzZttp=(opY?k?^6Z7k7V znv=B!7nl^6zgg6^tLL=A(UW literal 0 HcmV?d00001 diff --git a/imperium-porcorum.love/datas/levels/coralsands.lua b/imperium-porcorum.love/datas/levels/coralsands.lua new file mode 100644 index 0000000..8c8a9f8 --- /dev/null +++ b/imperium-porcorum.love/datas/levels/coralsands.lua @@ -0,0 +1,8 @@ +return { + realm = "Mystery Zone", + name = "Coral Sands", + x = 6, + y = 10, + mapfile = "test-map2", + music = "sunnyparadise1.mp3", +} diff --git a/imperium-porcorum.love/datas/levels/list.lua b/imperium-porcorum.love/datas/levels/list.lua new file mode 100644 index 0000000..6c49fc7 --- /dev/null +++ b/imperium-porcorum.love/datas/levels/list.lua @@ -0,0 +1 @@ +return {"coralsands"} diff --git a/imperium-porcorum.love/scenes/worldmap/init.lua b/imperium-porcorum.love/scenes/worldmap/init.lua index fc3794d..25d5594 100644 --- a/imperium-porcorum.love/scenes/worldmap/init.lua +++ b/imperium-porcorum.love/scenes/worldmap/init.lua @@ -1,6 +1,8 @@ local Scene = require "core.modules.scenes" local WorldMap = Scene:extend() +local LevelDot = require "scenes.worldmap.leveldot" + local menuutils = require "core.modules.menusystem.widgets.utils" local CURSOR_PADDING = 2 @@ -12,10 +14,25 @@ function WorldMap:new() self.cursor.x, self.cursor.y = 0, 0 self.cursor.drawx, self.cursor.drawy = 0, 0 self.cursor.canMove = true + self:addLevels() self:register() end +function WorldMap:addLevels() + self.assets:addImage("leveldot", "assets/sprites/gui/leveldot.png") + self.leveldots = {} + + local levels = require "datas.levels.list" + for i,v in ipairs(levels) do + LevelDot(self, v) + end +end + +function WorldMap:registerDot(dot) + table.insert(self.leveldots, dot) +end + function WorldMap:update(dt) if (self.keys["up"].isDown) and (self.cursor.canMove) then self.cursor.y = math.max(0, self.cursor.y - 1) @@ -73,6 +90,11 @@ end function WorldMap:draw() self.assets:drawImage("background", 0, 0) + + for i,v in ipairs(self.leveldots) do + v:draw() + end + love.graphics.draw(self.banner, 0, 8) local x, y = 16 + self.cursor.drawx * 16 - CURSOR_PADDING, 48 + self.cursor.drawy * 16 - CURSOR_PADDING diff --git a/imperium-porcorum.love/scenes/worldmap/leveldot.lua b/imperium-porcorum.love/scenes/worldmap/leveldot.lua new file mode 100644 index 0000000..537774f --- /dev/null +++ b/imperium-porcorum.love/scenes/worldmap/leveldot.lua @@ -0,0 +1,23 @@ +local LevelDot = Object:extend() + +function LevelDot:new(scene, levelname) + self.scene = scene + self.data = require("datas.levels." .. levelname) + self.isActive = self.data.isActive or true + + self:register() +end + +function LevelDot:register() + self.scene:registerDot(self) +end + +function LevelDot:draw() + if (self.isActive) then + local x, y = 16 + self.data.x * 16 + 4, + 48 + self.data.y * 16 + 4 + self.scene.assets:drawImage("leveldot", x, y) + end +end + +return LevelDot