I've implemented a new door API in minetest_game that
performs all the needed things to assure doors are
properly openend and closed, without mods needing to
know the inner details of what needs to be done.
Mesecons can just fetch a reference to the door object
and call the appropriate open or close method, which
simplifies this code a lot.
For compatibility, this code retains the old code path
and tests whether the new API is available, so this
code remains functional if the new API is not available.
Since the metal trapdoor was only recently added, I added
it to the new API codepath only, it's unlikely to be
present on older versions of minetest_game anyway.
As a benefit from the new door API, there is now
absolutely no more accidental switching closed trapdoors
to open on power off, which could happen with the
old method - since that was just a simple toggle.
Playing stereo sounds positionally in OpenAL causes it to play
the sounds unattenuated - same volume for all distances. This
shouldn't happen, and makes noteblocks unneccesarily loud from
very far away.
Convert all noteblock samples to mono, 22kHz 64kbit.