{"action":"created","comment":{"url":"https://api.github.com/repos/tgstation/tgstation/pulls/comments/349883630","pull_request_review_id":321922837,"id":349883630,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDM0OTg4MzYzMA==","diff_hunk":"@@ -7,10 +7,22 @@ PROCESSING_SUBSYSTEM_DEF(dcs)\n /datum/controller/subsystem/processing/dcs/Recover()\n \tcomp_lookup = SSdcs.comp_lookup\n \n-/datum/controller/subsystem/processing/dcs/proc/GetElement(eletype)\n-\t. = elements_by_type[eletype]\n+/datum/controller/subsystem/processing/dcs/proc/GetElement(datum/element/eletype, ...)\n+\tvar/element_id = eletype\n+\t\n+\tif(initial(eletype.element_flags) & ELEMENT_BESPOKE)\n+\t\tvar/list/fullid = list(\"[eletype]\")\n+\t\tfor(var/i in initial(eletype.id_arg_index) to length(args))\n+\t\t\tvar/argument = args[i]\n+\t\t\tif(istext(argument) || isnum(argument))\n+\t\t\t\tfullid += \"[argument]\"\n+\t\t\telse\n+\t\t\t\tfullid += \"[REF(argument)]\"","path":"code/controllers/subsystem/dcs.dm","position":16,"original_position":16,"commit_id":"b2f444acbffd92391eaa92c68f2a1c6247232278","original_commit_id":"b2f444acbffd92391eaa92c68f2a1c6247232278","user":{"login":"AnturK","id":4047233,"node_id":"MDQ6VXNlcjQwNDcyMzM=","avatar_url":"https://avatars3.githubusercontent.com/u/4047233?v=4","gravatar_id":"","url":"https://api.github.com/users/AnturK","html_url":"https://github.com/AnturK","followers_url":"https://api.github.com/users/AnturK/followers","following_url":"https://api.github.com/users/AnturK/following{/other_user}","gists_url":"https://api.github.com/users/AnturK/gists{/gist_id}","starred_url":"https://api.github.com/users/AnturK/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AnturK/subscriptions","organizations_url":"https://api.github.com/users/AnturK/orgs","repos_url":"https://api.github.com/users/AnturK/repos","events_url":"https://api.github.com/users/AnturK/events{/privacy}","received_events_url":"https://api.github.com/users/AnturK/received_events","type":"User","site_admin":false},"body":"Add some mention to the docs it uses ref so it's obvious if anyone tries passing in lists or similar.","created_at":"2019-11-23T18:25:09Z","updated_at":"2019-11-23T18:25:09Z","html_url":"https://github.com/tgstation/tgstation/pull/47807#discussion_r349883630","pull_request_url":"https://api.github.com/repos/tgstation/tgstation/pulls/47807","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/tgstation/tgstation/pulls/comments/349883630"},"html":{"href":"https://github.com/tgstation/tgstation/pull/47807#discussion_r349883630"},"pull_request":{"href":"https://api.github.com/repos/tgstation/tgstation/pulls/47807"}},"in_reply_to_id":347813606},"pull_request":{"url":"https://api.github.com/repos/tgstation/tgstation/pulls/47807","id":341547951,"node_id":"MDExOlB1bGxSZXF1ZXN0MzQxNTQ3OTUx","html_url":"https://github.com/tgstation/tgstation/pull/47807","diff_url":"https://github.com/tgstation/tgstation/pull/47807.diff","patch_url":"https://github.com/tgstation/tgstation/pull/47807.patch","issue_url":"https://api.github.com/repos/tgstation/tgstation/issues/47807","number":47807,"state":"open","locked":false,"title":"Adds a flag for bespoke elements","user":{"login":"ninjanomnom","id":1234602,"node_id":"MDQ6VXNlcjEyMzQ2MDI=","avatar_url":"https://avatars3.githubusercontent.com/u/1234602?v=4","gravatar_id":"","url":"https://api.github.com/users/ninjanomnom","html_url":"https://github.com/ninjanomnom","followers_url":"https://api.github.com/users/ninjanomnom/followers","following_url":"https://api.github.com/users/ninjanomnom/following{/other_user}","gists_url":"https://api.github.com/users/ninjanomnom/gists{/gist_id}","starred_url":"https://api.github.com/users/ninjanomnom/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ninjanomnom/subscriptions","organizations_url":"https://api.github.com/users/ninjanomnom/orgs","repos_url":"https://api.github.com/users/ninjanomnom/repos","events_url":"https://api.github.com/users/ninjanomnom/events{/privacy}","received_events_url":"https://api.github.com/users/ninjanomnom/received_events","type":"User","site_admin":false},"body":"This muddies the water a bit in what elements are but basically this allows for multiple of the same kind of element to exist for particular usecases. The elements created in this way are still shared but only with other things that applied the same element with the same relevant args.\r\n\r\nI switched the firestacker element to use this as an example. Now instead of keeping track of host objects which want a different firestack count it makes a new element automatically with the different stack amount.\r\n\r\nThis should cut down on vars used to keep track of objects in elements and allow for some more complex behavior.\r\n\r\nI'm not fully satisfied with the implementation here but this should be good for now. Expect more prs when I've learned where the pain points are at.\r\n","created_at":"2019-11-15T16:36:44Z","updated_at":"2019-11-23T18:25:09Z","closed_at":null,"merged_at":null,"merge_commit_sha":"1223568d5dc242d0e4094973a93b0f790b73139f","assignee":null,"assignees":[],"requested_reviewers":[{"login":"Cyberboss","id":8171642,"node_id":"MDQ6VXNlcjgxNzE2NDI=","avatar_url":"https://avatars3.githubusercontent.com/u/8171642?v=4","gravatar_id":"","url":"https://api.github.com/users/Cyberboss","html_url":"https://github.com/Cyberboss","followers_url":"https://api.github.com/users/Cyberboss/followers","following_url":"https://api.github.com/users/Cyberboss/following{/other_user}","gists_url":"https://api.github.com/users/Cyberboss/gists{/gist_id}","starred_url":"https://api.github.com/users/Cyberboss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Cyberboss/subscriptions","organizations_url":"https://api.github.com/users/Cyberboss/orgs","repos_url":"https://api.github.com/users/Cyberboss/repos","events_url":"https://api.github.com/users/Cyberboss/events{/privacy}","received_events_url":"https://api.github.com/users/Cyberboss/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":380349558,"node_id":"MDU6TGFiZWwzODAzNDk1NTg=","url":"https://api.github.com/repos/tgstation/tgstation/labels/Refactor","name":"Refactor","color":"FF9933","default":false,"description":"Improves underlying code to make systems more modular and functional"}],"milestone":null,"commits_url":"https://api.github.com/repos/tgstation/tgstation/pulls/47807/commits","review_comments_url":"https://api.github.com/repos/tgstation/tgstation/pulls/47807/comments","review_comment_url":"https://api.github.com/repos/tgstation/tgstation/pulls/comments{/number}","comments_url":"https://api.github.com/repos/tgstation/tgstation/issues/47807/comments","statuses_url":"https://api.github.com/repos/tgstation/tgstation/statuses/b2f444acbffd92391eaa92c68f2a1c6247232278","head":{"label":"ninjanomnom:bespoke-elements","ref":"bespoke-elements","sha":"b2f444acbffd92391eaa92c68f2a1c6247232278","user":{"login":"ninjanomnom","id":1234602,"node_id":"MDQ6VXNlcjEyMzQ2MDI=","avatar_url":"https://avatars3.githubusercontent.com/u/1234602?v=4","gravatar_id":"","url":"https://api.github.com/users/ninjanomnom","html_url":"https://github.com/ninjanomnom","followers_url":"https://api.github.com/users/ninjanomnom/followers","following_url":"https://api.github.com/users/ninjanomnom/following{/other_user}","gists_url":"https://api.github.com/users/ninjanomnom/gists{/gist_id}","starred_url":"https://api.github.com/users/ninjanomnom/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ninjanomnom/subscriptions","organizations_url":"https://api.github.com/users/ninjanomnom/orgs","repos_url":"https://api.github.com/users/ninjanomnom/repos","events_url":"https://api.github.com/users/ninjanomnom/events{/privacy}","received_events_url":"https://api.github.com/users/ninjanomnom/received_events","type":"User","site_admin":false},"repo":{"id":89131271,"node_id":"MDEwOlJlcG9zaXRvcnk4OTEzMTI3MQ==","name":"tgstation","full_name":"ninjanomnom/tgstation","private":false,"owner":{"login":"ninjanomnom","id":1234602,"node_id":"MDQ6VXNlcjEyMzQ2MDI=","avatar_url":"https://avatars3.githubusercontent.com/u/1234602?v=4","gravatar_id":"","url":"https://api.github.com/users/ninjanomnom","html_url":"https://github.com/ninjanomnom","followers_url":"https://api.github.com/users/ninjanomnom/followers","following_url":"https://api.github.com/users/ninjanomnom/following{/other_user}","gists_url":"https://api.github.com/users/ninjanomnom/gists{/gist_id}","starred_url":"https://api.github.com/users/ninjanomnom/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ninjanomnom/subscriptions","organizations_url":"https://api.github.com/users/ninjanomnom/orgs","repos_url":"https://api.github.com/users/ninjanomnom/repos","events_url":"https://api.github.com/users/ninjanomnom/events{/privacy}","received_events_url":"https://api.github.com/users/ninjanomnom/received_events","type":"User","site_admin":false},"html_url":"https://github.com/ninjanomnom/tgstation","description":"the /tg/station branch of SS13","fork":true,"url":"https://api.github.com/repos/ninjanomnom/tgstation","forks_url":"https://api.github.com/repos/ninjanomnom/tgstation/forks","keys_url":"https://api.github.com/repos/ninjanomnom/tgstation/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ninjanomnom/tgstation/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ninjanomnom/tgstation/teams","hooks_url":"https://api.github.com/repos/ninjanomnom/tgstation/hooks","issue_events_url":"https://api.github.com/repos/ninjanomnom/tgstation/issues/events{/number}","events_url":"https://api.github.com/repos/ninjanomnom/tgstation/events","assignees_url":"https://api.github.com/repos/ninjanomnom/tgstation/assignees{/user}","branches_url":"https://api.github.com/repos/ninjanomnom/tgstation/branches{/branch}","tags_url":"https://api.github.com/repos/ninjanomnom/tgstation/tags","blobs_url":"https://api.github.com/repos/ninjanomnom/tgstation/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ninjanomnom/tgstation/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ninjanomnom/tgstation/git/refs{/sha}","trees_url":"https://api.github.com/repos/ninjanomnom/tgstation/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ninjanomnom/tgstation/statuses/{sha}","languages_url":"https://api.github.com/repos/ninjanomnom/tgstation/languages","stargazers_url":"https://api.github.com/repos/ninjanomnom/tgstation/stargazers","contributors_url":"https://api.github.com/repos/ninjanomnom/tgstation/contributors","subscribers_url":"https://api.github.com/repos/ninjanomnom/tgstation/subscribers","subscription_url":"https://api.github.com/repos/ninjanomnom/tgstation/subscription","commits_url":"https://api.github.com/repos/ninjanomnom/tgstation/commits{/sha}","git_commits_url":"https://api.github.com/repos/ninjanomnom/tgstation/git/commits{/sha}","comments_url":"https://api.github.com/repos/ninjanomnom/tgstation/comments{/number}","issue_comment_url":"https://api.github.com/repos/ninjanomnom/tgstation/issues/comments{/number}","contents_url":"https://api.github.com/repos/ninjanomnom/tgstation/contents/{+path}","compare_url":"https://api.github.com/repos/ninjanomnom/tgstation/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ninjanomnom/tgstation/merges","archive_url":"https://api.github.com/repos/ninjanomnom/tgstation/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ninjanomnom/tgstation/downloads","issues_url":"https://api.github.com/repos/ninjanomnom/tgstation/issues{/number}","pulls_url":"https://api.github.com/repos/ninjanomnom/tgstation/pulls{/number}","milestones_url":"https://api.github.com/repos/ninjanomnom/tgstation/milestones{/number}","notifications_url":"https://api.github.com/repos/ninjanomnom/tgstation/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ninjanomnom/tgstation/labels{/name}","releases_url":"https://api.github.com/repos/ninjanomnom/tgstation/releases{/id}","deployments_url":"https://api.github.com/repos/ninjanomnom/tgstation/deployments","created_at":"2017-04-23T09:34:37Z","updated_at":"2019-06-24T20:27:06Z","pushed_at":"2019-11-23T04:58:12Z","git_url":"git://github.com/ninjanomnom/tgstation.git","ssh_url":"git@github.com:ninjanomnom/tgstation.git","clone_url":"https://github.com/ninjanomnom/tgstation.git","svn_url":"https://github.com/ninjanomnom/tgstation","homepage":"http://www.tgstation13.org/","size":1409019,"stargazers_count":0,"watchers_count":0,"language":"DM","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":22,"license":{"key":"agpl-3.0","name":"GNU Affero General Public License v3.0","spdx_id":"AGPL-3.0","url":"https://api.github.com/licenses/agpl-3.0","node_id":"MDc6TGljZW5zZTE="},"forks":0,"open_issues":22,"watchers":0,"default_branch":"ban-wip"}},"base":{"label":"tgstation:master","ref":"master","sha":"30f6a050a1fd35dfa02abb9bf2a0e9a0c40fa23e","user":{"login":"tgstation","id":1363778,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEzNjM3Nzg=","avatar_url":"https://avatars2.githubusercontent.com/u/1363778?v=4","gravatar_id":"","url":"https://api.github.com/users/tgstation","html_url":"https://github.com/tgstation","followers_url":"https://api.github.com/users/tgstation/followers","following_url":"https://api.github.com/users/tgstation/following{/other_user}","gists_url":"https://api.github.com/users/tgstation/gists{/gist_id}","starred_url":"https://api.github.com/users/tgstation/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tgstation/subscriptions","organizations_url":"https://api.github.com/users/tgstation/orgs","repos_url":"https://api.github.com/users/tgstation/repos","events_url":"https://api.github.com/users/tgstation/events{/privacy}","received_events_url":"https://api.github.com/users/tgstation/received_events","type":"Organization","site_admin":false},"repo":{"id":3234987,"node_id":"MDEwOlJlcG9zaXRvcnkzMjM0OTg3","name":"tgstation","full_name":"tgstation/tgstation","private":false,"owner":{"login":"tgstation","id":1363778,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEzNjM3Nzg=","avatar_url":"https://avatars2.githubusercontent.com/u/1363778?v=4","gravatar_id":"","url":"https://api.github.com/users/tgstation","html_url":"https://github.com/tgstation","followers_url":"https://api.github.com/users/tgstation/followers","following_url":"https://api.github.com/users/tgstation/following{/other_user}","gists_url":"https://api.github.com/users/tgstation/gists{/gist_id}","starred_url":"https://api.github.com/users/tgstation/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tgstation/subscriptions","organizations_url":"https://api.github.com/users/tgstation/orgs","repos_url":"https://api.github.com/users/tgstation/repos","events_url":"https://api.github.com/users/tgstation/events{/privacy}","received_events_url":"https://api.github.com/users/tgstation/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/tgstation/tgstation","description":"the /tg/station branch of SS13","fork":false,"url":"https://api.github.com/repos/tgstation/tgstation","forks_url":"https://api.github.com/repos/tgstation/tgstation/forks","keys_url":"https://api.github.com/repos/tgstation/tgstation/keys{/key_id}","collaborators_url":"https://api.github.com/repos/tgstation/tgstation/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/tgstation/tgstation/teams","hooks_url":"https://api.github.com/repos/tgstation/tgstation/hooks","issue_events_url":"https://api.github.com/repos/tgstation/tgstation/issues/events{/number}","events_url":"https://api.github.com/repos/tgstation/tgstation/events","assignees_url":"https://api.github.com/repos/tgstation/tgstation/assignees{/user}","branches_url":"https://api.github.com/repos/tgstation/tgstation/branches{/branch}","tags_url":"https://api.github.com/repos/tgstation/tgstation/tags","blobs_url":"https://api.github.com/repos/tgstation/tgstation/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/tgstation/tgstation/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/tgstation/tgstation/git/refs{/sha}","trees_url":"https://api.github.com/repos/tgstation/tgstation/git/trees{/sha}","statuses_url":"https://api.github.com/repos/tgstation/tgstation/statuses/{sha}","languages_url":"https://api.github.com/repos/tgstation/tgstation/languages","stargazers_url":"https://api.github.com/repos/tgstation/tgstation/stargazers","contributors_url":"https://api.github.com/repos/tgstation/tgstation/contributors","subscribers_url":"https://api.github.com/repos/tgstation/tgstation/subscribers","subscription_url":"https://api.github.com/repos/tgstation/tgstation/subscription","commits_url":"https://api.github.com/repos/tgstation/tgstation/commits{/sha}","git_commits_url":"https://api.github.com/repos/tgstation/tgstation/git/commits{/sha}","comments_url":"https://api.github.com/repos/tgstation/tgstation/comments{/number}","issue_comment_url":"https://api.github.com/repos/tgstation/tgstation/issues/comments{/number}","contents_url":"https://api.github.com/repos/tgstation/tgstation/contents/{+path}","compare_url":"https://api.github.com/repos/tgstation/tgstation/compare/{base}...{head}","merges_url":"https://api.github.com/repos/tgstation/tgstation/merges","archive_url":"https://api.github.com/repos/tgstation/tgstation/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/tgstation/tgstation/downloads","issues_url":"https://api.github.com/repos/tgstation/tgstation/issues{/number}","pulls_url":"https://api.github.com/repos/tgstation/tgstation/pulls{/number}","milestones_url":"https://api.github.com/repos/tgstation/tgstation/milestones{/number}","notifications_url":"https://api.github.com/repos/tgstation/tgstation/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/tgstation/tgstation/labels{/name}","releases_url":"https://api.github.com/repos/tgstation/tgstation/releases{/id}","deployments_url":"https://api.github.com/repos/tgstation/tgstation/deployments","created_at":"2012-01-21T17:32:47Z","updated_at":"2019-11-23T16:51:41Z","pushed_at":"2019-11-23T16:52:55Z","git_url":"git://github.com/tgstation/tgstation.git","ssh_url":"git@github.com:tgstation/tgstation.git","clone_url":"https://github.com/tgstation/tgstation.git","svn_url":"https://github.com/tgstation/tgstation","homepage":"https://www.tgstation13.org/","size":1412423,"stargazers_count":905,"watchers_count":905,"language":"DM","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":2456,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1302,"license":{"key":"agpl-3.0","name":"GNU Affero General Public License v3.0","spdx_id":"AGPL-3.0","url":"https://api.github.com/licenses/agpl-3.0","node_id":"MDc6TGljZW5zZTE="},"forks":2456,"open_issues":1302,"watchers":905,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/tgstation/tgstation/pulls/47807"},"html":{"href":"https://github.com/tgstation/tgstation/pull/47807"},"issue":{"href":"https://api.github.com/repos/tgstation/tgstation/issues/47807"},"comments":{"href":"https://api.github.com/repos/tgstation/tgstation/issues/47807/comments"},"review_comments":{"href":"https://api.github.com/repos/tgstation/tgstation/pulls/47807/comments"},"review_comment":{"href":"https://api.github.com/repos/tgstation/tgstation/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/tgstation/tgstation/pulls/47807/commits"},"statuses":{"href":"https://api.github.com/repos/tgstation/tgstation/statuses/b2f444acbffd92391eaa92c68f2a1c6247232278"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"AnturK"}}