{"action":"created","issue":{"url":"https://api.github.com/repos/junkdog/artemis-odb/issues/292","labels_url":"https://api.github.com/repos/junkdog/artemis-odb/issues/292/labels{/name}","comments_url":"https://api.github.com/repos/junkdog/artemis-odb/issues/292/comments","events_url":"https://api.github.com/repos/junkdog/artemis-odb/issues/292/events","html_url":"https://github.com/junkdog/artemis-odb/issues/292","id":98359938,"number":292,"title":"Responding to component data changes","user":{"login":"mtsr","id":1319584,"avatar_url":"https://avatars.githubusercontent.com/u/1319584?v=3","gravatar_id":"","url":"https://api.github.com/users/mtsr","html_url":"https://github.com/mtsr","followers_url":"https://api.github.com/users/mtsr/followers","following_url":"https://api.github.com/users/mtsr/following{/other_user}","gists_url":"https://api.github.com/users/mtsr/gists{/gist_id}","starred_url":"https://api.github.com/users/mtsr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mtsr/subscriptions","organizations_url":"https://api.github.com/users/mtsr/orgs","repos_url":"https://api.github.com/users/mtsr/repos","events_url":"https://api.github.com/users/mtsr/events{/privacy}","received_events_url":"https://api.github.com/users/mtsr/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/junkdog/artemis-odb/labels/question","name":"question","color":"cc317c"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2015-07-31T10:15:02Z","updated_at":"2015-08-01T21:12:59Z","closed_at":null,"body":"How would you deal with the following?\r\n\r\nFor a mouse picking system with lots of pickables, I want to keep the entities in a quad-tree by their position as an optimisation. The quad-tree needs to be updated when the position component changes. Ideally I would like to not check every entity during every update, but only check those with a dirty position component.\r\n\r\nMy ideas so far:\r\n* keeping a dirty flag on the position component that gets set by a setter and reset by the quad tree update;\r\n* making the component 'Observable' (custom, because Observable is a class, not an interface) and making the quad tree an observer.\r\n\r\nAny suggestions?"},"comment":{"url":"https://api.github.com/repos/junkdog/artemis-odb/issues/comments/126953888","html_url":"https://github.com/junkdog/artemis-odb/issues/292#issuecomment-126953888","issue_url":"https://api.github.com/repos/junkdog/artemis-odb/issues/292","id":126953888,"user":{"login":"DaanVanYperen","id":6305602,"avatar_url":"https://avatars.githubusercontent.com/u/6305602?v=3","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},"created_at":"2015-08-01T21:12:59Z","updated_at":"2015-08-01T21:12:59Z","body":"@piotr-j system implementations are best PRed to artemis-odb-contrib.\r\n\r\nUsers probably want to use their own pos/etc components, if you could make an abstract system with no forced components that would be preferred!"}}