2 kinds of classic notes should differently behave in 2 different contextes.
In ClassicArrowNote update() and input() functions are concrete and cannot change depending on where they are invoked from: Editor or Game
Possible approach:
[ClassicArrowNote] [ClassicSliderNote]
\ /
are inherited from
|
|
[ClassicNote] ---uses---> [Context]
/ \
inherits into
| |
[EditorContext] [GameContext]
Issues here:
* 2 kinds of classic notes should differently behave in 2 different contextes.
* In ClassicArrowNote update() and input() functions are concrete and cannot change depending on where they are invoked from: Editor or Game
Possible approach:
```
[ClassicArrowNote] [ClassicSliderNote]
\ /
are inherited from
|
|
[ClassicNote] ---uses---> [Context]
/ \
inherits into
| |
[EditorContext] [GameContext]
```
Fuck this shit, it encapsulates and makes more flexible game logic, like input and update, but it doesn't help with draw()
Okay, I will try to force Observer on it.
There can be infinite amount of graphics managers, Notes should not depend on them AT ALL
Graphics Managers shouldn't trigger changes in notes
EditorContext keeps pointers to abstract interfaces of each registered Graphics Manager and whenever a note changes forces it into each Graphics manager
Graphics managers dumbly draw all notes they have registered between first visible and last visible iterators. The cannot change their state.
State changes and gets calculated from Notes triggering graphics managers on changes so they can redraw stuff and move iterators.
Fuck this shit, it encapsulates and makes more flexible game logic, like input and update, but it doesn't help with draw()
Okay, I will try to force Observer on it.
1) There can be infinite amount of graphics managers, Notes should not depend on them AT ALL
2) Graphics Managers shouldn't trigger changes in notes
3) EditorContext keeps pointers to abstract interfaces of each registered Graphics Manager and whenever a note changes forces it into each Graphics manager
4) Graphics managers dumbly draw all notes they have registered between first visible and last visible iterators. The cannot change their state.
5) State changes and gets calculated from Notes triggering graphics managers on changes so they can redraw stuff and move iterators.
Issues here:
Possible approach:
Fuck this shit, it encapsulates and makes more flexible game logic, like input and update, but it doesn't help with draw()
Okay, I will try to force Observer on it.
Halfway through: 0d97e61f4b60f011b269be984d2f84ea6c353e35
Pushed: 4b91146c334f1f0fdae3f72b5cddff38eb72d359