From 3ab7771352a6f8a1cae9b9217a46e3b43addccdf Mon Sep 17 00:00:00 2001 From: Kazhnuz Date: Sun, 14 Mar 2021 18:21:44 +0100 Subject: [PATCH] feat: add support for tile collision and overlay --- CREDITS.md | 13 +- .../modules/world/actors/utils/hitbox2D.lua | 14 +- .../core/modules/world/baseworld.lua | 14 +- .../core/modules/world/maps/parent.lua | 4 + .../core/modules/world/maps/sti.lua | 89 ++- .../datas/gamedata/maps/sti/plain/plain1.lua | 307 ++++++++++ .../datas/gamedata/maps/sti/plain/plain1.png | Bin 0 -> 16866 bytes .../datas/gamedata/maps/sti/plain/plain1.tsx | 76 +++ .../datas/gamedata/maps/sti/plain/test.lua | 543 ++++++++++++++++++ .../datas/gamedata/maps/sti/plain/test.tmx | 147 +++++ .../scenes/overworld/actors/player.lua | 2 + sonic-radiance.love/scenes/overworld/init.lua | 2 +- 12 files changed, 1205 insertions(+), 6 deletions(-) create mode 100644 sonic-radiance.love/datas/gamedata/maps/sti/plain/plain1.lua create mode 100644 sonic-radiance.love/datas/gamedata/maps/sti/plain/plain1.png create mode 100644 sonic-radiance.love/datas/gamedata/maps/sti/plain/plain1.tsx create mode 100644 sonic-radiance.love/datas/gamedata/maps/sti/plain/test.lua create mode 100644 sonic-radiance.love/datas/gamedata/maps/sti/plain/test.tmx diff --git a/CREDITS.md b/CREDITS.md index 99e4c59..ee4646c 100644 --- a/CREDITS.md +++ b/CREDITS.md @@ -20,7 +20,16 @@ You can find all of them in this ## Visuals -Some elements have been modified from the sources used. If you use some elements directly from the game, don't forget to search who was the original creator of the asset used. Crediting work is important folks ! +Some elements have been modified from the sources used. If you use some elements directly from Radiance, don't forget to search who was the original creator of the asset used. Crediting work is important folks ! + +### Character Set + +- Character set are from Zach Zin Furr + +### Tileset + +- [Revamped Tiles](https://www.deviantart.com/magiscarf/art/Revamped-Tiles-829482346) by Magiscarf +- [Alienor Tileset v1](https://www.deviantart.com/anarlaurendil/art/Alienor-Tileset-v1-Pokemon-Sacred-Phoenix-834634422) by Amras AnĂ¡rion, Magiscarf, Chaoticcherrycake, Pixame, Carchagui, Kyle-Dove, Chimcharsfireworkd, princess-phoenix, aveontrainer, Alistair and WesleyFG. ### Backgrounds @@ -32,6 +41,8 @@ Some elements have been modified from the sources used. If you use some elements - Tails Lab Background based on [City Escape Advance](https://www.spriters-resource.com/custom_edited/sonicthehedgehogcustoms/sheet/18187/) by Bold the Hedgehog, Blaze, Dan Sidney and Flare. +### + ### HUD elements used - [Sonic Heroes HUD](https://www.spriters-resource.com/custom_edited/sonicthehedgehogcustoms/sheet/104761/), [Sonic Adventure 2](https://www.spriters-resource.com/custom_edited/sonicthehedgehogcustoms/sheet/104763/) pixel versions by [FieryExplosion](https://www.spriters-resource.com/submitter/FieryExplosion/) diff --git a/sonic-radiance.love/core/modules/world/actors/utils/hitbox2D.lua b/sonic-radiance.love/core/modules/world/actors/utils/hitbox2D.lua index 6728908..220a6b4 100644 --- a/sonic-radiance.love/core/modules/world/actors/utils/hitbox2D.lua +++ b/sonic-radiance.love/core/modules/world/actors/utils/hitbox2D.lua @@ -103,13 +103,23 @@ end function Hitbox2D:checkCollision(dx, dy, filter) self:updatePosition() - local dx, dy = self.ox + dx, self.oy + dy - local x, y, cols, colNumber = self.world:checkCollision(self, dx, dy, filter) + local nx, ny = self.ox + dx, self.oy + dy + if (self:checkTileCollision(nx, self.y)) then + nx = self.x + end + if (self:checkTileCollision(self.x, ny)) then + ny = self.y + end + local x, y, cols, colNumber = self.world:checkCollision(self, nx, ny, filter) local newx, newy = self:getNewOwnerPosition(x, y) return newx, newy, cols, colNumber end +function Hitbox2D:checkTileCollision(dx, dy) + return self.world:haveTileTypeInRect(dx, dy, self.w, self.h, "solid") +end + -- DRAW FUNCTIONS -- Just some debug function to draw hitbox diff --git a/sonic-radiance.love/core/modules/world/baseworld.lua b/sonic-radiance.love/core/modules/world/baseworld.lua index 04b40b0..889420a 100644 --- a/sonic-radiance.love/core/modules/world/baseworld.lua +++ b/sonic-radiance.love/core/modules/world/baseworld.lua @@ -371,6 +371,19 @@ function BaseWorld:updateMap(dt) end end +function BaseWorld:getTileTypeAtPoint(x, y) + if (self.map.getTileTypeAtPoint ~= nil) then + return self.map:getTileTypeAtPoint(x, y) + end +end + +function BaseWorld:haveTileTypeInRect(x, y, x2, y2, type) + if (self.map.haveTileTypeInRect ~= nil) then + return self.map:haveTileTypeInRect(x, y, x2, y2, type) + end +end + + -- DRAW FUNCTIONS -- All function to draw the map, world and actors @@ -385,7 +398,6 @@ function BaseWorld:draw(dt) for i=1, camNumber do self.cameras:attachView(i) self:drawMap(i) - self:drawActors(i) self.cameras:detachView(i) end end diff --git a/sonic-radiance.love/core/modules/world/maps/parent.lua b/sonic-radiance.love/core/modules/world/maps/parent.lua index a1b445d..ac77a3c 100644 --- a/sonic-radiance.love/core/modules/world/maps/parent.lua +++ b/sonic-radiance.love/core/modules/world/maps/parent.lua @@ -58,6 +58,10 @@ function ParentMap:loadActors() -- Empty Placeholder function end +function ParentMap:getTileTypeAtPoint() + return nil +end + function ParentMap:setBackgroundColor(r, g, b) local r = r or 128 local g = g or 128 diff --git a/sonic-radiance.love/core/modules/world/maps/sti.lua b/sonic-radiance.love/core/modules/world/maps/sti.lua index ca10745..86980a7 100644 --- a/sonic-radiance.love/core/modules/world/maps/sti.lua +++ b/sonic-radiance.love/core/modules/world/maps/sti.lua @@ -123,6 +123,84 @@ function StiMap:newCollision(objectlayer, object) self.world:newCollision(objectlayer.name, object.x, y, z, object.width, object.height, d) end +function StiMap:haveTileTypeInRect(x, y, w, h, type) + local x1, y1, x2, y2 = self:getTileRectangle(x, y, x + w, y + h) + local isSolid = false + for i = x1, x2, 1 do + for j = y1, y2, 1 do + if (self:getTileTypeAtCoord(i, j) == type) then + isSolid = true + end + end + end + return isSolid +end + +function StiMap:getTileRectangle(x, y, x2, y2) + local xx, yy = self:convertPixelToTile (x, y) + local xx2, yy2 = self:convertPixelToTile (x2, y2) + return xx, yy, xx2, yy2 +end + +function StiMap:getTileTypeAtPoint(x, y) + local xx, yy = self:convertPixelToTile (x, y) + return self:getTileTypeAtCoord(xx, yy) +end + +function StiMap:getTileTypeAtCoord(x, y) + local canSearch = true + local currentType = nil + for _, layer in ipairs(self.sti.layers) do + if (canSearch) then + if (layer.type == "tilelayer") then + local tileset, tileid = self:getTileId(layer.name, x, y) + local type = self:getTileType(tileset, tileid) + if (type ~= nil) then + currentType = type + end + else + if (layer.name=="objects") then + canSearch = false + end + end + end + end + return currentType +end + +function StiMap:convertPixelToTile(x, y) + local xx, yy = self.sti:convertPixelToTile (x, y) + return math.ceil(xx), math.ceil(yy) +end + +function StiMap:getTileType(tileset, id) + local tilesetData = self.sti.tilesets[tileset] + if ((tileset == -1) or (id == -1)) then + return nil + end + + if (tilesetData ~= nil) then + for i, tile in ipairs(tilesetData.tiles) do + if (tile.id == id) and (tile.type ~= nil) then + return tile.type + end + end + end + return "non-solid" +end + +function StiMap:getTileId(layer, x, y) + local line = self.sti.layers[layer].data[y] + if (line ~= nil) then + local tile = line[x] + if not tile then + return -1, -1 + end + return tile.tileset, tile.id + end + return -1, -1 +end + function StiMap:newPlayer(object, i) local z = object.properties.z or 0 local adaptPosition = object.properties.adaptPosition or false @@ -139,12 +217,21 @@ end -- DRAW FUNCTIONS -- Draw the map -function StiMap:draw() +function StiMap:draw(i) + local haveDrawnObjects = false for _, layer in ipairs(self.sti.layers) do if layer.visible and layer.opacity > 0 and (layer.type == "tilelayer") then self.sti:drawLayer(layer) + else + if (layer.name == "objects") then + haveDrawnObjects = true + self.world:drawActors(i) + end end end + if (not haveDrawnObjects) then + self.world:drawActors(i) + end end return StiMap diff --git a/sonic-radiance.love/datas/gamedata/maps/sti/plain/plain1.lua b/sonic-radiance.love/datas/gamedata/maps/sti/plain/plain1.lua new file mode 100644 index 0000000..75eaaa8 --- /dev/null +++ b/sonic-radiance.love/datas/gamedata/maps/sti/plain/plain1.lua @@ -0,0 +1,307 @@ +return { + version = "1.4", + luaversion = "5.1", + tiledversion = "1.4.3", + name = "plain1", + tilewidth = 16, + tileheight = 16, + spacing = 0, + margin = 0, + columns = 8, + image = "plain1.png", + imagewidth = 128, + imageheight = 480, + objectalignment = "unspecified", + tileoffset = { + x = 0, + y = 0 + }, + grid = { + orientation = "orthogonal", + width = 16, + height = 16 + }, + properties = {}, + terrains = {}, + tilecount = 240, + tiles = { + { + id = 8, + type = "solid" + }, + { + id = 9, + type = "solid" + }, + { + id = 10, + type = "solid" + }, + { + id = 11, + type = "solid" + }, + { + id = 16, + type = "solid" + }, + { + id = 17, + type = "solid" + }, + { + id = 18, + type = "solid" + }, + { + id = 19, + type = "solid" + }, + { + id = 20, + type = "solid" + }, + { + id = 21, + type = "solid" + }, + { + id = 22, + type = "solid" + }, + { + id = 23, + type = "solid" + }, + { + id = 24, + type = "solid" + }, + { + id = 26, + type = "solid" + }, + { + id = 30, + type = "solid" + }, + { + id = 31, + type = "solid" + }, + { + id = 32, + type = "solid" + }, + { + id = 33, + type = "solid" + }, + { + id = 34, + type = "solid", + objectGroup = { + type = "objectgroup", + draworder = "index", + id = 2, + name = "", + visible = true, + opacity = 1, + offsetx = 0, + offsety = 0, + properties = {}, + objects = { + { + id = 1, + name = "", + type = "", + shape = "rectangle", + x = 0, + y = 0, + width = 16, + height = 16, + rotation = 0, + visible = true, + properties = {} + } + } + } + }, + { + id = 38, + type = "solid" + }, + { + id = 40, + type = "solid" + }, + { + id = 41, + type = "solid" + }, + { + id = 42, + type = "solid" + }, + { + id = 43, + type = "solid" + }, + { + id = 44, + type = "solid" + }, + { + id = 48, + type = "solid" + }, + { + id = 50, + type = "solid" + }, + { + id = 51, + type = "solid" + }, + { + id = 52, + type = "solid" + }, + { + id = 53, + type = "solid" + }, + { + id = 54, + type = "solid" + }, + { + id = 56, + type = "solid" + }, + { + id = 57, + type = "solid" + }, + { + id = 58, + type = "solid" + }, + { + id = 61, + type = "solid" + }, + { + id = 62, + type = "solid" + }, + { + id = 64, + type = "solid" + }, + { + id = 65, + type = "solid" + }, + { + id = 66, + type = "solid" + }, + { + id = 69, + type = "solid" + }, + { + id = 70, + type = "solid" + }, + { + id = 72, + type = "solid" + }, + { + id = 73, + type = "solid" + }, + { + id = 74, + type = "solid" + }, + { + id = 75, + type = "solid" + }, + { + id = 76, + type = "solid" + }, + { + id = 77, + type = "solid" + }, + { + id = 80, + type = "solid" + }, + { + id = 82, + type = "solid" + }, + { + id = 83, + type = "solid" + }, + { + id = 84, + type = "solid" + }, + { + id = 85, + type = "solid" + }, + { + id = 86, + type = "solid" + }, + { + id = 88, + type = "solid" + }, + { + id = 89, + type = "solid" + }, + { + id = 90, + type = "solid" + }, + { + id = 93, + type = "solid" + }, + { + id = 94, + type = "solid" + }, + { + id = 96, + type = "solid" + }, + { + id = 97, + type = "solid" + }, + { + id = 98, + type = "solid" + }, + { + id = 101, + type = "solid" + }, + { + id = 102, + type = "solid" + } + } +} diff --git a/sonic-radiance.love/datas/gamedata/maps/sti/plain/plain1.png b/sonic-radiance.love/datas/gamedata/maps/sti/plain/plain1.png new file mode 100644 index 0000000000000000000000000000000000000000..e3c0b43f4e004d8b3f3ede1346ce2998352b1f2c GIT binary patch literal 16866 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 i`F}JZo8Y)N3>t!e1r}B5!jPDMKu$_YvQpeA + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sonic-radiance.love/datas/gamedata/maps/sti/plain/test.lua b/sonic-radiance.love/datas/gamedata/maps/sti/plain/test.lua new file mode 100644 index 0000000..e283287 --- /dev/null +++ b/sonic-radiance.love/datas/gamedata/maps/sti/plain/test.lua @@ -0,0 +1,543 @@ +return { + version = "1.4", + luaversion = "5.1", + tiledversion = "1.4.3", + orientation = "orthogonal", + renderorder = "right-down", + width = 30, + height = 40, + tilewidth = 16, + tileheight = 16, + nextlayerid = 6, + nextobjectid = 4, + properties = {}, + tilesets = { + { + name = "plain1", + firstgid = 1, + filename = "plain1.tsx", + tilewidth = 16, + tileheight = 16, + spacing = 0, + margin = 0, + columns = 8, + image = "plain1.png", + imagewidth = 128, + imageheight = 480, + objectalignment = "unspecified", + tileoffset = { + x = 0, + y = 0 + }, + grid = { + orientation = "orthogonal", + width = 16, + height = 16 + }, + properties = {}, + terrains = {}, + tilecount = 240, + tiles = { + { + id = 8, + type = "solid" + }, + { + id = 9, + type = "solid" + }, + { + id = 10, + type = "solid" + }, + { + id = 11, + type = "solid" + }, + { + id = 16, + type = "solid" + }, + { + id = 17, + type = "solid" + }, + { + id = 18, + type = "solid" + }, + { + id = 19, + type = "solid" + }, + { + id = 20, + type = "solid" + }, + { + id = 21, + type = "solid" + }, + { + id = 22, + type = "solid" + }, + { + id = 23, + type = "solid" + }, + { + id = 24, + type = "solid" + }, + { + id = 26, + type = "solid" + }, + { + id = 30, + type = "solid" + }, + { + id = 31, + type = "solid" + }, + { + id = 32, + type = "solid" + }, + { + id = 33, + type = "solid" + }, + { + id = 34, + type = "solid", + objectGroup = { + type = "objectgroup", + draworder = "index", + id = 2, + name = "", + visible = true, + opacity = 1, + offsetx = 0, + offsety = 0, + properties = {}, + objects = { + { + id = 1, + name = "", + type = "", + shape = "rectangle", + x = 0, + y = 0, + width = 16, + height = 16, + rotation = 0, + visible = true, + properties = {} + } + } + } + }, + { + id = 38, + type = "solid" + }, + { + id = 40, + type = "solid" + }, + { + id = 41, + type = "solid" + }, + { + id = 42, + type = "solid" + }, + { + id = 43, + type = "solid" + }, + { + id = 44, + type = "solid" + }, + { + id = 48, + type = "solid" + }, + { + id = 50, + type = "solid" + }, + { + id = 51, + type = "solid" + }, + { + id = 52, + type = "solid" + }, + { + id = 53, + type = "solid" + }, + { + id = 54, + type = "solid" + }, + { + id = 56, + type = "solid" + }, + { + id = 57, + type = "solid" + }, + { + id = 58, + type = "solid" + }, + { + id = 61, + type = "solid" + }, + { + id = 62, + type = "solid" + }, + { + id = 64, + type = "solid" + }, + { + id = 65, + type = "solid" + }, + { + id = 66, + type = "solid" + }, + { + id = 69, + type = "solid" + }, + { + id = 70, + type = "solid" + }, + { + id = 72, + type = "solid" + }, + { + id = 73, + type = "solid" + }, + { + id = 74, + type = "solid" + }, + { + id = 75, + type = "solid" + }, + { + id = 76, + type = "solid" + }, + { + id = 77, + type = "solid" + }, + { + id = 80, + type = "solid" + }, + { + id = 82, + type = "solid" + }, + { + id = 83, + type = "solid" + }, + { + id = 84, + type = "solid" + }, + { + id = 85, + type = "solid" + }, + { + id = 86, + type = "solid" + }, + { + id = 88, + type = "solid" + }, + { + id = 89, + type = "solid" + }, + { + id = 90, + type = "solid" + }, + { + id = 93, + type = "solid" + }, + { + id = 94, + type = "solid" + }, + { + id = 96, + type = "solid" + }, + { + id = 97, + type = "solid" + }, + { + id = 98, + type = "solid" + }, + { + id = 101, + type = "solid" + }, + { + id = 102, + type = "solid" + }, + { + id = 129, + type = "solid" + }, + { + id = 130, + type = "solid" + } + } + } + }, + layers = { + { + type = "tilelayer", + x = 0, + y = 0, + width = 30, + height = 40, + id = 1, + name = "Calque 2", + visible = true, + opacity = 1, + offsetx = 0, + offsety = 0, + properties = {}, + encoding = "lua", + data = { + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 90, 87, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 98, 95, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 29, 81, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 29, 81, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 29, 81, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 29, 81, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 29, 81, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 29, 81, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 29, 81, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 29, 81, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 29, 81, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 29, 81, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 29, 89, 87, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 29, 97, 95, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 29, 29, 81, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 29, 29, 81, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 29, 29, 81, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 29, 29, 81, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 29, 29, 81, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 29, 29, 81, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 29, 29, 81, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 29, 29, 81, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 29, 29, 81, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 29, 29, 81, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 29, 29, 81, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 29, 29, 81, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 29, 29, 81, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 29, 29, 81, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 29, 29, 89, 87, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 29, 29, 97, 95, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 29, 29, 29, 81, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 29, 29, 29, 89, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 87, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 86, 90, + 29, 29, 29, 97, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 95, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 94, 98, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 81, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 83, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 89, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 91, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 97, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 99, 29 + } + }, + { + type = "tilelayer", + x = 0, + y = 0, + width = 30, + height = 40, + id = 2, + name = "Calque 1", + visible = true, + opacity = 1, + offsetx = 0, + offsety = 0, + properties = {}, + encoding = "lua", + data = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 58, 58, 58, 58, 58, 58, 58, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 66, 66, 66, 66, 66, 66, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 49, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 0, 0, 0, 0, 0, 0, 0, 57, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, + 0, 0, 0, 0, 0, 0, 0, 65, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 130, 131, 132, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 130, 131, 132, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 0, 0, 0, 0, 0, 129, 130, 131, 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 31, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + } + }, + { + type = "objectgroup", + draworder = "topdown", + id = 3, + name = "player", + visible = true, + opacity = 1, + offsetx = 0, + offsety = 0, + properties = {}, + objects = { + { + id = 1, + name = "", + type = "", + shape = "rectangle", + x = 160, + y = 176, + width = 16, + height = 16, + rotation = 0, + visible = true, + properties = { + ["id"] = 1 + } + } + } + }, + { + type = "objectgroup", + draworder = "topdown", + id = 5, + name = "objects", + visible = true, + opacity = 1, + offsetx = 0, + offsety = 0, + properties = {}, + objects = {} + }, + { + type = "tilelayer", + x = 0, + y = 0, + width = 30, + height = 40, + id = 4, + name = "Calque 0", + visible = true, + opacity = 1, + offsetx = 0, + offsety = 0, + properties = {}, + encoding = "lua", + data = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, 106, 107, 108, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 113, 114, 115, 116, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, 106, 107, 108, 0, 0, 0, 0, 0, 0, 121, 122, 123, 124, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 113, 114, 115, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 121, 122, 123, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, 106, 107, 108, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 105, 106, 107, 108, 0, 0, 0, 0, 0, 0, 0, 0, 113, 114, 115, 116, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 113, 114, 115, 116, 0, 0, 0, 0, 0, 0, 0, 0, 121, 122, 123, 124, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 121, 122, 123, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + } + } + } +} diff --git a/sonic-radiance.love/datas/gamedata/maps/sti/plain/test.tmx b/sonic-radiance.love/datas/gamedata/maps/sti/plain/test.tmx new file mode 100644 index 0000000..59a8d7e --- /dev/null +++ b/sonic-radiance.love/datas/gamedata/maps/sti/plain/test.tmx @@ -0,0 +1,147 @@ + + + + + + + + +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +90,87,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +98,95,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +29,81,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +29,81,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +29,81,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +29,81,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +29,81,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +29,81,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +29,81,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +29,81,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +29,81,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +29,81,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +29,89,87,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +29,97,95,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +29,29,81,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +29,29,81,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +29,29,81,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +29,29,81,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +29,29,81,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +29,29,81,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +29,29,81,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +29,29,81,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +29,29,81,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +29,29,81,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +29,29,81,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +29,29,81,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +29,29,81,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +29,29,81,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +29,29,89,87,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +29,29,97,95,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +29,29,29,81,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +29,29,29,89,90,90,90,90,90,90,90,90,90,90,90,87,1,1,1,1,1,1,1,1,1,1,1,1,86,90, +29,29,29,97,98,98,98,98,98,98,98,98,98,98,98,95,1,1,1,1,1,1,1,1,1,1,1,1,94,98, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,81,1,1,1,1,1,1,1,1,1,1,1,1,83,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,89,90,90,90,90,90,90,90,90,90,90,90,90,91,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,97,98,98,98,98,98,98,98,98,98,98,98,98,99,29 + + + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +58,58,58,58,58,58,58,55,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +66,66,66,66,66,66,66,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,49,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50, +0,0,0,0,0,0,0,57,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58, +0,0,0,0,0,0,0,65,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,129,130,131,132,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,130,131,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,129,130,131,132,0,0,0,0,0,0,0,0, +24,0,0,0,0,0,129,130,131,132,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,23,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,31,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,23,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + + + + + + + + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,105,106,107,108,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,113,114,115,116,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,105,106,107,108,0,0,0,0,0,0,121,122,123,124,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,113,114,115,116,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,121,122,123,124,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,105,106,107,108,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,105,106,107,108,0,0,0,0,0,0,0,0,113,114,115,116,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,113,114,115,116,0,0,0,0,0,0,0,0,121,122,123,124,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,121,122,123,124,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + diff --git a/sonic-radiance.love/scenes/overworld/actors/player.lua b/sonic-radiance.love/scenes/overworld/actors/player.lua index eaad78a..b64736b 100644 --- a/sonic-radiance.love/scenes/overworld/actors/player.lua +++ b/sonic-radiance.love/scenes/overworld/actors/player.lua @@ -55,6 +55,8 @@ function Player:updateStart(dt) end self.tweens:update(dt) + + self.world:getTileTypeAtPoint(self.x, self.y) end function Player:timerResponse(response) diff --git a/sonic-radiance.love/scenes/overworld/init.lua b/sonic-radiance.love/scenes/overworld/init.lua index 5b91a47..49ec8c1 100644 --- a/sonic-radiance.love/scenes/overworld/init.lua +++ b/sonic-radiance.love/scenes/overworld/init.lua @@ -41,7 +41,7 @@ function MovePlayer:new() self.tweens = TweenManager(self) self.screens = screens - World(self, "test", "map") + World(self, "plain", "test") self.world:setPlayerNumber(1) self.world:loadMap()