{"id":21696340,"url":"https://github.com/phoenixofforce/level_editor","last_synced_at":"2025-04-12T12:07:27.504Z","repository":{"id":27289593,"uuid":"113225061","full_name":"PhoenixofForce/Level_Editor","owner":"PhoenixofForce","description":"2d texture map based Level Editor for games","archived":false,"fork":false,"pushed_at":"2023-09-30T22:45:27.000Z","size":430,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-10T00:45:12.001Z","etag":null,"topics":["2d-game","game","game-development","java","level","level-editor"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PhoenixofForce.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-12-05T19:37:33.000Z","updated_at":"2022-10-04T11:12:35.000Z","dependencies_parsed_at":"2024-11-25T22:46:14.430Z","dependency_job_id":null,"html_url":"https://github.com/PhoenixofForce/Level_Editor","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PhoenixofForce%2FLevel_Editor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PhoenixofForce%2FLevel_Editor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PhoenixofForce%2FLevel_Editor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PhoenixofForce%2FLevel_Editor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PhoenixofForce","download_url":"https://codeload.github.com/PhoenixofForce/Level_Editor/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248565061,"owners_count":21125416,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["2d-game","game","game-development","java","level","level-editor"],"created_at":"2024-11-25T19:19:31.335Z","updated_at":"2025-04-12T12:07:27.474Z","avatar_url":"https://github.com/PhoenixofForce.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Level Editor\nIt started as a school project but continued to be value for making levels at game jams, so it continued to get updates. It allows you to import textures and create Maps with different types of layers:\n* *TileLayer*, on which you can place along a grid of fixed size. This kind of layer are used to build the fore- and background of the map\n* *FreeLayer*, on which textures can be placed freely on every pixel. These layer can be used for decoration or the placing of enemies\n* *AreaLayer*, here no textures are used. Instead, you can define certain areas, which we use for the camera zones but could also be used for collision boxes\n\nThe Map display in the middle can be zoomed in and out with the mousewheel or `control +/-` and navigated with middle click dragging.\n\n### Importing textures\nFirst you have to import textures under `Resources \u003e Import Textures`. To import and load textures we use a file format which we call text-File(short for texture). Text-files define single textures in a texturemap(or texture atlas). Let's suppose you have a texture map `map.png`, then you need the corresponding text-File `map.text` in the same folder.\nThe first line in a text-file gives information about how many textures are loaded. And each following line has the format of `name x y width height`.  The name cannot contain white spaces and each value has to be separated by a white space. \nAn example text-files could look like this:\n```\n4\ntexture_1 0 0 8 8\ntexture_2 0 8 8 8\ntexture_3 8 0 8 8\ntexture_4 8 8 8 8\n```\nThe current version of the filetype does not support comments, blank lines.\n\n### Tools\nThere are 5 tools that help you to create maps. You can switch between them by using the buttons in the toolbar on top, `Middle Mouse Click` the next tool or `Shift Middle Mouse Click` for the previous Tool.\n\n#### The Brush Tool\nWhen used on a tile layer you can brush on textures. Drag your mouse while holding left click to place multiple tiles or click one slot to just place one tile.\nNote the Autotiling function discussed later.\n\nWhen used on a free layer you place a single object on the position you clicked. You cannot drag here.\nYou can move the object by holding right click while dragging it. Right clicking an object also puts it into the tag editor.\n\nWhen used on an area layer an area of size 1x1 gets created. You can expand the area while right click dragging one of its anchors.\nThe anchors are corners which are a little more colored than the rest of the area. You can move the whole area by right click dragging anywhere else.\nThe areas are also put in the tag editor when right clicked.\n\n#### The Eraser Tool\nIt works the same way as the brush tool. But instead of placing objects, they get deleted when you left click.\n\n#### The Bucket/ Fill Tool\nThis tool only works on tile layers. When you click the whole area gets filled until it reaches other tiles or a selection.\n\n![Example of the fill tool](readmeRes/fill_example1.png)\n\n#### The Selection Tool\nThis tool only works on tile layers. With the selection tool you can create selection which can be used with the bucket tool or allow you to copy and paste the selected tiles. With left click dragging you can span a selection as large as you want. With `Shift` + left click dragging you can expand your selection with other boxes. With `Control` left click dragging boxes can be cut out. With right click the selection is deleted. Alternatively you can use `Control + A`\n\n#### The Move Tool\nThis tool only works on selections and tile layers. With left click dragging the selection gets moved, and right click dragging also moves tiles in the selection.\n\n### Tags\nYou can add Tags to your map, areas and GameObject. For example, you can give an area a tag named `onEnter` with the content `set visitedHomeTown 1`. In your game when the player touches this area the onEnter tag gets loaded and its content gets executed. In a map the value `visitedHomeTown` could get set to 1. This value can be used in dialogue systems.  \n\n### Autotiling\nThere are 2 autotiling modes: 4 and 8 bit. 4Bit used the green tiles from the image, and 8Bit uses the additional cyan tiles. Those tiles trigger autotile mode when they are named `block_name_also_name_ID` (NOTE: currently the spritesheet name cannot have underscores for autotiling to work). The IDs start at 0 with the top left tile, and advance to the right. The first row has the ids `(0, 1, 2)` the second row `(3, 4, 5)` and so on. When an id has no texture the programm defaults to id 0. Also you can multiple blocks called `block_name_also_name_ID_0`, `block_name_also_name_1` and so on. In this case the editor randomly selects one of the block tiles.\n\n\u003cimg src=\"https://raw.githubusercontent.com/PhoenixofForce/Level_Editor/master/readmeRes/autotile_visual.png\" width=\"100\"\u003e\n\n### Saving Maps\nMaps are saved as `umap`-Files(unsaved Map files), on which I won't go into detail here.  But when opening an old file, make sure that all the used `png` and `text` files are still in the same position, otherwise the map won't load.\n\n### Exporting Maps\nWhen exporting a map it automatically gets trimmed to fit the scene. \n\nBecause of this and other changes we use `map`-files instead of the  just mentioned `umap`-files.\nHere the first line `Number;(tags)` represent the tile size followed by a number of tags. For each used texture follows a line `#i - texture_name` which is used to replace a texture with an index `i`(starting with 1 since 0 means no texture).\nAfter that the layers get exported, first the TileLayer, after that FreeLayer and then AreaLayers. \nTileLayers use \n\n`[layer; (name); z-Coord; width; height; t(0, 0), ..., t(0, x); t(1, 0), ..., t(1,y); ...; t(x,1), ... t(x, y)]` \nwhere the z-Coordinate represents the distance from the camera. And `t(m, n)` stands for the corresponding texture index.\nFreeLayer use `[put; (name); z-Coord; texture index; x; y]`.\nThese layers can also use tags(description pending) which look like `[put; (name); z; texture index; x; y; [tag; tag name; tag value]]`.\nLastly the AreaLayer are saved as `[area; (name); x1, y1; x2; y2; (tags)]`, they can also use tags.\nWith the latest version, you can also export the layer names as this is optional the names are represented in parentheses.\n\nHere is a full example map from one of [my projects](https://github.com/PhoenixofForce/Ludum_Dare_48/blob/master/maps/tut/map2.map):\n```\n16\n#1 - textures_marble_4_10\n#2 - textures_marble_2_10\n#3 - textures_block_marble_10\n#4 - textures_door_closed\n#5 - textures_player_normal\n#6 - textures_portal_idle_3\n#7 - textures_platform_now\n[layer; 1.0; 43; 41; 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 0, 0, 0, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 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, 1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 3, 2, 2, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 1, 1, 1, 1, 1, 2, 3, 0, 0, 0, 0, 0, 0, 3, 2, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 1, 0, 0, 1, 1, 2, 3, 0, 1, 1, 1, 1, 0, 3, 2, 2, 1, 1, 1, 1, 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, 1, 2, 3, 0, 1, 1, 1, 1, 0, 3, 2, 2, 2, 1, 1, 1, 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, 1, 2, 3, 0, 1, 1, 1, 1, 0, 3, 2, 2, 2, 1, 1, 1, 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, 1, 2, 3, 0, 1, 1, 1, 1, 0, 3, 3, 2, 2, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 1, 1, 2, 2, 3, 0, 0, 1, 1, 1, 0, 0, 3, 3, 2, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 1, 1, 2, 2, 3, 0, 1, 1, 1, 1, 1, 0, 0, 3, 2, 2, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 1, 2, 2, 3, 0, 1, 1, 1, 1, 1, 1, 0, 0, 3, 2, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 1, 0, 1, 2, 2, 3, 0, 1, 1, 1, 1, 1, 1, 1, 0, 3, 2, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 1, 1, 1, 2, 2, 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 1, 1, 1, 2, 2, 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 1, 1, 1, 2, 2, 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 2, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 1, 1, 2, 2, 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 3, 2, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 1, 2, 2, 2, 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 3, 2, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 1, 1, 2, 2, 2, 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 3, 2, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 1, 1, 2, 2, 2, 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 3, 2, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 1, 1, 2, 2, 2, 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 3, 2, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 1, 2, 2, 3, 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 3, 2, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 1, 1, 2, 2, 3, 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 3, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 1, 1, 2, 2, 3, 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 3, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 1, 1, 2, 2, 2, 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 3, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 1, 1, 2, 2, 2, 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 3, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 1, 1, 2, 2, 2, 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 3, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 1, 1, 1, 1, 2, 2, 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 3, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 1, 1, 2, 2, 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 2, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 1, 2, 2, 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 2, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 1, 2, 2, 3, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 1, 1, 2, 2, 3, 0, 0, 0, 1, 1, 0, 3, 3, 3, 3, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 1, 1, 2, 2, 3, 0, 1, 1, 1, 1, 0, 3, 2, 2, 2, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 1, 1, 1, 2, 2, 3, 0, 1, 1, 1, 1, 0, 3, 2, 2, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 1, 1, 1, 2, 2, 3, 0, 1, 1, 1, 1, 0, 3, 2, 2, 1, 1, 1, 0, 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, 2, 2, 3, 0, 1, 1, 1, 1, 0, 3, 2, 1, 1, 0, 0, 0, 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, 2, 2, 3, 0, 0, 0, 0, 0, 0, 2, 2, 1, 1, 1, 0, 0, 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, 1, 2, 2, 3, 3, 3, 3, 3, 2, 2, 1, 1, 1, 0, 0, 0, 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, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 0, 0, 0, 0, 0, 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, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; ]\n[layer; 0.5; 43; 41; 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ; ]\n[put; 0.0; 4; 33.0; 10.0]\n[put; 0.0; 5; 8.0; 9.0]\n[put; 0.0; 6; 35.5; 10.0]\n[put; 0.0; 7; 21.0; 12.0; [tag; dist; 9]]\n[put; 0.0; 7; 12.0; 12.0; [tag; dist; 9]]\n[area; 32.0; 7.9375; 38.0625; 12.0625]\n[area; 11.0; 7.9375; 32.5; 16.0625]\n[area; 6.9375; 7.9375; 12.0; 12.0625]\n```\n\n### Keyboard Shortcuts\n- `ctrl \u0026 +/-` for zooming in and out \n- `ctrl \u0026 c/v` for copy and paste\n- `ctrl \u0026 z/y` for undo and redo\n- `ctrl \u0026 a` to select everything or select nothing\n- `ctrl \u0026 s` to save the current map\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphoenixofforce%2Flevel_editor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphoenixofforce%2Flevel_editor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphoenixofforce%2Flevel_editor/lists"}