{"action":"created","issue":{"url":"https://api.github.com/repos/MovingBlocks/Terasology/issues/3453","repository_url":"https://api.github.com/repos/MovingBlocks/Terasology","labels_url":"https://api.github.com/repos/MovingBlocks/Terasology/issues/3453/labels{/name}","comments_url":"https://api.github.com/repos/MovingBlocks/Terasology/issues/3453/comments","events_url":"https://api.github.com/repos/MovingBlocks/Terasology/issues/3453/events","html_url":"https://github.com/MovingBlocks/Terasology/pull/3453","id":344735169,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA0MDU3ODcy","number":3453,"title":"Additional TypeHandlers","user":{"login":"eviltak","id":8018181,"node_id":"MDQ6VXNlcjgwMTgxODE=","avatar_url":"https://avatars1.githubusercontent.com/u/8018181?v=4","gravatar_id":"","url":"https://api.github.com/users/eviltak","html_url":"https://github.com/eviltak","followers_url":"https://api.github.com/users/eviltak/followers","following_url":"https://api.github.com/users/eviltak/following{/other_user}","gists_url":"https://api.github.com/users/eviltak/gists{/gist_id}","starred_url":"https://api.github.com/users/eviltak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eviltak/subscriptions","organizations_url":"https://api.github.com/users/eviltak/orgs","repos_url":"https://api.github.com/users/eviltak/repos","events_url":"https://api.github.com/users/eviltak/events{/privacy}","received_events_url":"https://api.github.com/users/eviltak/received_events","type":"User","site_admin":false},"labels":[{"id":180651220,"node_id":"MDU6TGFiZWwxODA2NTEyMjA=","url":"https://api.github.com/repos/MovingBlocks/Terasology/labels/Api","name":"Api","color":"eb6420","default":false},{"id":223291,"node_id":"MDU6TGFiZWwyMjMyOTE=","url":"https://api.github.com/repos/MovingBlocks/Terasology/labels/Architecture","name":"Architecture","color":"A13027","default":false}],"state":"open","locked":false,"assignee":{"login":"eviltak","id":8018181,"node_id":"MDQ6VXNlcjgwMTgxODE=","avatar_url":"https://avatars1.githubusercontent.com/u/8018181?v=4","gravatar_id":"","url":"https://api.github.com/users/eviltak","html_url":"https://github.com/eviltak","followers_url":"https://api.github.com/users/eviltak/followers","following_url":"https://api.github.com/users/eviltak/following{/other_user}","gists_url":"https://api.github.com/users/eviltak/gists{/gist_id}","starred_url":"https://api.github.com/users/eviltak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eviltak/subscriptions","organizations_url":"https://api.github.com/users/eviltak/orgs","repos_url":"https://api.github.com/users/eviltak/repos","events_url":"https://api.github.com/users/eviltak/events{/privacy}","received_events_url":"https://api.github.com/users/eviltak/received_events","type":"User","site_admin":false},"assignees":[{"login":"eviltak","id":8018181,"node_id":"MDQ6VXNlcjgwMTgxODE=","avatar_url":"https://avatars1.githubusercontent.com/u/8018181?v=4","gravatar_id":"","url":"https://api.github.com/users/eviltak","html_url":"https://github.com/eviltak","followers_url":"https://api.github.com/users/eviltak/followers","following_url":"https://api.github.com/users/eviltak/following{/other_user}","gists_url":"https://api.github.com/users/eviltak/gists{/gist_id}","starred_url":"https://api.github.com/users/eviltak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eviltak/subscriptions","organizations_url":"https://api.github.com/users/eviltak/orgs","repos_url":"https://api.github.com/users/eviltak/repos","events_url":"https://api.github.com/users/eviltak/events{/privacy}","received_events_url":"https://api.github.com/users/eviltak/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/MovingBlocks/Terasology/milestones/36","html_url":"https://github.com/MovingBlocks/Terasology/milestone/36","labels_url":"https://api.github.com/repos/MovingBlocks/Terasology/milestones/36/labels","id":3416440,"node_id":"MDk6TWlsZXN0b25lMzQxNjQ0MA==","number":36,"title":"v2.1.0","description":"","creator":{"login":"Cervator","id":1063833,"node_id":"MDQ6VXNlcjEwNjM4MzM=","avatar_url":"https://avatars3.githubusercontent.com/u/1063833?v=4","gravatar_id":"","url":"https://api.github.com/users/Cervator","html_url":"https://github.com/Cervator","followers_url":"https://api.github.com/users/Cervator/followers","following_url":"https://api.github.com/users/Cervator/following{/other_user}","gists_url":"https://api.github.com/users/Cervator/gists{/gist_id}","starred_url":"https://api.github.com/users/Cervator/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Cervator/subscriptions","organizations_url":"https://api.github.com/users/Cervator/orgs","repos_url":"https://api.github.com/users/Cervator/repos","events_url":"https://api.github.com/users/Cervator/events{/privacy}","received_events_url":"https://api.github.com/users/Cervator/received_events","type":"User","site_admin":false},"open_issues":4,"closed_issues":56,"state":"open","created_at":"2018-06-11T17:02:36Z","updated_at":"2018-07-30T16:38:17Z","due_on":null,"closed_at":null},"comments":3,"created_at":"2018-07-26T07:58:25Z","updated_at":"2018-07-30T16:40:59Z","closed_at":null,"author_association":"MEMBER","pull_request":{"url":"https://api.github.com/repos/MovingBlocks/Terasology/pulls/3453","html_url":"https://github.com/MovingBlocks/Terasology/pull/3453","diff_url":"https://github.com/MovingBlocks/Terasology/pull/3453.diff","patch_url":"https://github.com/MovingBlocks/Terasology/pull/3453.patch"},"body":"This PR adds a number of additional TypeHandlers and TypeHandlerFactories to the engine for added functionality.\r\n\r\n`TypeHandler`/`TypeHandlerFactory` | Description\r\n--- | ---\r\n`ObjectFieldMapTypeHandler` (and Factory) | Serializes objects as a fieldName -> fieldValue map. Used as the last resort. Replaces `MappedContainerTypeHandler` and makes `@MappedContainer` redundant.\r\n`AssetTypeHandlerFactory` | Generates an `AssetTypeHandler` for each `T extends Asset` so that they do not need to be manually registered.\r\n`RuntimeDelegatingTypeHandler` | Delegates serialization of a value to its runtime type if needed. Used in cases where a subclass instance is referred to as a supertype. Meant for internal use only, and is used in `Collection`, `Map`, and object as a field map serialization.\r\n\r\nMinor changes:\r\n- Add `ReflectionUtil.resolveType`\r\n- Resolve types in `ReflectionUtil.getTypeParameterForSuper`\r\n- Use `ReflectionUtil.getTypeParameterForSuper` in `Collection` and `StringMap` type handlers."},"comment":{"url":"https://api.github.com/repos/MovingBlocks/Terasology/issues/comments/408929819","html_url":"https://github.com/MovingBlocks/Terasology/pull/3453#issuecomment-408929819","issue_url":"https://api.github.com/repos/MovingBlocks/Terasology/issues/3453","id":408929819,"node_id":"MDEyOklzc3VlQ29tbWVudDQwODkyOTgxOQ==","user":{"login":"eviltak","id":8018181,"node_id":"MDQ6VXNlcjgwMTgxODE=","avatar_url":"https://avatars1.githubusercontent.com/u/8018181?v=4","gravatar_id":"","url":"https://api.github.com/users/eviltak","html_url":"https://github.com/eviltak","followers_url":"https://api.github.com/users/eviltak/followers","following_url":"https://api.github.com/users/eviltak/following{/other_user}","gists_url":"https://api.github.com/users/eviltak/gists{/gist_id}","starred_url":"https://api.github.com/users/eviltak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eviltak/subscriptions","organizations_url":"https://api.github.com/users/eviltak/orgs","repos_url":"https://api.github.com/users/eviltak/repos","events_url":"https://api.github.com/users/eviltak/events{/privacy}","received_events_url":"https://api.github.com/users/eviltak/received_events","type":"User","site_admin":false},"created_at":"2018-07-30T16:40:59Z","updated_at":"2018-07-30T16:40:59Z","author_association":"MEMBER","body":"Rebased onto `develop`. Please re-fetch."}}
{"actor":{"display_login":"eviltak"}}