{"action":"created","issue":{"url":"https://api.github.com/repos/sschmid/Entitas-CSharp/issues/48","repository_url":"https://api.github.com/repos/sschmid/Entitas-CSharp","labels_url":"https://api.github.com/repos/sschmid/Entitas-CSharp/issues/48/labels{/name}","comments_url":"https://api.github.com/repos/sschmid/Entitas-CSharp/issues/48/comments","events_url":"https://api.github.com/repos/sschmid/Entitas-CSharp/issues/48/events","html_url":"https://github.com/sschmid/Entitas-CSharp/issues/48","id":124593714,"number":48,"title":"[Feature] Entity Blueprints","user":{"login":"npruehs","id":757321,"avatar_url":"https://avatars.githubusercontent.com/u/757321?v=3","gravatar_id":"","url":"https://api.github.com/users/npruehs","html_url":"https://github.com/npruehs","followers_url":"https://api.github.com/users/npruehs/followers","following_url":"https://api.github.com/users/npruehs/following{/other_user}","gists_url":"https://api.github.com/users/npruehs/gists{/gist_id}","starred_url":"https://api.github.com/users/npruehs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/npruehs/subscriptions","organizations_url":"https://api.github.com/users/npruehs/orgs","repos_url":"https://api.github.com/users/npruehs/repos","events_url":"https://api.github.com/users/npruehs/events{/privacy}","received_events_url":"https://api.github.com/users/npruehs/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/sschmid/Entitas-CSharp/labels/feature%20request","name":"feature request","color":"fbca04"},{"url":"https://api.github.com/repos/sschmid/Entitas-CSharp/labels/planned","name":"planned","color":"006b75"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":44,"created_at":"2016-01-02T14:38:40Z","updated_at":"2016-02-10T20:45:54Z","closed_at":null,"body":"Following up our previous discussion about allowing Entitas to be more data-driven, here's what I'd love to do, similar to what we are doing in our CBES:\r\n\r\n1. Create a Blueprint class with two properties:\r\n 1. List of component types to add to the entity\r\n 1. Dictionary mapping component property names to component property values.\r\n\r\n2. Adapt the code generator to provide an overload Pool.CreateEntity(Blueprint) that basically does three things:\r\n 2. Create a new entity.\r\n 2. Iterate over the component types of the blueprint.\r\n 2. Add all components with their respective initial values taken from the dictionary.\r\n\r\nThis allows for easy serialization of entity data while preserving the flexibility and performance of the generated code.\r\n\r\nWhat do you think? Would this be the correct way to go with Entitas?\r\n\r\nAlso, am I right that you are currently building a new code generator? Should I wait until you're finished?\r\n"},"comment":{"url":"https://api.github.com/repos/sschmid/Entitas-CSharp/issues/comments/182576271","html_url":"https://github.com/sschmid/Entitas-CSharp/issues/48#issuecomment-182576271","issue_url":"https://api.github.com/repos/sschmid/Entitas-CSharp/issues/48","id":182576271,"user":{"login":"sschmid","id":233700,"avatar_url":"https://avatars.githubusercontent.com/u/233700?v=3","gravatar_id":"","url":"https://api.github.com/users/sschmid","html_url":"https://github.com/sschmid","followers_url":"https://api.github.com/users/sschmid/followers","following_url":"https://api.github.com/users/sschmid/following{/other_user}","gists_url":"https://api.github.com/users/sschmid/gists{/gist_id}","starred_url":"https://api.github.com/users/sschmid/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sschmid/subscriptions","organizations_url":"https://api.github.com/users/sschmid/orgs","repos_url":"https://api.github.com/users/sschmid/repos","events_url":"https://api.github.com/users/sschmid/events{/privacy}","received_events_url":"https://api.github.com/users/sschmid/received_events","type":"User","site_admin":false},"created_at":"2016-02-10T20:45:54Z","updated_at":"2016-02-10T20:45:54Z","body":"It's string based now so I can generate from different assemblies"}}