diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm
index d39c52903f3..30a73ab0ad1 100644
--- a/code/game/objects/items/devices/lightreplacer.dm
+++ b/code/game/objects/items/devices/lightreplacer.dm
@@ -240,7 +240,7 @@
var/turf/replace_turf = get_turf(target)
if(!istype(replace_turf))
return
-
+
if(get_dist(src, target) >= (U.client.maxview() + 2)) // To prevent people from using it over cameras
return
@@ -258,13 +258,6 @@
if(!used)
to_chat(U, "[src]'s refill light blinks red.")
-/obj/item/lightreplacer/proc/janicart_insert(mob/user, obj/structure/janitorialcart/J)
- J.myreplacer = src
- J.put_in_cart(src, user)
-
-/obj/item/lightreplacer/cyborg/janicart_insert(mob/user, obj/structure/janitorialcart/J)
- return
-
/obj/item/lightreplacer/cyborg/cyborg_recharge(coeff, emagged)
for(var/I in 1 to coeff)
Charge()
diff --git a/code/game/objects/items/weapons/mop.dm b/code/game/objects/items/weapons/mop.dm
index 9db76c6aaac..93ba8f6cbbd 100644
--- a/code/game/objects/items/weapons/mop.dm
+++ b/code/game/objects/items/weapons/mop.dm
@@ -28,19 +28,21 @@
GLOB.janitorial_equipment -= src
return ..()
-/obj/item/mop/proc/wet_mop(obj/o, mob/user)
- if(o.reagents.total_volume < 1)
- to_chat(user, "[o] is out of water!")
- if(istype(o, /obj/structure/mopbucket))
- var/obj/structure/mopbucket/mopbucket = o
- mopbucket.mopbucket_insert(user, o)
- if(istype(o, /obj/structure/janitorialcart))
- janicart_insert(user, o)
+/obj/item/mop/proc/wet_mop(obj/O, mob/user)
+ if(O.reagents.total_volume < 1)
+ to_chat(user, "[O] is empty!")
+ if(istype(O, /obj/structure/mopbucket))
+ var/obj/structure/mopbucket/mopbucket = O
+ mopbucket.mopbucket_insert(user, O)
+ if(istype(O, /obj/structure/janitorialcart))
+ var/obj/structure/janitorialcart/janicart = O
+ if(!janicart.mymop)
+ janicart.put_in_cart(user, src)
return
- o.reagents.trans_to(src, 6)
- to_chat(user, "You wet [src] in [o].")
- playsound(loc, 'sound/effects/slosh.ogg', 25, 1)
+ O.reagents.trans_to(src, 6)
+ to_chat(user, "You wet [src] in [O].")
+ playsound(loc, 'sound/effects/slosh.ogg', 25, TRUE)
/obj/item/mop/afterattack(atom/A, mob/user, proximity)
if(!proximity)
@@ -73,10 +75,6 @@
else
return ..()
-/obj/item/mop/proc/janicart_insert(mob/user, obj/structure/janitorialcart/J)
- J.mymop = src
- J.put_in_cart(src, user)
-
/obj/item/mop/wash(mob/user, atom/source)
reagents.add_reagent("water", 5)
to_chat(user, "You wet [src] in [source].")
@@ -126,7 +124,4 @@
/obj/item/mop/advanced/cyborg
-/obj/item/mop/advanced/cyborg/janicart_insert(mob/user, obj/structure/janitorialcart/J)
- return
-
#undef MOP_SOUND_CD
diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm
index a40a41c986e..7cdfc1bef79 100644
--- a/code/game/objects/items/weapons/storage/bags.dm
+++ b/code/game/objects/items/weapons/storage/bags.dm
@@ -96,13 +96,6 @@
/obj/item/storage/bag/trash/cyborg
-/obj/item/storage/bag/trash/proc/janicart_insert(mob/user, obj/structure/janitorialcart/J)
- J.mybag = src
- J.put_in_cart(src, user)
-
-/obj/item/storage/bag/trash/cyborg/janicart_insert(mob/user, obj/structure/janitorialcart/J)
- return
-
/obj/item/storage/bag/trash/bluespace
name = "trash bag of holding"
desc = "The latest and greatest in custodial convenience, a trashbag that is capable of holding vast quantities of garbage."
@@ -115,9 +108,6 @@
/obj/item/storage/bag/trash/bluespace/cyborg
-/obj/item/storage/bag/trash/bluespace/cyborg/janicart_insert(mob/user, obj/structure/janitorialcart/J)
- return
-
////////////////////////////////////////
// MARK: Plastic bag
////////////////////////////////////////
diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm
index 328b49f4730..79825ab09dd 100644
--- a/code/game/objects/items/weapons/twohanded.dm
+++ b/code/game/objects/items/weapons/twohanded.dm
@@ -946,10 +946,6 @@
trash.forceMove(storage)
storage.update_icon()
-/obj/item/push_broom/proc/janicart_insert(mob/user, obj/structure/janitorialcart/cart)
- cart.mybroom = src
- cart.put_in_cart(src, user)
-
/obj/item/push_broom/traitor
name = "titanium push broom"
desc = "This is my BROOMSTICK! All of the functionality of a normal broom, but at least half again more robust."
diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm
index d094f279d63..be9c4a1df47 100644
--- a/code/game/objects/structures/janicart.dm
+++ b/code/game/objects/structures/janicart.dm
@@ -34,8 +34,11 @@
QDEL_NULL(myreplacer)
return ..()
-/obj/structure/janitorialcart/proc/put_in_cart(obj/item/I, mob/user)
- user.drop_item()
+/obj/structure/janitorialcart/proc/put_in_cart(mob/user, obj/item/I)
+ if(!user.unEquip(I)) // We can do this here because everything below wants to
+ to_chat(user, "[I] is stuck to your hand!")
+ return
+
I.forceMove(src)
to_chat(user, "You put [I] into [src].")
update_icon(UPDATE_OVERLAYS)
@@ -45,52 +48,51 @@
update_icon(UPDATE_OVERLAYS)
/obj/structure/janitorialcart/attackby(obj/item/I, mob/user, params)
- var/fail_msg = "There is already one of those in [src]."
+ if(I.is_robot_module())
+ to_chat(user, "You cannot interface your modules with [src]!")
+ return
+
+ if(istype(I, /obj/item/mop))
+ var/obj/item/mop/M = I
+ if(M.reagents.total_volume < M.reagents.maximum_volume)
+ M.wet_mop(src, user)
+ return
+ if(!mymop)
+ mymop = I
+ put_in_cart(user, I)
+ return
+ to_chat(user, "There is already one of those in [src].")
+
+ else if(istype(I, /obj/item/push_broom) && !mybroom)
+ mybroom = I
+ put_in_cart(user, I)
+
+ else if(istype(I, /obj/item/storage/bag/trash) && !mybag)
+ mybag = I
+ put_in_cart(user, I)
+
+ else if(istype(I, /obj/item/reagent_containers/spray/cleaner) && !myspray)
+ myspray = I
+ put_in_cart(user, I)
+
+ else if(istype(I, /obj/item/lightreplacer) && !myreplacer)
+ myreplacer = I
+ put_in_cart(user, I)
+
+ else if(istype(I, /obj/item/caution))
+ if(signs < max_signs)
+ signs++
+ put_in_cart(user, I)
+ else
+ to_chat(user, "[src] can't hold any more signs.")
+
+ to_chat(user, "There is already one of those in [src].")
+
+ else if(mybag)
+ mybag.attackby(I, user, params)
- if(!I.is_robot_module())
- if(istype(I, /obj/item/mop))
- var/obj/item/mop/m=I
- if(m.reagents.total_volume < m.reagents.maximum_volume)
- m.wet_mop(src, user)
- return
- if(!mymop)
- m.janicart_insert(user, src)
- else
- to_chat(user, fail_msg)
- else if(istype(I, /obj/item/push_broom))
- if(!mybroom)
- var/obj/item/push_broom/B = I
- B.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)
- myspray = I
- put_in_cart(I, user)
- 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/caution))
- if(signs < max_signs)
- signs++
- put_in_cart(I, user)
- else
- to_chat(user, "[src] can't hold any more signs.")
- else if(mybag)
- mybag.attackby(I, user, params)
else
- to_chat(usr, "You cannot interface your modules with [src]!")
+ to_chat(user, "There is already one of those in [src].")
/obj/structure/janitorialcart/crowbar_act(mob/living/user, obj/item/I)
. = TRUE