* Working sound engine and sound environments
* Clean up sounds.txt loader
* Make global volume settings apply properly
Als shuffle some stuff around
* Reset sound engine on game unload
* Add PushEffect, handle effects in renderer
* Set effects instead of blend
* Stop using PushCompositeMode, use PushEffect
* Remove remaining composite mode things
The split between d2ui and d2asset Font version caused incorrect caching between the two. After looking at d2interface.Font, I saw the d2asset was the most recent and more tightly and cleanly packaged.
I therefore removed the old d2ui.Font and embedded the d2asset version in the d2ui.Label and d2ui.Button.
Looking at the code of d2ui, it would be logical to completly swap it for their d2gui version. But at least for the moment, the d2ui.Button as more functionality since it embeds a Label (instead of a font), and this label now has multiline horizontal alignement.
* moved filter constants back to d2enum
* moving key and mouse button enums into d2enum
* moving render type enum into d2enum
* moving input even priority enums into d2enum
* moving terminal enums into d2enum
* abstracted palettes, colors, and palette manager
* make asset manager use the palette manager interface
* added BGRA setter/getter, fixed lint errors
* abstraction for animation and animation manager
* Fixes#496 using ebiten.SubImage to Render Section of a Surface.
I had to add matching functions to both animation and sprite to get it to be called
for a sprite object.
* Fixed linter warning on comments for Sprite and Animation.
* Removing what's remaining of the old Sprite re-generation and caching.