{"action":"opened","issue":{"url":"https://api.github.com/repos/junkdog/artemis-odb/issues/535","repository_url":"https://api.github.com/repos/junkdog/artemis-odb","labels_url":"https://api.github.com/repos/junkdog/artemis-odb/issues/535/labels{/name}","comments_url":"https://api.github.com/repos/junkdog/artemis-odb/issues/535/comments","events_url":"https://api.github.com/repos/junkdog/artemis-odb/issues/535/events","html_url":"https://github.com/junkdog/artemis-odb/issues/535","id":343596606,"node_id":"MDU6SXNzdWUzNDM1OTY2MDY=","number":535,"title":"Dependency Injection improvements","user":{"login":"DaanVanYperen","id":6305602,"node_id":"MDQ6VXNlcjYzMDU2MDI=","avatar_url":"https://avatars1.githubusercontent.com/u/6305602?v=4","gravatar_id":"","url":"https://api.github.com/users/DaanVanYperen","html_url":"https://github.com/DaanVanYperen","followers_url":"https://api.github.com/users/DaanVanYperen/followers","following_url":"https://api.github.com/users/DaanVanYperen/following{/other_user}","gists_url":"https://api.github.com/users/DaanVanYperen/gists{/gist_id}","starred_url":"https://api.github.com/users/DaanVanYperen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DaanVanYperen/subscriptions","organizations_url":"https://api.github.com/users/DaanVanYperen/orgs","repos_url":"https://api.github.com/users/DaanVanYperen/repos","events_url":"https://api.github.com/users/DaanVanYperen/events{/privacy}","received_events_url":"https://api.github.com/users/DaanVanYperen/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-07-23T11:38:50Z","updated_at":"2018-07-23T11:38:50Z","closed_at":null,"author_association":"COLLABORATOR","body":"Small extension to DI. Alternatively we could integrate Dagger 2?\r\n\r\n- [ ] DI initialization time entity subscriptions\r\n\r\n```java\r\n@all(chicken.class, enemy.class)\r\n@exclude(exploding.class)\r\nprivate EntitySubscription enemyChickens;\r\n```\r\n- [ ] Lazy + Providers (runtime)\r\n```java\r\nclass MapCollisionSystem .. {\r\nprivate Lazy<MapMask> solidMask;\r\n}\r\n...\r\nif ( solidMask.has() ) collisionCheck(solidMask.get());\r\n```\r\n\r\n```java\r\nclass MapSystem ... {\r\n   @Provides(fieldName=\"solidMask\")\r\n   public MapMask getMask() {  ... }\r\n   @Provides\r\n   public MapMask getMask(String fieldName) {  ... }\r\n}\r\n```\r\n\r\n- [ ] Tag Provider on TagManager\r\n\r\nLazily resolve tag in world.\r\n\r\n```java\r\nprivate Lazy<Entity> player; mPos(player.get());\r\nprivate Lazy<E> player; player.get().pos.x;\r\n```\r\n\r\nsee #532 Query API ."}}
{"actor":{"display_login":"DaanVanYperen"}}