Open Vivelin opened 3 years ago
Will likely also involve doing something with the SMZ3 Randomizer's Location and the Tracker's new LocationInfo from #20 — they represent the same thing from different perspectives, which does have value, but... I don't know.
This will take a while but is also pretty needed, I think. Introducing separate services (e.g. item tracking service, location tracking service, etc.) would go a long way in making things behave more consistently.
Some ideas:
Tracker.cs is getting kind of chonky. In additon, now that there's multiple ways of tracking things and clearing locations, there needs to be some consistency.
My suggestion is to identify and split up several core tracking functionalities into services, e.g. an Item service for tracking and untracking items, and a Location service for clearing locations.
Tracker.cs will likely still contain the main methods that are called from the voice commands, but the UI will have the option between those and more fine-grained control using the services (but still remain consistent with the rest of tracker).