WIP: Working on this :/
This was sorta a shot at doing things with an event system of sorts, and it hasn't really gone down well. I learned things from writing this code, but I don't think it's really useful.
This commit is really just an experiment and probably shouldn't be merged into anything, ever. It was a good learning experience, and I've pushed it up here because I'm afraid of it getting overridden with an update. Otherwise I wouldn't have, since it's frankly an embarrassment.