BeeStation / BeeStation-Hornet

99.95% station. 0.05% bees
https://beestation13.com
GNU Affero General Public License v3.0
200 stars 674 forks source link

[BOUNTY]: $55 BayStation-esque "Clientside" Musicplayer #11268

Open Tsar-Salat opened 1 month ago

Tsar-Salat commented 1 month ago

Overview

I'd like it if Baystation's clientside musicplayer was ported.

The musicplayer should replace Lobbymusic with a 'Track System" that displays the title of the song, author, url, and license. If a different track is selected, or the current one ends, the new track should display all of its information to the chatbox.

A list of resources, if needed:

Example:

image

A button to change the current track, potentially in the OOC tab:

image

Code Preview

Code Baystation has structured it like this ![image](https://github.com/user-attachments/assets/bf1f21fb-8907-48c5-9334-a150e8c1a46e) Important licensing structure ![image](https://github.com/user-attachments/assets/211355a6-53ba-44eb-810e-97b9bb551013)

tl;dr

Overall:

**_Optional $20 Bonus: work the musicplayer into the current disco dance machine, akin to Baystation's Jukebox._** ![image](https://github.com/user-attachments/assets/a9af9258-1610-49f4-83f5-0ba98a401acf)

Payment

Payment methods I can do: Ko-Fi, Patreon, Steam game(s) with total value equivalent to 65 USD.

I'd like to avoid PayPal, but if you twist my arm I'd probably still accept it.

PowerfulBacon commented 1 month ago

Have thought about client-side music player before with the jukebox, not sure how it would work with regards to how the audio source moves as you move around although tbf byond doesn't actually properly handle that anyway. Having it play through TGChat is good since it saves a lot of downloading assets (Actually looking at it, the bay one isn't actually client side and essentially is just a chat message on top)

PowerfulBacon commented 1 month ago

Clientside stereo panning is currently impossible, but would become possible when WebView2 is released. Volume panning would work though if we wanted clientside jukeboxes which would be nice to prevent freezing when you walk in range of a jukebox

PowerfulBacon commented 1 month ago

Doing some research the following things are possible:

PowerfulBacon commented 1 month ago

https://github.com/user-attachments/assets/cc271b04-7f4b-43e9-95c1-3570c84fa719

This is a basic implementation of positional TGUI panel audio/web-sounds, needs expanding but is showing promise so far. The jukebox was added to make it look cool, its actually just a verb which creates a sound at your mobs location for debugging purposes.

PowerfulBacon commented 1 month ago

ah shit, you wanted a button for the client themselves to change the song rather than the whole server to have synced music. I'll see what I can do about that. I thought it wanted a button that allows admins to queue the next song for when the current one finishes.

github-actions[bot] commented 2 weeks ago

This issue has been inactive for long enough to be automatically marked as stale. If this was a bug report and hasn't been addressed yet, and is still a problem, please don't hesitate to notify a maintainer.