Update taperecorder.dm
This commit is contained in:
@@ -21,240 +21,6 @@
|
|||||||
var/canprint = 1
|
var/canprint = 1
|
||||||
|
|
||||||
|
|
||||||
/obj/item/device/taperecorder/Initialize(mapload)
|
|
||||||
..()
|
|
||||||
if(starting_tape_type)
|
|
||||||
mytape = new starting_tape_type(src)
|
|
||||||
update_icon()
|
|
||||||
|
|
||||||
|
|
||||||
/obj/item/device/taperecorder/examine(mob/user)
|
|
||||||
..()
|
|
||||||
to_chat(user, "The wire panel is [open_panel ? "opened" : "closed"].")
|
|
||||||
|
|
||||||
|
|
||||||
/obj/item/device/taperecorder/attackby(obj/item/I, mob/user, params)
|
|
||||||
if(!mytape && istype(I, /obj/item/device/tape))
|
|
||||||
if(!user.transferItemToLoc(I,src))
|
|
||||||
return
|
|
||||||
mytape = I
|
|
||||||
to_chat(user, "<span class='notice'>You insert [I] into [src].</span>")
|
|
||||||
update_icon()
|
|
||||||
|
|
||||||
|
|
||||||
/obj/item/device/taperecorder/proc/eject(mob/user)
|
|
||||||
if(mytape)
|
|
||||||
to_chat(user, "<span class='notice'>You remove [mytape] from [src].</span>")
|
|
||||||
stop()
|
|
||||||
user.put_in_hands(mytape)
|
|
||||||
mytape = null
|
|
||||||
update_icon()
|
|
||||||
|
|
||||||
/obj/item/device/taperecorder/fire_act(exposed_temperature, exposed_volume)
|
|
||||||
mytape.ruin() //Fires destroy the tape
|
|
||||||
..()
|
|
||||||
|
|
||||||
/obj/item/device/taperecorder/attack_hand(mob/user)
|
|
||||||
if(loc == user)
|
|
||||||
if(mytape)
|
|
||||||
if(!user.is_holding(src))
|
|
||||||
..()
|
|
||||||
return
|
|
||||||
eject(user)
|
|
||||||
return
|
|
||||||
..()
|
|
||||||
|
|
||||||
|
|
||||||
/obj/item/device/taperecorder/proc/can_use(mob/user)
|
|
||||||
if(user && ismob(user))
|
|
||||||
if(!user.incapacitated())
|
|
||||||
return 1
|
|
||||||
return 0
|
|
||||||
|
|
||||||
|
|
||||||
/obj/item/device/taperecorder/verb/ejectverb()
|
|
||||||
set name = "Eject Tape"
|
|
||||||
set category = "Object"
|
|
||||||
|
|
||||||
if(!can_use(usr))
|
|
||||||
return
|
|
||||||
if(!mytape)
|
|
||||||
return
|
|
||||||
|
|
||||||
eject(usr)
|
|
||||||
|
|
||||||
|
|
||||||
/obj/item/device/taperecorder/update_icon()
|
|
||||||
if(!mytape)
|
|
||||||
icon_state = "taperecorder_empty"
|
|
||||||
else if(recording)
|
|
||||||
icon_state = "taperecorder_recording"
|
|
||||||
else if(playing)
|
|
||||||
icon_state = "taperecorder_playing"
|
|
||||||
else
|
|
||||||
icon_state = "taperecorder_idle"
|
|
||||||
|
|
||||||
|
|
||||||
/obj/item/device/taperecorder/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, spans, message_mode)
|
|
||||||
if(mytape && recording)
|
|
||||||
mytape.timestamp += mytape.used_capacity
|
|
||||||
mytape.storedinfo += "\[[time2text(mytape.used_capacity * 10,"mm:ss")]\] [message]"
|
|
||||||
|
|
||||||
/obj/item/device/taperecorder/verb/record()
|
|
||||||
set name = "Start Recording"
|
|
||||||
set category = "Object"
|
|
||||||
|
|
||||||
if(!can_use(usr))
|
|
||||||
return
|
|
||||||
if(!mytape || mytape.ruined)
|
|
||||||
return
|
|
||||||
if(recording)
|
|
||||||
return
|
|
||||||
if(playing)
|
|
||||||
return
|
|
||||||
|
|
||||||
if(mytape.used_capacity < mytape.max_capacity)
|
|
||||||
to_chat(usr, "<span class='notice'>Recording started.</span>")
|
|
||||||
recording = 1
|
|
||||||
update_icon()
|
|
||||||
mytape.timestamp += mytape.used_capacity
|
|
||||||
mytape.storedinfo += "\[[time2text(mytape.used_capacity * 10,"mm:ss")]\] Recording started."
|
|
||||||
var/used = mytape.used_capacity //to stop runtimes when you eject the tape
|
|
||||||
var/max = mytape.max_capacity
|
|
||||||
for(used, used < max)
|
|
||||||
if(recording == 0)
|
|
||||||
break
|
|
||||||
mytape.used_capacity++
|
|
||||||
used++
|
|
||||||
sleep(10)
|
|
||||||
recording = 0
|
|
||||||
update_icon()
|
|
||||||
else
|
|
||||||
to_chat(usr, "<span class='notice'>The tape is full.</span>")
|
|
||||||
|
|
||||||
|
|
||||||
/obj/item/device/taperecorder/verb/stop()
|
|
||||||
set name = "Stop"
|
|
||||||
set category = "Object"
|
|
||||||
|
|
||||||
if(!can_use(usr))
|
|
||||||
return
|
|
||||||
|
|
||||||
if(recording)
|
|
||||||
recording = 0
|
|
||||||
mytape.timestamp += mytape.used_capacity
|
|
||||||
mytape.storedinfo += "\[[time2text(mytape.used_capacity * 10,"mm:ss")]\] Recording stopped."
|
|
||||||
to_chat(usr, "<span class='notice'>Recording stopped.</span>")
|
|
||||||
return
|
|
||||||
else if(playing)
|
|
||||||
playing = 0
|
|
||||||
var/turf/T = get_turf(src)
|
|
||||||
T.visible_message("<font color=Maroon><B>Tape Recorder</B>: Playback stopped.</font>")
|
|
||||||
update_icon()
|
|
||||||
|
|
||||||
|
|
||||||
/obj/item/device/taperecorder/verb/play()
|
|
||||||
set name = "Play Tape"
|
|
||||||
set category = "Object"
|
|
||||||
|
|
||||||
if(!can_use(usr))
|
|
||||||
return
|
|
||||||
if(!mytape || mytape.ruined)
|
|
||||||
return
|
|
||||||
if(recording)
|
|
||||||
return
|
|
||||||
if(playing)
|
|
||||||
return
|
|
||||||
|
|
||||||
playing = 1
|
|
||||||
update_icon()
|
|
||||||
to_chat(usr, "<span class='notice'>Playing started.</span>")
|
|
||||||
var/used = mytape.used_capacity //to stop runtimes when you eject the tape
|
|
||||||
var/max = mytape.max_capacity
|
|
||||||
for(var/i = 1, used < max, sleep(10 * playsleepseconds))
|
|
||||||
if(!mytape)
|
|
||||||
break
|
|
||||||
if(playing == 0)
|
|
||||||
break
|
|
||||||
if(mytape.storedinfo.len < i)
|
|
||||||
break
|
|
||||||
say(mytape.storedinfo[i])
|
|
||||||
if(mytape.storedinfo.len < i + 1)
|
|
||||||
playsleepseconds = 1
|
|
||||||
sleep(10)
|
|
||||||
say("End of recording.")
|
|
||||||
else
|
|
||||||
playsleepseconds = mytape.timestamp[i + 1] - mytape.timestamp[i]
|
|
||||||
if(playsleepseconds > 14)
|
|
||||||
sleep(10)
|
|
||||||
say("Skipping [playsleepseconds] seconds of silence")
|
|
||||||
playsleepseconds = 1
|
|
||||||
i++
|
|
||||||
|
|
||||||
playing = 0
|
|
||||||
update_icon()
|
|
||||||
|
|
||||||
|
|
||||||
/obj/item/device/taperecorder/attack_self(mob/user)
|
|
||||||
if(!mytape || mytape.ruined)
|
|
||||||
return
|
|
||||||
if(recording)
|
|
||||||
stop()
|
|
||||||
else
|
|
||||||
record()
|
|
||||||
|
|
||||||
|
|
||||||
/obj/item/device/taperecorder/verb/print_transcript()
|
|
||||||
set name = "Print Transcript"
|
|
||||||
set category = "Object"
|
|
||||||
|
|
||||||
if(!can_use(usr))
|
|
||||||
return
|
|
||||||
if(!mytape)
|
|
||||||
return
|
|
||||||
if(!canprint)
|
|
||||||
to_chat(usr, "<span class='notice'>The recorder can't print that fast!</span>")
|
|
||||||
return
|
|
||||||
if(recording || playing)
|
|
||||||
return
|
|
||||||
|
|
||||||
to_chat(usr, "<span class='notice'>Transcript printed.</span>")
|
|
||||||
var/obj/item/paper/P = new /obj/item/paper(get_turf(src))
|
|
||||||
var/t1 = "<B>Transcript:</B><BR><BR>"
|
|
||||||
for(var/i = 1, mytape.storedinfo.len >= i, i++)
|
|
||||||
t1 += "[mytape.storedinfo[i]]<BR>"
|
|
||||||
P.info = t1
|
|
||||||
P.name = "paper- 'Transcript'"
|
|
||||||
usr.put_in_hands(P)
|
|
||||||
canprint = 0
|
|
||||||
sleep(300)
|
|
||||||
canprint = 1
|
|
||||||
|
|
||||||
|
|
||||||
//empty tape recorders
|
|
||||||
/obj/item/device/taperecorder/empty
|
|
||||||
starting_tape_type = null
|
|
||||||
|
|
||||||
|
|
||||||
/obj/item/device/tape
|
|
||||||
name = "tape"
|
|
||||||
desc = "A magnetic tape that can hold up to ten minutes of content."
|
|
||||||
icon_state = "tape_white"
|
|
||||||
item_state = "analyzer"
|
|
||||||
=======
|
|
||||||
slot_flags = SLOT_BELT
|
|
||||||
materials = list(MAT_METAL=60, MAT_GLASS=30)
|
|
||||||
force = 2
|
|
||||||
throwforce = 0
|
|
||||||
var/recording = 0
|
|
||||||
var/playing = 0
|
|
||||||
var/playsleepseconds = 0
|
|
||||||
var/obj/item/device/tape/mytape
|
|
||||||
var/starting_tape_type = /obj/item/device/tape/random
|
|
||||||
var/open_panel = 0
|
|
||||||
var/canprint = 1
|
|
||||||
|
|
||||||
|
|
||||||
/obj/item/device/taperecorder/Initialize(mapload)
|
/obj/item/device/taperecorder/Initialize(mapload)
|
||||||
. = ..()
|
. = ..()
|
||||||
if(starting_tape_type)
|
if(starting_tape_type)
|
||||||
@@ -475,7 +241,6 @@
|
|||||||
desc = "A magnetic tape that can hold up to ten minutes of content."
|
desc = "A magnetic tape that can hold up to ten minutes of content."
|
||||||
icon_state = "tape_white"
|
icon_state = "tape_white"
|
||||||
item_state = "analyzer"
|
item_state = "analyzer"
|
||||||
>>>>>>> f2c5657... Fixes initialize hints for a fair number of mobs and items (#30583)
|
|
||||||
lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi'
|
lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi'
|
||||||
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
|
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
|
||||||
w_class = WEIGHT_CLASS_TINY
|
w_class = WEIGHT_CLASS_TINY
|
||||||
|
|||||||
Reference in New Issue
Block a user