diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index 664cdb695f4..32bd53d64da 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -104,8 +104,7 @@ Class Procs: //2 = run auto, use active var/idle_power_usage = 0 var/active_power_usage = 0 - var/power_channel = EQUIP - //EQUIP,ENVIRON or LIGHT + var/power_channel = EQUIP //EQUIP,ENVIRON or LIGHT var/list/component_parts = null //list of all the parts used to build it, if made from certain kinds of frames. var/uid var/manual = 0 diff --git a/code/modules/media/jukebox.dm b/code/modules/media/jukebox.dm index 8d2f707c0a6..6485c0892dc 100644 --- a/code/modules/media/jukebox.dm +++ b/code/modules/media/jukebox.dm @@ -75,7 +75,7 @@ var/global/loopModeNames=list( var/list/playlists=list() // ID = Label // Playlist to load at startup. - var/playlist_id="" + var/playlist_id = "" var/list/playlist var/current_song = 0 @@ -93,6 +93,14 @@ var/global/loopModeNames=list( "customs" = "Customs Music", ) +/obj/machinery/media/jukebox/shuttle + playlist_id="shuttle" + // Must be defined on your server. + playlists=list( + "shuttle" = "Shuttle Mix" + ) + invisibility=101 // FAK U NO SONG 4 U + /obj/machinery/media/jukebox/attack_ai(var/mob/user) attack_hand(user) @@ -107,7 +115,7 @@ var/global/loopModeNames=list( /obj/machinery/media/jukebox/update_icon() overlays = 0 - if(stat & (NOPOWER|BROKEN)) + if(stat & (NOPOWER|BROKEN) || !anchored) if(stat & BROKEN) icon_state = "jukebox2-broken" else @@ -146,7 +154,7 @@ var/global/loopModeNames=list( for(var/plid in playlists) t += "[playlists[plid]]" else - t += "Please wait before changing playlists." + t += "Please wait before changing playlists." t += "
" if(current_song) var/datum/song_info/song=playlist[current_song] @@ -169,15 +177,24 @@ var/global/loopModeNames=list( current_song=0 if(!emagged) playlist_id = "emagged" - last_reload=world.time + last_reload=world.realtime playlist=null loop_mode = JUKEMODE_SHUFFLE emagged = 1 playing = 1 - user.visible_message("[user.name] slides something into the [src.name]'s card-reader.","\red You short out the [src.name].") + user.visible_message("\red [user.name] slides something into the [src.name]'s card-reader.","\red You short out the [src.name].") update_icon() update_music() - return + else if(istype(W,/obj/item/weapon/wrench)) + var/un = !anchored ? "" : "un" + user.visible_message("\blue [user.name] begins [un]locking \the [src.name]'s casters.","\blue You begin [un]locking \the [src.name]'s casters.") + if(do_after(user,5 SECONDS)) + playsound(get_turf(src), 'sound/items/Ratchet.ogg', 50, 1) + anchored = !anchored + user.visible_message("\blue [user.name] [un]locks \the [src.name]'s casters.","\red You [un]lock \the [src.name]'s casters.") + playing = emagged + update_music() + update_icon() /obj/machinery/media/jukebox/Topic(href, href_list) ..() @@ -195,7 +212,7 @@ var/global/loopModeNames=list( usr << "\red You must wait 60 seconds between playlist reloads." return playlist_id=href_list["playlist"] - last_reload=world.time + last_reload=world.realtime playlist=null current_song=0 update_music() @@ -245,7 +262,7 @@ var/global/loopModeNames=list( var/datum/song_info/song if(current_song) song = playlist[current_song] - if(!current_song || (song && world.time >= media_start_time + song.length)) + if(!current_song || (song && world.realtime >= media_start_time + song.length)) current_song=1 switch(loop_mode) if(JUKEMODE_SHUFFLE) @@ -262,7 +279,7 @@ var/global/loopModeNames=list( if(current_song && playing) var/datum/song_info/song = playlist[current_song] media_url = song.url - media_start_time = world.time + media_start_time = world.realtime visible_message("\icon[src] \The [src] begins to play [song.display()].","You hear music.") //visible_message("\icon[src] \The [src] warbles: [song.length/10]s @ [song.url]") else @@ -271,7 +288,7 @@ var/global/loopModeNames=list( ..() /obj/machinery/media/jukebox/proc/stop_playing() - current_song=0 + //current_song=0 playing=0 update_music() return diff --git a/code/modules/media/machinery.dm b/code/modules/media/machinery.dm index 902c91b0330..180c82683dd 100644 --- a/code/modules/media/machinery.dm +++ b/code/modules/media/machinery.dm @@ -57,6 +57,12 @@ master_area=null +/obj/machinery/media/Move() + ..() + disconnect_media_source() + if(anchored) + update_music() + /obj/machinery/media/New() ..() update_media_source()