-- assets.lua
-- Asset storage
+local sti = require('plugin/STI/sti')
+
-- You need a cuneiform font for this one
IntroMessage = "\nπ©ππΌπ―ππΆπ¨π\nππ§π π²\nπ£π΅"
Image = 1,
Font = 2,
AudioSource = 3,
+ TiledMap = 4,
+ Object = 5,
+}
+
+ObjectClass =
+{
+ Drawn = 1,
}
+function assets.integrate_object_layers(pmap)
+ for k,layer in pairs(pmap.layers) do
+ if layer.type == 'objectgroup' then
+ local new_layer = pmap:addCustomLayer('imported-' .. layer.name)
+ new_layer.offsetx, new_layer.offsetx = layer.offsetx, layer.offsety
+ new_layer.objects = layer.objects
+
+ -- Match objects in each layer to a pre-loaded asset-object
+ for ok,ov in pairs(new_layer.objects) do
+ object = assets.get_object(ov.name)
+ if object then
+ object.image = love.graphics.newImage(object.path)
+ object.x = ov.x
+ object.y = ov.y
+ end
+ end
+
+ new_layer.draw = function(self)
+ for ok, ov in pairs(self.objects) do
+ local object = assets.get_object(ov.name)
+ if object and object.image then
+ love.graphics.draw(object.image, object.x, object.y, 0, 1, 1, 0, 0)
+ end
+ end
+ end
+
+ new_layer.update = function(self, dt)
+ end
+
+ pmap:setObjectData(new_layer)
+ pmap:removeLayer(layer.name)
+ end
+ end
+end
+
local AssetTables = {}
for k,v in pairs(AssetClass) do
table.insert(AssetTables, {})
return AssetTables[AssetClass.AudioSource][name]
end
-assets.store_font("Cuneiform36", "assets/SantakkuM.ttf", 36)
-assets.store_source("intro", "assets/Intro.wav", "static")
-assets.store_source("transition1", "assets/transition1.wav", "static")
+-- Load a map into STI and convert Object layers to custom layers
+function assets.store_map(name, path)
+ local new_map = sti(path)
+ assets.integrate_object_layers(new_map)
+ AssetTables[AssetClass.TiledMap][name] = new_map
+end
+
+function assets.get_map(name)
+ return AssetTables[AssetClass.TiledMap][name]
+end
+
+function assets.store_object(name, opts)
+ local new_object = {}
+
+ if opts.class == ObjectClass.Drawn then
+ new_object.path = opts.path
+ new_object.x = 0
+ new_object.y = 0
+ else
+ return
+ end
+
+ AssetTables[AssetClass.Object][name] = new_object
+end
+
+function assets.get_object(name)
+ return AssetTables[AssetClass.Object][name]
+end
+
+assets.store_font('Cuneiform36', 'assets/SantakkuM.ttf', 36)
+assets.store_source('intro', 'assets/Intro.wav', 'static')
+assets.store_source('transition1', 'assets/transition1.wav', 'static')
+
+-- If relevant, an Object asset's name should match an object as placed
+-- in an Object layer of a Tiled map
+assets.store_object('Player', {
+ -- This is a drawn sprite that's going to be jammed into a Sprite layer
+ class = ObjectClass.Drawn,
+ path = 'assets/sprites/gilgamesh.png',
+})
+
+-- STI only supports images for tilesheet sources in a tilemap, not a tsx file
+-- Mostly just embed the tileset in Tiled so it knows to reference the original
+-- tilesheet png directly.
+assets.store_map('test_map_1', 'tiled/test_1.lua')
return assets
--- /dev/null
+[InternetShortcut]\r
+URL=https://kenney.nl/documentation/game-assets/tilemaps\r
+IDList=\r
+HotKey=0\r
+[{000214A0-0000-0000-C000-000000000046}]\r
+Prop3=19,11\r
--- /dev/null
+ \r
+\r
+ 1-Bit Pack (1.2)\r
+\r
+ Created/distributed by Kenney (www.kenney.nl)\r
+ Creation date: 09-11-2021\r
+\r
+ ------------------------------\r
+\r
+ License: (Creative Commons Zero, CC0)\r
+ http://creativecommons.org/publicdomain/zero/1.0/\r
+\r
+ This content is free to use in personal, educational and commercial projects.\r
+\r
+ Support us by crediting Kenney or www.kenney.nl (this is not mandatory)\r
+\r
+ ------------------------------\r
+\r
+ Donate: http://support.kenney.nl\r
+ Patreon: http://patreon.com/kenney/\r
+\r
+ Follow on Twitter for updates:\r
+ http://twitter.com/KenneyNL
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<map version="1.2" tiledversion="2018.12.22" orientation="orthogonal" renderorder="right-down" width="48" height="24" tilewidth="16" tileheight="16" infinite="0" nextlayerid="3" nextobjectid="1">\r
+ <tileset firstgid="1" source="tileset_colored.tsx"/>\r
+ <layer id="2" name="Tile Layer 1" width="48" height="24">\r
+ <data encoding="csv">\r
+1,1,33,1,1,68,1,68,1,1,1,1,1,1,1,6,1,1,6,33,33,33,1,1,1,1,1,1,1,2,6,6,1,1,137,1,1,1,1,1,1,1,1,1,1,1,1,1,\r
+1,68,33,68,1,1,1,1,138,2684354697,2684354697,2684354697,2684354697,2684354697,2684354697,2684354697,2684354698,2,2,1,488,102,102,102,102,102,102,102,488,1,68,68,1,33,137,1,1,1,6,68,1,1,1,1,1,1,1,1,\r
+68,6,6,68,1,6,1,1,137,385,355,355,355,355,355,385,137,33,33,1,488,1,1,1,1,1,1,1,488,1,6,6,68,1,137,1,1,68,1,1,1,1,1,1,1,1,1,1,\r
+6,33,68,33,2,1,1,1,137,417,387,360,360,360,387,417,137,1,68,68,488,1,450,1,452,1,449,1,488,1,1,33,68,1,137,1,33,1,1,1,1,1,1,1,1,1,1,1,\r
+68,1,1,68,2,1,1,1,137,417,1,417,326,417,1,417,137,1,33,1,488,1,3,3,3,3,3,1,488,1,1,33,68,1,137,1,68,6,68,2,1,1,1,1,1,1,1,1,\r
+2,2,6,68,33,1,2,1,137,417,1,1,41,1,1,417,137,1,1,1,488,1,449,1,3,1,450,1,488,71,1,1,138,2684354697,3221225610,1,68,2,33,1,1,1,1,1,1,1,1,1,\r
+68,1,68,68,6,1,1,1,137,417,1,1610612781,3221225515,227,1,417,137,6,1,71,488,1,1,1,3,481,1,1,488,1,71,1,137,68,1,1,68,33,1,68,1,1,1,1,1,1,1,1,\r
+68,33,6,6,6,1,1,1,137,417,1,1,43,2684354605,1,417,137,1,1,1,488,1,451,1,3,1,451,1,488,1,1,1,137,1,68,33,1,33,1,1,2,68,1,1,1,1,1,1,\r
+6,6,68,68,1,1,1,1,137,386,355,355,355,355,355,386,137,1,6,1,488,102,488,102,3,102,488,102,488,1,208,208,137,6,2,33,68,33,68,68,68,68,68,1,1,1,1,1,\r
+1,2,2,33,2,33,1,1,137,417,387,417,421,417,387,417,137,1,1,1,1,38,1,1,3,1,1,1,1,1,208,208,137,1,1,1,68,1,6,33,1,33,2,1,1,1,1,1,\r
+1,33,33,33,1,33,1,1,1610612874,2684354697,2684354697,2684354697,197,2684354697,2684354697,2684354697,3221225610,1,1,1,38,1,1,1,3,3,3,3,3,1,208,208,1610612874,2684354697,2684354697,2684354697,2684354698,1,33,68,68,33,1,68,1,1,1,1,\r
+1,33,1,33,2,1,1,68,1,2,1,1,41,1,6,1,1,1,1,1,1,6,358,358,358,166,166,166,41,1,1,1,1,1,68,1,137,1,1,1,1,1,1,1,1,1,1,1,\r
+68,2,33,1,1,1,68,33,355,1,1,1,41,2,1,1,6,359,359,359,1,1,422,293,422,1,6,1,43,2684354601,2684354601,2684354601,2684354601,2684354603,2684354601,2684354601,167,2684354601,2684354601,2684354601,2684354601,2684354601,2684354601,2684354601,2684354601,2684354601,2684354601,2684354601,\r
+68,6,1,1,1,1,1,355,418,417,1,2,41,1,1,6,359,556,417,556,359,1,1,41,2,6,1,1,41,1,1,1,68,3221225513,1,1,137,1,1,1,1,1,1,1,1,1,1,1,\r
+68,1,1,1,1,1,354,417,417,417,369,1,41,1,1,1,417,556,297,556,417,1,1,43,2684354601,2684354601,2684354601,2684354601,3221225514,1,491,492,493,3221225513,38,1,137,1,33,1,6,68,33,6,6,1,2,1,\r
+1,1,68,1,1,1,1,3,1,355,1610612781,2684354601,3221225515,1,1,1,1,1,41,1,2,241,6,41,1,1,38,1,1,1,523,524,525,3221225513,1,38,137,1,68,68,1,1,1,68,6,2,68,1,\r
+6,68,1,1,1,401,1,1,3,417,417,1,41,1,453,1,1,2,1610612778,2684354603,2684354601,2684354601,2684354601,3221225515,1,358,358,358,358,1,1,1610612778,2684354601,3221225514,1,1,137,68,1,33,33,6,68,33,1,1,1,1,\r
+68,6,6,68,1,1,2147484017,417,401,417,417,2147484002,41,1,45,1,1,6,1,41,1,2,1,3221225513,2147483919,424,488,292,488,1,206,206,206,206,206,1,137,1,1,1,2,68,68,2,1,1,1,1,\r
+33,2,2,68,68,1,1,3,3,3,2,1,41,1,41,2,1,1,2,41,1,38,1,3221225513,1,1,1,3221225513,1,1,206,206,206,206,206,1,137,1,1,1,68,2,68,6,68,1,1,1,\r
+2,2,68,68,1,1,1,1,1,1,1,1,1610612778,2684354601,1610612779,2684354601,2684354601,2684354601,2684354603,3221225514,1,1,359,359,2684354601,2684354601,2684354601,3221225514,6,1,1,1,1,1,1,1,137,1,68,1,1,6,33,1,2,1,1,1,\r
+1,33,33,68,33,33,1,1,1,33,1,1,1,1,1,1,38,1,3221225513,1,1,359,417,417,359,1,2,6,1,68,1,138,2684354697,2684354697,2684354697,2684354697,3221225610,1,1,1,33,1,6,2,1,1,1,1,\r
+68,68,33,1,2,1,6,68,6,1,68,1,1,1,1,1,1,6,3221225513,38,1,417,417,293,417,1,1,1,68,1,1,137,1,1,1,1,1,1,1,68,6,68,1,1,68,33,1,1,\r
+68,68,1,33,33,6,1,6,1,1,6,1,33,6,1,1,1,1,3221225513,1,1,1,1,41,6,1,1,138,2684354697,2684354697,2684354697,3221225610,1,6,68,68,1,6,1,68,6,33,68,1,1,6,1,1,\r
+33,33,68,68,2,1,2,2,68,33,6,68,1,1,6,1,1,1,1610612778,2684354601,2684354601,2684354601,2684354601,3221225514,1,1,1,137,1,1,1,1,33,33,1,33,6,68,68,2,68,1,1,1,1,1,1,1\r
+</data>\r
+ </layer>\r
+</map>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<map version="1.2" tiledversion="2018.12.22" orientation="orthogonal" renderorder="right-down" width="48" height="24" tilewidth="16" tileheight="16" infinite="0" nextlayerid="3" nextobjectid="1">\r
+ <tileset firstgid="1" source="tileset_colored.tsx"/>\r
+ <layer id="2" name="Tile Layer 1" width="48" height="24">\r
+ <data encoding="csv">\r
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\r
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\r
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\r
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,417,419,417,417,417,419,417,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\r
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,35,1,417,1,269,236,237,1,417,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\r
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,35,1,1,1,417,1,1,1,1,63,417,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\r
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,417,417,417,417,417,417,417,292,417,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\r
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,417,417,417,417,417,417,1,228,1,265,1,1,5,417,1,35,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\r
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,419,1,1,257,229,417,1,1,1,1,1,154,1,417,35,1,35,1,1,1,1,1,1,1,1,1,1,1,1,1,\r
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,417,262,1,1,4,292,1,258,258,258,1,1,1,417,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\r
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,417,1,1,486,1,417,1,260,261,2147483908,89,1,1,417,419,417,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\r
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,417,417,417,417,417,417,1,258,258,258,1,1,258,273,258,417,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\r
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,419,1,1,257,229,417,1,1,1,1,1,1,258,305,258,417,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\r
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,417,262,1,1,4,292,1,1,218,59,1,1,258,337,258,417,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\r
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,417,1,1,486,1,417,1,1,1,1,1,1,1,1,1,417,2,1,1,1,1,1,1,1,1,1,1,1,1,1,\r
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,417,417,417,417,417,417,485,1,1,1,5,1,1,1,485,417,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\r
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,417,417,417,419,417,292,417,419,417,417,417,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\r
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,35,1,1,2,1,1,2,1,1,1,41,239,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\r
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,41,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\r
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,41,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\r
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,41,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\r
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,41,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\r
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,41,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\r
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,41,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r
+</data>\r
+ </layer>\r
+</map>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<map version="1.2" tiledversion="2018.12.22" orientation="orthogonal" renderorder="right-down" width="48" height="24" tilewidth="16" tileheight="16" infinite="0" nextlayerid="3" nextobjectid="1">\r
+ <tileset firstgid="1" source="tileset_colored.tsx"/>\r
+ <layer id="2" name="Tile Layer 1" width="48" height="24">\r
+ <data encoding="csv">\r
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,55,1,1,55,1,1,1,1,1,1,1,1,1,1,1,55,1,1,1,1,1,1,1,1,1,1,1,1,1,\r
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,55,1,1,55,1,1,1,1,1,1,1,1,1,1,1,55,1,1,1,1,1,1,1,1,1,1,1,1,1,\r
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,55,1,1,55,1,1,1,1,1,1,1,1,1,1,1,55,1,1,1,1,1,1,1,1,1,1,1,1,1,\r
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,55,1,1,55,1,1,1,1,1,1,1,1,1,1,1,55,1,1,1,1,1,1,1,1,1,1,1,1,1,\r
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,87,1,1,55,1,1,1,1,1,1,1,1,1,1,1,55,1,1,1,1,1,1,1,1,1,1,1,1,1,\r
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,55,1,1,55,1,1,1,1,1,1,1,1,1,1,1,55,1,1,1,1,1,1,1,1,1,1,1,1,1,\r
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,55,1,1,55,1,152,1,1,1,1,1,1,1,1,1,55,1,1,1,1,1,1,1,1,1,1,1,1,1,\r
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,55,1,1,55,1,88,1,1,1,1,1,1,1,1,1,55,1,1,1,1,1,1,1,1,1,1,1,1,1,\r
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,55,1,1,55,214,215,2147483863,216,1,1,1,1,1,1,1,55,1,1,1,1,1,1,1,1,1,1,1,1,1,\r
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,151,55,1,1,55,1,1,1,1,1,1,1,1,1,1,1,87,1,1,1,1,1,1,1,1,1,1,1,1,1,\r
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,88,55,1,1,55,1,1,1,1,1,1,1,246,1,306,1,55,1,1,1,1,1,1,1,1,1,1,1,1,1,\r
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,19,20,20,20,118,1,55,1,1,1,1,1,1,1,214,215,216,1,55,1,1,1,1,151,151,86,1,1,1,1,1,1,\r
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,51,1,1,1,53,1,87,1,1,1,280,1,86,183,1,1,1,1,87,1,151,1,19,20,20,20,20,21,1,1,1,1,\r
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,51,52,1,1,53,1,55,1,1,1,19,20,20,21,1,1,1,1,55,1,151,1,51,1,1,1,1,53,1,1,1,1,\r
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,51,1,1,1,53,1,87,151,1,1,51,1,1,53,1,1,1,2147483956,88,86,1,86,51,1,1,1,1,53,1,1,1,1,\r
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,51,1,1,1,53,1,55,86,1,117,148,1,1,53,179,179,179,19,20,20,20,20,148,1,1,1,1,53,1,1,1,1,\r
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,51,1,1,52,147,20,20,20,20,148,1,1,1,53,1,1,1,51,1,1,1,1,1,1,1,1,1,53,1,1,1,1,\r
+1,1,1,1,1,1,1,1,1,1,1,1,1,86,1,1,51,1,1,1,1,1,1,1,1,1,1,1,1,53,1,1,1,51,1,1,1,1,1,1,1,1,1,53,1,1,1,1,\r
+1,1,1,1,1,1,1,1,1,1,1,1,19,20,20,20,148,1,1,1,1,1,1,1,52,1,1,1,1,53,23,23,23,51,1,1,1,1,1,1,1,1,1,53,1,1,1,1,\r
+1,1,1,1,1,1,1,1,1,1,1,1,51,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,147,20,20,20,148,1,1,1,1,1,1,1,1,1,53,1,1,1,1,\r
+1,1,1,1,1,1,1,1,1,1,1,1,51,1,1,1,1,1,1,1,1,1,1,52,1,1,1,1,1,1,1,1,1,1,1,1,52,1,1,1,1,1,1,53,1,1,1,1,\r
+1,1,1,1,1,1,1,1,19,20,20,20,148,1,1,1,1,1,1,1,1,1,1,1,1,1,52,1,1,1,1,1,1,1,1,52,1,1,52,1,1,1,1,53,1,1,1,1,\r
+1,1,1,1,1,1,1,1,51,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,53,1,1,1,1,\r
+1,1,1,1,1,1,1,1,51,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,53,1,1,1,1\r
+</data>\r
+ </layer>\r
+</map>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<map version="1.2" tiledversion="2018.12.22" orientation="orthogonal" renderorder="right-down" width="48" height="24" tilewidth="16" tileheight="16" infinite="0" nextlayerid="3" nextobjectid="1">\r
+ <tileset firstgid="1" source="tileset_colored.tsx"/>\r
+ <layer id="2" name="Tile Layer 1" width="48" height="24">\r
+ <data encoding="csv">\r
+6,6,6,358,358,358,358,2,1,161,1,488,488,488,1,1,1,1,1,17,73,17,593,594,595,1,68,68,6,2,6,1610612907,1610612906,1610612906,169,169,169,169,169,3221225642,1,2147483716,2147483649,2147484243,2147484242,2147484241,2147483665,2147483721,\r
+1,1,1,488,328,328,488,1,1,161,1,422,328,422,2,2,2,2,33,17,73,17,556,556,556,68,2,6,33,68,68,68,2,2,1610612907,1610612906,1610612906,1610612906,1610612906,3221225643,1,2147483650,2147483716,2147484204,2147484204,2147484204,2147483665,2147483721,\r
+17,17,17,17,3221225486,14,17,17,17,107,17,17,17,17,17,17,33,6,33,17,73,17,556,556,556,1,1,1,68,1,1,1,6,1,1,2147483654,2147483649,2147483649,2147483649,2147483716,2147483649,2147483649,2147483649,2147484204,2147484204,2147484204,2147483665,2147483721,\r
+1610612750,1610612750,1610612750,1610612750,1,1,1610612750,1610612750,1610612750,107,1610612750,1610612750,1610612750,1610612750,1610612752,17,1,33,1,17,73,17,555,326,555,130,130,130,130,130,130,130,130,130,2147483778,2147483778,2147483778,2147483778,2147483778,2147483778,2147483778,2147483778,2147483778,2147484203,2147483974,2147484203,2147483665,2147483721,\r
+2684354606,2684354606,2684354606,2684354606,2684354606,2684354606,2684354606,2684354606,2684354606,107,2684354606,1610612782,1610612782,3221225519,14,17,529,530,531,17,73,17,17,17,17,17,17,17,17,17,17,17,17,17,2147483665,2147483665,2147483665,2147483665,2147483665,2147483665,2147483665,2147483665,2147483665,2147483665,2147483665,2147483665,2147483665,2147483721,\r
+2684354574,2684354574,2684354574,2684354574,2684354574,2684354574,2684354574,2684354574,2684354574,107,2684354574,2684354574,1,46,14,17,561,1,563,17,73,17,398,1,1,1,529,530,530,531,1,1,1,1,130,130,130,130,2147484179,2147484178,2147484178,2147484177,2147483649,2147483649,2147483649,2147484046,2147483665,2147483721,\r
+17,17,427,427,427,427,427,427,17,107,17,17,3221225486,46,15,17,593,594,595,17,73,17,1,529,530,531,561,1,1,563,1,1,33,1,130,70,2147483649,2147483649,2147484211,2147483649,2147483649,2147484209,2147484179,2147484178,2147484177,2147483649,2147483665,2147483721,\r
+1,1,1,428,1,399,1,397,1,161,1,17,751,46,14,17,587,556,587,17,73,17,1,561,1,563,488,625,626,626,626,627,1,1,529,530,530,530,530,530,531,2147484136,2147484211,2147483649,2147484209,2147483649,2147483665,2147483721,\r
+1,1,1,428,1,3,1,429,3,161,33,17,3221225486,46,14,17,587,556,587,17,73,17,1,593,594,595,488,657,1,1,1,659,1,68,561,1,1,1,1,1,563,2147484136,2147484243,2147484242,2147484241,2147483649,2147483665,2147483721,\r
+1,1,462,462,462,1,3,1,1,161,1,17,3221225486,46,14,17,587,556,587,17,73,17,1,556,556,556,1,689,690,690,690,691,68,1,593,594,594,594,594,594,595,2147483649,2147484204,2147484204,2147484204,2147483649,2147483665,2147483721,\r
+1,1,432,432,432,1,393,394,2147484041,161,401,17,3221225486,46,719,17,587,556,587,17,73,17,430,556,556,556,1,488,424,488,424,488,1,1,555,555,555,555,555,555,555,2147483649,2147484204,2147484204,2147484204,2147484078,2147483665,2147483721,\r
+1,1,1,1,1,1,1,3,3,161,68,17,3221225486,46,14,17,587,328,587,17,73,17,130,555,326,555,1,488,424,362,424,488,1,1,555,331,2147483979,555,331,2147483979,555,2147483649,2147484203,2147483974,2147484203,2147483778,2147483665,2147483721,\r
+99,99,99,99,99,99,99,99,99,161,99,17,367,46,719,17,398,17,1,17,73,17,1,35,17,35,1,6,6,17,6,6,1,1,2147483649,3221225486,14,2147483649,3221225486,14,2147483649,2147483649,2147483683,2147483665,2147483683,2147483649,2147483665,2147483721,\r
+17,17,17,17,17,17,17,17,17,107,17,17,3221225486,46,14,17,17,17,17,17,73,17,17,17,17,17,17,17,17,17,17,2147483665,2147483665,2147483665,2147483665,3221225486,14,2147483665,3221225486,14,2147483665,2147483665,2147483665,2147483665,2147483665,2147483665,2147483665,2147483721,\r
+1610612750,1610612750,1610612750,1610612750,1610612750,1610612750,1610612750,1610612750,1610612750,107,750,1610612750,1,46,1,1610612751,1610612750,1610612750,1610612750,1610612750,1,1610612750,716,1610612750,716,1610612750,1610612751,653,654,1610612750,1610612750,3758096398,3758096398,3758096398,3758096398,1,1,3758096398,1,653,654,3758096399,3758096398,716,3758096398,716,3758096398,2147483649,\r
+2684354606,2684354606,2684354606,2684354606,2684354606,2684354606,3221225520,2684354606,2684354606,107,2684354606,2684354606,2684354606,48,2684354606,2684354606,2684354606,2684354606,2684354606,2684354606,2684354606,2684354606,2684354606,2684354606,2684354606,2684354606,2684354606,2684354606,1610612782,1610612782,536870958,536870958,536870958,536870958,536870958,536870958,536870958,536870958,3758096430,3758096430,536870958,536870958,536870958,536870958,536870958,536870958,536870958,536870958,\r
+2684354574,2684354574,2684354574,2684354574,2684354574,1,46,1,2684354574,107,2684354574,2684354574,2684354574,2147484270,2147484269,2684354574,2684354574,1,2684354574,2147484302,2147484301,2684354574,2147484398,2684354574,2684354574,2684354574,2684354574,2684354574,2684354574,1,46,2147483649,536870926,536870926,536870926,536870926,2147483649,2147483694,2147483649,536870926,536870926,536870926,536870926,536870926,536870926,2147484398,536870926,2147484302,\r
+17,17,17,17,17,3221225486,46,14,17,107,17,17,17,17,17,17,17,73,17,17,17,17,17,17,17,17,17,17,17,3221225486,46,14,2147483665,2147483665,2147483665,2147483665,2147483662,2147483694,1073741838,2147483665,2147483665,2147483665,2147483665,2147483665,2147483665,2147483665,2147483665,2147483665,\r
+33,2,68,1,17,3221225486,46,14,17,161,1,1,1,1,1,1,17,73,17,1,1,1,1,398,1,1,1,1,17,3221225677,3221225677,3221225677,17,130,130,2147483665,1073742029,1073742029,1073742029,2147483665,2147483649,2147483649,2147483649,2147483649,2147484046,2147483649,2147483649,2147483649,\r
+6,68,68,1,17,3221225486,46,14,17,161,625,626,626,626,627,1,17,73,17,1,529,530,531,1,68,2,1,2,17,3221225486,46,751,17,1,2147483649,2147483665,2147483662,2147483694,1073741838,2147483665,2147483650,2147483649,2147483650,2147483716,2147483649,2147484179,2147484178,2147484177,\r
+2684354730,2684354731,2,68,17,3221225486,46,14,17,161,657,1,1,1,659,1,17,73,17,1,561,1,563,1,1,68,6,1,17,719,46,14,17,360,360,2147483665,2147483662,2147483694,1073741838,2147483665,2147483649,2147483654,2147483716,2147483649,2147483649,2147484211,2147483649,2147484209,\r
+169,3221225642,2,68,17,3221225486,46,14,17,161,689,690,690,690,691,130,17,73,17,130,593,594,595,530,530,530,531,1,17,3221225486,46,14,17,326,555,2147483665,2147483662,2147483694,1073741838,2147483665,2147483649,2147484179,2147484178,2147484178,2147484178,2147484243,2147484242,2147484241,\r
+169,169,2684354731,33,17,3221225486,46,14,17,161,488,424,488,424,488,1,17,73,17,1,556,556,556,1,1,1,563,1,17,719,46,15,17,2147483665,2147483665,2147483665,2147483663,2147483694,1073741838,2147483665,2147483649,2147484211,2147483649,2147483649,2147483649,2147484204,2147484204,2147484204,\r
+169,169,3221225642,1,17,3221225486,46,14,17,161,488,424,488,424,488,1,17,73,17,1,556,556,556,594,594,594,595,1,17,3221225486,46,14,17,2147483665,2147483665,2147483665,2147483662,2147483694,1073741838,2147483665,2147483649,2147484243,2147484242,2147484242,2147484242,2147484204,2147484204,2147484204\r
+</data>\r
+ </layer>\r
+</map>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<tileset version="1.2" tiledversion="2018.12.22" name="colored" tilewidth="16" tileheight="16" spacing="1" tilecount="1024" columns="32">\r
+ <image source="tileset_legacy.png" width="543" height="543"/>\r
+</tileset>\r
--- /dev/null
+Tilesheet information:
+
+Tile size β’ 16px Γ 16px
+Space between tiles β’ 1px Γ 1px
+---
+Total tiles (horizontal) β’ 49 tiles
+Total tiles (vertical) β’ 22 tiles
+---
+Total tiles in sheet β’ 1078 tiles
\ No newline at end of file
--- /dev/null
+[InternetShortcut]\r
+URL=http://www.kenney.nl/
\ No newline at end of file
--- /dev/null
+[InternetShortcut]\r
+URL=https://www.patreon.com/kenney/
\ No newline at end of file
-- main.lua
+local sti = require('plugin/STI/sti')
local conf = require('conf')
local assets = require('assets')
+local active_map = nil
+local world = nil
+local player = nil
+local tx, ty
+
function love.load()
love.graphics.setFont(assets.get_font('Cuneiform36'))
- love.audio.play(assets.get_source("intro"))
+ love.audio.play(assets.get_source('intro'))
+
+ active_map = assets.get_map('test_map_1')
+ for k,v in pairs(active_map.objects) do
+ if v.name == "Player" then
+ player = v
+ end
+ end
+
+ tx = 0
+ ty = 0
end
function love.update(delta_time)
+ active_map:update(delta_time)
+ if player then
+ player.x = player.x + 1
+ end
end
function love.keypressed(key)
end
function love.draw()
+ active_map:draw(tx, ty, 2.0)
love.graphics.print(IntroMessage, math.floor((conf.window.width/16) * 1), math.floor((conf.window.height/16) * 1))
end
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<tileset version="1.10" tiledversion="1.11.2" name="colored_packed" tilewidth="16" tileheight="16" tilecount="1078" columns="49">
+ <image source="../assets/tilesets/kenney_1_bit/Tilesheet/colored_packed.png" width="784" height="352"/>
+</tileset>
--- /dev/null
+return {
+ version = "1.10",
+ luaversion = "5.1",
+ tiledversion = "1.11.2",
+ class = "",
+ orientation = "orthogonal",
+ renderorder = "right-down",
+ width = 30,
+ height = 20,
+ tilewidth = 16,
+ tileheight = 16,
+ nextlayerid = 5,
+ nextobjectid = 9,
+ properties = {},
+ tilesets = {
+ {
+ name = "colored_packed",
+ firstgid = 1,
+ class = "",
+ tilewidth = 16,
+ tileheight = 16,
+ spacing = 0,
+ margin = 0,
+ columns = 49,
+ image = "../assets/tilesets/kenney_1_bit/Tilesheet/colored_packed.png",
+ imagewidth = 784,
+ imageheight = 352,
+ objectalignment = "unspecified",
+ tilerendersize = "tile",
+ fillmode = "stretch",
+ tileoffset = {
+ x = 0,
+ y = 0
+ },
+ grid = {
+ orientation = "orthogonal",
+ width = 16,
+ height = 16
+ },
+ properties = {},
+ wangsets = {},
+ tilecount = 1078,
+ tiles = {}
+ }
+ },
+ layers = {
+ {
+ type = "tilelayer",
+ x = 0,
+ y = 0,
+ width = 30,
+ height = 20,
+ id = 1,
+ name = "Tile Layer 1",
+ class = "",
+ visible = true,
+ opacity = 1,
+ offsetx = 0,
+ offsety = 0,
+ parallaxx = 1,
+ parallaxy = 1,
+ properties = {},
+ encoding = "lua",
+ data = {
+ 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
+ 51, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 51,
+ 51, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 51,
+ 51, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 51,
+ 51, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 51,
+ 51, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 746, 747, 748, 1, 1, 1, 1, 1, 1, 1, 1, 51,
+ 51, 1, 1, 1, 1, 1, 1, 206, 2684354765, 2684354765, 2684354765, 2684354765, 2684354765, 2684354766, 1, 1, 1, 1, 795, 796, 797, 1, 1, 1, 1, 1, 1, 1, 1, 51,
+ 51, 1, 1, 1, 1, 1, 1, 205, 1, 1, 1, 1, 1, 205, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 51,
+ 51, 1, 1, 1, 1, 1, 1, 205, 206, 2684354765, 2684354765, 2684354765, 2684354766, 205, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 51,
+ 51, 1, 1, 1, 1, 1, 1, 205, 205, 1, 209, 1, 205, 205, 1, 1, 1, 1, 1, 1, 19, 21, 19, 21, 1, 1, 1, 1, 1, 51,
+ 51, 1, 1, 1, 1, 1, 1, 205, 1610612942, 2684354765, 208, 2684354765, 3221225678, 205, 1, 1, 1, 1, 1, 1, 117, 119, 117, 119, 1, 1, 1, 1, 1, 51,
+ 51, 1, 1, 1, 1, 1, 1, 205, 1, 1, 3221225677, 1, 1, 205, 1, 1, 1, 1, 1, 1, 19, 21, 19, 21, 1, 1, 1, 1, 1, 51,
+ 51, 1, 1, 1, 1, 1, 1, 1610612942, 2684354765, 2684354765, 1610612943, 2684354765, 2684354765, 3221225678, 1, 1, 1, 1, 1, 1, 117, 119, 117, 119, 1, 1, 1, 1, 1, 51,
+ 51, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 51,
+ 51, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 51,
+ 51, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 51,
+ 51, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 51,
+ 51, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 51,
+ 51, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 51,
+ 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51
+ }
+ },
+ {
+ type = "objectgroup",
+ draworder = "topdown",
+ id = 2,
+ name = "Object Layer 1",
+ class = "",
+ visible = true,
+ opacity = 1,
+ offsetx = 0,
+ offsety = 0,
+ parallaxx = 1,
+ parallaxy = 1,
+ properties = {},
+ objects = {
+ {
+ id = 2,
+ name = "Player",
+ type = "",
+ shape = "rectangle",
+ x = 48,
+ y = 160,
+ width = 16,
+ height = 16,
+ rotation = 0,
+ gid = 515,
+ visible = true,
+ properties = {}
+ },
+ {
+ id = 8,
+ name = "",
+ type = "",
+ shape = "rectangle",
+ x = 128,
+ y = 64,
+ width = 16,
+ height = 16,
+ rotation = 0,
+ gid = 515,
+ visible = true,
+ properties = {}
+ }
+ }
+ }
+ }
+}
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<map version="1.10" tiledversion="1.11.2" orientation="orthogonal" renderorder="right-down" width="30" height="20" tilewidth="16" tileheight="16" infinite="0" nextlayerid="5" nextobjectid="10">
+ <editorsettings>
+ <export target="test_1.lua" format="lua"/>
+ </editorsettings>
+ <tileset firstgid="1" name="colored_packed" tilewidth="16" tileheight="16" tilecount="1078" columns="49">
+ <image source="../assets/tilesets/kenney_1_bit/Tilesheet/colored_packed.png" width="784" height="352"/>
+ </tileset>
+ <layer id="1" name="Tile Layer 1" width="30" height="20">
+ <data encoding="csv">
+51,869,870,871,872,873,874,875,876,877,878,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,
+918,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,51,
+919,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,51,
+920,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,51,
+921,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,51,
+922,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,746,747,748,1,1,1,1,1,1,1,1,51,
+923,1,1,1,1,1,1,206,2684354765,2684354765,2684354765,2684354765,2684354765,2684354766,1,1,1,1,795,796,797,1,1,1,1,1,1,1,1,51,
+924,1,1,1,1,1,1,205,1,1,1,1,1,205,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,51,
+925,1,1,1,1,1,1,205,206,2684354765,2684354765,2684354765,2684354766,205,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,51,
+926,1,1,1,1,1,1,205,205,1,209,1,205,205,1,1,1,1,1,1,19,21,19,21,1,1,1,1,1,51,
+927,1,1,1,1,1,1,205,1610612942,2684354765,208,2684354765,3221225678,205,1,1,1,1,1,1,117,119,117,119,1,1,1,1,1,51,
+928,1,1,1,1,1,1,205,1,1,3221225677,1,1,205,1,1,1,1,1,1,19,21,19,21,1,1,1,1,1,51,
+51,1,1,1,1,1,1,1610612942,2684354765,2684354765,1610612943,2684354765,2684354765,3221225678,1,1,1,1,1,1,117,119,117,119,1,1,1,1,1,51,
+51,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,51,
+51,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,51,
+51,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,51,
+51,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,51,
+51,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,51,
+51,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,51,
+51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51
+</data>
+ </layer>
+ <objectgroup id="2" name="Object Layer 1">
+ <object id="2" name="Player" gid="515" x="48" y="160" width="16" height="16"/>
+ </objectgroup>
+</map>