{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":700346177,"defaultBranch":"main","name":"libadagio-plusplus","ownerLogin":"meisekimiu","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-10-04T12:28:13.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/9145247?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1724558024.0","currentOid":""},"activityList":{"items":[{"before":"a44ce11c59a6d5f532130539022045bd3581126f","after":"f18ec1b03d6466588e41505fcc7516b25ba7433e","ref":"refs/heads/main","pushedAt":"2024-09-23T13:11:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"meisekimiu","name":"Natalie Martin","path":"/meisekimiu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9145247?s=80&v=4"},"commit":{"message":"Fix for released mouse button logic","shortMessageHtmlLink":"Fix for released mouse button logic"}},{"before":"507ac1447c771dc33310058d8455d9b7be59ae5f","after":"a44ce11c59a6d5f532130539022045bd3581126f","ref":"refs/heads/main","pushedAt":"2024-09-22T15:54:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"meisekimiu","name":"Natalie Martin","path":"/meisekimiu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9145247?s=80&v=4"},"commit":{"message":"Add MouseState class\n\nThis class represents the state of the mouse. It is designed to wrap\naround specific API code so that it can be easily mocked in tests. This\ncommit also extracts the `KeyBitState` struct from the KeyboardState\nclass so that it can be shared between various input state classes.","shortMessageHtmlLink":"Add MouseState class"}},{"before":"c0a871aaa422cce6760638a6093c55824241c5e5","after":"507ac1447c771dc33310058d8455d9b7be59ae5f","ref":"refs/heads/main","pushedAt":"2024-09-18T01:12:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"meisekimiu","name":"Natalie Martin","path":"/meisekimiu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9145247?s=80&v=4"},"commit":{"message":"Add keyboard input class\n\nAdd the KeyboardState class. This class is designed to be injected by a\nmock so that input code can be handled in tests. This is the first part\nof the input system, which will also include mouse and gamepad handlers\nas well as an abstract \"actions\" handler.","shortMessageHtmlLink":"Add keyboard input class"}},{"before":"4077fe2fd65d13fa20c33b786dfe9117d6fb4990","after":"c0a871aaa422cce6760638a6093c55824241c5e5","ref":"refs/heads/main","pushedAt":"2024-09-10T01:34:22.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"meisekimiu","name":"Natalie Martin","path":"/meisekimiu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9145247?s=80&v=4"},"commit":{"message":"Use DetectCollision\n\nCreate an enemy type that we can shoot at and test the `DetectCollision`\nsystem with. This commit also includes various refinements to the\nmessaging and collision systems. There were a few messaging bugs that\nslipped through in particular:\n- Pooled messages were not freed when their parent inboxes were\n unregistered\n- The MessageInbox component was not pointer stable and so the\n MessageDispatchService was not sending events to the proper inboxes\n\nFix these and also improve how we iterate over MessageCollections by\nproviding a custom iterator to use.","shortMessageHtmlLink":"Use DetectCollision"}},{"before":"619b12e4b7a8f374c4e4cc98e3fe54d620423ed2","after":"4077fe2fd65d13fa20c33b786dfe9117d6fb4990","ref":"refs/heads/main","pushedAt":"2024-09-02T19:14:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"meisekimiu","name":"Natalie Martin","path":"/meisekimiu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9145247?s=80&v=4"},"commit":{"message":"Add DetectCollision system\n\nThis is a very basic and naive collision detection system. However for\nthe first game project in this engine it should be sufficient and for\nmore complex cases we can replace it with a more robust physics system\nlater.","shortMessageHtmlLink":"Add DetectCollision system"}},{"before":"7789811f1c0bbc2c9fedc5d84946329de46c0441","after":"619b12e4b7a8f374c4e4cc98e3fe54d620423ed2","ref":"refs/heads/main","pushedAt":"2024-08-27T03:05:22.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"meisekimiu","name":"Natalie Martin","path":"/meisekimiu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9145247?s=80&v=4"},"commit":{"message":"Hook up MessageDispatchService to Entity Registry","shortMessageHtmlLink":"Hook up MessageDispatchService to Entity Registry"}},{"before":"9c05d98f1022b27d339918fdf82742e9bc4b35cb","after":"7789811f1c0bbc2c9fedc5d84946329de46c0441","ref":"refs/heads/main","pushedAt":"2024-08-27T03:01:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"meisekimiu","name":"Natalie Martin","path":"/meisekimiu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9145247?s=80&v=4"},"commit":{"message":"Hook up MessageDispatchService to Entity Registry","shortMessageHtmlLink":"Hook up MessageDispatchService to Entity Registry"}},{"before":"3e7fceabc917830db427c444fc70ae56b4e8d97b","after":null,"ref":"refs/heads/event-wip","pushedAt":"2024-08-25T03:53:44.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"meisekimiu","name":"Natalie Martin","path":"/meisekimiu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9145247?s=80&v=4"}},{"before":"e6c3c1b28873d7d875e14b6e0048effd366e2e4b","after":"9c05d98f1022b27d339918fdf82742e9bc4b35cb","ref":"refs/heads/main","pushedAt":"2024-08-25T03:53:43.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"meisekimiu","name":"Natalie Martin","path":"/meisekimiu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9145247?s=80&v=4"},"commit":{"message":"Create MessageDispatchService\n\nGive entities a way to communicate with each other via the\nMessageDispatchService. The `MessageInbox` component is used to receive\nmessages. Currently the MessageDispatchService is for entity-to-entity\ncommunication. Global events will be handled by another service,\nalthough will probably use the same `Message` object with `EventArg`\nparameters.","shortMessageHtmlLink":"Create MessageDispatchService"}},{"before":"42b7f466d2ffeb659c7e4e17c7c38d1b85641135","after":"3e7fceabc917830db427c444fc70ae56b4e8d97b","ref":"refs/heads/event-wip","pushedAt":"2024-08-25T03:51:00.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"meisekimiu","name":"Natalie Martin","path":"/meisekimiu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9145247?s=80&v=4"},"commit":{"message":"Create MessageDispatchService\n\nGive entities a way to communicate with each other via the\nMessageDispatchService. The `MessageInbox` component is used to receive\nmessages. Currently the MessageDispatchService is for entity-to-entity\ncommunication. Global events will be handled by another service,\nalthough will probably use the same `Message` object with `EventArg`\nparameters.","shortMessageHtmlLink":"Create MessageDispatchService"}},{"before":"e0212a01a8ee16e31916e7adebcfe4ee32523f3b","after":"42b7f466d2ffeb659c7e4e17c7c38d1b85641135","ref":"refs/heads/event-wip","pushedAt":"2024-08-25T03:48:06.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"meisekimiu","name":"Natalie Martin","path":"/meisekimiu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9145247?s=80&v=4"},"commit":{"message":"Create MessageDispatchService\n\nGive entities a way to communicate with each other via the\nMessageDispatchService. The `MessageInbox` component is used to receive\nmessages. Currently the MessageDispatchService is for entity-to-entity\ncommunication. Global events will be handled by another service,\nalthough will probably use the same `Message` object with `EventArg`\nparameters.","shortMessageHtmlLink":"Create MessageDispatchService"}},{"before":null,"after":"e0212a01a8ee16e31916e7adebcfe4ee32523f3b","ref":"refs/heads/event-wip","pushedAt":"2024-08-12T00:30:42.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"meisekimiu","name":"Natalie Martin","path":"/meisekimiu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9145247?s=80&v=4"},"commit":{"message":"WIP","shortMessageHtmlLink":"WIP"}},{"before":"5119c030924eeaf3c5e0c94d7df3f85104c27edd","after":"e6c3c1b28873d7d875e14b6e0048effd366e2e4b","ref":"refs/heads/main","pushedAt":"2024-06-17T16:44:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"meisekimiu","name":"Natalie Martin","path":"/meisekimiu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9145247?s=80&v=4"},"commit":{"message":"Add Velocity Component\n\nCreate a new component called \"Velocity\" to generalize things that move\nin a specific velocity every frame, and create a system that applies\nthat velocity to an entity's position in an isolated, testable, and\nframerate-independant way.\n\nAlso remove the speed/velocity calculations from the UserProjectile\ncomponent so we can use the new Velocity component instead.","shortMessageHtmlLink":"Add Velocity Component"}},{"before":"c632330e2e9438e3f66691991ca888fe58178c35","after":"5119c030924eeaf3c5e0c94d7df3f85104c27edd","ref":"refs/heads/main","pushedAt":"2024-06-12T22:41:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"meisekimiu","name":"Natalie Martin","path":"/meisekimiu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9145247?s=80&v=4"},"commit":{"message":"Format code with clang-format\n\nI thought that I had a formatter enabled in my IDE already, but\napparently I don't. Add the .clang-format file so that CLion uses\nClangFormat and format every file so that my C++ code looks way less\nembarrassing.","shortMessageHtmlLink":"Format code with clang-format"}},{"before":"ad733507eb2f73f80088e223edc6b2a2149e30c3","after":"c632330e2e9438e3f66691991ca888fe58178c35","ref":"refs/heads/main","pushedAt":"2024-06-12T01:00:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"meisekimiu","name":"Natalie Martin","path":"/meisekimiu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9145247?s=80&v=4"},"commit":{"message":"Basic Sprite Animation\n\nCreate a system for animating sprites by manipulating their SpriteClip\ncomponents based on frame data. Replace the bespoke rendering systems\nfor the Ship and Wallop in the GracilisGame with the new Sprite and\nSpriteAnimation systems.\n\nShould AnimationFrames be a resource that is managed by the engine\nitself?","shortMessageHtmlLink":"Basic Sprite Animation"}},{"before":"cf20c0ce29167a2bebc9041407c6566f1f09719c","after":"ad733507eb2f73f80088e223edc6b2a2149e30c3","ref":"refs/heads/main","pushedAt":"2024-06-07T01:10:26.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"meisekimiu","name":"Natalie Martin","path":"/meisekimiu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9145247?s=80&v=4"},"commit":{"message":"Small cleanup in graphics code\n\nRemove commented out raylib calls and other small adjustments.","shortMessageHtmlLink":"Small cleanup in graphics code"}},{"before":"f54001f8356681e1f6a706408e6adc401baf5724","after":"cf20c0ce29167a2bebc9041407c6566f1f09719c","ref":"refs/heads/main","pushedAt":"2024-06-07T01:06:54.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"meisekimiu","name":"Natalie Martin","path":"/meisekimiu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9145247?s=80&v=4"},"commit":{"message":"Add `SpriteTint` Component\n\nThis optional component tints the sprite in the RenderSprite function.","shortMessageHtmlLink":"Add SpriteTint Component"}},{"before":"0d667b76e2c67a133e8977eb740b14f360430578","after":"f54001f8356681e1f6a706408e6adc401baf5724","ref":"refs/heads/main","pushedAt":"2024-06-05T04:38:41.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"meisekimiu","name":"Natalie Martin","path":"/meisekimiu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9145247?s=80&v=4"},"commit":{"message":"Basic Sprite component + RenderSprite renderer\n\nThis Component + System deals with basic sprite rendering functionality.\nThe plan is to add additional optional components that can coexist with\nthe `Sprite` component to add additional rendering options. Then a\nsprite animation component/system can manipulate these various values to\ncreate reusable and extendable sprite animation.","shortMessageHtmlLink":"Basic Sprite component + RenderSprite renderer"}},{"before":"c5c2458279982989f91e8d2f211b2709c34ac99f","after":"0d667b76e2c67a133e8977eb740b14f360430578","ref":"refs/heads/main","pushedAt":"2024-06-04T03:51:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"meisekimiu","name":"Natalie Martin","path":"/meisekimiu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9145247?s=80&v=4"},"commit":{"message":"Pass RenderingServices to GameState::loadContent\n\nAllow access to the TextureManager in the LoadContent method for states.","shortMessageHtmlLink":"Pass RenderingServices to GameState::loadContent"}},{"before":"3a549fb2cf4bf90e552fcad673db237c849075bb","after":"c5c2458279982989f91e8d2f211b2709c34ac99f","ref":"refs/heads/main","pushedAt":"2024-06-04T02:59:48.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"meisekimiu","name":"Natalie Martin","path":"/meisekimiu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9145247?s=80&v=4"},"commit":{"message":"Add Raylib graphics backend and use it in main\n\nFinally bring the newer abstract graphics systems into the main part of\nthe engine. Create backends for raylib and use them in the\nLeonaTestState so we can finally render Leona again. Text rendering and\nadjustments to Renderers in GracilisGame are still pending.","shortMessageHtmlLink":"Add Raylib graphics backend and use it in main"}},{"before":"7822f4e2fb33f67a19894334f7c3e6cfcd0d1f94","after":"3a549fb2cf4bf90e552fcad673db237c849075bb","ref":"refs/heads/main","pushedAt":"2024-05-31T03:01:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"meisekimiu","name":"Natalie Martin","path":"/meisekimiu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9145247?s=80&v=4"},"commit":{"message":"Pin raylib to version 5.0\n\nUsing the master branch was causing clean compiles (like those in the CI\npipeline) to fail.","shortMessageHtmlLink":"Pin raylib to version 5.0"}},{"before":"b9f78dbda4f9e60dd6dbbd2de1b0b114f9ee0d5d","after":"7822f4e2fb33f67a19894334f7c3e6cfcd0d1f94","ref":"refs/heads/main","pushedAt":"2024-05-31T02:56:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"meisekimiu","name":"Natalie Martin","path":"/meisekimiu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9145247?s=80&v=4"},"commit":{"message":"Raylib cleanup from core graphics code\n\nLong delayed removal of Raylib classes from the core graphics code. All\nof these classes will be used in a specific \"backend\" class.","shortMessageHtmlLink":"Raylib cleanup from core graphics code"}},{"before":"7c4a926ab4fe58482e9322798058d8aba6d25250","after":"b9f78dbda4f9e60dd6dbbd2de1b0b114f9ee0d5d","ref":"refs/heads/main","pushedAt":"2024-02-22T02:57:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"meisekimiu","name":"Natalie Martin","path":"/meisekimiu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9145247?s=80&v=4"},"commit":{"message":"Unload audio","shortMessageHtmlLink":"Unload audio"}},{"before":"01bee96a42a45caefbe65cfac6f2f2d459b8db13","after":"7c4a926ab4fe58482e9322798058d8aba6d25250","ref":"refs/heads/main","pushedAt":"2024-02-21T02:50:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"meisekimiu","name":"Natalie Martin","path":"/meisekimiu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9145247?s=80&v=4"},"commit":{"message":"Rework Audio\n\nUse the pattern we have with graphics and use the ResourceLibrary to\nload in audio.","shortMessageHtmlLink":"Rework Audio"}},{"before":"098dd61a75d8aac928e3e084ee0fbc8fdf304910","after":"01bee96a42a45caefbe65cfac6f2f2d459b8db13","ref":"refs/heads/main","pushedAt":"2024-02-06T00:48:44.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"meisekimiu","name":"Natalie Martin","path":"/meisekimiu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9145247?s=80&v=4"},"commit":{"message":"Add ResourceLibrary class and refactor TextureManager\n\nWe want to reuse the TextureManager logic in a few other places in our\nengine for handling assets. Create a ResourceLibrary template class and\nthen refactor TextureManager to use it instead of code customized just\nfor textures.","shortMessageHtmlLink":"Add ResourceLibrary class and refactor TextureManager"}},{"before":"1b8b2eacef74fb15da30ae3bc54506f3591bf549","after":"098dd61a75d8aac928e3e084ee0fbc8fdf304910","ref":"refs/heads/main","pushedAt":"2024-02-06T00:46:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"meisekimiu","name":"Natalie Martin","path":"/meisekimiu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9145247?s=80&v=4"},"commit":{"message":"Add ResourceLibrary class and refactor TextureManager\n\nWe want to reuse the TextureManager logic in a few other places in our\nengine for handling assets. Create a ResourceLibrary template class and\nthen refactor TextureManager to use it instead of code customized just\nfor textures.","shortMessageHtmlLink":"Add ResourceLibrary class and refactor TextureManager"}},{"before":"00623b8e203f2624631312610217cc2564676e84","after":null,"ref":"refs/heads/github-actions","pushedAt":"2024-01-24T03:04:55.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"meisekimiu","name":"Natalie Martin","path":"/meisekimiu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9145247?s=80&v=4"}},{"before":"60f202456b75489e80138a11194b8041bbafb174","after":"1b8b2eacef74fb15da30ae3bc54506f3591bf549","ref":"refs/heads/main","pushedAt":"2024-01-24T03:03:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"meisekimiu","name":"Natalie Martin","path":"/meisekimiu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9145247?s=80&v=4"},"commit":{"message":"Add workflow badge to README\n\nMake it so I can see unit test status on the main page of the repo. :)","shortMessageHtmlLink":"Add workflow badge to README"}},{"before":"b943e437473f5093758c759bd4277be41d760c38","after":"60f202456b75489e80138a11194b8041bbafb174","ref":"refs/heads/main","pushedAt":"2024-01-24T02:59:10.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"meisekimiu","name":"Natalie Martin","path":"/meisekimiu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9145247?s=80&v=4"},"commit":{"message":"Add test workflow\n\nAdd test workflow. For now, let's just test on Ubuntu since we need to\ninstall external dependencies, and we're only developing on Linux.","shortMessageHtmlLink":"Add test workflow"}},{"before":"23d857191f55ea3b99bcbac8b208428807652b57","after":"00623b8e203f2624631312610217cc2564676e84","ref":"refs/heads/github-actions","pushedAt":"2024-01-24T02:54:54.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"meisekimiu","name":"Natalie Martin","path":"/meisekimiu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9145247?s=80&v=4"},"commit":{"message":"Add test workflow\n\nAdd test workflow. For now, let's just test on Ubuntu since we need to\ninstall external dependencies, and we're only developing on Linux.","shortMessageHtmlLink":"Add test workflow"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0yM1QxMzoxMTo0NS4wMDAwMDBazwAAAAS9_WR4","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wMS0yNFQwMjo1NDo1NC4wMDAwMDBazwAAAAPnfWQF"}},"title":"Activity ยท meisekimiu/libadagio-plusplus"}