-
Notifications
You must be signed in to change notification settings - Fork 49
Jukebox #208
base: master
Are you sure you want to change the base?
Jukebox #208
Conversation
RSI Diff Bot; head commit 5618361 merging into f179799 Resources/Textures/SimpleStation14/Structures/Machines/jukebox.rsi
|
Content.Server/SimpleStation14/Jukebox/JukeboxSystems.Interactions.cs
Outdated
Show resolved
Hide resolved
/// <summary> | ||
/// Serialized as a string because TimeSpan is not serializable, and converted to a TimeSpan with <see cref="ToTimeSpan"/>. | ||
/// </summary> | ||
[DataField("duration")] | ||
private string DurationString { get; } = default!; | ||
|
||
/// <summary> | ||
/// Actual duration as a TimeSpan. | ||
/// </summary> | ||
public TimeSpan Duration => ToTimeSpan(DurationString); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should just learn how to make a serializer... I honestly don't think it'd be that hard.
Also note; The system needs to react to the unpaused event so that the saved time is set correctly. |
Felt like I did more 😔
…le now), removable decorative portions, lots of commenting, and some general clean up. Also added a couple extra Jukebox examples in the YAML
… to its song state. It also plays when you punch it.
Apart from adding a whack ton of songs, just loads of general clean up and additions before release.
Also slightly cleaner, a fix or two
Danya Vodovoz is out, Dieter van der Westen is in. It was time for a change :) Also adds a hand full new Jukebox tracks.
@DEATHB4DEFEAT You gotta make nicer UI icons, and increase the size of the UI a bit. It needs a once over (is all of the text in it good to keep?), and then this is ready for prime time baybeeee |
|
||
namespace Content.Shared.SimpleStation14.Jukebox; | ||
|
||
public sealed class SharedJukeBoxSystem : EntitySystem |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is ClientSide, not Shared.
public const string PortSkip = "Skip"; | ||
public const string PortPause = "Pause"; | ||
public const string PortUnPause = "Unpause"; | ||
public const string PortTogglePuase = "TogglePause"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
puase
/// If the Jukebox is already playing a song, it will be stopped and replaced with the new song. | ||
/// To queue a song instead, see <see cref="TryQueueSong"/>. | ||
/// </summary> | ||
/// <param name="song">The JukeboxTrackPrototype representing the song to be played.</param> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not a prototype
[Dependency] private readonly DeviceLinkSystem _link = default!; | ||
[Dependency] private readonly SharedAppearanceSystem _appearance = default!; | ||
|
||
public const string PortSongPlayed = "Start"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These really shouldn't be hardcoded I don't think, but making them variables makes checking them a pain...
Description
Adds a functional Jukebox to the stations! Capable of playing music, being paused, queueing up songs, and a whole load of other stuff the engine doesn't actually allow for yet ' v ,
Tasks
[ ] Sync music over the network for new joinsWill probably require a pretty heavy rewrite, this is fine for now.Uses stock parts, that countsMedia
Youtube Demonstration
JukeboxFonzie.mp4
Changelog
🆑 Pspritechologist & DEATHB4DEFEAT