{"action":"created","issue":{"url":"https://api.github.com/repos/tgstation/-tg-station/issues/10623","labels_url":"https://api.github.com/repos/tgstation/-tg-station/issues/10623/labels{/name}","comments_url":"https://api.github.com/repos/tgstation/-tg-station/issues/10623/comments","events_url":"https://api.github.com/repos/tgstation/-tg-station/issues/10623/events","html_url":"https://github.com/tgstation/-tg-station/pull/10623","id":95013027,"number":10623,"title":"New Mapping Tool: dmm2tgm.py","user":{"login":"RemieRichards","id":4043781,"avatar_url":"https://avatars.githubusercontent.com/u/4043781?v=3","gravatar_id":"","url":"https://api.github.com/users/RemieRichards","html_url":"https://github.com/RemieRichards","followers_url":"https://api.github.com/users/RemieRichards/followers","following_url":"https://api.github.com/users/RemieRichards/following{/other_user}","gists_url":"https://api.github.com/users/RemieRichards/gists{/gist_id}","starred_url":"https://api.github.com/users/RemieRichards/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RemieRichards/subscriptions","organizations_url":"https://api.github.com/users/RemieRichards/orgs","repos_url":"https://api.github.com/users/RemieRichards/repos","events_url":"https://api.github.com/users/RemieRichards/events{/privacy}","received_events_url":"https://api.github.com/users/RemieRichards/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/tgstation/-tg-station/labels/Tools","name":"Tools","color":"fbca04"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2015-07-14T18:54:37Z","updated_at":"2015-07-15T02:29:29Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/tgstation/-tg-station/pulls/10623","html_url":"https://github.com/tgstation/-tg-station/pull/10623","diff_url":"https://github.com/tgstation/-tg-station/pull/10623.diff","patch_url":"https://github.com/tgstation/-tg-station/pull/10623.patch"},"body":"## What is dmm2tgm.py?\r\nThis converts the internal syntax of a .dmm file (<B>Example 1</B>) to a format that can be read better by humans (<B>Example 2</B>) but the best part is that this should reduce mapping conflicts.\r\nMapping conflicts should now only occur when two or more people touch the EXACT SAME ITEM or EXACT SAME VARIABLE on map instances, where as at the moment it conflicts arise the moment people even remotely touch two turfs near each other.\r\n\r\n<B>Example 1 (Normal .dmm syntax)</B>\r\n```\r\n\"aab\" = (/obj/docking_port/stationary{dheight = 9;dir = 2;dwidth = 5;height = 22; id = \"syndicate_n\";name = \"north of station\";turf_type = /turf/space;width = 18},/turf/space,/area/space)\r\n```\r\n\r\n<B>Example 2 (dmm2tgm.py processed .dmm syntax)</B>\r\n```\r\n\"aab\" = (\r\n/obj/docking_port/stationary{\r\n        dheight = 9;\r\n         dir = 2;\r\n         dwidth = 5;\r\n         height = 22;\r\n         id = \"syndicate_n\";\r\n         name = \"north of station\";\r\n         turf_type = /turf/space;\r\n         width = 18\r\n        },\r\n/turf/space,\r\n/area/space)\r\n```\r\n\r\n## Disclaimer:\r\nThis tool is a bit clunky to use at the moment, you must specify an input map (from within the same directory as the tool) and an output map (from within the same directory as the tool, however if you leave the output map variable empty it will simply overwrite the input map file\r\n\r\nEventually this tool will be run automatically by the other mapping tools (map merger, etc.) so you won't even need to worry about it, but for now it's experimental.\r\n\r\nNo maps were edited as this would almost CERTAINLY conflict with every map PR currently up.\r\n\r\nThe tool will NOT run on maps containing this header comment:\r\n```//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE```\r\nThis comment is automatically added by the tool, to prevent maps from being processed multiple times. this comment is automatically removed by byond upon saving map changes (and the map is converted back to the default format by byond) so this won't cause issues if you make a change and then re-use the tool."},"comment":{"url":"https://api.github.com/repos/tgstation/-tg-station/issues/comments/121461888","html_url":"https://github.com/tgstation/-tg-station/pull/10623#issuecomment-121461888","issue_url":"https://api.github.com/repos/tgstation/-tg-station/issues/10623","id":121461888,"user":{"login":"optimumtact","id":2544323,"avatar_url":"https://avatars.githubusercontent.com/u/2544323?v=3","gravatar_id":"","url":"https://api.github.com/users/optimumtact","html_url":"https://github.com/optimumtact","followers_url":"https://api.github.com/users/optimumtact/followers","following_url":"https://api.github.com/users/optimumtact/following{/other_user}","gists_url":"https://api.github.com/users/optimumtact/gists{/gist_id}","starred_url":"https://api.github.com/users/optimumtact/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/optimumtact/subscriptions","organizations_url":"https://api.github.com/users/optimumtact/orgs","repos_url":"https://api.github.com/users/optimumtact/repos","events_url":"https://api.github.com/users/optimumtact/events{/privacy}","received_events_url":"https://api.github.com/users/optimumtact/received_events","type":"User","site_admin":false},"created_at":"2015-07-15T02:29:29Z","updated_at":"2015-07-15T02:29:29Z","body":"Can you rip that code out then?"}}