TheTrackerCouncil / SMZ3Randomizer

Tracker presents: a casual standalone version of the Super Metroid & A Link to the Past Crossover Randomizer with built-in automatic item tracking and Twitch integration
https://vivelin.net/projects/smz3
MIT License
26 stars 9 forks source link

Tracker.cs rework #30

Open Vivelin opened 3 years ago

Vivelin commented 3 years ago

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).

Vivelin commented 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.

Vivelin commented 2 years ago

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.

Vivelin commented 2 years ago

Some ideas: