2026-8-28
Allowed scheduler tasks to store data. This means I could implement BFS through the scheduler, allowing for this cool traversal effect:
But I eventually decided I didn’t like it and restored it to what it was before.
I also changed the title screen a bit, so that the pieces are to the side of the main content area.

Then I added an options button as shown above and made a basic options screen. This was easier said than done, as previously these configurable parameters were hardcoded Rust constants. Fortunately a config is easily implementable via a LazyLock<RwLock<Config>>, and can be easily accessed and written to using helper methods.

Next, I just had to do some very basic serde JSON code to save and load the config from a JSON file. The config is stored as <user data dir>/dev.orangishcat.cursed-tetris/config.json, where the dirs crate handles figuring out the user data directory.
Also the identifier dev.orangishcat is, by convention, apparently the reverse of a domain name, called reverse domain name notation. For example using com.example conventionally would be used as an identifier by someone who owns example.com. Of course this is just an identifier and doesn’t really do anything, but me using dev.orangishcat means that if I were to get a domain, I have decided I would want orangishcat.dev. Hopefully it’s at an affordable price.
(Only other domain I might want would be orangishcat.sh because it sounds cool, but .dev probably makes the most sense here.)
Total time: 3 hours