I have a half finished TD and i decided to finish it. When i did that project i used pretty bad design, and i had a circular dependency, now i want to fix that.
The idea is:
Make a GameController class, the event loop run here, but GC won't handle it, it just decide who should handle it (the User interface or the map), and convert the mouseclick coordinate depending on the view of the handling class.
If there is an actual command from the UI (like Build XY Tower) the gamecontroller get it and drop down to the map to execute it.
I am sure it can work, but i am not entirely sure that's the best solution i can do.