]> git.mcshandy.xyz Git - sumeriangame/commitdiff
Map asset loading and rendering with custom layer detection and import basics
authorRandy McShandy <randy@mcshandy.xyz>
Tue, 9 Dec 2025 04:32:36 +0000 (22:32 -0600)
committerRandy McShandy <randy@mcshandy.xyz>
Tue, 9 Dec 2025 04:32:36 +0000 (22:32 -0600)
31 files changed:
main/assets.lua
main/assets/sprites/gilgamesh.png [new file with mode: 0644]
main/assets/sprites/gilgamesh.xcf [new file with mode: 0644]
main/assets/tilesets/kenney_1_bit/Instructions.url [new file with mode: 0644]
main/assets/tilesets/kenney_1_bit/License.txt [new file with mode: 0644]
main/assets/tilesets/kenney_1_bit/Preview.png [new file with mode: 0644]
main/assets/tilesets/kenney_1_bit/Sample_fantasy.png [new file with mode: 0644]
main/assets/tilesets/kenney_1_bit/Sample_interior.png [new file with mode: 0644]
main/assets/tilesets/kenney_1_bit/Sample_platformer.png [new file with mode: 0644]
main/assets/tilesets/kenney_1_bit/Sample_urban.png [new file with mode: 0644]
main/assets/tilesets/kenney_1_bit/Tilemap/sample_fantasy.tmx [new file with mode: 0644]
main/assets/tilesets/kenney_1_bit/Tilemap/sample_interior.tmx [new file with mode: 0644]
main/assets/tilesets/kenney_1_bit/Tilemap/sample_platformer.tmx [new file with mode: 0644]
main/assets/tilesets/kenney_1_bit/Tilemap/sample_urban.tmx [new file with mode: 0644]
main/assets/tilesets/kenney_1_bit/Tilemap/tileset_colored.tsx [new file with mode: 0644]
main/assets/tilesets/kenney_1_bit/Tilemap/tileset_legacy.png [new file with mode: 0644]
main/assets/tilesets/kenney_1_bit/Tilesheet.txt [new file with mode: 0644]
main/assets/tilesets/kenney_1_bit/Tilesheet/colored-transparent.png [new file with mode: 0644]
main/assets/tilesets/kenney_1_bit/Tilesheet/colored-transparent_packed.png [new file with mode: 0644]
main/assets/tilesets/kenney_1_bit/Tilesheet/colored.png [new file with mode: 0644]
main/assets/tilesets/kenney_1_bit/Tilesheet/colored_packed.png [new file with mode: 0644]
main/assets/tilesets/kenney_1_bit/Tilesheet/monochrome-transparent.png [new file with mode: 0644]
main/assets/tilesets/kenney_1_bit/Tilesheet/monochrome-transparent_packed.png [new file with mode: 0644]
main/assets/tilesets/kenney_1_bit/Tilesheet/monochrome.png [new file with mode: 0644]
main/assets/tilesets/kenney_1_bit/Tilesheet/monochrome_packed.png [new file with mode: 0644]
main/assets/tilesets/kenney_1_bit/Visit Kenney.url [new file with mode: 0644]
main/assets/tilesets/kenney_1_bit/Visit Patreon.url [new file with mode: 0644]
main/main.lua
main/tiled/Sample_fantasy.tsx [new file with mode: 0644]
main/tiled/test_1.lua [new file with mode: 0644]
main/tiled/test_1.tmx [new file with mode: 0644]

index ba8f1e90cac0cb009175c0aecd9c3fce9752c9fc..f92ffb12248a324b2d9523ccdf9ec43fffba8d78 100644 (file)
@@ -1,6 +1,8 @@
 -- assets.lua
 -- Asset storage
 
+local sti  = require('plugin/STI/sti')
+
 -- You need a cuneiform font for this one
 IntroMessage = "\nπ’Š©π’Œ†π’‹Όπ’€―π’€­π’Άπ’ˆ¨π’‚—\nπ’“π’‹§π’ˆ π’ƒ²\n𒍣𒂡"
 
@@ -11,8 +13,50 @@ AssetClass =
   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, {})
@@ -35,8 +79,50 @@ function assets.get_source(name)
   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
diff --git a/main/assets/sprites/gilgamesh.png b/main/assets/sprites/gilgamesh.png
new file mode 100644 (file)
index 0000000..3c0398d
Binary files /dev/null and b/main/assets/sprites/gilgamesh.png differ
diff --git a/main/assets/sprites/gilgamesh.xcf b/main/assets/sprites/gilgamesh.xcf
new file mode 100644 (file)
index 0000000..4468981
Binary files /dev/null and b/main/assets/sprites/gilgamesh.xcf differ
diff --git a/main/assets/tilesets/kenney_1_bit/Instructions.url b/main/assets/tilesets/kenney_1_bit/Instructions.url
new file mode 100644 (file)
index 0000000..fc622ae
--- /dev/null
@@ -0,0 +1,6 @@
+[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
diff --git a/main/assets/tilesets/kenney_1_bit/License.txt b/main/assets/tilesets/kenney_1_bit/License.txt
new file mode 100644 (file)
index 0000000..1b18403
--- /dev/null
@@ -0,0 +1,23 @@
+       \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
diff --git a/main/assets/tilesets/kenney_1_bit/Preview.png b/main/assets/tilesets/kenney_1_bit/Preview.png
new file mode 100644 (file)
index 0000000..014112a
Binary files /dev/null and b/main/assets/tilesets/kenney_1_bit/Preview.png differ
diff --git a/main/assets/tilesets/kenney_1_bit/Sample_fantasy.png b/main/assets/tilesets/kenney_1_bit/Sample_fantasy.png
new file mode 100644 (file)
index 0000000..d7b9979
Binary files /dev/null and b/main/assets/tilesets/kenney_1_bit/Sample_fantasy.png differ
diff --git a/main/assets/tilesets/kenney_1_bit/Sample_interior.png b/main/assets/tilesets/kenney_1_bit/Sample_interior.png
new file mode 100644 (file)
index 0000000..1afbc7a
Binary files /dev/null and b/main/assets/tilesets/kenney_1_bit/Sample_interior.png differ
diff --git a/main/assets/tilesets/kenney_1_bit/Sample_platformer.png b/main/assets/tilesets/kenney_1_bit/Sample_platformer.png
new file mode 100644 (file)
index 0000000..4fa13b3
Binary files /dev/null and b/main/assets/tilesets/kenney_1_bit/Sample_platformer.png differ
diff --git a/main/assets/tilesets/kenney_1_bit/Sample_urban.png b/main/assets/tilesets/kenney_1_bit/Sample_urban.png
new file mode 100644 (file)
index 0000000..2ef290a
Binary files /dev/null and b/main/assets/tilesets/kenney_1_bit/Sample_urban.png differ
diff --git a/main/assets/tilesets/kenney_1_bit/Tilemap/sample_fantasy.tmx b/main/assets/tilesets/kenney_1_bit/Tilemap/sample_fantasy.tmx
new file mode 100644 (file)
index 0000000..7f0f84f
--- /dev/null
@@ -0,0 +1,32 @@
+<?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
diff --git a/main/assets/tilesets/kenney_1_bit/Tilemap/sample_interior.tmx b/main/assets/tilesets/kenney_1_bit/Tilemap/sample_interior.tmx
new file mode 100644 (file)
index 0000000..9388dde
--- /dev/null
@@ -0,0 +1,32 @@
+<?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
diff --git a/main/assets/tilesets/kenney_1_bit/Tilemap/sample_platformer.tmx b/main/assets/tilesets/kenney_1_bit/Tilemap/sample_platformer.tmx
new file mode 100644 (file)
index 0000000..c174e2c
--- /dev/null
@@ -0,0 +1,32 @@
+<?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
diff --git a/main/assets/tilesets/kenney_1_bit/Tilemap/sample_urban.tmx b/main/assets/tilesets/kenney_1_bit/Tilemap/sample_urban.tmx
new file mode 100644 (file)
index 0000000..836930a
--- /dev/null
@@ -0,0 +1,32 @@
+<?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
diff --git a/main/assets/tilesets/kenney_1_bit/Tilemap/tileset_colored.tsx b/main/assets/tilesets/kenney_1_bit/Tilemap/tileset_colored.tsx
new file mode 100644 (file)
index 0000000..4d0ee20
--- /dev/null
@@ -0,0 +1,4 @@
+<?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
diff --git a/main/assets/tilesets/kenney_1_bit/Tilemap/tileset_legacy.png b/main/assets/tilesets/kenney_1_bit/Tilemap/tileset_legacy.png
new file mode 100644 (file)
index 0000000..6c3751c
Binary files /dev/null and b/main/assets/tilesets/kenney_1_bit/Tilemap/tileset_legacy.png differ
diff --git a/main/assets/tilesets/kenney_1_bit/Tilesheet.txt b/main/assets/tilesets/kenney_1_bit/Tilesheet.txt
new file mode 100644 (file)
index 0000000..3dc19c9
--- /dev/null
@@ -0,0 +1,9 @@
+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
diff --git a/main/assets/tilesets/kenney_1_bit/Tilesheet/colored-transparent.png b/main/assets/tilesets/kenney_1_bit/Tilesheet/colored-transparent.png
new file mode 100644 (file)
index 0000000..154a26e
Binary files /dev/null and b/main/assets/tilesets/kenney_1_bit/Tilesheet/colored-transparent.png differ
diff --git a/main/assets/tilesets/kenney_1_bit/Tilesheet/colored-transparent_packed.png b/main/assets/tilesets/kenney_1_bit/Tilesheet/colored-transparent_packed.png
new file mode 100644 (file)
index 0000000..ec91ce3
Binary files /dev/null and b/main/assets/tilesets/kenney_1_bit/Tilesheet/colored-transparent_packed.png differ
diff --git a/main/assets/tilesets/kenney_1_bit/Tilesheet/colored.png b/main/assets/tilesets/kenney_1_bit/Tilesheet/colored.png
new file mode 100644 (file)
index 0000000..8e2f3e7
Binary files /dev/null and b/main/assets/tilesets/kenney_1_bit/Tilesheet/colored.png differ
diff --git a/main/assets/tilesets/kenney_1_bit/Tilesheet/colored_packed.png b/main/assets/tilesets/kenney_1_bit/Tilesheet/colored_packed.png
new file mode 100644 (file)
index 0000000..a7a8237
Binary files /dev/null and b/main/assets/tilesets/kenney_1_bit/Tilesheet/colored_packed.png differ
diff --git a/main/assets/tilesets/kenney_1_bit/Tilesheet/monochrome-transparent.png b/main/assets/tilesets/kenney_1_bit/Tilesheet/monochrome-transparent.png
new file mode 100644 (file)
index 0000000..9f8187d
Binary files /dev/null and b/main/assets/tilesets/kenney_1_bit/Tilesheet/monochrome-transparent.png differ
diff --git a/main/assets/tilesets/kenney_1_bit/Tilesheet/monochrome-transparent_packed.png b/main/assets/tilesets/kenney_1_bit/Tilesheet/monochrome-transparent_packed.png
new file mode 100644 (file)
index 0000000..4a99afc
Binary files /dev/null and b/main/assets/tilesets/kenney_1_bit/Tilesheet/monochrome-transparent_packed.png differ
diff --git a/main/assets/tilesets/kenney_1_bit/Tilesheet/monochrome.png b/main/assets/tilesets/kenney_1_bit/Tilesheet/monochrome.png
new file mode 100644 (file)
index 0000000..fe873cd
Binary files /dev/null and b/main/assets/tilesets/kenney_1_bit/Tilesheet/monochrome.png differ
diff --git a/main/assets/tilesets/kenney_1_bit/Tilesheet/monochrome_packed.png b/main/assets/tilesets/kenney_1_bit/Tilesheet/monochrome_packed.png
new file mode 100644 (file)
index 0000000..1c33015
Binary files /dev/null and b/main/assets/tilesets/kenney_1_bit/Tilesheet/monochrome_packed.png differ
diff --git a/main/assets/tilesets/kenney_1_bit/Visit Kenney.url b/main/assets/tilesets/kenney_1_bit/Visit Kenney.url
new file mode 100644 (file)
index 0000000..c220c41
--- /dev/null
@@ -0,0 +1,2 @@
+[InternetShortcut]\r
+URL=http://www.kenney.nl/
\ No newline at end of file
diff --git a/main/assets/tilesets/kenney_1_bit/Visit Patreon.url b/main/assets/tilesets/kenney_1_bit/Visit Patreon.url
new file mode 100644 (file)
index 0000000..67e9ea5
--- /dev/null
@@ -0,0 +1,2 @@
+[InternetShortcut]\r
+URL=https://www.patreon.com/kenney/
\ No newline at end of file
index 883cbcebc16ab7c6ede5e3ad3b1f0ef66272d1cf..fccbedc00e10a1779fe1865afec40d36d6def5c3 100644 (file)
@@ -1,19 +1,40 @@
 -- 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
diff --git a/main/tiled/Sample_fantasy.tsx b/main/tiled/Sample_fantasy.tsx
new file mode 100644 (file)
index 0000000..2d98431
--- /dev/null
@@ -0,0 +1,4 @@
+<?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>
diff --git a/main/tiled/test_1.lua b/main/tiled/test_1.lua
new file mode 100644 (file)
index 0000000..efeee1e
--- /dev/null
@@ -0,0 +1,132 @@
+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 = {}
+        }
+      }
+    }
+  }
+}
diff --git a/main/tiled/test_1.tmx b/main/tiled/test_1.tmx
new file mode 100644 (file)
index 0000000..d8d9090
--- /dev/null
@@ -0,0 +1,36 @@
+<?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>