mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 18:53:06 +00:00
Casino jukebox update
temporary commit to save work
This commit is contained in:
@@ -9,6 +9,9 @@ SUBSYSTEM_DEF(media_tracks)
|
|||||||
var/list/jukebox_tracks = list()
|
var/list/jukebox_tracks = list()
|
||||||
/// Lobby music tracks
|
/// Lobby music tracks
|
||||||
var/list/lobby_tracks = list()
|
var/list/lobby_tracks = list()
|
||||||
|
/// CHOMPstation edit start: Jack - Injecting casino track into new jukebox subsystem
|
||||||
|
var/list/casino_tracks = list()
|
||||||
|
/// CHOMPstation edit end
|
||||||
|
|
||||||
/datum/controller/subsystem/media_tracks/Initialize(timeofday)
|
/datum/controller/subsystem/media_tracks/Initialize(timeofday)
|
||||||
load_tracks()
|
load_tracks()
|
||||||
@@ -53,6 +56,10 @@ SUBSYSTEM_DEF(media_tracks)
|
|||||||
T.secret = entry["secret"] ? 1 : 0
|
T.secret = entry["secret"] ? 1 : 0
|
||||||
T.lobby = entry["lobby"] ? 1 : 0
|
T.lobby = entry["lobby"] ? 1 : 0
|
||||||
|
|
||||||
|
/// CHOMPstation edit start: Jack - Injecting casino track into new jukebox subsystem
|
||||||
|
T.casino = entry["casino"] ? 1 : 0
|
||||||
|
/// CHOMPstation edit end
|
||||||
|
|
||||||
all_tracks += T
|
all_tracks += T
|
||||||
|
|
||||||
/datum/controller/subsystem/media_tracks/proc/sort_tracks()
|
/datum/controller/subsystem/media_tracks/proc/sort_tracks()
|
||||||
@@ -61,12 +68,19 @@ SUBSYSTEM_DEF(media_tracks)
|
|||||||
|
|
||||||
jukebox_tracks.Cut()
|
jukebox_tracks.Cut()
|
||||||
lobby_tracks.Cut()
|
lobby_tracks.Cut()
|
||||||
|
/// CHOMPstation edit start: Jack - Injecting casino track into new jukebox subsystem
|
||||||
|
casino_tracks.Cut()
|
||||||
|
/// CHOMPstation edit end
|
||||||
|
|
||||||
for(var/datum/track/T in all_tracks)
|
for(var/datum/track/T in all_tracks)
|
||||||
if(!T.secret)
|
if(!T.secret)
|
||||||
jukebox_tracks += T
|
jukebox_tracks += T
|
||||||
if(T.lobby)
|
if(T.lobby)
|
||||||
lobby_tracks += T
|
lobby_tracks += T
|
||||||
|
/// CHOMPstation edit start: Jack - Injecting casino track into new jukebox subsystem
|
||||||
|
if(T.casino)
|
||||||
|
casino_tracks += T
|
||||||
|
/// CHOMPstation edit end
|
||||||
|
|
||||||
/datum/controller/subsystem/media_tracks/proc/manual_track_add()
|
/datum/controller/subsystem/media_tracks/proc/manual_track_add()
|
||||||
var/client/C = usr.client
|
var/client/C = usr.client
|
||||||
@@ -94,6 +108,7 @@ SUBSYSTEM_DEF(media_tracks)
|
|||||||
* "genre": artist of the song, REALLY try to match an existing one (text)
|
* "genre": artist of the song, REALLY try to match an existing one (text)
|
||||||
* "secret": only on hacked jukeboxes (true/false)
|
* "secret": only on hacked jukeboxes (true/false)
|
||||||
* "lobby": plays in the lobby (true/false)
|
* "lobby": plays in the lobby (true/false)
|
||||||
|
* "casino": plays in the casino (true/false) CHOMPstation casino
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if(islist(json))
|
if(islist(json))
|
||||||
@@ -105,7 +120,7 @@ SUBSYSTEM_DEF(media_tracks)
|
|||||||
if(!songdata["url"] || !songdata["title"] || !songdata["duration"])
|
if(!songdata["url"] || !songdata["title"] || !songdata["duration"])
|
||||||
to_chat(C, "<span class='warning'>URL, Title, or Duration was missing from a song. Skipping.</span>")
|
to_chat(C, "<span class='warning'>URL, Title, or Duration was missing from a song. Skipping.</span>")
|
||||||
continue
|
continue
|
||||||
var/datum/track/T = new(songdata["url"], songdata["title"], songdata["duration"], songdata["artist"], songdata["genre"], songdata["secret"], songdata["lobby"])
|
var/datum/track/T = new(songdata["url"], songdata["title"], songdata["duration"], songdata["artist"], songdata["genre"], songdata["secret"], songdata["lobby"], songdata["casino"])
|
||||||
all_tracks += T
|
all_tracks += T
|
||||||
|
|
||||||
report_progress("New media track added by [C]: [T.title]")
|
report_progress("New media track added by [C]: [T.title]")
|
||||||
@@ -145,10 +160,23 @@ SUBSYSTEM_DEF(media_tracks)
|
|||||||
else
|
else
|
||||||
secret = FALSE
|
secret = FALSE
|
||||||
|
|
||||||
|
/// CHOMPstation edit start: Jack - Injecting casino track into new jukebox subsystem
|
||||||
|
var/casino = tgui_alert(C, "Optional: Mark track as casino music?", "Track Casino", list("Yes", "Cancel", "No"))
|
||||||
|
if(casino == "Cancel")
|
||||||
|
return
|
||||||
|
else if(secret == "Yes")
|
||||||
|
secret = TRUE
|
||||||
|
else
|
||||||
|
secret = FALSE
|
||||||
|
/// CHOMPstation edit end
|
||||||
|
|
||||||
var/datum/track/T = new(url, title, duration, artist, genre)
|
var/datum/track/T = new(url, title, duration, artist, genre)
|
||||||
|
|
||||||
T.secret = secret
|
T.secret = secret
|
||||||
T.lobby = lobby
|
T.lobby = lobby
|
||||||
|
/// CHOMPstation edit start: Jack - Injecting casino track into new jukebox subsystem
|
||||||
|
T.casino = casino
|
||||||
|
/// CHOMPstation edit end
|
||||||
|
|
||||||
all_tracks += T
|
all_tracks += T
|
||||||
|
|
||||||
|
|||||||
@@ -179,7 +179,7 @@
|
|||||||
|
|
||||||
/obj/machinery/media/jukebox/tgui_data(mob/user, datum/tgui/ui, datum/tgui_state/state)
|
/obj/machinery/media/jukebox/tgui_data(mob/user, datum/tgui/ui, datum/tgui_state/state)
|
||||||
var/list/data = ..()
|
var/list/data = ..()
|
||||||
|
|
||||||
data["playing"] = playing
|
data["playing"] = playing
|
||||||
data["loop_mode"] = loop_mode
|
data["loop_mode"] = loop_mode
|
||||||
data["volume"] = volume
|
data["volume"] = volume
|
||||||
@@ -331,13 +331,13 @@
|
|||||||
/obj/machinery/media/jukebox/ghost
|
/obj/machinery/media/jukebox/ghost
|
||||||
name = "ghost jukebox"
|
name = "ghost jukebox"
|
||||||
desc = "A jukebox from the nether-realms! Spooky."
|
desc = "A jukebox from the nether-realms! Spooky."
|
||||||
|
|
||||||
plane = PLANE_GHOSTS
|
plane = PLANE_GHOSTS
|
||||||
invisibility = INVISIBILITY_OBSERVER
|
invisibility = INVISIBILITY_OBSERVER
|
||||||
alpha = 127
|
alpha = 127
|
||||||
|
|
||||||
icon_state = "jukebox2-virtual"
|
icon_state = "jukebox2-virtual"
|
||||||
|
|
||||||
density = FALSE
|
density = FALSE
|
||||||
hacked = TRUE
|
hacked = TRUE
|
||||||
|
|
||||||
@@ -348,7 +348,7 @@
|
|||||||
|
|
||||||
// Just junk to make it sneaky - I wish a lot more stuff was on /obj/machinery/media instead of /jukebox so I could use that.
|
// Just junk to make it sneaky - I wish a lot more stuff was on /obj/machinery/media instead of /jukebox so I could use that.
|
||||||
/obj/machinery/media/jukebox/ghost/is_incorporeal()
|
/obj/machinery/media/jukebox/ghost/is_incorporeal()
|
||||||
return TRUE
|
return TRUE
|
||||||
/obj/machinery/media/jukebox/ghost/audible_message(message, deaf_message, hearing_distance, radio_message, runemessage)
|
/obj/machinery/media/jukebox/ghost/audible_message(message, deaf_message, hearing_distance, radio_message, runemessage)
|
||||||
return
|
return
|
||||||
/obj/machinery/media/jukebox/ghost/visible_message(message, blind_message, list/exclude_mobs, range, runemessage)
|
/obj/machinery/media/jukebox/ghost/visible_message(message, blind_message, list/exclude_mobs, range, runemessage)
|
||||||
@@ -360,7 +360,7 @@
|
|||||||
/obj/machinery/media/jukebox/ghost/attack_hand(var/mob/user as mob)
|
/obj/machinery/media/jukebox/ghost/attack_hand(var/mob/user as mob)
|
||||||
return
|
return
|
||||||
/obj/machinery/media/jukebox/ghost/update_use_power(new_use_power)
|
/obj/machinery/media/jukebox/ghost/update_use_power(new_use_power)
|
||||||
return
|
return
|
||||||
/obj/machinery/media/jukebox/ghost/power_change()
|
/obj/machinery/media/jukebox/ghost/power_change()
|
||||||
return
|
return
|
||||||
/obj/machinery/media/jukebox/ghost/emp_act(severity)
|
/obj/machinery/media/jukebox/ghost/emp_act(severity)
|
||||||
@@ -368,7 +368,7 @@
|
|||||||
/obj/machinery/media/jukebox/ghost/emag_act(remaining_charges, mob/user)
|
/obj/machinery/media/jukebox/ghost/emag_act(remaining_charges, mob/user)
|
||||||
return
|
return
|
||||||
/obj/machinery/media/jukebox/ghost/explode()
|
/obj/machinery/media/jukebox/ghost/explode()
|
||||||
return
|
return
|
||||||
/obj/machinery/media/jukebox/ghost/update_icon()
|
/obj/machinery/media/jukebox/ghost/update_icon()
|
||||||
if(playing)
|
if(playing)
|
||||||
animate(src, alpha = 200, time = 5, loop = -1)
|
animate(src, alpha = 200, time = 5, loop = -1)
|
||||||
@@ -394,16 +394,16 @@
|
|||||||
var/client/C = usr.client
|
var/client/C = usr.client
|
||||||
if(!check_rights(R_FUN|R_ADMIN))
|
if(!check_rights(R_FUN|R_ADMIN))
|
||||||
return
|
return
|
||||||
|
|
||||||
// Required
|
// Required
|
||||||
var/url = input(C, "REQUIRED: Provide URL for track", "Track URL") as text|null
|
var/url = input(C, "REQUIRED: Provide URL for track", "Track URL") as text|null
|
||||||
if(!url)
|
if(!url)
|
||||||
return
|
return
|
||||||
|
|
||||||
var/title = input(C, "REQUIRED: Provide title for track", "Track Title") as text|null
|
var/title = input(C, "REQUIRED: Provide title for track", "Track Title") as text|null
|
||||||
if(!title)
|
if(!title)
|
||||||
return
|
return
|
||||||
|
|
||||||
var/duration = input(C, "REQUIRED: Provide duration for track (in deciseconds, aka seconds*10)", "Track Duration") as num|null
|
var/duration = input(C, "REQUIRED: Provide duration for track (in deciseconds, aka seconds*10)", "Track Duration") as num|null
|
||||||
if(!duration)
|
if(!duration)
|
||||||
return
|
return
|
||||||
@@ -412,12 +412,12 @@
|
|||||||
var/artist = input(C, "Optional: Provide artist for track", "Track Artist") as text|null
|
var/artist = input(C, "Optional: Provide artist for track", "Track Artist") as text|null
|
||||||
if(isnull(artist)) // Cancel rather than empty string
|
if(isnull(artist)) // Cancel rather than empty string
|
||||||
return
|
return
|
||||||
|
|
||||||
// So they're obvious and grouped
|
// So they're obvious and grouped
|
||||||
var/genre = "! Admin Loaded !"
|
var/genre = "! Admin Loaded !"
|
||||||
|
|
||||||
custom_tracks += new /datum/track(url, title, duration, artist, genre)
|
custom_tracks += new /datum/track(url, title, duration, artist, genre)
|
||||||
|
|
||||||
/obj/machinery/media/jukebox/ghost/proc/manual_track_remove()
|
/obj/machinery/media/jukebox/ghost/proc/manual_track_remove()
|
||||||
var/client/C = usr.client
|
var/client/C = usr.client
|
||||||
if(!check_rights(R_FUN|R_ADMIN))
|
if(!check_rights(R_FUN|R_ADMIN))
|
||||||
@@ -426,13 +426,13 @@
|
|||||||
var/track = input(C, "Input track title or URL to remove (must be exact)", "Remove Track") as text|null
|
var/track = input(C, "Input track title or URL to remove (must be exact)", "Remove Track") as text|null
|
||||||
if(!track)
|
if(!track)
|
||||||
return
|
return
|
||||||
|
|
||||||
for(var/datum/track/T in custom_tracks)
|
for(var/datum/track/T in custom_tracks)
|
||||||
if(T.title == track || T.url == track)
|
if(T.title == track || T.url == track)
|
||||||
custom_tracks -= T
|
custom_tracks -= T
|
||||||
qdel(T)
|
qdel(T)
|
||||||
return
|
return
|
||||||
|
|
||||||
to_chat(C, "<span class='warning>Couldn't find a track matching the specified parameters.</span>")
|
to_chat(C, "<span class='warning>Couldn't find a track matching the specified parameters.</span>")
|
||||||
|
|
||||||
/obj/machinery/media/jukebox/ghost/vv_get_dropdown()
|
/obj/machinery/media/jukebox/ghost/vv_get_dropdown()
|
||||||
|
|||||||
@@ -1,23 +1,13 @@
|
|||||||
|
/*
|
||||||
/obj/machinery/media/jukebox/casinojukebox
|
/obj/machinery/media/jukebox/casinojukebox
|
||||||
name = "space casino jukebox"
|
name = "space casino jukebox"
|
||||||
|
desc = "A jukebox to play the tracks on the golden goose, jazzy~"
|
||||||
icon = 'icons/obj/casino_ch.dmi'
|
icon = 'icons/obj/casino_ch.dmi'
|
||||||
icon_state = "casinojukebox-nopower"
|
icon_state = "casinojukebox-nopower"
|
||||||
state_base = "casinojukebox"
|
state_base = "casinojukebox"
|
||||||
|
|
||||||
/* Commenting out for now due to conflicts with upstream jukebox changes.
|
use_power = USE_POWER_OFF
|
||||||
// On initialization, copy our tracks from the global list
|
|
||||||
/obj/machinery/media/jukebox/casinojukebox/Initialize()
|
/obj/machinery/media/jukebox/casinojukebox/getTracksList()
|
||||||
. = ..()
|
return SSmedia_tracks.casino_tracks
|
||||||
if(LAZYLEN(all_jukebox_tracks)) //Global list has tracks
|
*/
|
||||||
tracks.Cut()
|
|
||||||
secret_tracks.Cut()
|
|
||||||
for(var/datum/track/T in all_jukebox_tracks) //Load them
|
|
||||||
if(!T.casino)
|
|
||||||
tracks -= T
|
|
||||||
secret_tracks -= T
|
|
||||||
if(T.casino)
|
|
||||||
tracks |= T
|
|
||||||
else if(!LAZYLEN(tracks)) //We don't even have default tracks
|
|
||||||
stat |= BROKEN // No tracks configured this round!
|
|
||||||
*/
|
|
||||||
Reference in New Issue
Block a user