2029163d33
About The Pull Request Converts every single usage of playsound's vary parameter to use the boolean define instead of 1 or 0. I'm tired of people copypasting the incorrect usage. Also changes a couple of places where a list was picked from instead of using get_sfx internal calls This was done via regex: (playsound\(.+,.+,.+, ?)1( ?\)| ?,.+\)) to match 1 (playsound\(.+,.+,.+, ?)0( ?\)| ?,.+\)) to match 0 full sed commands: /(playsound\(.+,.+,.+, ?)1( ?\)| ?,.+\))/\1TRUE\2/ 1 to TRUE /(playsound\(.+,.+,.+, ?)0( ?\)| ?,.+\))/\1FALSE\2/ 0 to FALSE I'm not very good with regex and these could probably be optimized, but they worked. Why It's Good For The Game Code usability
167 lines
4.8 KiB
Plaintext
167 lines
4.8 KiB
Plaintext
/obj/structure/janitorialcart
|
|
name = "janitorial cart"
|
|
desc = "This is the alpha and omega of sanitation."
|
|
icon = 'icons/obj/janitor.dmi'
|
|
icon_state = "cart"
|
|
anchored = FALSE
|
|
density = TRUE
|
|
//copypaste sorry
|
|
var/amount_per_transfer_from_this = 5 //shit I dunno, adding this so syringes stop runtime erroring. --NeoFite
|
|
var/obj/item/storage/bag/trash/mybag = null
|
|
var/obj/item/mop/mymop = null
|
|
var/obj/item/reagent_containers/spray/cleaner/myspray = null
|
|
var/obj/item/lightreplacer/myreplacer = null
|
|
var/signs = 0
|
|
var/const/max_signs = 4
|
|
|
|
|
|
/obj/structure/janitorialcart/Initialize()
|
|
. = ..()
|
|
create_reagents(100, OPENCONTAINER)
|
|
|
|
/obj/structure/janitorialcart/proc/wet_mop(obj/item/mop, mob/user)
|
|
if(reagents.total_volume < 1)
|
|
to_chat(user, "<span class='warning'>[src] is out of water!</span>")
|
|
return 0
|
|
else
|
|
var/obj/item/mop/M = mop
|
|
reagents.trans_to(mop, M.mopcap, transfered_by = user)
|
|
to_chat(user, "<span class='notice'>You wet [mop] in [src].</span>")
|
|
playsound(loc, 'sound/effects/slosh.ogg', 25, TRUE)
|
|
return 1
|
|
|
|
/obj/structure/janitorialcart/proc/put_in_cart(obj/item/I, mob/user)
|
|
if(!user.transferItemToLoc(I, src))
|
|
return
|
|
updateUsrDialog()
|
|
to_chat(user, "<span class='notice'>You put [I] into [src].</span>")
|
|
return
|
|
|
|
|
|
/obj/structure/janitorialcart/attackby(obj/item/I, mob/user, params)
|
|
var/fail_msg = "<span class='warning'>There is already one of those in [src]!</span>"
|
|
|
|
if(istype(I, /obj/item/mop))
|
|
var/obj/item/mop/m=I
|
|
if(m.reagents.total_volume < m.reagents.maximum_volume)
|
|
if (wet_mop(m, user))
|
|
return
|
|
if(!mymop)
|
|
m.janicart_insert(user, src)
|
|
else
|
|
to_chat(user, fail_msg)
|
|
|
|
else if(istype(I, /obj/item/storage/bag/trash))
|
|
if(!mybag)
|
|
var/obj/item/storage/bag/trash/t=I
|
|
t.janicart_insert(user, src)
|
|
else
|
|
to_chat(user, fail_msg)
|
|
else if(istype(I, /obj/item/reagent_containers/spray/cleaner))
|
|
if(!myspray)
|
|
put_in_cart(I, user)
|
|
myspray=I
|
|
update_icon()
|
|
else
|
|
to_chat(user, fail_msg)
|
|
else if(istype(I, /obj/item/lightreplacer))
|
|
if(!myreplacer)
|
|
var/obj/item/lightreplacer/l=I
|
|
l.janicart_insert(user,src)
|
|
else
|
|
to_chat(user, fail_msg)
|
|
else if(istype(I, /obj/item/clothing/suit/caution))
|
|
if(signs < max_signs)
|
|
put_in_cart(I, user)
|
|
signs++
|
|
update_icon()
|
|
else
|
|
to_chat(user, "<span class='warning'>[src] can't hold any more signs!</span>")
|
|
else if(mybag)
|
|
mybag.attackby(I, user)
|
|
else if(I.tool_behaviour == TOOL_CROWBAR)
|
|
user.visible_message("<span class='notice'>[user] begins to empty the contents of [src].</span>", "<span class='notice'>You begin to empty the contents of [src]...</span>")
|
|
if(I.use_tool(src, user, 30))
|
|
to_chat(usr, "<span class='notice'>You empty the contents of [src]'s bucket onto the floor.</span>")
|
|
reagents.reaction(src.loc)
|
|
src.reagents.clear_reagents()
|
|
else
|
|
return ..()
|
|
|
|
/obj/structure/janitorialcart/attack_hand(mob/user)
|
|
. = ..()
|
|
if(.)
|
|
return
|
|
user.set_machine(src)
|
|
var/dat
|
|
if(mybag)
|
|
dat += "<a href='?src=[REF(src)];garbage=1'>[mybag.name]</a><br>"
|
|
if(mymop)
|
|
dat += "<a href='?src=[REF(src)];mop=1'>[mymop.name]</a><br>"
|
|
if(myspray)
|
|
dat += "<a href='?src=[REF(src)];spray=1'>[myspray.name]</a><br>"
|
|
if(myreplacer)
|
|
dat += "<a href='?src=[REF(src)];replacer=1'>[myreplacer.name]</a><br>"
|
|
if(signs)
|
|
dat += "<a href='?src=[REF(src)];sign=1'>[signs] sign\s</a><br>"
|
|
var/datum/browser/popup = new(user, "janicart", name, 240, 160)
|
|
popup.set_content(dat)
|
|
popup.open()
|
|
|
|
|
|
/obj/structure/janitorialcart/Topic(href, href_list)
|
|
if(!in_range(src, usr))
|
|
return
|
|
if(!isliving(usr))
|
|
return
|
|
var/mob/living/user = usr
|
|
if(href_list["garbage"])
|
|
if(mybag)
|
|
user.put_in_hands(mybag)
|
|
to_chat(user, "<span class='notice'>You take [mybag] from [src].</span>")
|
|
mybag = null
|
|
if(href_list["mop"])
|
|
if(mymop)
|
|
user.put_in_hands(mymop)
|
|
to_chat(user, "<span class='notice'>You take [mymop] from [src].</span>")
|
|
mymop = null
|
|
if(href_list["spray"])
|
|
if(myspray)
|
|
user.put_in_hands(myspray)
|
|
to_chat(user, "<span class='notice'>You take [myspray] from [src].</span>")
|
|
myspray = null
|
|
if(href_list["replacer"])
|
|
if(myreplacer)
|
|
user.put_in_hands(myreplacer)
|
|
to_chat(user, "<span class='notice'>You take [myreplacer] from [src].</span>")
|
|
myreplacer = null
|
|
if(href_list["sign"])
|
|
if(signs)
|
|
var/obj/item/clothing/suit/caution/Sign = locate() in src
|
|
if(Sign)
|
|
user.put_in_hands(Sign)
|
|
to_chat(user, "<span class='notice'>You take \a [Sign] from [src].</span>")
|
|
signs--
|
|
else
|
|
WARNING("Signs ([signs]) didn't match contents")
|
|
signs = 0
|
|
|
|
update_icon()
|
|
updateUsrDialog()
|
|
|
|
|
|
/obj/structure/janitorialcart/update_icon()
|
|
cut_overlays()
|
|
if(mybag)
|
|
add_overlay("cart_garbage")
|
|
if(mymop)
|
|
add_overlay("cart_mop")
|
|
if(myspray)
|
|
add_overlay("cart_spray")
|
|
if(myreplacer)
|
|
add_overlay("cart_replacer")
|
|
if(signs)
|
|
add_overlay("cart_sign[signs]")
|
|
if(reagents.total_volume > 0)
|
|
add_overlay("cart_water")
|