{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":461254600,"defaultBranch":"develop","name":"escoria-demo-game","ownerLogin":"bolinfest","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2022-02-19T16:54:43.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/655869?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1698352520.0","currentOid":""},"activityList":{"items":[{"before":"48e331badc4cd1661cffd6c5a3cc58524d513c4e","after":"13485bf02b8974a0c01abad14ed1621f476158ed","ref":"refs/heads/sapling-pr-archive-bolinfest","pushedAt":"2023-10-26T20:39:07.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"bolinfest","name":"Michael Bolin","path":"/bolinfest","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/655869?s=80&v=4"},"commit":{"message":"Merge a790a48de0a2f2027a1b9ab3443610756c512b5e into sapling-pr-archive-bolinfest","shortMessageHtmlLink":"Merge a790a48 into sapling-pr-archive-bolinfest"}},{"before":"00aa5b808c8987fd00007319fe14259fd1b8fdb0","after":"a790a48de0a2f2027a1b9ab3443610756c512b5e","ref":"refs/heads/pr713","pushedAt":"2023-10-26T20:39:06.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"bolinfest","name":"Michael Bolin","path":"/bolinfest","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/655869?s=80&v=4"},"commit":{"message":"fix: move ESCCondition parsing logic out of the constructor\n\nThis makes it possible to create an `ESCCondition` programmatically.\nUnfortunately, this does not fix the issue with `ESCCondition`\nwhere `comparison_regex.compile(REGEX)` is called *every time* an\n`ESCCondition` is instantiated.\n\nI have read all sorts of forums, and no one seems to address this\nissue head-on. The question of, \"Why doesn't GDScript support static\nvariables\" is not addressed clearly in the docs, IMHO.\n\nThe only \"workaround\" I can find is this article on Singletons/Autoload:\n\nhttps://docs.godotengine.org/en/latest/tutorials/scripting/singletons_autoload.html\n\nThough this seems incredibly heavyweight for caching a `RegEx`.","shortMessageHtmlLink":"fix: move ESCCondition parsing logic out of the constructor"}},{"before":"2a9238763732949af48f9056ca5bc4168fbcf994","after":"48e331badc4cd1661cffd6c5a3cc58524d513c4e","ref":"refs/heads/sapling-pr-archive-bolinfest","pushedAt":"2023-10-26T20:35:23.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"bolinfest","name":"Michael Bolin","path":"/bolinfest","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/655869?s=80&v=4"},"commit":{"message":"Merge 00aa5b808c8987fd00007319fe14259fd1b8fdb0 into sapling-pr-archive-bolinfest","shortMessageHtmlLink":"Merge 00aa5b8 into sapling-pr-archive-bolinfest"}},{"before":null,"after":"00aa5b808c8987fd00007319fe14259fd1b8fdb0","ref":"refs/heads/pr713","pushedAt":"2023-10-26T20:35:20.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"bolinfest","name":"Michael Bolin","path":"/bolinfest","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/655869?s=80&v=4"},"commit":{"message":"fix: move ESCCondition parsing logic out of the constructor\n\nThis makes it possible to create an `ESCCondition` programmatically.\nUnfortunately, this does not fix the issue with `ESCCondition`\nwhere `comparison_regex.compile(REGEX)` is called *every time* an\n`ESCCondition` is instantiated.\n\nI have read all sorts of forums, and no one seems to address this\nissue head-on. The question of, \"Why doesn't GDScript support static\nvariables\" is not addressed clearly in the docs, IMHO.\n\nThe only \"workaround\" I can find is this article on Singletons/Autoload:\n\nhttps://docs.godotengine.org/en/latest/tutorials/scripting/singletons_autoload.html\n\nThough this seems incredibly heavyweight for caching a `RegEx`.","shortMessageHtmlLink":"fix: move ESCCondition parsing logic out of the constructor"}},{"before":null,"after":"2a9238763732949af48f9056ca5bc4168fbcf994","ref":"refs/heads/sapling-pr-archive-bolinfest","pushedAt":"2023-10-25T21:31:21.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"bolinfest","name":"Michael Bolin","path":"/bolinfest","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/655869?s=80&v=4"},"commit":{"message":"feat: enable ESCItem to use custom ESCEvents written in GDScript\n\nMy high-level goal is to use my own scripting language for Escoria.\nThis goes back to some of my original work on RoomScript:\n\nhttps://github.com/godot-escoria/escoria-demo-game/pull/558\n\nas well as this prototype to generate ESC from my own scripting language:\n\nhttps://github.com/bolinfest/alt-esc-prototype/\n\nBecause #558 was a large change that was impractical to upstream,\nI decided to try to rework things as a much smaller diff so that\nI could unblock myself without having to maintain a fork.\nThe crux of this commit is only a two-line change to `esc_object_manager.gd`.\n\nThe rest of the changes in the commit are updates to the demo to illustrate how\nthe feature could be used, as it changes `r3_l_exit` to be a custom instance of\n`ESCItem` that implements the new, optional `generate_events()` function so it\ncan return its own `Dictionary` to map event names to `ESCEvent` instances.\n\nThough in practice, I would not expect to author this sort of code by hand.\nInstead, I would have my own scripting language from which I would generate\nfiles such as `l_door.gd` and `l_door_exit_scene.gd`.\n\nThough as illustrated by `_compile_event_from_esc()`, I could\nstart by generating ESC instead of going straight to GDScript.\nFor example, my input language might be:\n\n```\nroom room03 {\n item l_door {\n event exit_scene {\n // ESC\n change_scene \"res://game/rooms/room02/room02.tscn\"\n }\n }\n\n item r_door {\n event exit_scene {\n // ESC\n change_scene \"res://game/rooms/room04/room04.tscn\"\n }\n }\n}\n```\n\nAnd from this, it would be fairly straightforward to generate these two `.gd` files:\n\n```gdscript\n# game/rooms/room03/l_door.gd\nextends ESCItem\n\nfunc generate_events() -> Dictionary:\n return {\n \"exit_scene\": escoria.esc_compiler.compile([\n \":exit_scene\",\n \"change_scene \\\"res://game/rooms/room02/room02.tscn\\\"\",\n ]).events[\"exit_scene\"],\n }\n```\n\nand:\n\n```gdscript\n# game/rooms/room03/r_door.gd\nextends ESCItem\n\nfunc generate_events() -> Dictionary:\n return {\n \"exit_scene\": escoria.esc_compiler.compile([\n \":exit_scene\",\n \"change_scene \\\"res://game/rooms/room04/room04.tscn\\\"\",\n ]).events[\"exit_scene\"],\n }\n```\n\nInitially, I admit this does not buy much other than making it possible\nto define events for multiple items in one file. Though over time, I\nwould like to be able to more sophisticated things like you see in:\n\nhttps://github.com/grumpygamer/DeloresDev/blob/master/Scripts/Rooms/MainStreet.dinky\n\nWhile I know it is possible to extend ESC by creating my own instances of\n`ESCCommand`, I would prefer to have the freedom to experiment with a\nbroarder array of constructs.","shortMessageHtmlLink":"feat: enable ESCItem to use custom ESCEvents written in GDScript"}},{"before":null,"after":"2a9238763732949af48f9056ca5bc4168fbcf994","ref":"refs/heads/pr712","pushedAt":"2023-10-25T21:31:18.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"bolinfest","name":"Michael Bolin","path":"/bolinfest","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/655869?s=80&v=4"},"commit":{"message":"feat: enable ESCItem to use custom ESCEvents written in GDScript\n\nMy high-level goal is to use my own scripting language for Escoria.\nThis goes back to some of my original work on RoomScript:\n\nhttps://github.com/godot-escoria/escoria-demo-game/pull/558\n\nas well as this prototype to generate ESC from my own scripting language:\n\nhttps://github.com/bolinfest/alt-esc-prototype/\n\nBecause #558 was a large change that was impractical to upstream,\nI decided to try to rework things as a much smaller diff so that\nI could unblock myself without having to maintain a fork.\nThe crux of this commit is only a two-line change to `esc_object_manager.gd`.\n\nThe rest of the changes in the commit are updates to the demo to illustrate how\nthe feature could be used, as it changes `r3_l_exit` to be a custom instance of\n`ESCItem` that implements the new, optional `generate_events()` function so it\ncan return its own `Dictionary` to map event names to `ESCEvent` instances.\n\nThough in practice, I would not expect to author this sort of code by hand.\nInstead, I would have my own scripting language from which I would generate\nfiles such as `l_door.gd` and `l_door_exit_scene.gd`.\n\nThough as illustrated by `_compile_event_from_esc()`, I could\nstart by generating ESC instead of going straight to GDScript.\nFor example, my input language might be:\n\n```\nroom room03 {\n item l_door {\n event exit_scene {\n // ESC\n change_scene \"res://game/rooms/room02/room02.tscn\"\n }\n }\n\n item r_door {\n event exit_scene {\n // ESC\n change_scene \"res://game/rooms/room04/room04.tscn\"\n }\n }\n}\n```\n\nAnd from this, it would be fairly straightforward to generate these two `.gd` files:\n\n```gdscript\n# game/rooms/room03/l_door.gd\nextends ESCItem\n\nfunc generate_events() -> Dictionary:\n return {\n \"exit_scene\": escoria.esc_compiler.compile([\n \":exit_scene\",\n \"change_scene \\\"res://game/rooms/room02/room02.tscn\\\"\",\n ]).events[\"exit_scene\"],\n }\n```\n\nand:\n\n```gdscript\n# game/rooms/room03/r_door.gd\nextends ESCItem\n\nfunc generate_events() -> Dictionary:\n return {\n \"exit_scene\": escoria.esc_compiler.compile([\n \":exit_scene\",\n \"change_scene \\\"res://game/rooms/room04/room04.tscn\\\"\",\n ]).events[\"exit_scene\"],\n }\n```\n\nInitially, I admit this does not buy much other than making it possible\nto define events for multiple items in one file. Though over time, I\nwould like to be able to more sophisticated things like you see in:\n\nhttps://github.com/grumpygamer/DeloresDev/blob/master/Scripts/Rooms/MainStreet.dinky\n\nWhile I know it is possible to extend ESC by creating my own instances of\n`ESCCommand`, I would prefer to have the freedom to experiment with a\nbroarder array of constructs.","shortMessageHtmlLink":"feat: enable ESCItem to use custom ESCEvents written in GDScript"}},{"before":"c42349372e4c32465b935653fd60a55df417e90c","after":"1544609b88c5d388f11b32c3b2bca7368cbe6cdd","ref":"refs/heads/develop","pushedAt":"2023-10-25T17:35:48.000Z","pushType":"push","commitsCount":347,"pusher":{"login":"bolinfest","name":"Michael Bolin","path":"/bolinfest","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/655869?s=80&v=4"},"commit":{"message":"chore: storing version and changelog","shortMessageHtmlLink":"chore: storing version and changelog"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAADoNAQxwA","startCursor":null,"endCursor":null}},"title":"Activity ยท bolinfest/escoria-demo-game"}