{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":625641701,"defaultBranch":"main","name":"entity","ownerLogin":"fforw","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-04-09T18:33:06.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/226774?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1681327164.0","currentOid":""},"activityList":{"items":[{"before":"4659a6d6a6b86a372fb1f5dd91869b8e03efff7e","after":"d124a0afd94a3dd9d10e69ce096fc1539d81b3ba","ref":"refs/heads/main","pushedAt":"2023-05-26T18:23:29.430Z","pushType":"push","commitsCount":1,"pusher":{"login":"fforw","name":"Sven Helmberger","path":"/fforw","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/226774?s=80&v=4"},"commit":{"message":"Document masks","shortMessageHtmlLink":"Document masks"}},{"before":"3f66c188219845284e4498e967014af325adc943","after":"4659a6d6a6b86a372fb1f5dd91869b8e03efff7e","ref":"refs/heads/main","pushedAt":"2023-05-04T13:05:40.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"fforw","name":"Sven Helmberger","path":"/fforw","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/226774?s=80&v=4"},"commit":{"message":"Add entitySystem.masks(components) helper\n\nAdds a new helper method entitySystem.masks(components) that turns an\narray of components into an array of bigint mask values, one per\nexisting table.\n\nThis is the alternative format that .has() accepted, but we change it\nto BigInt now.\n\nCorrects the jsdoc for \"components\".\n\nAdds some tests.","shortMessageHtmlLink":"Add entitySystem.masks(components) helper"}},{"before":"d53ee33c6c8c0e3ddb93749089770ce5f9d24cdc","after":"3f66c188219845284e4498e967014af325adc943","ref":"refs/heads/main","pushedAt":"2023-05-04T12:20:41.000Z","pushType":"push","commitsCount":7,"pusher":{"login":"fforw","name":"Sven Helmberger","path":"/fforw","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/226774?s=80&v=4"},"commit":{"message":"fromJSON: Decouple\n\nDecouple the array we're sorting to not modify the original JSON data.","shortMessageHtmlLink":"fromJSON: Decouple"}},{"before":"fe135f21d4285374b346fdc274b7c95b286a292f","after":"d53ee33c6c8c0e3ddb93749089770ce5f9d24cdc","ref":"refs/heads/main","pushedAt":"2023-04-12T18:44:09.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"fforw","name":"Sven Helmberger","path":"/fforw","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/226774?s=80&v=4"},"commit":{"message":"Implement JSON exporting and importing\n\nAdds a system.toJSON([masks]) method to create a JSON object graph from\nthe current entity system, optionally filtered by an array of mask\nvalues per table.\n\nCreates EntitySystem.fromJSON(config, json) to create a new entity\nsystem from such an JSON object graph export.\n\nIn general, the entity objects contained in the \"entities\" array of the\nexport are exactly in the format they need to be to be used as template.\n\nFor this purpose we extend our template logic by two fields:\n\nA field \"_id\" may contain the id of an entity. system.addComponents()\nwill however just ignore that field. If you want to recreate an entity,\nread the _id field from the export and call\nentitySysten.newEntity(template, _id).\n\nA field \"_\" is generated by the export and contains the name of every\ntag component the entity has. Giving a template with such a \"_\" property\nwill restore all the components in the array.","shortMessageHtmlLink":"Implement JSON exporting and importing"}},{"before":null,"after":"22cf940d899929e64b5144932b555b1de31af813","ref":"refs/heads/json-support","pushedAt":"2023-04-11T16:04:40.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"fforw","name":"Sven Helmberger","path":"/fforw","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/226774?s=80&v=4"},"commit":{"message":"TMP: JSON object support","shortMessageHtmlLink":"TMP: JSON object support"}},{"before":"ae300f7f46a578fbec49b271f56cb026495c9ff9","after":"fe135f21d4285374b346fdc274b7c95b286a292f","ref":"refs/heads/main","pushedAt":"2023-04-11T06:45:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"fforw","name":"Sven Helmberger","path":"/fforw","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/226774?s=80&v=4"},"commit":{"message":"Improve docs","shortMessageHtmlLink":"Improve docs"}},{"before":"97ff8c7a229f5bf879390a4723e839ed9a827be8","after":"ae300f7f46a578fbec49b271f56cb026495c9ff9","ref":"refs/heads/main","pushedAt":"2023-04-11T01:43:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"fforw","name":"Sven Helmberger","path":"/fforw","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/226774?s=80&v=4"},"commit":{"message":"Document requirements","shortMessageHtmlLink":"Document requirements"}},{"before":"ebad8a4af332a6a9e2336f0217765642210b016a","after":"97ff8c7a229f5bf879390a4723e839ed9a827be8","ref":"refs/heads/main","pushedAt":"2023-04-11T01:39:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"fforw","name":"Sven Helmberger","path":"/fforw","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/226774?s=80&v=4"},"commit":{"message":"Improve docs","shortMessageHtmlLink":"Improve docs"}},{"before":"f9a60e2c285870907fa2ca1895c0821f0a48a9d1","after":"ebad8a4af332a6a9e2336f0217765642210b016a","ref":"refs/heads/main","pushedAt":"2023-04-11T01:28:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"fforw","name":"Sven Helmberger","path":"/fforw","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/226774?s=80&v=4"},"commit":{"message":"Cleanup","shortMessageHtmlLink":"Cleanup"}},{"before":"4cf70bc570da52c6377cdba9ace1416ee91d9967","after":"f9a60e2c285870907fa2ca1895c0821f0a48a9d1","ref":"refs/heads/main","pushedAt":"2023-04-11T01:26:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"fforw","name":"Sven Helmberger","path":"/fforw","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/226774?s=80&v=4"},"commit":{"message":"Implement entitySystemName option\n\nMakes it possible to change the expected entity System variable name.","shortMessageHtmlLink":"Implement entitySystemName option"}},{"before":"36c3b207f0955d684534f72d3f4a2ff21a2b50ac","after":"4cf70bc570da52c6377cdba9ace1416ee91d9967","ref":"refs/heads/main","pushedAt":"2023-04-11T00:59:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"fforw","name":"Sven Helmberger","path":"/fforw","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/226774?s=80&v=4"},"commit":{"message":"Increase supported mask width\n\nWe use BigInt to increase the supported number of components per table\nto 52 (+1 \"exists\"). This adds up to the number of bits we have safely\nstore as an integer value in a JavaScript number.\n\nAdds some in between casting to BigInt to enable wider bit operations.\n\nAdds a test","shortMessageHtmlLink":"Increase supported mask width"}},{"before":"4f1817150234a7876a3bdfcc286eb74b0024f432","after":"36c3b207f0955d684534f72d3f4a2ff21a2b50ac","ref":"refs/heads/main","pushedAt":"2023-04-10T22:56:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"fforw","name":"Sven Helmberger","path":"/fforw","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/226774?s=80&v=4"},"commit":{"message":"Fix document typo","shortMessageHtmlLink":"Fix document typo"}},{"before":"7e981143d5272864424e9e50a2fc76bdeebe9096","after":"4f1817150234a7876a3bdfcc286eb74b0024f432","ref":"refs/heads/main","pushedAt":"2023-04-10T22:34:17.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"fforw","name":"Sven Helmberger","path":"/fforw","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/226774?s=80&v=4"},"commit":{"message":"Refactor to v2\n\nWith all indications going towards the logic of the whole system pushing\nus towards lots and lots of components, the old storage method of\nallocating a component for each entity, whether it is allocated or not\nseems too much.\n\nSo we're changing the data organization to a two-stage table system.\n\nSeperates data storage into an entity table and many component tables\nthat store one or more components.\n\nEach Entity row has two parts, each with as many values as there are\ntables. The first half contains the component masks and the second the\nrow offsets.\n\nThe row offset gives the offset of the component row within its table.\n\nNames the entity table \"e\" and the component tables c0 to c9 providing\none-step array acquisition from the entity System.\n\nIn general things get a bit more complicated for the macro. Since we now\nhave to look up the row offset for each entity, we need to make sure\nthat we keep that offset up-to-date. The macro now updates the\ncorresponding variable after a js assignment statement to the variable\n\nStatements like (entity+1).x are not supposed and not caught by the\nmacro member access logic.\n\nThis seems preferable to doing the lookup for each entity prop access.","shortMessageHtmlLink":"Refactor to v2"}},{"before":"ea8a78a826a46e263f50e2a6669f0282e4baa72e","after":"7e981143d5272864424e9e50a2fc76bdeebe9096","ref":"refs/heads/main","pushedAt":"2023-04-10T22:33:17.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"fforw","name":"Sven Helmberger","path":"/fforw","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/226774?s=80&v=4"},"commit":{"message":"Refactor to v2\n\nWith all indications going towards the logic of the whole system pushing\nus towards lots and lots of components, the old storage method of\nallocating a component for each entity, whether it is allocated or not\nseems too much.\n\nSo we're changing the data organization to a two-stage table system.\n\nSeperates data storage into an entity table and many component tables\nthat store one or more components.\n\nEach Entity row has two parts, each with as many values as there are\ntables. The first half contains the component masks and the second the\nrow offsets.\n\nThe row offset gives the offset of the component row within its table.\n\nNames the entity table \"e\" and the component tables c0 to c9 providing\none-step array acquisition from the entity System.\n\nIn general things get a bit more complicated for the macro. Since we now\nhave to look up the row offset for each entity, we need to make sure\nthat we keep that offset up-to-date. The macro now updates the\ncorresponding variable after a js assignment statement to the variable\n\nStatements like (entity+1).x are not supposed and not caught by the\nmacro member access logic.\n\nThis seems preferable to doing the lookup for each entity prop access.","shortMessageHtmlLink":"Refactor to v2"}},{"before":"7d81f5b697521340dc1e89b854a4cacbd3d4caab","after":"ea8a78a826a46e263f50e2a6669f0282e4baa72e","ref":"refs/heads/main","pushedAt":"2023-04-10T22:32:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"fforw","name":"Sven Helmberger","path":"/fforw","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/226774?s=80&v=4"},"commit":{"message":"Refactor to v2\n\nWith all indications going towards the logic of the whole system pushing\nus towards lots and lots of components, the old storage method of\nallocating a component for each entity, whether it is allocated or not\nseems too much.\n\nSo we're changing the data organization to a two-stage table system.\n\nSeperates data storage into an entity table and many component tables\nthat store one or more components.\n\nEach Entity row has two parts, each with as many values as there are\ntables. The first half contains the component masks and the second the\nrow offsets.\n\nThe row offset gives the offset of the component row within its table.\n\nNames the entity table \"e\" and the component tables c0 to c9 providing\none-step array acquisition from the entity System.\n\nIn general things get a bit more complicated for the macro. Since we now\nhave to look up the row offset for each entity, we need to make sure\nthat we keep that offset up-to-date. The macro now updates the\ncorresponding variable after a js assignment statement to the variable\n\nStatements like (entity+1).x are not supposed and not caught by the\nmacro member access logic.\n\nThis seems preferable to doing the lookup for each entity prop access.","shortMessageHtmlLink":"Refactor to v2"}},{"before":"1489186f2c061047a7cb8d5c4c959c6660fb5a9a","after":"7d81f5b697521340dc1e89b854a4cacbd3d4caab","ref":"refs/heads/main","pushedAt":"2023-04-09T19:29:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"fforw","name":"Sven Helmberger","path":"/fforw","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/226774?s=80&v=4"},"commit":{"message":"Move into library\n\nMove the entity system / macro into into its own library.","shortMessageHtmlLink":"Move into library"}},{"before":null,"after":"1489186f2c061047a7cb8d5c4c959c6660fb5a9a","ref":"refs/heads/main","pushedAt":"2023-04-09T18:33:07.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"fforw","name":"Sven Helmberger","path":"/fforw","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/226774?s=80&v=4"},"commit":{"message":"Initial commit","shortMessageHtmlLink":"Initial commit"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAADNSBNtgA","startCursor":null,"endCursor":null}},"title":"Activity ยท fforw/entity"}