This comprehensive commit includes new sound system features, config
interface changes, bug-fixes, many tweaks and a resource overhaul.
The new features and patches to the sound system consist of minor,
practical additions rather than major, fundamental changes.
"Rainy", "Stormy" and "Submerged" conditions, which are already
accessible via data packs, contribute the event variety and dynamic
soundscape.
ID checks were extended for debugging and preventing a registry bloat
since many modded IDs have been added.
The playback was restored to its intended mechanics. Sounds repeat,
loop and show subtitles again. Volume transitions are marked as "done"
without getting stuck at zero. Sound instances after getting "done" are
removed from the list without bloating the sound pool.
The max value of volumeTransitionTimer was set to 60 instead of 80
to still have a smoother transition and reach the max value at the same
time.
Since the handler is called in SoundSystem, a client player check
needed to be added to stop the events after exiting the world. Events
are no longer getting triggered multiple times at volumes near zero.
The subtitles of each sound event can be toggled on/off to minimize
pop-ups. This is especially helpful for players who use subtitles to
track mobs and other events.
The data types and values of "more", "less" and "range" now use float
and true min-max range.
The profiler processes were disabled to avoid the crash caused by
opening the debug screen with the profiler graph.
The config needed new sections and a more user-friendly interface since
the complexity has increased with the recent additions.
The "Subtitles" category was added next to "Volumes" which has
"Ambient Sound" and "Music" subcategories now.
Tooltips consisting of sound event IDs and subtitles were added to
the config entries that use sound event names to provide more
description by utilizing every element of the language file.
The new resource implementation with the dedicated assets offers full
compatibility with the playback system (2D, stereo loops) and more
customizability for both devs and users.
The mod resources were reformed as built-in resource packs allowing
users to view and sort the pack in the resource pack interface along
with other possible packs that utilize the mod.
Suitable assets from Minecraft Dungeons were utilized to replace the
old sounds with higher quality, optimized, seamlessly loopable,
immersive yet Minecrafty sounds.
Sound events were expanded with the Dungeons pack to cover a wider
range of regions and make use of the sound system's full capabilities.
28 ambient sound events were introduced creating diverse and
complementary ambiances without overwhelming the player and the system.
The old events were updated while keeping their design choices as
possible.
The sound definitions now include IDs from various world-gen mods to
be compatible with modpacks and custom mod presets, supporting the
modding ecosystem.
The height conditions were not used in the Dungeons pack to adapt the
world-gen changes and be compatible with custom sea and terrain levels.
The pitch modifier was used in every ambient sound event to replicate
underwater acoustics when the player is submerged in a fluid.
Weather-dependent sound event variations were created for the
ambiance of wildlife taking shelter and going quiet in a downfall.
The sound events were designed with the player-environment
interactivity in mind. E.g. the "Cave" and "Grass" can be manipulated
by changing the surroundings; the "Wind" can be avoided easily by
taking a shelter...
Every part of the project has been tweaked to have consistency and
follow the coding conventions.
Apache-2.0 License text was fixed and applied to the specific files
additionally.
The SemVer build identifier was reserved to indicate the Minecraft
version the mod is built for: atmosfera-x.x.x-pre+mc1.xx.x
The mod description was formatted (by taking the FAPI as an example)
and other contacts, contributors and dependency resolutions were
included in the mod metadata.
CHANGELOG and CREDITS have been added to the repository and the
README has been rewritten to present the mod and guide the users.
Some commented-out code used for testing, debugging and legacy
support were left.
Caveats and known issues:
Sound events are trying to play after disabling the resource pack or
when no resources are found.
A ConcurrentModificationException crash caused by
SubtitlesHud.render from looping Atmospheric Sound Instances in the
off-thread processing.
This comprehensive commit includes new sound system features, config interface changes, bug-fixes, many tweaks and a resource overhaul.
The new features and patches to the sound system consist of minor, practical additions rather than major, fundamental changes.
volumeTransitionTimer
was set to 60 instead of 80 to still have a smoother transition and reach the max value at the same time.SoundSystem
, a client player check needed to be added to stop the events after exiting the world. Events are no longer getting triggered multiple times at volumes near zero.The config needed new sections and a more user-friendly interface since the complexity has increased with the recent additions.
The new resource implementation with the dedicated assets offers full compatibility with the playback system (2D, stereo loops) and more customizability for both devs and users.
Sound events were expanded with the Dungeons pack to cover a wider range of regions and make use of the sound system's full capabilities.
Every part of the project has been tweaked to have consistency and follow the coding conventions.
Caveats and known issues:
ConcurrentModificationException
crash caused bySubtitlesHud.render
from looping Atmospheric Sound Instances in the off-thread processing.Resolves: #5, #10, #14, #15