{"action":"created","comment":{"url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/pulls/comments/58302267","id":58302267,"diff_hunk":"@@ -0,0 +1,29 @@\n+This is a general guide about Maps for all FullScreenShenanigans projects. This guide will explain the concept of Maps, Areas, and Locations within a game and how they're connected.\n+\n+### Table of Contents\n+1. [MapsCreatr](#mapscreatr)\n+2. [AreaSpawnr](#areaspawnr)\n+\n+# MapsCreatr\n+\n+MapsCreatr is a module that handles the storage of Maps, Areas, and Locations. \n+\n+A Map is a collection of Areas. An Area is a 2D space with predefined  `x` and `y` boundaries and Things. Locations are entry points within an Area, where an entry point is where the player may end up after transitioning to a new Area.\n+\n+Generally in a FullScreenShenanigans project, each Map information is stored in its own .js file, outlining all Areas and Locations within that map. When the game is started, MapsCreatr loads all this data, goes through every Map's raw JSON data to create a new Map object using ObjectMakr, and finally stores it for later reference.\n+\n+More can be read about MapsCreatr on its [Readme](https://github.com/FullScreenShenanigans/MapsCreatr/blob/master/README.md).\n+\n+# AreaSpawnr\n+\n+AreaSpawnr is a module that works with MapsCreatr to spawn Things in a certain Area.\n+\n+When a new Area is entered by the player, AreaSpawnr gets that Area's information from MapsCreatr. AreaSpawnr uses this to spawn the Area's predefined Things (or PreThings) that exist in the current viewable area, or bounding box. Each PreThing has its own entry in the Area's `creation` property. PreThing attributes are defined here, such as `x` and `y` positioning. AreaSpawnr uses this information to determine which PreThings belong in the current bounding box and ultimately place them.\n+\n+More can be read about AreaSpawnr on its [ReadMe](https://github.com/FullScreenShenanigans/AreaSpawnr/blob/master/README.md).\n+\n+## Entrances and Transporters\n+\n+A transporter is a Thing that allows the player to change Areas. It links to a location, which describes where the player ends up. This description is in the Area's JSON data and includes the `x` and `y` coordinates of the location and whether the location contains an entrance Thing. So every transporter is forwardly linked to a location. When the transporter is triggered, it calls `setLocation` with that location data as the argument. The entrance is an optional Thing where one ends up after being transported to a location. \n+\n+For example, In FullScreenMario, a pipe is a common transporter. Where the player goes down the pipe is the transporter and links to where he/she comes out of the pipe, which is the entrance. Some pipes will allow the player to back through the entrance, thus making it both an entrance and a transporter. One-way pipes, however, will deposit the player in a new location but render the pipe useless for re-entry. This is an example of entrance that isn't a transporter.","path":"Maps.md","position":29,"original_position":29,"commit_id":"30ccc109fb4dbe543effc9b132506f7f78e95fa1","original_commit_id":"30ccc109fb4dbe543effc9b132506f7f78e95fa1","user":{"login":"JoshuaKGoldberg","id":3335181,"avatar_url":"https://avatars.githubusercontent.com/u/3335181?v=3","gravatar_id":"","url":"https://api.github.com/users/JoshuaKGoldberg","html_url":"https://github.com/JoshuaKGoldberg","followers_url":"https://api.github.com/users/JoshuaKGoldberg/followers","following_url":"https://api.github.com/users/JoshuaKGoldberg/following{/other_user}","gists_url":"https://api.github.com/users/JoshuaKGoldberg/gists{/gist_id}","starred_url":"https://api.github.com/users/JoshuaKGoldberg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JoshuaKGoldberg/subscriptions","organizations_url":"https://api.github.com/users/JoshuaKGoldberg/orgs","repos_url":"https://api.github.com/users/JoshuaKGoldberg/repos","events_url":"https://api.github.com/users/JoshuaKGoldberg/events{/privacy}","received_events_url":"https://api.github.com/users/JoshuaKGoldberg/received_events","type":"User","site_admin":false},"body":"> Where the player goes down the pipe is the transporter\r\n\r\nAmbiguous phrasing. The Pipe is the transporter.","created_at":"2016-04-03T00:28:31Z","updated_at":"2016-04-03T00:28:31Z","html_url":"https://github.com/FullScreenShenanigans/Documentation/pull/10#discussion_r58302267","pull_request_url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/pulls/10","_links":{"self":{"href":"https://api.github.com/repos/FullScreenShenanigans/Documentation/pulls/comments/58302267"},"html":{"href":"https://github.com/FullScreenShenanigans/Documentation/pull/10#discussion_r58302267"},"pull_request":{"href":"https://api.github.com/repos/FullScreenShenanigans/Documentation/pulls/10"}}},"pull_request":{"url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/pulls/10","id":64884547,"html_url":"https://github.com/FullScreenShenanigans/Documentation/pull/10","diff_url":"https://github.com/FullScreenShenanigans/Documentation/pull/10.diff","patch_url":"https://github.com/FullScreenShenanigans/Documentation/pull/10.patch","issue_url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/issues/10","number":10,"state":"open","locked":false,"title":"Documentation of Maps","user":{"login":"blingenau","id":6758215,"avatar_url":"https://avatars.githubusercontent.com/u/6758215?v=3","gravatar_id":"","url":"https://api.github.com/users/blingenau","html_url":"https://github.com/blingenau","followers_url":"https://api.github.com/users/blingenau/followers","following_url":"https://api.github.com/users/blingenau/following{/other_user}","gists_url":"https://api.github.com/users/blingenau/gists{/gist_id}","starred_url":"https://api.github.com/users/blingenau/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/blingenau/subscriptions","organizations_url":"https://api.github.com/users/blingenau/orgs","repos_url":"https://api.github.com/users/blingenau/repos","events_url":"https://api.github.com/users/blingenau/events{/privacy}","received_events_url":"https://api.github.com/users/blingenau/received_events","type":"User","site_admin":false},"body":"","created_at":"2016-04-01T01:34:55Z","updated_at":"2016-04-03T00:28:31Z","closed_at":null,"merged_at":null,"merge_commit_sha":"6746b16d392827ab9cf734167e2b84629acb9b48","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/pulls/10/commits","review_comments_url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/pulls/10/comments","review_comment_url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/pulls/comments{/number}","comments_url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/issues/10/comments","statuses_url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/statuses/30ccc109fb4dbe543effc9b132506f7f78e95fa1","head":{"label":"blingenau:master","ref":"master","sha":"30ccc109fb4dbe543effc9b132506f7f78e95fa1","user":{"login":"blingenau","id":6758215,"avatar_url":"https://avatars.githubusercontent.com/u/6758215?v=3","gravatar_id":"","url":"https://api.github.com/users/blingenau","html_url":"https://github.com/blingenau","followers_url":"https://api.github.com/users/blingenau/followers","following_url":"https://api.github.com/users/blingenau/following{/other_user}","gists_url":"https://api.github.com/users/blingenau/gists{/gist_id}","starred_url":"https://api.github.com/users/blingenau/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/blingenau/subscriptions","organizations_url":"https://api.github.com/users/blingenau/orgs","repos_url":"https://api.github.com/users/blingenau/repos","events_url":"https://api.github.com/users/blingenau/events{/privacy}","received_events_url":"https://api.github.com/users/blingenau/received_events","type":"User","site_admin":false},"repo":{"id":53164274,"name":"Documentation","full_name":"blingenau/Documentation","owner":{"login":"blingenau","id":6758215,"avatar_url":"https://avatars.githubusercontent.com/u/6758215?v=3","gravatar_id":"","url":"https://api.github.com/users/blingenau","html_url":"https://github.com/blingenau","followers_url":"https://api.github.com/users/blingenau/followers","following_url":"https://api.github.com/users/blingenau/following{/other_user}","gists_url":"https://api.github.com/users/blingenau/gists{/gist_id}","starred_url":"https://api.github.com/users/blingenau/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/blingenau/subscriptions","organizations_url":"https://api.github.com/users/blingenau/orgs","repos_url":"https://api.github.com/users/blingenau/repos","events_url":"https://api.github.com/users/blingenau/events{/privacy}","received_events_url":"https://api.github.com/users/blingenau/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/blingenau/Documentation","description":"Tutorials and instructions for GameStartr projects.","fork":true,"url":"https://api.github.com/repos/blingenau/Documentation","forks_url":"https://api.github.com/repos/blingenau/Documentation/forks","keys_url":"https://api.github.com/repos/blingenau/Documentation/keys{/key_id}","collaborators_url":"https://api.github.com/repos/blingenau/Documentation/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/blingenau/Documentation/teams","hooks_url":"https://api.github.com/repos/blingenau/Documentation/hooks","issue_events_url":"https://api.github.com/repos/blingenau/Documentation/issues/events{/number}","events_url":"https://api.github.com/repos/blingenau/Documentation/events","assignees_url":"https://api.github.com/repos/blingenau/Documentation/assignees{/user}","branches_url":"https://api.github.com/repos/blingenau/Documentation/branches{/branch}","tags_url":"https://api.github.com/repos/blingenau/Documentation/tags","blobs_url":"https://api.github.com/repos/blingenau/Documentation/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/blingenau/Documentation/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/blingenau/Documentation/git/refs{/sha}","trees_url":"https://api.github.com/repos/blingenau/Documentation/git/trees{/sha}","statuses_url":"https://api.github.com/repos/blingenau/Documentation/statuses/{sha}","languages_url":"https://api.github.com/repos/blingenau/Documentation/languages","stargazers_url":"https://api.github.com/repos/blingenau/Documentation/stargazers","contributors_url":"https://api.github.com/repos/blingenau/Documentation/contributors","subscribers_url":"https://api.github.com/repos/blingenau/Documentation/subscribers","subscription_url":"https://api.github.com/repos/blingenau/Documentation/subscription","commits_url":"https://api.github.com/repos/blingenau/Documentation/commits{/sha}","git_commits_url":"https://api.github.com/repos/blingenau/Documentation/git/commits{/sha}","comments_url":"https://api.github.com/repos/blingenau/Documentation/comments{/number}","issue_comment_url":"https://api.github.com/repos/blingenau/Documentation/issues/comments{/number}","contents_url":"https://api.github.com/repos/blingenau/Documentation/contents/{+path}","compare_url":"https://api.github.com/repos/blingenau/Documentation/compare/{base}...{head}","merges_url":"https://api.github.com/repos/blingenau/Documentation/merges","archive_url":"https://api.github.com/repos/blingenau/Documentation/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/blingenau/Documentation/downloads","issues_url":"https://api.github.com/repos/blingenau/Documentation/issues{/number}","pulls_url":"https://api.github.com/repos/blingenau/Documentation/pulls{/number}","milestones_url":"https://api.github.com/repos/blingenau/Documentation/milestones{/number}","notifications_url":"https://api.github.com/repos/blingenau/Documentation/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/blingenau/Documentation/labels{/name}","releases_url":"https://api.github.com/repos/blingenau/Documentation/releases{/id}","deployments_url":"https://api.github.com/repos/blingenau/Documentation/deployments","created_at":"2016-03-04T20:43:51Z","updated_at":"2016-03-03T06:30:41Z","pushed_at":"2016-04-02T23:05:59Z","git_url":"git://github.com/blingenau/Documentation.git","ssh_url":"git@github.com:blingenau/Documentation.git","clone_url":"https://github.com/blingenau/Documentation.git","svn_url":"https://github.com/blingenau/Documentation","homepage":"","size":7,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"FullScreenShenanigans:master","ref":"master","sha":"3076e50c8339892ed8951e908fc2bab99029ea5d","user":{"login":"FullScreenShenanigans","id":11371535,"avatar_url":"https://avatars.githubusercontent.com/u/11371535?v=3","gravatar_id":"","url":"https://api.github.com/users/FullScreenShenanigans","html_url":"https://github.com/FullScreenShenanigans","followers_url":"https://api.github.com/users/FullScreenShenanigans/followers","following_url":"https://api.github.com/users/FullScreenShenanigans/following{/other_user}","gists_url":"https://api.github.com/users/FullScreenShenanigans/gists{/gist_id}","starred_url":"https://api.github.com/users/FullScreenShenanigans/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/FullScreenShenanigans/subscriptions","organizations_url":"https://api.github.com/users/FullScreenShenanigans/orgs","repos_url":"https://api.github.com/users/FullScreenShenanigans/repos","events_url":"https://api.github.com/users/FullScreenShenanigans/events{/privacy}","received_events_url":"https://api.github.com/users/FullScreenShenanigans/received_events","type":"Organization","site_admin":false},"repo":{"id":53026772,"name":"Documentation","full_name":"FullScreenShenanigans/Documentation","owner":{"login":"FullScreenShenanigans","id":11371535,"avatar_url":"https://avatars.githubusercontent.com/u/11371535?v=3","gravatar_id":"","url":"https://api.github.com/users/FullScreenShenanigans","html_url":"https://github.com/FullScreenShenanigans","followers_url":"https://api.github.com/users/FullScreenShenanigans/followers","following_url":"https://api.github.com/users/FullScreenShenanigans/following{/other_user}","gists_url":"https://api.github.com/users/FullScreenShenanigans/gists{/gist_id}","starred_url":"https://api.github.com/users/FullScreenShenanigans/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/FullScreenShenanigans/subscriptions","organizations_url":"https://api.github.com/users/FullScreenShenanigans/orgs","repos_url":"https://api.github.com/users/FullScreenShenanigans/repos","events_url":"https://api.github.com/users/FullScreenShenanigans/events{/privacy}","received_events_url":"https://api.github.com/users/FullScreenShenanigans/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/FullScreenShenanigans/Documentation","description":"Tutorials and instructions for GameStartr projects.","fork":false,"url":"https://api.github.com/repos/FullScreenShenanigans/Documentation","forks_url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/forks","keys_url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/keys{/key_id}","collaborators_url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/teams","hooks_url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/hooks","issue_events_url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/issues/events{/number}","events_url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/events","assignees_url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/assignees{/user}","branches_url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/branches{/branch}","tags_url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/tags","blobs_url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/git/refs{/sha}","trees_url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/git/trees{/sha}","statuses_url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/statuses/{sha}","languages_url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/languages","stargazers_url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/stargazers","contributors_url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/contributors","subscribers_url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/subscribers","subscription_url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/subscription","commits_url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/commits{/sha}","git_commits_url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/git/commits{/sha}","comments_url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/comments{/number}","issue_comment_url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/issues/comments{/number}","contents_url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/contents/{+path}","compare_url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/compare/{base}...{head}","merges_url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/merges","archive_url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/downloads","issues_url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/issues{/number}","pulls_url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/pulls{/number}","milestones_url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/milestones{/number}","notifications_url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/labels{/name}","releases_url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/releases{/id}","deployments_url":"https://api.github.com/repos/FullScreenShenanigans/Documentation/deployments","created_at":"2016-03-03T06:28:50Z","updated_at":"2016-03-03T06:30:41Z","pushed_at":"2016-04-02T23:05:59Z","git_url":"git://github.com/FullScreenShenanigans/Documentation.git","ssh_url":"git@github.com:FullScreenShenanigans/Documentation.git","clone_url":"https://github.com/FullScreenShenanigans/Documentation.git","svn_url":"https://github.com/FullScreenShenanigans/Documentation","homepage":"","size":14,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2,"mirror_url":null,"open_issues_count":3,"forks":2,"open_issues":3,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/FullScreenShenanigans/Documentation/pulls/10"},"html":{"href":"https://github.com/FullScreenShenanigans/Documentation/pull/10"},"issue":{"href":"https://api.github.com/repos/FullScreenShenanigans/Documentation/issues/10"},"comments":{"href":"https://api.github.com/repos/FullScreenShenanigans/Documentation/issues/10/comments"},"review_comments":{"href":"https://api.github.com/repos/FullScreenShenanigans/Documentation/pulls/10/comments"},"review_comment":{"href":"https://api.github.com/repos/FullScreenShenanigans/Documentation/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/FullScreenShenanigans/Documentation/pulls/10/commits"},"statuses":{"href":"https://api.github.com/repos/FullScreenShenanigans/Documentation/statuses/30ccc109fb4dbe543effc9b132506f7f78e95fa1"}}}}