{"action":"closed","issue":{"url":"https://api.github.com/repos/OpenModularTurretsTeam/OpenModularTurrets/issues/248","repository_url":"https://api.github.com/repos/OpenModularTurretsTeam/OpenModularTurrets","labels_url":"https://api.github.com/repos/OpenModularTurretsTeam/OpenModularTurrets/issues/248/labels{/name}","comments_url":"https://api.github.com/repos/OpenModularTurretsTeam/OpenModularTurrets/issues/248/comments","events_url":"https://api.github.com/repos/OpenModularTurretsTeam/OpenModularTurrets/issues/248/events","html_url":"https://github.com/OpenModularTurretsTeam/OpenModularTurrets/issues/248","id":192343370,"number":248,"title":"Camo Functionality in 1.10.2","user":{"login":"Keridos","id":2742845,"avatar_url":"https://avatars.githubusercontent.com/u/2742845?v=3","gravatar_id":"","url":"https://api.github.com/users/Keridos","html_url":"https://github.com/Keridos","followers_url":"https://api.github.com/users/Keridos/followers","following_url":"https://api.github.com/users/Keridos/following{/other_user}","gists_url":"https://api.github.com/users/Keridos/gists{/gist_id}","starred_url":"https://api.github.com/users/Keridos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Keridos/subscriptions","organizations_url":"https://api.github.com/users/Keridos/orgs","repos_url":"https://api.github.com/users/Keridos/repos","events_url":"https://api.github.com/users/Keridos/events{/privacy}","received_events_url":"https://api.github.com/users/Keridos/received_events","type":"User","site_admin":false},"labels":[{"id":213126528,"url":"https://api.github.com/repos/OpenModularTurretsTeam/OpenModularTurrets/labels/change","name":"change","color":"f7c6c7","default":false},{"id":211859989,"url":"https://api.github.com/repos/OpenModularTurretsTeam/OpenModularTurrets/labels/confirmed","name":"confirmed","color":"009800","default":false},{"id":497232413,"url":"https://api.github.com/repos/OpenModularTurretsTeam/OpenModularTurrets/labels/paused","name":"paused","color":"888888","default":false}],"state":"closed","locked":false,"assignee":{"login":"Keridos","id":2742845,"avatar_url":"https://avatars.githubusercontent.com/u/2742845?v=3","gravatar_id":"","url":"https://api.github.com/users/Keridos","html_url":"https://github.com/Keridos","followers_url":"https://api.github.com/users/Keridos/followers","following_url":"https://api.github.com/users/Keridos/following{/other_user}","gists_url":"https://api.github.com/users/Keridos/gists{/gist_id}","starred_url":"https://api.github.com/users/Keridos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Keridos/subscriptions","organizations_url":"https://api.github.com/users/Keridos/orgs","repos_url":"https://api.github.com/users/Keridos/repos","events_url":"https://api.github.com/users/Keridos/events{/privacy}","received_events_url":"https://api.github.com/users/Keridos/received_events","type":"User","site_admin":false},"assignees":[{"login":"Keridos","id":2742845,"avatar_url":"https://avatars.githubusercontent.com/u/2742845?v=3","gravatar_id":"","url":"https://api.github.com/users/Keridos","html_url":"https://github.com/Keridos","followers_url":"https://api.github.com/users/Keridos/followers","following_url":"https://api.github.com/users/Keridos/following{/other_user}","gists_url":"https://api.github.com/users/Keridos/gists{/gist_id}","starred_url":"https://api.github.com/users/Keridos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Keridos/subscriptions","organizations_url":"https://api.github.com/users/Keridos/orgs","repos_url":"https://api.github.com/users/Keridos/repos","events_url":"https://api.github.com/users/Keridos/events{/privacy}","received_events_url":"https://api.github.com/users/Keridos/received_events","type":"User","site_admin":false},{"login":"VoltyFarstar","id":8829214,"avatar_url":"https://avatars.githubusercontent.com/u/8829214?v=3","gravatar_id":"","url":"https://api.github.com/users/VoltyFarstar","html_url":"https://github.com/VoltyFarstar","followers_url":"https://api.github.com/users/VoltyFarstar/followers","following_url":"https://api.github.com/users/VoltyFarstar/following{/other_user}","gists_url":"https://api.github.com/users/VoltyFarstar/gists{/gist_id}","starred_url":"https://api.github.com/users/VoltyFarstar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/VoltyFarstar/subscriptions","organizations_url":"https://api.github.com/users/VoltyFarstar/orgs","repos_url":"https://api.github.com/users/VoltyFarstar/repos","events_url":"https://api.github.com/users/VoltyFarstar/events{/privacy}","received_events_url":"https://api.github.com/users/VoltyFarstar/received_events","type":"User","site_admin":false}],"milestone":null,"comments":3,"created_at":"2016-11-29T17:13:39Z","updated_at":"2017-01-30T23:48:07Z","closed_at":"2017-01-30T23:48:07Z","body":"From gigaherz in IRC (Thanks to him):\r\n```\r\nghz|afk\tKeridos: you'll want the block to have a TE, in this TE, you'll want to keep the IBlockState of the other block\r\nghz|afk\tthen\r\nghz|afk\tin the block, you'll want an IUnlistedProperty, of a class that will hold an immutable copy of the data needed for rendering\r\nghz|afk\tin your case, just a field with this IBlockState\r\nghz|afk\tthen\r\nghz|afk\tin createBlocksTate you'll return the ExtendedBlockState container with the unlisted property\r\nghz|afk\tand in getExtendedState, you'll want to cast the state to IExtendedState, and use .withProperty with your unlisted property, and using the immutable data as a value\r\nghz|afk\tthen\r\nghz|afk\tyou'll want to use a custom IBakedModel\r\nghz|afk\tand in this IBakedModel's getQuads method\r\nghz|afk\tyou'll cast the IBlockState to IExtendedBlockState\r\nghz|afk\tand query the value of the unlisted property\r\nghz|afk\tso that youcan finally reach the IBlockState for the block you are mirroring\r\nghz|afk\tand then you can get the IBakedModel that corresponds to this IBlockState\r\nghz|afk\tfrom the block model \"registry\"\r\nghz|afk\t(can't remember which class that is)\r\nghz|afk\tand finally, you'll want to call getQuads on that other baked model\r\nghz|afk\twith the same args that were passed to yours, xcept the IBlockState\r\nghz|afk\twhere you'll use the one you just obtained from your data\r\nghz|afk\tI don't have a copypaste-worthy example\r\nghz|afk\tbut I hope this will be enough for you to figure it out\r\nghz|afk\tthe same description applies to anything where you need custom models with per-block data\r\nghz|afk\tthe only difference is you won't be passing an IBlockState to it\r\n```\r\n\r\n"}}
{"actor":{"display_login":"Keridos"}}