]> git.mcshandy.xyz Git - sumeriangame/commitdiff
Teleportation and necessary camera work done. tablet_iv
authorRandy McShandy <randy@mcshandy.xyz>
Wed, 1 Apr 2026 03:41:00 +0000 (22:41 -0500)
committerRandy McShandy <randy@mcshandy.xyz>
Wed, 1 Apr 2026 03:41:00 +0000 (22:41 -0500)
main/assets/tilesets/kenney_1_bit/Tilesheet/monochrome_ba_packed.png
main/assets/tilesets/kenney_1_bit/Tilesheet/monochrome_bw_packed.png
main/control.lua
main/handlers.lua
main/message.lua
main/player.lua
main/render.lua
main/tiled/tablet_iv.lua
main/tiled/tablet_iv.tmx
main/vector.lua

index 0036d2bd192221443217e581022030bca2391767..8dc915033fae31e00ff6b5bbd203a54e4ef79260 100644 (file)
Binary files a/main/assets/tilesets/kenney_1_bit/Tilesheet/monochrome_ba_packed.png and b/main/assets/tilesets/kenney_1_bit/Tilesheet/monochrome_ba_packed.png differ
index 86ec7cd5d1dfbb5b5e4f10b2b78d50b40b9ee2cc..7a8542c4faa7b283cb2b40d1aaaaf1d1e5a66b5c 100644 (file)
Binary files a/main/assets/tilesets/kenney_1_bit/Tilesheet/monochrome_bw_packed.png and b/main/assets/tilesets/kenney_1_bit/Tilesheet/monochrome_bw_packed.png differ
index 722a2d3465cd465630a0ab57180596c1f753e68d..a49173a93d7853e64babd14e86cdc0930a66858a 100644 (file)
@@ -1,6 +1,5 @@
 -- control.lua
 
-local player_module = require('player')
 local assets = require('assets')
 local render = require('render')
 
index 23a7cbff76e61461052c9075e53c8efe1aa4befa..49f0ecf4a73bf772ba4ba0f5772c0beb659844c7 100644 (file)
@@ -5,6 +5,7 @@
 
 local control = require('control')
 local message = require('message')
+local player_module = require('player')
 local render = require('render')
 
 function love.handlers.map_changed(new_map_name)
@@ -29,6 +30,7 @@ end
 
 function love.handlers.ui_control(key, value)
   message.ui_control(key, value)
+  player_module.ui_control(key, value)
 end
 
 function love.handlers.collision(focus, pos)
index 8a423c76fbc97476b6e9f07e353c0c10edf42b6a..594ca26a45965f8495bd95370fcddfe59127a478 100644 (file)
@@ -61,7 +61,6 @@ end
 
 function message.ui_control(key, value)
   if (value.type == control.UIEvent.Interact) then
-    print('interact')
     message.active_message = nil
   end
 end
index 84f1c194f6c67dfe8d32d38219d9461ea8c50319..5bbecbbd3ad271b8648719df40df1c5753158e1c 100644 (file)
@@ -1,6 +1,7 @@
 -- player.lua
 
 local conf = require('conf')
+local control = require('control')
 local vector = require('vector')
 local collision = require('collision')
 local render = require('render')
@@ -42,4 +43,23 @@ function player_module.draw(player_obj)
   end
 end
 
+function player_module.ui_control(key, value)
+  local player = render.map.active_map.player
+  if value.type == control.UIEvent.Interact then
+    for k,object in pairs(render.map.active_map.objects) do
+      if vector.eq_xy({ x = object.x, y = object.y }, player.vec) then
+        if object.type == 'teleporter_tx' then
+          receiver = render.map.active_map.teleporters[object.properties.target]
+          rx_focus = render.map.active_map[receiver.properties.camera]
+          if receiver and rx_focus then
+            player.vec.x = receiver.x
+            player.vec.y = receiver.y
+            render.map.active_map.topleft = vector.scale_xy(rx_focus.vec, -1)
+          end
+        end
+      end
+    end
+  end
+end
+
 return player_module
index 900e4034eacb08bc123d9a85170f7e2672aa7c7c..ecfd2c78fd6d7cb82555ce1fc55c66bfdaba92f2 100644 (file)
@@ -3,6 +3,7 @@
 assets = require('assets')
 conf = require('conf')
 utils = require('utils')
+vector = require('vector')
 
 render = {}
 
@@ -25,7 +26,7 @@ render.color = {}
 -- wrapping a function that returns multiple values in {} packs
 -- them into a single struct
 render.color.really_dark    = { love.math.colorFromBytes(2, 2, 2, 255) }
-render.color.dark           = { love.math.colorFromBytes(54, 54, 54, 255) }
+render.color.dark           = { love.math.colorFromBytes(51, 51, 51, 255) }
 render.color.light          = { love.math.colorFromBytes(229, 229, 229, 255) }
 
 render.color.dark_trans60 = utils.shallow_copy(render.color.dark)
@@ -52,6 +53,7 @@ render.viewport =
 function render.activate_map(new_map_name)
   local success = false
   local new_map = assets.get_map(new_map_name)
+  local player = assets.get_object('Player')
 
   if new_map then
     success = true
@@ -59,6 +61,7 @@ function render.activate_map(new_map_name)
     render.map.scale = new_map.args.scale
     render.active_viewclass = render.ViewClassData[new_map.properties.viewclass]
     render.viewport = render.update_viewport()
+    love.graphics.setBackgroundColor(render.color.dark)
 
     -- Find all stored objects in the map we're switching to, and update their positional
     -- info with the unique copy stored in each map.
@@ -67,12 +70,20 @@ function render.activate_map(new_map_name)
       if object_in_map then
         object.vec = object_in_map.vec
         if object_in_map.name == 'Player' then
+          render.map.active_map.player = object_in_map
           render.map.active_map.first_loop = (render.map.active_map.topleft == nil)
           render.map.active_map.topleft = render.map.active_camera(object)
         end
       end
     end
 
+    render.map.active_map.teleporters = {}
+    for k,object in pairs(render.map.active_map.objects) do
+      if object.type == 'teleporter_tx' or object.type == 'teleporter_rx' then
+        render.map.active_map.teleporters[object.name] = object
+      end
+    end
+
     love.event.push('map_changed', new_map_name)
   end
 
@@ -111,6 +122,7 @@ render.CameraClass = {
   -- Player free roam, transitioning the entire map screen at boundaries,
   -- akin to some retro styles
   NESFreeRoam = 2,
+  SingleScreenFreeRoam = 3,
 }
 
 render.map.cameras = {}
@@ -167,9 +179,31 @@ function(focus)
   elseif ((focus.vec.heading == utils.Headings.North) and (((focus.vec.y * render.map.scale) - cf.y) % render.viewport.ey) == (render.viewport.ey - tile.h)) then
     new_topleft.y = new_topleft.y + (render.viewport.ey / render.map.scale)
   end
+
+  return new_topleft
+end
+
+render.map.cameras[render.CameraClass.SingleScreenFreeRoam] =
+function(focus)
+  local tile = {
+    w = render.map.active_map.tilewidth  * render.map.scale,
+    h = render.map.active_map.tileheight * render.map.scale,
+  }
+
+  if render.map.active_map.first_loop then
+    render.map.active_map.first_loop = false
+    return
+    {
+      x = -render.map.active_map['CameraFocus'].vec.x + (tile.w / render.map.scale),
+      y = -render.map.active_map['CameraFocus'].vec.y + (tile.h / render.map.scale),
+    }
+  end
+
+  local new_topleft = utils.shallow_copy(render.map.active_map.topleft)
+
   return new_topleft
 end
 
-render.map.active_camera = render.map.cameras[render.CameraClass.NESFreeRoam]
+render.map.active_camera = render.map.cameras[render.CameraClass.SingleScreenFreeRoam]
 
 return render
index a22a42af75f4cd2d516217114dcf2af94d4f1fe1..70d899b46084eb8112c15179d6519cfd1aec8c68 100644 (file)
@@ -1,16 +1,16 @@
 return {
   version = "1.10",
   luaversion = "5.1",
-  tiledversion = "1.11.2",
+  tiledversion = "1.12.0",
   class = "",
   orientation = "orthogonal",
   renderorder = "left-down",
-  width = 30,
-  height = 20,
+  width = 60,
+  height = 30,
   tilewidth = 16,
   tileheight = 16,
-  nextlayerid = 4,
-  nextobjectid = 16,
+  nextlayerid = 5,
+  nextobjectid = 54,
   properties = {
     ["viewclass"] = "topdown"
   },
@@ -43,7 +43,20 @@ return {
       properties = {},
       wangsets = {},
       tilecount = 1078,
-      tiles = {}
+      tiles = {
+        {
+          id = 253,
+          properties = {
+            ["wall"] = true
+          }
+        },
+        {
+          id = 254,
+          properties = {
+            ["wall"] = true
+          }
+        }
+      }
     },
     {
       name = "monochrome_bw_packed",
@@ -72,7 +85,14 @@ return {
       properties = {},
       wangsets = {},
       tilecount = 1078,
-      tiles = {}
+      tiles = {
+        {
+          id = 254,
+          properties = {
+            ["wall"] = true
+          }
+        }
+      }
     }
   },
   layers = {
@@ -80,10 +100,10 @@ return {
       type = "tilelayer",
       x = 0,
       y = 0,
-      width = 30,
-      height = 20,
+      width = 60,
+      height = 30,
       id = 1,
-      name = "Tile Layer 1",
+      name = "Ground",
       class = "",
       visible = true,
       opacity = 0.9,
@@ -94,26 +114,86 @@ return {
       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, 1079, 1080, 1079, 1079, 1177, 1079, 1, 1, 1, 1, 1079, 1079, 1583, 1177, 1177, 1079, 1, 1, 1, 1, 1079, 1079, 1177, 1177, 1177, 1183, 1, 1,
-        1, 1, 1079, 1080, 1079, 1079, 1079, 1079, 1, 1, 1, 1, 1079, 1079, 1079, 1079, 1177, 1079, 1, 1, 1, 1, 1177, 1080, 1079, 1080, 1177, 1177, 1, 1,
-        1, 1, 1079, 1079, 1079, 1177, 1079, 1177, 1, 1, 1, 1, 1079, 1079, 1079, 1177, 1080, 1080, 1, 1, 1, 1, 1079, 1079, 1079, 1177, 1079, 1079, 1, 1,
-        1, 1, 1079, 1177, 1079, 1079, 1079, 1079, 1, 1, 1, 1, 1079, 1079, 1177, 1079, 1079, 1177, 1, 1, 1, 1, 1079, 1080, 1079, 1079, 1177, 1583, 1, 1,
-        1, 1, 1079, 1080, 1177, 1177, 1079, 1079, 1, 1, 1, 1, 1177, 1079, 1079, 1079, 1079, 1079, 1, 1, 1, 1, 1079, 1183, 1080, 1079, 1079, 1177, 1, 1,
-        1, 1, 1079, 1079, 1079, 1079, 1080, 1079, 1, 1, 1, 1, 1079, 1079, 1079, 1177, 1080, 1079, 1, 1, 1, 1, 1177, 1079, 1177, 1079, 1079, 1079, 1, 1,
-        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-        1, 1, 1177, 1177, 1080, 1177, 1183, 1080, 1, 1, 1, 1, 1183, 1079, 1079, 1177, 1183, 1080, 1, 1, 1, 1, 1084, 1084, 1084, 1084, 1128, 1180, 1, 1,
-        1, 1, 1079, 1183, 1079, 1177, 1079, 1080, 1, 1, 1, 1, 1079, 1079, 1177, 1079, 1080, 1183, 1, 1, 1, 1, 1084, 1086, 1177, 1128, 1128, 1128, 1, 1,
-        1, 1, 1080, 1177, 1583, 1177, 1177, 1079, 1, 1, 1, 1, 1583, 1079, 1079, 1079, 1079, 1079, 1, 1, 1, 1, 1079, 1079, 1079, 1079, 1128, 1128, 1, 1,
-        1, 1, 1183, 1080, 1079, 1177, 1177, 1177, 1, 1, 1, 1, 1177, 1177, 1177, 1079, 1177, 1177, 1, 1, 1, 1, 1084, 1177, 1128, 1128, 1128, 1180, 1, 1,
-        1, 1, 1177, 1079, 1177, 1080, 1079, 1079, 1, 1, 1, 1, 1177, 1080, 1079, 1079, 1177, 1080, 1, 1, 1, 1, 1177, 1177, 1128, 1180, 1180, 1128, 1, 1,
-        1, 1, 1079, 1177, 1177, 1079, 1079, 1079, 1, 1, 1, 1, 1183, 1079, 1080, 1080, 1177, 1183, 1, 1, 1, 1, 1080, 1177, 1080, 1128, 1180, 1128, 1, 1,
-        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
+        254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
+        254, 1332, 1610614069, 1610614069, 1610614069, 1610614069, 1610614069, 1610614069, 1332, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 1332, 1332, 1332, 1610614069, 1610614069, 1610614069, 1610614069, 1610614069, 1610614069, 1332, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 1332, 1332, 1332, 1610614069, 1610614069, 1610614069, 1610614069, 1610614069, 1610614069, 1332, 1332, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
+        254, 3221226805, 1079, 1079, 1079, 1079, 1079, 1079, 1333, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 1332, 1332, 3221226805, 1079, 1079, 1079, 1079, 1079, 1079, 1333, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 1332, 1332, 3221226805, 1079, 1079, 1079, 1079, 1079, 1079, 1333, 1332, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
+        254, 3221226805, 1079, 1079, 1079, 1079, 1079, 1079, 1333, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 1332, 1332, 3221226805, 1079, 1079, 1079, 1079, 1079, 1079, 1333, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 1332, 1332, 3221226805, 1079, 1079, 1079, 1079, 1079, 1079, 1333, 1332, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
+        254, 3221226805, 1079, 1079, 1079, 1079, 1079, 1079, 1333, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 1332, 1332, 3221226805, 1079, 1079, 1079, 1079, 1079, 1079, 1333, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 1332, 1332, 3221226805, 1079, 1079, 1079, 1079, 1079, 1079, 1333, 1332, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
+        254, 3221226805, 1079, 1079, 1079, 1079, 1079, 1079, 1333, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 1332, 1332, 3221226805, 1079, 1079, 1079, 1079, 1079, 1079, 1333, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 1332, 1332, 3221226805, 1079, 1079, 1079, 1079, 1079, 1079, 1333, 1332, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
+        254, 3221226805, 1079, 1079, 1079, 1079, 1079, 1079, 1333, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 1332, 1332, 3221226805, 1079, 1079, 1079, 1079, 1079, 1079, 1333, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 1332, 1332, 3221226805, 1079, 1079, 1079, 1079, 1079, 1079, 1333, 1332, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
+        254, 3221226805, 1079, 1079, 1079, 1079, 1079, 1079, 1333, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 1332, 1332, 3221226805, 1079, 1079, 1079, 1079, 1079, 1079, 1333, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 1332, 1332, 3221226805, 1079, 1079, 1079, 1079, 1079, 1079, 1333, 1332, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
+        254, 1332, 2684355893, 2684355893, 2684355893, 2684355893, 2684355893, 2684355893, 1332, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 1332, 1332, 1332, 2684355893, 2684355893, 2684355893, 2684355893, 2684355893, 2684355893, 1332, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 1332, 1332, 1332, 2684355893, 2684355893, 2684355893, 2684355893, 2684355893, 2684355893, 1332, 1332, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
+        254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
+        254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
+        1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
+        1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
+        1332, 1332, 1610614069, 1610614069, 1610614069, 1610614069, 1610614069, 1610614069, 1332, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 1332, 1332, 1332, 1610614069, 1610614069, 1610614069, 1610614069, 1610614069, 1610614069, 1332, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 1332, 1332, 1332, 1610614069, 1610614069, 1610614069, 1610614069, 1610614069, 1610614069, 1332, 1332, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
+        1332, 3221226805, 1079, 1079, 1079, 1079, 1079, 1079, 1333, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 1332, 1332, 3221226805, 1079, 1079, 1079, 1079, 1079, 1079, 1333, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 1332, 1332, 3221226805, 1079, 1079, 1079, 1079, 1079, 1079, 1333, 1332, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
+        1332, 3221226805, 1079, 1079, 1079, 1079, 1079, 1079, 1333, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 1332, 1332, 3221226805, 1079, 1079, 1079, 1079, 1079, 1079, 1333, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 1332, 1332, 3221226805, 1079, 1079, 1079, 1079, 1079, 1079, 1333, 1332, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
+        1332, 3221226805, 1079, 1079, 1079, 1079, 1079, 1079, 1333, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 1332, 1332, 3221226805, 1079, 1079, 1079, 1079, 1079, 1079, 1333, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 1332, 1332, 3221226805, 1079, 1079, 1079, 1079, 1079, 1079, 1333, 1332, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
+        1332, 3221226805, 1079, 1079, 1079, 1079, 1079, 1079, 1333, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 1332, 1332, 3221226805, 1079, 1079, 1079, 1079, 1079, 1079, 1333, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 1332, 1332, 3221226805, 1079, 1079, 1079, 1079, 1079, 1079, 1333, 1332, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
+        1332, 3221226805, 1079, 1079, 1079, 1079, 1079, 1079, 1333, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 1332, 1332, 3221226805, 1079, 1079, 1079, 1079, 1079, 1079, 1333, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 1332, 1332, 3221226805, 1079, 1079, 1079, 1079, 1079, 1079, 1333, 1332, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
+        1332, 3221226805, 1079, 1079, 1079, 1079, 1079, 1079, 1333, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 1332, 1332, 3221226805, 1079, 1079, 1079, 1079, 1079, 1079, 1333, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 1332, 1332, 3221226805, 1079, 1079, 1079, 1079, 1079, 1079, 1333, 1332, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
+        1332, 1332, 2684355893, 2684355893, 2684355893, 2684355893, 2684355893, 2684355893, 1332, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 1332, 1332, 1332, 2684355893, 2684355893, 2684355893, 2684355893, 2684355893, 2684355893, 1332, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 1332, 1332, 1332, 2684355893, 2684355893, 2684355893, 2684355893, 2684355893, 2684355893, 1332, 1332, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
+        1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
+        254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
+        254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
+        254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
+        254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
+        254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
+        254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
+        254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
+        254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254
+      }
+    },
+    {
+      type = "tilelayer",
+      x = 0,
+      y = 0,
+      width = 60,
+      height = 30,
+      id = 4,
+      name = "Decoration",
+      class = "",
+      visible = true,
+      opacity = 1,
+      offsetx = 0,
+      offsety = 0,
+      parallaxx = 1,
+      parallaxy = 1,
+      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, 1, 99, 1, 106, 105, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 100, 1, 1, 99, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, 99, 99, 105, 100, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 100, 99, 1, 106, 106, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 505, 106, 105, 1, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 105, 1, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 106, 106, 1, 99, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, 1, 1, 99, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 1, 105, 105, 505, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 100, 106, 99, 106, 99, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 1, 100, 100, 1, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 99, 1, 99, 106, 1, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 105, 1, 99, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 105, 1, 1, 1, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 100, 100, 1, 100, 99, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 1, 1, 106, 105, 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, 1, 105, 1, 105, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 99, 99, 99, 99, 1, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, 1, 99, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 105, 102, 50, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 1, 1, 505, 105, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 99, 99, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 99, 50, 50, 50, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 99, 1, 1, 99, 105, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 505, 99, 1, 1, 1, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 505, 2684354623, 2684354623, 2684354623, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 99, 1, 1, 105, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 99, 1, 99, 99, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, 105, 50, 50, 102, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 1, 1, 105, 105, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 6, 50, 102, 50, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 105, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 105, 6, 50, 50, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,192 +210,317 @@ return {
       parallaxy = 1,
       properties = {},
       objects = {
-        {
-          id = 1,
-          name = "Player",
-          type = "",
-          shape = "rectangle",
-          x = 32,
-          y = 48,
-          width = 16,
-          height = 16,
-          rotation = 0,
-          gid = 1593,
-          visible = true,
-          properties = {}
-        },
         {
           id = 2,
           name = "CameraFocus",
-          type = "Meta",
+          type = "",
           shape = "point",
           x = 0,
           y = 16,
           width = 0,
           height = 0,
           rotation = 0,
+          opacity = 1,
           visible = true,
           properties = {}
         },
         {
-          id = 3,
+          id = 17,
           name = "teleporter_tx_a",
-          type = "",
-          shape = "rectangle",
+          type = "teleporter_tx",
+          shape = "point",
           x = 96,
-          y = 112,
-          width = 16,
-          height = 16,
+          y = 96,
+          width = 0,
+          height = 0,
           rotation = 0,
-          gid = 673,
+          opacity = 1,
           visible = true,
           properties = {
             ["target"] = "teleporter_rx_a"
           }
         },
         {
-          id = 7,
-          name = "teleporter_rx_a",
-          type = "",
-          shape = "rectangle",
-          x = 208,
-          y = 48,
-          width = 16,
-          height = 16,
+          id = 20,
+          name = "teleporter_tx_d",
+          type = "teleporter_tx",
+          shape = "point",
+          x = 32,
+          y = 224,
+          width = 0,
+          height = 0,
+          rotation = 0,
+          opacity = 1,
+          visible = true,
+          properties = {
+            ["target"] = "teleporter_rx_d"
+          }
+        },
+        {
+          id = 24,
+          name = "teleporter_rx_c",
+          type = "teleporter_rx",
+          shape = "point",
+          x = 64,
+          y = 272,
+          width = 0,
+          height = 0,
           rotation = 0,
-          gid = 673,
+          opacity = 1,
           visible = true,
           properties = {
+            ["camera"] = "CameraFocus_c",
             ["target"] = "none"
           }
         },
         {
-          id = 8,
+          id = 30,
+          name = "teleporter_tx_b2",
+          type = "teleporter_tx",
+          shape = "point",
+          x = 48,
+          y = 272,
+          width = 0,
+          height = 0,
+          rotation = 0,
+          opacity = 1,
+          visible = true,
+          properties = {
+            ["target"] = "teleporter_rx_b"
+          }
+        },
+        {
+          id = 39,
           name = "teleporter_tx_b",
-          type = "",
-          shape = "rectangle",
-          x = 240,
-          y = 80,
-          width = 16,
-          height = 16,
+          type = "teleporter_tx",
+          shape = "point",
+          x = 352,
+          y = 96,
+          width = 0,
+          height = 0,
           rotation = 0,
-          gid = 673,
+          opacity = 1,
           visible = true,
           properties = {
             ["target"] = "teleporter_rx_b"
           }
         },
         {
-          id = 9,
+          id = 40,
           name = "teleporter_tx_c",
-          type = "",
-          shape = "rectangle",
-          x = 384,
-          y = 128,
-          width = 16,
-          height = 16,
+          type = "teleporter_tx",
+          shape = "point",
+          x = 704,
+          y = 112,
+          width = 0,
+          height = 0,
           rotation = 0,
-          gid = 673,
+          opacity = 1,
           visible = true,
           properties = {
             ["target"] = "teleporter_rx_c"
           }
         },
         {
-          id = 10,
-          name = "teleporter_rx_b",
-          type = "",
-          shape = "rectangle",
+          id = 41,
+          name = "teleporter_tx_e",
+          type = "teleporter_tx",
+          shape = "point",
           x = 432,
-          y = 96,
-          width = 16,
-          height = 16,
+          y = 256,
+          width = 0,
+          height = 0,
           rotation = 0,
-          gid = 673,
+          opacity = 1,
           visible = true,
           properties = {
-            ["target"] = "none"
+            ["target"] = "teleporter_rx_e"
           }
         },
         {
-          id = 11,
-          name = "teleporter_tx_d",
-          type = "",
-          shape = "rectangle",
-          x = 32,
-          y = 208,
-          width = 16,
-          height = 16,
+          id = 42,
+          name = "teleporter_rx_a",
+          type = "teleporter_rx",
+          shape = "point",
+          x = 400,
+          y = 64,
+          width = 0,
+          height = 0,
           rotation = 0,
-          gid = 673,
+          opacity = 1,
           visible = true,
           properties = {
-            ["target"] = "teleporter_rx_d"
+            ["camera"] = "CameraFocus_a",
+            ["target"] = "none"
           }
         },
         {
-          id = 12,
-          name = "teleporter_rx_c",
-          type = "",
-          shape = "rectangle",
-          x = 64,
-          y = 240,
-          width = 16,
-          height = 16,
+          id = 43,
+          name = "teleporter_rx_b",
+          type = "teleporter_rx",
+          shape = "point",
+          x = 720,
+          y = 64,
+          width = 0,
+          height = 0,
           rotation = 0,
-          gid = 673,
+          opacity = 1,
           visible = true,
           properties = {
+            ["camera"] = "CameraFocus_b",
             ["target"] = "none"
           }
         },
         {
-          id = 13,
-          name = "teleporter_tx_e",
-          type = "",
-          shape = "rectangle",
-          x = 272,
-          y = 240,
-          width = 16,
-          height = 16,
+          id = 44,
+          name = "teleporter_rx_d",
+          type = "teleporter_rx",
+          shape = "point",
+          x = 400,
+          y = 272,
+          width = 0,
+          height = 0,
           rotation = 0,
-          gid = 673,
+          opacity = 1,
           visible = true,
           properties = {
-            ["target"] = "teleporter_rx_e"
+            ["camera"] = "CameraFocus_d",
+            ["target"] = "none"
           }
         },
         {
-          id = 14,
-          name = "teleporter_rx_d",
-          type = "",
-          shape = "rectangle",
-          x = 192,
+          id = 45,
+          name = "teleporter_rx_e",
+          type = "teleporter_rx",
+          shape = "point",
+          x = 672,
           y = 240,
-          width = 16,
-          height = 16,
+          width = 0,
+          height = 0,
           rotation = 0,
-          gid = 673,
+          opacity = 1,
           visible = true,
           properties = {
+            ["camera"] = "CameraFocus_e",
             ["target"] = "none"
           }
         },
         {
-          id = 15,
-          name = "teleporter_rx_e",
+          id = 46,
+          name = "teleporter_tx_a2",
+          type = "teleporter_tx",
+          shape = "point",
+          x = 688,
+          y = 48,
+          width = 0,
+          height = 0,
+          rotation = 0,
+          opacity = 1,
+          visible = true,
+          properties = {
+            ["target"] = "teleporter_rx_a"
+          }
+        },
+        {
+          id = 47,
+          name = "teleporter_tx_c2",
+          type = "teleporter_tx",
+          shape = "point",
+          x = 352,
+          y = 304,
+          width = 0,
+          height = 0,
+          rotation = 0,
+          opacity = 1,
+          visible = true,
+          properties = {
+            ["target"] = "teleporter_rx_c"
+          }
+        },
+        {
+          id = 48,
+          name = "Player",
           type = "",
           shape = "rectangle",
-          x = 352,
-          y = 240,
+          x = 64,
+          y = 48,
           width = 16,
           height = 16,
           rotation = 0,
-          gid = 673,
+          opacity = 1,
+          gid = 1593,
           visible = true,
-          properties = {
-            ["target"] = "none"
-          }
+          properties = {}
+        },
+        {
+          id = 49,
+          name = "CameraFocus_a",
+          type = "",
+          shape = "point",
+          x = 304,
+          y = 0,
+          width = 0,
+          height = 0,
+          rotation = 0,
+          opacity = 1,
+          visible = true,
+          properties = {}
+        },
+        {
+          id = 50,
+          name = "CameraFocus_b",
+          type = "",
+          shape = "point",
+          x = 624,
+          y = 0,
+          width = 0,
+          height = 0,
+          rotation = 0,
+          opacity = 1,
+          visible = true,
+          properties = {}
+        },
+        {
+          id = 51,
+          name = "CameraFocus_c",
+          type = "",
+          shape = "point",
+          x = -16,
+          y = 192,
+          width = 0,
+          height = 0,
+          rotation = 0,
+          opacity = 1,
+          visible = true,
+          properties = {}
+        },
+        {
+          id = 52,
+          name = "CameraFocus_d",
+          type = "",
+          shape = "point",
+          x = 304,
+          y = 192,
+          width = 0,
+          height = 0,
+          rotation = 0,
+          opacity = 1,
+          visible = true,
+          properties = {}
+        },
+        {
+          id = 53,
+          name = "CameraFocus_e",
+          type = "",
+          shape = "point",
+          x = 624,
+          y = 192,
+          width = 0,
+          height = 0,
+          rotation = 0,
+          opacity = 1,
+          visible = true,
+          properties = {}
         }
       }
     }
index c19fa4eeb581c02c4616097c3f151a9b5fe7ee96..3904486fc4cceb2ffaac20766952409dbd99b723 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<map version="1.10" tiledversion="1.11.2" orientation="orthogonal" renderorder="left-down" width="30" height="20" tilewidth="16" tileheight="16" infinite="0" nextlayerid="4" nextobjectid="16">
+<map version="1.10" tiledversion="1.12.0" orientation="orthogonal" renderorder="left-down" width="60" height="30" tilewidth="16" tileheight="16" infinite="0" nextlayerid="5" nextobjectid="54">
  <editorsettings>
   <export target="tablet_iv.lua" format="lua"/>
  </editorsettings>
  </properties>
  <tileset firstgid="1" name="monochrome_ba_packed" tilewidth="16" tileheight="16" tilecount="1078" columns="49">
   <image source="../assets/tilesets/kenney_1_bit/Tilesheet/monochrome_ba_packed.png" trans="e5e5e5" width="784" height="352"/>
+  <tile id="253">
+   <properties>
+    <property name="wall" type="bool" value="true"/>
+   </properties>
+  </tile>
+  <tile id="254">
+   <properties>
+    <property name="wall" type="bool" value="true"/>
+   </properties>
+  </tile>
  </tileset>
  <tileset firstgid="1079" name="monochrome_bw_packed" tilewidth="16" tileheight="16" tilecount="1078" columns="49">
   <image source="../assets/tilesets/kenney_1_bit/Tilesheet/monochrome_bw_packed.png" width="784" height="352"/>
+  <tile id="254">
+   <properties>
+    <property name="wall" type="bool" value="true"/>
+   </properties>
+  </tile>
  </tileset>
- <layer id="1" name="Tile Layer 1" width="30" height="20" opacity="0.9">
+ <layer id="1" name="Ground" width="60" height="30" opacity="0.9">
   <data encoding="csv">
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1079,1080,1079,1079,1177,1079,1,1,1,1,1079,1079,1583,1177,1177,1079,1,1,1,1,1079,1079,1177,1177,1177,1183,1,1,
-1,1,1079,1080,1079,1079,1079,1079,1,1,1,1,1079,1079,1079,1079,1177,1079,1,1,1,1,1177,1080,1079,1080,1177,1177,1,1,
-1,1,1079,1079,1079,1177,1079,1177,1,1,1,1,1079,1079,1079,1177,1080,1080,1,1,1,1,1079,1079,1079,1177,1079,1079,1,1,
-1,1,1079,1177,1079,1079,1079,1079,1,1,1,1,1079,1079,1177,1079,1079,1177,1,1,1,1,1079,1080,1079,1079,1177,1583,1,1,
-1,1,1079,1080,1177,1177,1079,1079,1,1,1,1,1177,1079,1079,1079,1079,1079,1,1,1,1,1079,1183,1080,1079,1079,1177,1,1,
-1,1,1079,1079,1079,1079,1080,1079,1,1,1,1,1079,1079,1079,1177,1080,1079,1,1,1,1,1177,1079,1177,1079,1079,1079,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1177,1177,1080,1177,1183,1080,1,1,1,1,1183,1079,1079,1177,1183,1080,1,1,1,1,1084,1084,1084,1084,1128,1180,1,1,
-1,1,1079,1183,1079,1177,1079,1080,1,1,1,1,1079,1079,1177,1079,1080,1183,1,1,1,1,1084,1086,1177,1128,1128,1128,1,1,
-1,1,1080,1177,1583,1177,1177,1079,1,1,1,1,1583,1079,1079,1079,1079,1079,1,1,1,1,1079,1079,1079,1079,1128,1128,1,1,
-1,1,1183,1080,1079,1177,1177,1177,1,1,1,1,1177,1177,1177,1079,1177,1177,1,1,1,1,1084,1177,1128,1128,1128,1180,1,1,
-1,1,1177,1079,1177,1080,1079,1079,1,1,1,1,1177,1080,1079,1079,1177,1080,1,1,1,1,1177,1177,1128,1180,1180,1128,1,1,
-1,1,1079,1177,1177,1079,1079,1079,1,1,1,1,1183,1079,1080,1080,1177,1183,1,1,1,1,1080,1177,1080,1128,1180,1128,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
+254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,1332,1332,1332,1332,1332,1332,1332,1332,1332,1332,254,254,254,254,254,254,254,254,254,254,1332,1332,1332,1332,1332,1332,1332,1332,1332,1332,1332,254,254,254,254,254,254,254,254,254,254,
+254,1332,1610614069,1610614069,1610614069,1610614069,1610614069,1610614069,1332,254,254,254,254,254,254,254,254,254,254,1332,1332,1332,1610614069,1610614069,1610614069,1610614069,1610614069,1610614069,1332,254,254,254,254,254,254,254,254,254,254,1332,1332,1332,1610614069,1610614069,1610614069,1610614069,1610614069,1610614069,1332,1332,254,254,254,254,254,254,254,254,254,254,
+254,3221226805,1079,1079,1079,1079,1079,1079,1333,254,254,254,254,254,254,254,254,254,254,1332,1332,3221226805,1079,1079,1079,1079,1079,1079,1333,254,254,254,254,254,254,254,254,254,254,1332,1332,3221226805,1079,1079,1079,1079,1079,1079,1333,1332,254,254,254,254,254,254,254,254,254,254,
+254,3221226805,1079,1079,1079,1079,1079,1079,1333,254,254,254,254,254,254,254,254,254,254,1332,1332,3221226805,1079,1079,1079,1079,1079,1079,1333,254,254,254,254,254,254,254,254,254,254,1332,1332,3221226805,1079,1079,1079,1079,1079,1079,1333,1332,254,254,254,254,254,254,254,254,254,254,
+254,3221226805,1079,1079,1079,1079,1079,1079,1333,254,254,254,254,254,254,254,254,254,254,1332,1332,3221226805,1079,1079,1079,1079,1079,1079,1333,254,254,254,254,254,254,254,254,254,254,1332,1332,3221226805,1079,1079,1079,1079,1079,1079,1333,1332,254,254,254,254,254,254,254,254,254,254,
+254,3221226805,1079,1079,1079,1079,1079,1079,1333,254,254,254,254,254,254,254,254,254,254,1332,1332,3221226805,1079,1079,1079,1079,1079,1079,1333,254,254,254,254,254,254,254,254,254,254,1332,1332,3221226805,1079,1079,1079,1079,1079,1079,1333,1332,254,254,254,254,254,254,254,254,254,254,
+254,3221226805,1079,1079,1079,1079,1079,1079,1333,254,254,254,254,254,254,254,254,254,254,1332,1332,3221226805,1079,1079,1079,1079,1079,1079,1333,254,254,254,254,254,254,254,254,254,254,1332,1332,3221226805,1079,1079,1079,1079,1079,1079,1333,1332,254,254,254,254,254,254,254,254,254,254,
+254,3221226805,1079,1079,1079,1079,1079,1079,1333,254,254,254,254,254,254,254,254,254,254,1332,1332,3221226805,1079,1079,1079,1079,1079,1079,1333,254,254,254,254,254,254,254,254,254,254,1332,1332,3221226805,1079,1079,1079,1079,1079,1079,1333,1332,254,254,254,254,254,254,254,254,254,254,
+254,1332,2684355893,2684355893,2684355893,2684355893,2684355893,2684355893,1332,254,254,254,254,254,254,254,254,254,254,1332,1332,1332,2684355893,2684355893,2684355893,2684355893,2684355893,2684355893,1332,254,254,254,254,254,254,254,254,254,254,1332,1332,1332,2684355893,2684355893,2684355893,2684355893,2684355893,2684355893,1332,1332,254,254,254,254,254,254,254,254,254,254,
+254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
+254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
+1332,1332,1332,1332,1332,1332,1332,1332,1332,254,254,254,254,254,254,254,254,254,254,1332,1332,1332,1332,1332,1332,1332,1332,1332,1332,254,254,254,254,254,254,254,254,254,254,1332,1332,1332,1332,1332,1332,1332,1332,1332,1332,1332,254,254,254,254,254,254,254,254,254,254,
+1332,1332,1332,1332,1332,1332,1332,1332,1332,254,254,254,254,254,254,254,254,254,254,1332,1332,1332,1332,1332,1332,1332,1332,1332,1332,254,254,254,254,254,254,254,254,254,254,1332,1332,1332,1332,1332,1332,1332,1332,1332,1332,1332,254,254,254,254,254,254,254,254,254,254,
+1332,1332,1610614069,1610614069,1610614069,1610614069,1610614069,1610614069,1332,254,254,254,254,254,254,254,254,254,254,1332,1332,1332,1610614069,1610614069,1610614069,1610614069,1610614069,1610614069,1332,254,254,254,254,254,254,254,254,254,254,1332,1332,1332,1610614069,1610614069,1610614069,1610614069,1610614069,1610614069,1332,1332,254,254,254,254,254,254,254,254,254,254,
+1332,3221226805,1079,1079,1079,1079,1079,1079,1333,254,254,254,254,254,254,254,254,254,254,1332,1332,3221226805,1079,1079,1079,1079,1079,1079,1333,254,254,254,254,254,254,254,254,254,254,1332,1332,3221226805,1079,1079,1079,1079,1079,1079,1333,1332,254,254,254,254,254,254,254,254,254,254,
+1332,3221226805,1079,1079,1079,1079,1079,1079,1333,254,254,254,254,254,254,254,254,254,254,1332,1332,3221226805,1079,1079,1079,1079,1079,1079,1333,254,254,254,254,254,254,254,254,254,254,1332,1332,3221226805,1079,1079,1079,1079,1079,1079,1333,1332,254,254,254,254,254,254,254,254,254,254,
+1332,3221226805,1079,1079,1079,1079,1079,1079,1333,254,254,254,254,254,254,254,254,254,254,1332,1332,3221226805,1079,1079,1079,1079,1079,1079,1333,254,254,254,254,254,254,254,254,254,254,1332,1332,3221226805,1079,1079,1079,1079,1079,1079,1333,1332,254,254,254,254,254,254,254,254,254,254,
+1332,3221226805,1079,1079,1079,1079,1079,1079,1333,254,254,254,254,254,254,254,254,254,254,1332,1332,3221226805,1079,1079,1079,1079,1079,1079,1333,254,254,254,254,254,254,254,254,254,254,1332,1332,3221226805,1079,1079,1079,1079,1079,1079,1333,1332,254,254,254,254,254,254,254,254,254,254,
+1332,3221226805,1079,1079,1079,1079,1079,1079,1333,254,254,254,254,254,254,254,254,254,254,1332,1332,3221226805,1079,1079,1079,1079,1079,1079,1333,254,254,254,254,254,254,254,254,254,254,1332,1332,3221226805,1079,1079,1079,1079,1079,1079,1333,1332,254,254,254,254,254,254,254,254,254,254,
+1332,3221226805,1079,1079,1079,1079,1079,1079,1333,254,254,254,254,254,254,254,254,254,254,1332,1332,3221226805,1079,1079,1079,1079,1079,1079,1333,254,254,254,254,254,254,254,254,254,254,1332,1332,3221226805,1079,1079,1079,1079,1079,1079,1333,1332,254,254,254,254,254,254,254,254,254,254,
+1332,1332,2684355893,2684355893,2684355893,2684355893,2684355893,2684355893,1332,254,254,254,254,254,254,254,254,254,254,1332,1332,1332,2684355893,2684355893,2684355893,2684355893,2684355893,2684355893,1332,254,254,254,254,254,254,254,254,254,254,1332,1332,1332,2684355893,2684355893,2684355893,2684355893,2684355893,2684355893,1332,1332,254,254,254,254,254,254,254,254,254,254,
+1332,1332,1332,1332,1332,1332,1332,1332,1332,254,254,254,254,254,254,254,254,254,254,1332,1332,1332,1332,1332,1332,1332,1332,1332,1332,254,254,254,254,254,254,254,254,254,254,1332,1332,1332,1332,1332,1332,1332,1332,1332,1332,1332,254,254,254,254,254,254,254,254,254,254,
+254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
+254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
+254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
+254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
+254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
+254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
+254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
+254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254
+</data>
+ </layer>
+ <layer id="4" name="Decoration" width="60" height="30">
+  <data encoding="csv">
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,1,99,1,106,105,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,100,1,1,99,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,105,99,99,105,100,105,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,100,99,1,106,106,105,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,505,106,105,1,105,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,105,1,105,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,106,106,1,99,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,105,1,1,99,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,1,105,105,505,100,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,100,106,99,106,99,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,1,100,100,1,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,100,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,99,1,99,106,1,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,105,1,99,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,105,1,1,1,100,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,100,100,1,100,99,105,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,1,1,106,105,106,0,0,0,0,0,0,0,0,0,0,0,0,0,0,105,1,105,1,105,99,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,99,99,99,99,1,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,105,1,99,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,105,102,50,50,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,1,1,1,505,105,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,99,99,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,99,50,50,50,102,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,99,1,1,99,105,105,0,0,0,0,0,0,0,0,0,0,0,0,0,0,505,99,1,1,1,105,0,0,0,0,0,0,0,0,0,0,0,0,0,0,505,2684354623,2684354623,2684354623,102,50,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,99,1,1,105,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,99,1,99,99,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,105,105,50,50,102,50,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,1,1,1,105,105,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,105,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,6,50,102,50,50,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,105,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,105,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,105,6,50,50,50,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 </data>
  </layer>
  <objectgroup id="2" name="Object Layer 1">
-  <object id="1" name="Player" gid="1593" x="32" y="48" width="16" height="16"/>
-  <object id="2" name="CameraFocus" type="Meta" x="0" y="16">
+  <object id="2" name="CameraFocus" x="0" y="16">
    <point/>
   </object>
-  <object id="3" name="teleporter_tx_a" gid="673" x="96" y="112" width="16" height="16">
+  <object id="17" name="teleporter_tx_a" type="teleporter_tx" x="96" y="96">
    <properties>
     <property name="target" value="teleporter_rx_a"/>
    </properties>
+   <point/>
+  </object>
+  <object id="20" name="teleporter_tx_d" type="teleporter_tx" x="32" y="224">
+   <properties>
+    <property name="target" value="teleporter_rx_d"/>
+   </properties>
+   <point/>
   </object>
-  <object id="7" name="teleporter_rx_a" gid="673" x="208" y="48" width="16" height="16">
+  <object id="24" name="teleporter_rx_c" type="teleporter_rx" x="64" y="272">
    <properties>
+    <property name="camera" value="CameraFocus_c"/>
     <property name="target" value="none"/>
    </properties>
+   <point/>
   </object>
-  <object id="8" name="teleporter_tx_b" gid="673" x="240" y="80" width="16" height="16">
+  <object id="30" name="teleporter_tx_b2" type="teleporter_tx" x="48" y="272">
    <properties>
     <property name="target" value="teleporter_rx_b"/>
    </properties>
+   <point/>
   </object>
-  <object id="9" name="teleporter_tx_c" gid="673" x="384" y="128" width="16" height="16">
+  <object id="39" name="teleporter_tx_b" type="teleporter_tx" x="352" y="96">
    <properties>
-    <property name="target" value="teleporter_rx_c"/>
+    <property name="target" value="teleporter_rx_b"/>
    </properties>
+   <point/>
   </object>
-  <object id="10" name="teleporter_rx_b" gid="673" x="432" y="96" width="16" height="16">
+  <object id="40" name="teleporter_tx_c" type="teleporter_tx" x="704" y="112">
    <properties>
-    <property name="target" value="none"/>
+    <property name="target" value="teleporter_rx_c"/>
    </properties>
+   <point/>
   </object>
-  <object id="11" name="teleporter_tx_d" gid="673" x="32" y="208" width="16" height="16">
+  <object id="41" name="teleporter_tx_e" type="teleporter_tx" x="432" y="256">
    <properties>
-    <property name="target" value="teleporter_rx_d"/>
+    <property name="target" value="teleporter_rx_e"/>
    </properties>
+   <point/>
   </object>
-  <object id="12" name="teleporter_rx_c" gid="673" x="64" y="240" width="16" height="16">
+  <object id="42" name="teleporter_rx_a" type="teleporter_rx" x="400" y="64">
    <properties>
+    <property name="camera" value="CameraFocus_a"/>
     <property name="target" value="none"/>
    </properties>
+   <point/>
   </object>
-  <object id="13" name="teleporter_tx_e" gid="673" x="272" y="240" width="16" height="16">
+  <object id="43" name="teleporter_rx_b" type="teleporter_rx" x="720" y="64">
    <properties>
-    <property name="target" value="teleporter_rx_e"/>
+    <property name="camera" value="CameraFocus_b"/>
+    <property name="target" value="none"/>
    </properties>
+   <point/>
   </object>
-  <object id="14" name="teleporter_rx_d" gid="673" x="192" y="240" width="16" height="16">
+  <object id="44" name="teleporter_rx_d" type="teleporter_rx" x="400" y="272">
    <properties>
+    <property name="camera" value="CameraFocus_d"/>
     <property name="target" value="none"/>
    </properties>
+   <point/>
   </object>
-  <object id="15" name="teleporter_rx_e" gid="673" x="352" y="240" width="16" height="16">
+  <object id="45" name="teleporter_rx_e" type="teleporter_rx" x="672" y="240">
    <properties>
+    <property name="camera" value="CameraFocus_e"/>
     <property name="target" value="none"/>
    </properties>
+   <point/>
+  </object>
+  <object id="46" name="teleporter_tx_a2" type="teleporter_tx" x="688" y="48">
+   <properties>
+    <property name="target" value="teleporter_rx_a"/>
+   </properties>
+   <point/>
+  </object>
+  <object id="47" name="teleporter_tx_c2" type="teleporter_tx" x="352" y="304">
+   <properties>
+    <property name="target" value="teleporter_rx_c"/>
+   </properties>
+   <point/>
+  </object>
+  <object id="48" name="Player" gid="1593" x="64" y="48" width="16" height="16"/>
+  <object id="49" name="CameraFocus_a" x="304" y="0">
+   <point/>
+  </object>
+  <object id="50" name="CameraFocus_b" x="624" y="0">
+   <point/>
+  </object>
+  <object id="51" name="CameraFocus_c" x="-16" y="192">
+   <point/>
+  </object>
+  <object id="52" name="CameraFocus_d" x="304" y="192">
+   <point/>
+  </object>
+  <object id="53" name="CameraFocus_e" x="624" y="192">
+   <point/>
   </object>
  </objectgroup>
 </map>
index 3a0eb801b3a020b88293f2d6f30c77665909be85..47e06f2132861fb7c07b880777c45c4c533ab265 100644 (file)
@@ -43,4 +43,15 @@ vector.add_xy = function(left, right)
   return new_vec
 end
 
+vector.scale_xy = function(left, scale)
+  local new_vec = vector.new_xy()
+  new_vec.x = left.x * scale
+  new_vec.y = left.y * scale
+  return new_vec
+end
+
+vector.eq_xy = function(left, right)
+  return ((left.x == right.x) and (left.y == right.y))
+end
+
 return vector