diff --git a/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm b/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm
index 6c5689cc778..5a248e61001 100644
--- a/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm
+++ b/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm
@@ -2747,7 +2747,7 @@
/turf/open/floor/engine/airless,
/area/ruin/space/ks13/science/ordnance)
"yb" = (
-/obj/structure/mopbucket,
+/obj/structure/mop_bucket,
/obj/item/mop,
/obj/effect/decal/cleanable/dirt,
/obj/effect/mapping_helpers/broken_floor,
diff --git a/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm b/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm
index 56cc5fa2fc0..337665be131 100644
--- a/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm
+++ b/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm
@@ -654,7 +654,7 @@
/turf/open/floor/iron,
/area/ruin/space/has_grav/derelictoutpost/cargobay)
"cI" = (
-/obj/structure/janitorialcart,
+/obj/structure/mop_bucket/janitorialcart,
/obj/structure/cable,
/turf/open/floor/iron,
/area/ruin/space/has_grav/derelictoutpost/cargobay)
diff --git a/_maps/RandomRuins/SpaceRuins/hilbertresearchfacility.dmm b/_maps/RandomRuins/SpaceRuins/hilbertresearchfacility.dmm
index f27a28f594c..5c905e75498 100644
--- a/_maps/RandomRuins/SpaceRuins/hilbertresearchfacility.dmm
+++ b/_maps/RandomRuins/SpaceRuins/hilbertresearchfacility.dmm
@@ -2209,7 +2209,7 @@
/turf/open/floor/mineral/plastitanium,
/area/ruin/space/has_grav/powered/hilbertresearchfacility)
"Wg" = (
-/obj/structure/mopbucket,
+/obj/structure/mop_bucket,
/turf/open/floor/plating,
/area/ruin/space/has_grav/powered/hilbertresearchfacility)
"Wt" = (
diff --git a/_maps/RandomRuins/SpaceRuins/mrow_thats_right.dmm b/_maps/RandomRuins/SpaceRuins/mrow_thats_right.dmm
index 28ab06fb24d..0d0f647f2fd 100644
--- a/_maps/RandomRuins/SpaceRuins/mrow_thats_right.dmm
+++ b/_maps/RandomRuins/SpaceRuins/mrow_thats_right.dmm
@@ -29,7 +29,7 @@
/turf/open/floor/plating,
/area/ruin/space/has_grav/powered/cat_man)
"ai" = (
-/obj/structure/janitorialcart,
+/obj/structure/mop_bucket/janitorialcart,
/obj/item/mop,
/obj/item/reagent_containers/cup/bucket,
/obj/effect/decal/cleanable/cobweb/cobweb2,
@@ -41,7 +41,7 @@
/turf/open/floor/plating,
/area/ruin/space/has_grav/powered/cat_man)
"ak" = (
-/obj/structure/mopbucket,
+/obj/structure/mop_bucket,
/turf/open/floor/plating,
/area/ruin/space/has_grav/powered/cat_man)
"al" = (
diff --git a/_maps/RandomRuins/SpaceRuins/oldstation.dmm b/_maps/RandomRuins/SpaceRuins/oldstation.dmm
index c9c35ceae29..ece5874f0d9 100644
--- a/_maps/RandomRuins/SpaceRuins/oldstation.dmm
+++ b/_maps/RandomRuins/SpaceRuins/oldstation.dmm
@@ -8912,7 +8912,7 @@
"Yg" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
-/obj/structure/janitorialcart{
+/obj/structure/mop_bucket/janitorialcart{
dir = 4
},
/obj/item/reagent_containers/cup/bucket,
diff --git a/_maps/RandomRuins/SpaceRuins/skyrat/cargodiselost.dmm b/_maps/RandomRuins/SpaceRuins/skyrat/cargodiselost.dmm
index f40ff2bf3bb..9eb4f3c303e 100644
--- a/_maps/RandomRuins/SpaceRuins/skyrat/cargodiselost.dmm
+++ b/_maps/RandomRuins/SpaceRuins/skyrat/cargodiselost.dmm
@@ -3294,7 +3294,7 @@
/turf/open/floor/iron,
/area/ruin/space/has_grav/cargodise_freighter/cargo)
"Xd" = (
-/obj/structure/janitorialcart{
+/obj/structure/mop_bucket/janitorialcart{
dir = 4
},
/obj/item/mop/advanced,
diff --git a/_maps/RandomRuins/SpaceRuins/skyrat/codealpha.dmm b/_maps/RandomRuins/SpaceRuins/skyrat/codealpha.dmm
index 76d447ea641..9a068543601 100644
--- a/_maps/RandomRuins/SpaceRuins/skyrat/codealpha.dmm
+++ b/_maps/RandomRuins/SpaceRuins/skyrat/codealpha.dmm
@@ -83,7 +83,7 @@
/turf/open/floor/iron,
/area/ruin/space/has_grav)
"oz" = (
-/obj/structure/mopbucket,
+/obj/structure/mop_bucket,
/turf/open/floor/iron,
/area/ruin/space/has_grav)
"oD" = (
diff --git a/_maps/RandomRuins/SpaceRuins/skyrat/interdynefob.dmm b/_maps/RandomRuins/SpaceRuins/skyrat/interdynefob.dmm
index fd89f454495..f601d81dce6 100644
--- a/_maps/RandomRuins/SpaceRuins/skyrat/interdynefob.dmm
+++ b/_maps/RandomRuins/SpaceRuins/skyrat/interdynefob.dmm
@@ -1559,7 +1559,7 @@
/obj/effect/turf_decal/tile/blue{
dir = 4
},
-/obj/structure/janitorialcart{
+/obj/structure/mop_bucket/janitorialcart{
dir = 4
},
/turf/open/floor/iron/kitchen{
@@ -7793,7 +7793,7 @@
dir = 8
},
/obj/effect/turf_decal/tile/yellow,
-/obj/structure/mopbucket,
+/obj/structure/mop_bucket,
/turf/open/floor/iron,
/area/ruin/space/has_grav/skyrat/interdynefob/cargo/warehouse)
"CE" = (
diff --git a/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon2.dmm b/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon2.dmm
index d1fe4c4d3e1..f3f43589e1c 100644
--- a/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon2.dmm
+++ b/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon2.dmm
@@ -51,7 +51,7 @@
/turf/open/space/basic,
/area/ruin/space/has_grav)
"am" = (
-/obj/structure/mopbucket,
+/obj/structure/mop_bucket,
/obj/item/mop,
/obj/item/reagent_containers/cup/bucket,
/obj/item/soap/nanotrasen,
diff --git a/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon3.dmm b/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon3.dmm
index ad06b03ec41..070cb5ed3e4 100644
--- a/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon3.dmm
+++ b/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon3.dmm
@@ -40,7 +40,7 @@
/area/ruin/space/has_grav/port_tarkon/toolstorage)
"am" = (
/obj/effect/decal/cleanable/dirt,
-/obj/structure/mopbucket,
+/obj/structure/mop_bucket,
/obj/item/mop,
/obj/item/reagent_containers/cup/bucket,
/obj/item/soap/nanotrasen,
diff --git a/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon4.dmm b/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon4.dmm
index 46da8b00c8f..8d5ee8b5de9 100644
--- a/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon4.dmm
+++ b/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon4.dmm
@@ -32,7 +32,7 @@
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/toolstorage)
"am" = (
-/obj/structure/mopbucket,
+/obj/structure/mop_bucket,
/obj/item/mop,
/obj/item/reagent_containers/cup/bucket,
/obj/item/soap/nanotrasen,
diff --git a/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon5.dmm b/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon5.dmm
index 5e57ae76b4e..38a6554ae59 100644
--- a/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon5.dmm
+++ b/_maps/RandomRuins/SpaceRuins/skyrat/port_tarkon/defcon5.dmm
@@ -47,7 +47,7 @@
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/toolstorage)
"am" = (
-/obj/structure/mopbucket,
+/obj/structure/mop_bucket,
/obj/item/mop,
/obj/item/reagent_containers/cup/bucket,
/obj/item/soap/nanotrasen,
diff --git a/_maps/RandomRuins/SpaceRuins/spacehotel.dmm b/_maps/RandomRuins/SpaceRuins/spacehotel.dmm
index 55ab088dd3e..786a955abea 100644
--- a/_maps/RandomRuins/SpaceRuins/spacehotel.dmm
+++ b/_maps/RandomRuins/SpaceRuins/spacehotel.dmm
@@ -298,7 +298,7 @@
/turf/open/floor/plating,
/area/ruin/space/has_grav/hotel/power)
"cS" = (
-/obj/structure/janitorialcart,
+/obj/structure/mop_bucket/janitorialcart,
/obj/item/mop,
/obj/item/lightreplacer,
/turf/open/floor/catwalk_floor,
diff --git a/_maps/RandomRuins/SpaceRuins/spacehotel_skyrat.dmm b/_maps/RandomRuins/SpaceRuins/spacehotel_skyrat.dmm
index a1da8dc60a6..688b2734b84 100644
--- a/_maps/RandomRuins/SpaceRuins/spacehotel_skyrat.dmm
+++ b/_maps/RandomRuins/SpaceRuins/spacehotel_skyrat.dmm
@@ -1971,7 +1971,7 @@
/turf/open/floor/iron,
/area/ruin/space/has_grav/hotel/custodial)
"jJ" = (
-/obj/structure/janitorialcart,
+/obj/structure/mop_bucket/janitorialcart,
/obj/item/mop,
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/siding/purple{
diff --git a/_maps/RandomZLevels/SnowCabin.dmm b/_maps/RandomZLevels/SnowCabin.dmm
index b866b3d9ce6..c520bd9d675 100644
--- a/_maps/RandomZLevels/SnowCabin.dmm
+++ b/_maps/RandomZLevels/SnowCabin.dmm
@@ -4435,7 +4435,7 @@
desc = "A sink used for washing one's hands and face. It looks rusty and home-made";
name = "sink"
},
-/obj/structure/janitorialcart,
+/obj/structure/mop_bucket/janitorialcart,
/obj/item/mop,
/obj/item/reagent_containers/cup/bucket,
/obj/item/clothing/suit/caution,
diff --git a/_maps/RandomZLevels/blackmesa.dmm b/_maps/RandomZLevels/blackmesa.dmm
index 21123a683f0..eaa6e78df70 100644
--- a/_maps/RandomZLevels/blackmesa.dmm
+++ b/_maps/RandomZLevels/blackmesa.dmm
@@ -2230,7 +2230,7 @@
/turf/open/floor/iron/textured_large,
/area/awaymission/black_mesa/to_cryo_room)
"aBQ" = (
-/obj/structure/janitorialcart,
+/obj/structure/mop_bucket/janitorialcart,
/turf/open/floor/iron/smooth,
/area/awaymission/black_mesa/cryo_storage)
"aBR" = (
diff --git a/_maps/RandomZLevels/snowdin.dmm b/_maps/RandomZLevels/snowdin.dmm
index 39d2fd80fbd..41091845b61 100644
--- a/_maps/RandomZLevels/snowdin.dmm
+++ b/_maps/RandomZLevels/snowdin.dmm
@@ -4039,7 +4039,7 @@
pixel_x = 5;
pixel_y = 5
},
-/obj/structure/janitorialcart,
+/obj/structure/mop_bucket/janitorialcart,
/obj/item/mop,
/turf/open/floor/iron/dark,
/area/awaymission/snowdin/post/custodials)
diff --git a/_maps/map_files/Blueshift/BlueShift_lower.dmm b/_maps/map_files/Blueshift/BlueShift_lower.dmm
index ff8560a6f26..4afc39359ec 100644
--- a/_maps/map_files/Blueshift/BlueShift_lower.dmm
+++ b/_maps/map_files/Blueshift/BlueShift_lower.dmm
@@ -8477,7 +8477,7 @@
/turf/open/floor/iron/dark/corner,
/area/station/engineering/atmos)
"gzp" = (
-/obj/structure/mopbucket,
+/obj/structure/mop_bucket,
/obj/item/mop,
/turf/open/floor/iron,
/area/station/engineering/atmos/hfr_room)
diff --git a/_maps/map_files/Blueshift/BlueShift_middle.dmm b/_maps/map_files/Blueshift/BlueShift_middle.dmm
index 0aa1bcae6db..85e8846419a 100644
--- a/_maps/map_files/Blueshift/BlueShift_middle.dmm
+++ b/_maps/map_files/Blueshift/BlueShift_middle.dmm
@@ -7278,9 +7278,9 @@
dir = 8
},
/obj/effect/turf_decal/bot,
-/obj/structure/janitorialcart,
-/obj/structure/janitorialcart,
-/obj/structure/janitorialcart,
+/obj/structure/mop_bucket/janitorialcart,
+/obj/structure/mop_bucket/janitorialcart,
+/obj/structure/mop_bucket/janitorialcart,
/obj/item/pushbroom,
/obj/item/pushbroom,
/obj/item/pushbroom,
@@ -8340,7 +8340,7 @@
dir = 4
},
/obj/effect/turf_decal/bot,
-/obj/structure/mopbucket,
+/obj/structure/mop_bucket,
/obj/item/mop,
/obj/machinery/light/directional/north,
/turf/open/floor/iron/dark,
@@ -25424,7 +25424,7 @@
/turf/open/floor/iron/dark,
/area/station/security/brig)
"hWV" = (
-/obj/structure/janitorialcart{
+/obj/structure/mop_bucket/janitorialcart{
dir = 4
},
/obj/effect/turf_decal/bot,
@@ -70518,7 +70518,7 @@
/turf/open/floor/iron/dark,
/area/station/common/locker_room_shower)
"wVe" = (
-/obj/structure/mopbucket,
+/obj/structure/mop_bucket,
/obj/item/mop,
/obj/effect/turf_decal/bot,
/obj/structure/extinguisher_cabinet/directional/north,
diff --git a/_maps/map_files/Blueshift/BlueShift_upper.dmm b/_maps/map_files/Blueshift/BlueShift_upper.dmm
index 7e3ab799070..b9a62f63f62 100644
--- a/_maps/map_files/Blueshift/BlueShift_upper.dmm
+++ b/_maps/map_files/Blueshift/BlueShift_upper.dmm
@@ -3798,7 +3798,7 @@
/area/station/maintenance/aft/upper)
"aOS" = (
/obj/effect/decal/cleanable/cobweb,
-/obj/structure/mopbucket,
+/obj/structure/mop_bucket,
/obj/item/mop,
/turf/open/floor/iron,
/area/station/maintenance/fore/upper)
@@ -22391,7 +22391,7 @@
/turf/open/floor/carpet/black,
/area/station/service/barber)
"htQ" = (
-/obj/structure/mopbucket,
+/obj/structure/mop_bucket,
/turf/open/floor/plating,
/area/station/maintenance/department/science/lower)
"hul" = (
diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm
index cf41e78e400..05cbf41b982 100644
--- a/_maps/map_files/Deltastation/DeltaStation2.dmm
+++ b/_maps/map_files/Deltastation/DeltaStation2.dmm
@@ -72668,7 +72668,7 @@
/turf/open/floor/plating,
/area/station/engineering/supermatter/room)
"rLO" = (
-/obj/structure/janitorialcart,
+/obj/structure/mop_bucket/janitorialcart,
/obj/item/mop,
/obj/item/reagent_containers/cup/bucket,
/obj/item/radio/intercom/directional/east,
diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm
index ac2bd5c0ba2..90cbbc57e6a 100644
--- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm
+++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm
@@ -5835,7 +5835,7 @@
/turf/open/floor/iron/dark,
/area/station/service/chapel)
"bMs" = (
-/obj/structure/janitorialcart,
+/obj/structure/mop_bucket/janitorialcart,
/turf/open/floor/plating,
/area/station/maintenance/starboard/fore)
"bMz" = (
@@ -40525,7 +40525,7 @@
/area/station/engineering/atmos)
"mxA" = (
/obj/effect/decal/cleanable/dirt,
-/obj/structure/janitorialcart{
+/obj/structure/mop_bucket/janitorialcart{
dir = 4
},
/obj/item/mop,
@@ -45884,7 +45884,7 @@
/turf/open/floor/iron/showroomfloor,
/area/station/security/warden)
"oaB" = (
-/obj/structure/janitorialcart,
+/obj/structure/mop_bucket/janitorialcart,
/turf/open/floor/iron,
/area/station/service/janitor)
"oaG" = (
diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm
index 0fd341d9298..e81971c822f 100644
--- a/_maps/map_files/KiloStation/KiloStation.dmm
+++ b/_maps/map_files/KiloStation/KiloStation.dmm
@@ -23881,7 +23881,7 @@
/turf/open/floor/iron/dark,
/area/station/engineering/supermatter/room)
"gPZ" = (
-/obj/structure/janitorialcart,
+/obj/structure/mop_bucket/janitorialcart,
/obj/effect/turf_decal/delivery,
/obj/machinery/light/small/directional/east,
/obj/effect/turf_decal/tile/neutral{
@@ -47105,7 +47105,7 @@
/turf/open/floor/engine,
/area/station/engineering/supermatter/room)
"nts" = (
-/obj/structure/janitorialcart,
+/obj/structure/mop_bucket/janitorialcart,
/obj/effect/turf_decal/delivery,
/obj/effect/turf_decal/tile/neutral{
dir = 8
diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm
index 8123b4d9048..5d76c420fb3 100644
--- a/_maps/map_files/MetaStation/MetaStation.dmm
+++ b/_maps/map_files/MetaStation/MetaStation.dmm
@@ -10244,7 +10244,7 @@
/turf/open/floor/plating,
/area/station/maintenance/starboard/fore)
"dPa" = (
-/obj/structure/mopbucket,
+/obj/structure/mop_bucket,
/obj/item/mop,
/obj/effect/landmark/blobstart,
/obj/effect/mapping_helpers/broken_floor,
@@ -16632,7 +16632,7 @@
/area/space/nearstation)
"ghN" = (
/obj/effect/decal/cleanable/dirt,
-/obj/structure/janitorialcart,
+/obj/structure/mop_bucket/janitorialcart,
/obj/machinery/light/small/directional/south,
/turf/open/floor/iron,
/area/station/service/janitor)
@@ -39212,7 +39212,7 @@
/turf/open/floor/plating/airless,
/area/space/nearstation)
"nWj" = (
-/obj/structure/mopbucket,
+/obj/structure/mop_bucket,
/obj/machinery/light/small/directional/west,
/obj/item/mop,
/turf/open/floor/plating,
@@ -63320,7 +63320,7 @@
/turf/open/floor/iron/white,
/area/station/science/research)
"wkH" = (
-/obj/structure/mopbucket,
+/obj/structure/mop_bucket,
/obj/item/mop,
/obj/structure/sign/poster/random/directional/north,
/turf/open/floor/plating,
diff --git a/_maps/map_files/VoidRaptor/VoidRaptor.dmm b/_maps/map_files/VoidRaptor/VoidRaptor.dmm
index b335da3e1a5..777be4e9338 100644
--- a/_maps/map_files/VoidRaptor/VoidRaptor.dmm
+++ b/_maps/map_files/VoidRaptor/VoidRaptor.dmm
@@ -321,7 +321,7 @@
/obj/effect/turf_decal/tile/blue{
dir = 8
},
-/obj/structure/janitorialcart{
+/obj/structure/mop_bucket/janitorialcart{
dir = 4
},
/obj/item/radio/intercom/directional/south,
@@ -12136,7 +12136,7 @@
/turf/open/floor/iron/white/smooth_large,
/area/station/science/research)
"dFa" = (
-/obj/structure/janitorialcart{
+/obj/structure/mop_bucket/janitorialcart{
dir = 4
},
/obj/structure/cable,
@@ -61735,7 +61735,7 @@
/obj/effect/turf_decal/trimline/green/filled/line{
dir = 1
},
-/obj/structure/janitorialcart{
+/obj/structure/mop_bucket/janitorialcart{
dir = 4
},
/obj/item/reagent_containers/cup/bucket,
diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm
index 49674e9f88f..40f0475969a 100644
--- a/_maps/map_files/generic/CentCom.dmm
+++ b/_maps/map_files/generic/CentCom.dmm
@@ -2656,7 +2656,7 @@
/turf/open/floor/wood,
/area/centcom/central_command_areas/admin)
"hU" = (
-/obj/structure/mopbucket,
+/obj/structure/mop_bucket,
/obj/item/mop,
/turf/open/floor/catwalk_floor/iron_smooth,
/area/centcom/syndicate_mothership/control)
diff --git a/_maps/map_files/generic/CentCom_skyrat_z2.dmm b/_maps/map_files/generic/CentCom_skyrat_z2.dmm
index 9a58887ce59..348a9d0ce77 100644
--- a/_maps/map_files/generic/CentCom_skyrat_z2.dmm
+++ b/_maps/map_files/generic/CentCom_skyrat_z2.dmm
@@ -1156,7 +1156,7 @@
/obj/effect/turf_decal/tile/blue{
dir = 4
},
-/obj/structure/janitorialcart{
+/obj/structure/mop_bucket/janitorialcart{
dir = 4
},
/turf/open/indestructible/hoteltile{
@@ -8712,7 +8712,7 @@
/turf/open/floor/iron,
/area/centcom/interlink)
"lHZ" = (
-/obj/structure/mopbucket,
+/obj/structure/mop_bucket,
/obj/machinery/duct,
/obj/machinery/light/small/directional/north,
/turf/open/floor/iron/dark,
diff --git a/_maps/map_files/tramstation/modular_pieces/maintenance_lowercargosci_attachment_a_3.dmm b/_maps/map_files/tramstation/modular_pieces/maintenance_lowercargosci_attachment_a_3.dmm
index 774d783974e..e15134471bf 100644
--- a/_maps/map_files/tramstation/modular_pieces/maintenance_lowercargosci_attachment_a_3.dmm
+++ b/_maps/map_files/tramstation/modular_pieces/maintenance_lowercargosci_attachment_a_3.dmm
@@ -82,7 +82,7 @@
/area/station/maintenance/starboard/central)
"V" = (
/obj/effect/decal/cleanable/dirt,
-/obj/structure/mopbucket{
+/obj/structure/mop_bucket{
pixel_y = 15;
pixel_x = 5
},
diff --git a/_maps/map_files/tramstation/modular_pieces/maintenance_lowerdorm_attachment_a_3.dmm b/_maps/map_files/tramstation/modular_pieces/maintenance_lowerdorm_attachment_a_3.dmm
index 84ea46a78d7..e45b1dbe589 100644
--- a/_maps/map_files/tramstation/modular_pieces/maintenance_lowerdorm_attachment_a_3.dmm
+++ b/_maps/map_files/tramstation/modular_pieces/maintenance_lowerdorm_attachment_a_3.dmm
@@ -63,7 +63,7 @@
"W" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/light/small/directional/north,
-/obj/structure/janitorialcart,
+/obj/structure/mop_bucket/janitorialcart,
/obj/item/mop,
/turf/open/floor/iron/smooth,
/area/station/maintenance/department/crew_quarters/dorms)
diff --git a/_maps/map_files/tramstation/modular_pieces/maintenance_uppermedsci_attachment_b_3.dmm b/_maps/map_files/tramstation/modular_pieces/maintenance_uppermedsci_attachment_b_3.dmm
index 8ae48fd55e1..10c5d96b265 100644
--- a/_maps/map_files/tramstation/modular_pieces/maintenance_uppermedsci_attachment_b_3.dmm
+++ b/_maps/map_files/tramstation/modular_pieces/maintenance_uppermedsci_attachment_b_3.dmm
@@ -6,7 +6,7 @@
/area/station/maintenance/department/science)
"b" = (
/obj/effect/decal/cleanable/dirt,
-/obj/structure/mopbucket,
+/obj/structure/mop_bucket,
/obj/item/mop,
/turf/open/floor/iron/smooth,
/area/station/maintenance/department/science)
diff --git a/_maps/map_files/tramstation/tramstation.dmm b/_maps/map_files/tramstation/tramstation.dmm
index fbdce464900..813e80031c9 100644
--- a/_maps/map_files/tramstation/tramstation.dmm
+++ b/_maps/map_files/tramstation/tramstation.dmm
@@ -53179,7 +53179,7 @@
/area/station/security/brig)
"sTZ" = (
/obj/effect/turf_decal/bot,
-/obj/structure/janitorialcart,
+/obj/structure/mop_bucket/janitorialcart,
/obj/item/mop,
/obj/effect/turf_decal/trimline/neutral/filled/line{
dir = 10
diff --git a/_maps/shuttles/emergency_casino.dmm b/_maps/shuttles/emergency_casino.dmm
index 9c8b7d2929d..514da314e01 100644
--- a/_maps/shuttles/emergency_casino.dmm
+++ b/_maps/shuttles/emergency_casino.dmm
@@ -1219,7 +1219,7 @@
/turf/open/floor/wood,
/area/shuttle/escape)
"MS" = (
-/obj/structure/mopbucket,
+/obj/structure/mop_bucket,
/obj/item/mop,
/mob/living/simple_animal/bot/cleanbot,
/turf/open/floor/mineral/titanium/yellow,
diff --git a/_maps/shuttles/skyrat/goldeneye_cruiser.dmm b/_maps/shuttles/skyrat/goldeneye_cruiser.dmm
index d79bc6294a4..0df9d5995c3 100644
--- a/_maps/shuttles/skyrat/goldeneye_cruiser.dmm
+++ b/_maps/shuttles/skyrat/goldeneye_cruiser.dmm
@@ -2021,7 +2021,7 @@
/turf/open/floor/mineral/plastitanium,
/area/shuttle/syndicate/cruiser/hallway)
"QU" = (
-/obj/structure/janitorialcart{
+/obj/structure/mop_bucket/janitorialcart{
dir = 4
},
/obj/item/reagent_containers/cup/bucket,
diff --git a/_maps/shuttles/whiteship_pubby.dmm b/_maps/shuttles/whiteship_pubby.dmm
index 7eaf44927a7..8ccfea7fa32 100644
--- a/_maps/shuttles/whiteship_pubby.dmm
+++ b/_maps/shuttles/whiteship_pubby.dmm
@@ -1192,7 +1192,7 @@
dir = 5
},
/obj/effect/decal/cleanable/dirt,
-/obj/structure/mopbucket,
+/obj/structure/mop_bucket,
/obj/item/soap/nanotrasen,
/obj/item/mop,
/turf/open/floor/iron/dark,
diff --git a/_maps/skyrat/xenoarch_base.dmm b/_maps/skyrat/xenoarch_base.dmm
index 7006f17a645..ddaca1a3c65 100644
--- a/_maps/skyrat/xenoarch_base.dmm
+++ b/_maps/skyrat/xenoarch_base.dmm
@@ -3459,7 +3459,7 @@
/turf/open/floor/engine,
/area/mine/xenoarch/engineering/hfr)
"XA" = (
-/obj/structure/mopbucket,
+/obj/structure/mop_bucket,
/obj/item/mop,
/turf/open/floor/plating,
/area/mine/xenoarch/maintenance/west)
diff --git a/_maps/templates/battlecruiser_starfury.dmm b/_maps/templates/battlecruiser_starfury.dmm
index b6a025b1da9..46cf3b62bde 100644
--- a/_maps/templates/battlecruiser_starfury.dmm
+++ b/_maps/templates/battlecruiser_starfury.dmm
@@ -2345,7 +2345,7 @@
/area/shuttle/sbc_starfury)
"hI" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/mopbucket,
+/obj/structure/mop_bucket,
/obj/item/mop,
/turf/open/floor/iron/dark/side,
/area/shuttle/sbc_starfury)
diff --git a/code/game/objects/effects/spawners/random/trash.dm b/code/game/objects/effects/spawners/random/trash.dm
index a4f22af39c0..c9ca7ca2862 100644
--- a/code/game/objects/effects/spawners/random/trash.dm
+++ b/code/game/objects/effects/spawners/random/trash.dm
@@ -142,7 +142,7 @@
/obj/item/reagent_containers/cup/rag = 2,
/obj/item/reagent_containers/cup/bucket = 2,
/obj/effect/decal/cleanable/blood/old = 2,
- /obj/structure/mopbucket = 2,
+ /obj/structure/mop_bucket = 2,
/mob/living/simple_animal/axolotl = 1,
)
@@ -187,7 +187,7 @@
spawn_loot_count = 2
spawn_loot_double = FALSE
loot = list(
- /obj/structure/mopbucket = 10,
+ /obj/structure/mop_bucket = 10,
/obj/item/mop = 5,
/obj/item/clothing/suit/caution = 3,
/obj/item/reagent_containers/cup/bucket = 1,
diff --git a/code/game/objects/items/mop.dm b/code/game/objects/items/mop.dm
index 58029cbbbc1..8ac1e4a43b4 100644
--- a/code/game/objects/items/mop.dm
+++ b/code/game/objects/items/mop.dm
@@ -20,6 +20,10 @@
var/mopspeed = 1.5 SECONDS
force_string = "robust... against germs"
var/insertable = TRUE
+ var/static/list/clean_blacklist = typecacheof(list(
+ /obj/item/reagent_containers/cup/bucket,
+ /obj/structure/mop_bucket,
+ ))
/obj/item/mop/Initialize(mapload)
. = ..()
@@ -34,7 +38,7 @@
///Checks whether or not we should clean.
/obj/item/mop/proc/should_clean(datum/cleaning_source, atom/atom_to_clean, mob/living/cleaner)
- if(istype(atom_to_clean, /obj/item/reagent_containers/cup/bucket) || istype(atom_to_clean, /obj/structure/janitorialcart))
+ if(clean_blacklist[atom_to_clean.type])
return DO_NOT_CLEAN
if(reagents.total_volume < 0.1)
to_chat(cleaner, span_warning("Your mop is dry!"))
diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janitor.dm
similarity index 68%
rename from code/game/objects/structures/janicart.dm
rename to code/game/objects/structures/janitor.dm
index 5c412ccdd7c..52aff7c8bda 100644
--- a/code/game/objects/structures/janicart.dm
+++ b/code/game/objects/structures/janitor.dm
@@ -1,13 +1,68 @@
#define CART_HAS_MINIMUM_REAGENT_VOLUME !(reagents.total_volume < 1)
-/obj/structure/janitorialcart
- name = "janitorial cart"
- desc = "This is the alpha and omega of sanitation."
+/obj/structure/mop_bucket
+ name = "mop bucket"
+ desc = "Fill it with water, but don't forget a mop!"
icon = 'icons/obj/janitor.dmi'
- icon_state = "cart"
- anchored = FALSE
+ icon_state = "mopbucket"
density = TRUE
var/amount_per_transfer_from_this = 5 //shit I dunno, adding this so syringes stop runtime erroring. --NeoFite
+ /// The icon used for the water overlay
+ var/water_icon = "mopbucket_water"
+
+/obj/structure/mop_bucket/Initialize(mapload)
+ . = ..()
+ create_reagents(100, OPENCONTAINER)
+ register_context()
+
+/obj/structure/mop_bucket/add_context(atom/source, list/context, obj/item/held_item, mob/living/user)
+ . = ..()
+
+ if(istype(held_item, /obj/item/mop))
+ context[SCREENTIP_CONTEXT_RMB] = "Wet [held_item]"
+ return CONTEXTUAL_SCREENTIP_SET
+
+ if(istype(held_item, /obj/item/reagent_containers))
+ context[SCREENTIP_CONTEXT_LMB] = "Fill mop bucket"
+ return CONTEXTUAL_SCREENTIP_SET
+
+ return .
+
+/obj/structure/mop_bucket/attackby(obj/item/weapon, mob/user, params)
+ if(istype(weapon, /obj/item/reagent_containers))
+ update_appearance(UPDATE_OVERLAYS)
+ return FALSE // skip attack animation when refilling cart
+
+ return ..()
+
+/obj/structure/mop_bucket/attackby_secondary(obj/item/weapon, mob/user, params)
+ if(istype(weapon, /obj/item/mop))
+ if(weapon.reagents.total_volume >= weapon.reagents.maximum_volume)
+ balloon_alert(user, "mop is already soaked!")
+ return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN
+ if(!CART_HAS_MINIMUM_REAGENT_VOLUME)
+ balloon_alert(user, "mop bucket is empty!")
+ return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN
+ reagents.trans_to(weapon, weapon.reagents.maximum_volume, transfered_by = user)
+ balloon_alert(user, "wet mop")
+ playsound(src, 'sound/effects/slosh.ogg', 25, vary = TRUE)
+
+ if(istype(weapon, /obj/item/reagent_containers) || istype(weapon, /obj/item/mop))
+ update_appearance(UPDATE_OVERLAYS)
+ return SECONDARY_ATTACK_CONTINUE_CHAIN // skip attack animations when refilling cart
+
+ return SECONDARY_ATTACK_CONTINUE_CHAIN
+
+/obj/structure/mop_bucket/update_overlays()
+ . = ..()
+ if(reagents.total_volume > 0)
+ . += water_icon
+
+/obj/structure/mop_bucket/janitorialcart
+ name = "janitorial cart"
+ desc = "This is the alpha and omega of sanitation."
+ icon_state = "cart"
+ water_icon = "cart_water"
var/obj/item/storage/bag/trash/mybag
var/obj/item/mop/mymop
var/obj/item/pushbroom/mybroom
@@ -16,14 +71,11 @@
var/list/obj/item/clothing/suit/caution/held_signs = list()
var/max_signs = 4
-/obj/structure/janitorialcart/Initialize(mapload)
+/obj/structure/mop_bucket/janitorialcart/Initialize(mapload)
. = ..()
- create_reagents(100, OPENCONTAINER)
GLOB.janitor_devices += src
- register_context() //Context sensitive tooltips. See add_context()
-
-/obj/structure/janitorialcart/Destroy()
+/obj/structure/mop_bucket/janitorialcart/Destroy()
GLOB.janitor_devices -= src
QDEL_NULL(myreplacer)
QDEL_NULL(myspray)
@@ -33,7 +85,7 @@
QDEL_LIST(held_signs)
return ..()
-/obj/structure/janitorialcart/Entered(atom/movable/arrived, atom/old_loc, list/atom/old_locs)
+/obj/structure/mop_bucket/janitorialcart/Entered(atom/movable/arrived, atom/old_loc, list/atom/old_locs)
if(istype(arrived, /obj/item/storage/bag/trash))
mybag = arrived
else if(istype(arrived, /obj/item/mop))
@@ -46,10 +98,10 @@
myreplacer = arrived
else if(istype(arrived, /obj/item/clothing/suit/caution))
held_signs += arrived
- update_appearance(UPDATE_ICON)
+ update_appearance(UPDATE_OVERLAYS)
return ..()
-/obj/structure/janitorialcart/Exited(atom/movable/gone, direction)
+/obj/structure/mop_bucket/janitorialcart/Exited(atom/movable/gone, direction)
if(gone == mybag)
mybag = null
else if(gone == mymop)
@@ -63,10 +115,10 @@
else if(gone in held_signs)
held_signs -= gone
if(!QDELING(src))
- update_appearance(UPDATE_ICON)
+ update_appearance(UPDATE_OVERLAYS)
return ..()
-/obj/structure/janitorialcart/examine(mob/user)
+/obj/structure/mop_bucket/janitorialcart/examine(mob/user)
. = ..()
if(contents.len)
. += span_bold(span_info("\nIt is carrying:"))
@@ -89,63 +141,47 @@
. += span_notice("Right-click with a mop to wet it.")
. += span_info("Crowbar it to dump its mop bucket onto [get_turf(src)].")
-/obj/structure/janitorialcart/add_context(atom/source, list/context, obj/item/held_item, mob/living/user)
- if(!held_item)
- if(!contents.len)
- return NONE
+/obj/structure/mop_bucket/janitorialcart/add_context(atom/source, list/context, obj/item/held_item, mob/living/user)
+ . = ..()
+
+ if(isnull(held_item) && contents.len)
if(mymop)
context[SCREENTIP_CONTEXT_RMB] = "Remove [mymop]"
+ . = CONTEXTUAL_SCREENTIP_SET
if(contents.len == 1)
context[SCREENTIP_CONTEXT_LMB] = "Remove [contents[1]]"
- return CONTEXTUAL_SCREENTIP_SET
+ . = CONTEXTUAL_SCREENTIP_SET
context[SCREENTIP_CONTEXT_LMB] = "Search cart"
- return CONTEXTUAL_SCREENTIP_SET
- if(istype(held_item, /obj/item/mop))
- . = NONE
- if(!mymop)
- context[SCREENTIP_CONTEXT_LMB] = "Insert [held_item]"
- . = CONTEXTUAL_SCREENTIP_SET
- if(CART_HAS_MINIMUM_REAGENT_VOLUME && held_item.reagents.total_volume < held_item.reagents.maximum_volume)
- context[SCREENTIP_CONTEXT_RMB] = "Wet [held_item]"
- . = CONTEXTUAL_SCREENTIP_SET
- return
- if(istype(held_item, /obj/item/pushbroom))
- if(mybroom)
- return NONE
- context[SCREENTIP_CONTEXT_LMB] = "Insert [held_item]"
- return CONTEXTUAL_SCREENTIP_SET
- if(istype(held_item, /obj/item/storage/bag/trash))
- if(mybag)
- return NONE
- context[SCREENTIP_CONTEXT_LMB] = "Insert [held_item]"
- return CONTEXTUAL_SCREENTIP_SET
- if(istype(held_item, /obj/item/reagent_containers/spray/cleaner))
- if(myspray)
- return NONE
- context[SCREENTIP_CONTEXT_LMB] = "Insert [held_item]"
- return CONTEXTUAL_SCREENTIP_SET
- if(istype(held_item, /obj/item/clothing/suit/caution))
- if(held_signs.len >= max_signs)
- return NONE
- context[SCREENTIP_CONTEXT_LMB] = "Insert [held_item]"
- return CONTEXTUAL_SCREENTIP_SET
- if(istype(held_item, /obj/item/lightreplacer))
- if(myreplacer)
- return NONE
- context[SCREENTIP_CONTEXT_LMB] = "Insert [held_item]"
- return CONTEXTUAL_SCREENTIP_SET
- if((held_item.is_refillable() && held_item.reagents.total_volume) && reagents.total_volume < reagents.maximum_volume)
- context[SCREENTIP_CONTEXT_RMB] = "Fill [src]'s mop bucket"
- return CONTEXTUAL_SCREENTIP_SET
- if(held_item.tool_behaviour == TOOL_CROWBAR && CART_HAS_MINIMUM_REAGENT_VOLUME)
- context[SCREENTIP_CONTEXT_LMB] = "Dump [src]'s mop bucket on [get_turf(src)]"
- return CONTEXTUAL_SCREENTIP_SET
- if(mybag?.atom_storage?.max_specific_storage >= held_item.w_class)
- context[SCREENTIP_CONTEXT_RMB] = "Insert [held_item] into [mybag]"
- return CONTEXTUAL_SCREENTIP_SET
- return NONE
+ . = CONTEXTUAL_SCREENTIP_SET
-/obj/structure/janitorialcart/attackby(obj/item/attacking_item, mob/user, params)
+ if(istype(held_item, /obj/item/mop) && !mymop)
+ context[SCREENTIP_CONTEXT_LMB] = "Insert [held_item]"
+ . = CONTEXTUAL_SCREENTIP_SET
+ if(istype(held_item, /obj/item/pushbroom) && !mybroom)
+ context[SCREENTIP_CONTEXT_LMB] = "Insert [held_item]"
+ . = CONTEXTUAL_SCREENTIP_SET
+ if(istype(held_item, /obj/item/storage/bag/trash) && !mybag)
+ context[SCREENTIP_CONTEXT_LMB] = "Insert [held_item]"
+ . = CONTEXTUAL_SCREENTIP_SET
+ if(istype(held_item, /obj/item/reagent_containers/spray/cleaner) && !myspray)
+ context[SCREENTIP_CONTEXT_LMB] = "Insert [held_item]"
+ . = CONTEXTUAL_SCREENTIP_SET
+ if(istype(held_item, /obj/item/clothing/suit/caution) && held_signs.len < max_signs)
+ context[SCREENTIP_CONTEXT_LMB] = "Insert [held_item]"
+ . = CONTEXTUAL_SCREENTIP_SET
+ if(istype(held_item, /obj/item/lightreplacer) && !myreplacer)
+ context[SCREENTIP_CONTEXT_LMB] = "Insert [held_item]"
+ . = CONTEXTUAL_SCREENTIP_SET
+ if(istype(held_item) && held_item.tool_behaviour == TOOL_CROWBAR && CART_HAS_MINIMUM_REAGENT_VOLUME)
+ context[SCREENTIP_CONTEXT_LMB] = "Dump [src]'s mop bucket on [get_turf(src)]"
+ . = CONTEXTUAL_SCREENTIP_SET
+ if(!isnull(held_item) && mybag?.atom_storage?.max_specific_storage >= held_item.w_class)
+ context[SCREENTIP_CONTEXT_RMB] = "Insert [held_item] into [mybag]"
+ . = CONTEXTUAL_SCREENTIP_SET
+
+ return . || NONE
+
+/obj/structure/mop_bucket/janitorialcart/attackby(obj/item/attacking_item, mob/user, params)
if(istype(attacking_item, /obj/item/mop))
if(mymop)
balloon_alert(user, "already has \a [mymop]!")
@@ -188,12 +224,9 @@
balloon_alert(user, "placed [attacking_item]")
return
- if(attacking_item.is_drainable())
- return FALSE //so we can fill the cart via our afterattack without bludgeoning it
-
return ..()
-/obj/structure/janitorialcart/crowbar_act(mob/living/user, obj/item/tool)
+/obj/structure/mop_bucket/janitorialcart/crowbar_act(mob/living/user, obj/item/tool)
if(!CART_HAS_MINIMUM_REAGENT_VOLUME)
balloon_alert(user, "mop bucket is empty!")
return TOOL_ACT_TOOLTYPE_SUCCESS
@@ -204,24 +237,16 @@
to_chat(user, span_notice("You dumped the contents of [src]'s mop bucket onto the floor."))
reagents.expose(loc)
reagents.clear_reagents()
- update_appearance(UPDATE_ICON)
+ update_appearance(UPDATE_OVERLAYS)
return TOOL_ACT_TOOLTYPE_SUCCESS
-/obj/structure/janitorialcart/attackby_secondary(obj/item/weapon, mob/user, params)
- if(istype(weapon, /obj/item/mop))
- var/obj/item/mop/your_mop = weapon
- if(your_mop.reagents.total_volume >= your_mop.reagents.maximum_volume)
- balloon_alert(user, "[your_mop] is already soaked!")
- return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN
- if(!CART_HAS_MINIMUM_REAGENT_VOLUME)
- balloon_alert(user, "mop bucket is empty!")
- return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN
- reagents.trans_to(your_mop, your_mop.reagents.maximum_volume, transfered_by = user)
- balloon_alert(user, "wet [your_mop]")
- playsound(src, 'sound/effects/slosh.ogg', 25, TRUE)
+/obj/structure/mop_bucket/janitorialcart/attackby_secondary(obj/item/weapon, mob/user, params)
+ . = ..()
+ if(. == SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN)
return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN
- if(weapon.is_refillable())
+ if(istype(weapon, /obj/item/reagent_containers))
+ update_appearance(UPDATE_OVERLAYS)
return SECONDARY_ATTACK_CONTINUE_CHAIN //so we can empty the cart via our afterattack without trying to put the item in the bag
if(mybag?.attackby(weapon, user))
@@ -229,7 +254,7 @@
return SECONDARY_ATTACK_CONTINUE_CHAIN
-/obj/structure/janitorialcart/attack_hand(mob/user, list/modifiers)
+/obj/structure/mop_bucket/janitorialcart/attack_hand(mob/user, list/modifiers)
. = ..()
if(.)
return
@@ -294,7 +319,7 @@
else
return
-/obj/structure/janitorialcart/attack_hand_secondary(mob/user, list/modifiers)
+/obj/structure/mop_bucket/janitorialcart/attack_hand_secondary(mob/user, list/modifiers)
if(!mymop)
return SECONDARY_ATTACK_CONTINUE_CHAIN
balloon_alert(user, "removed [mymop]")
@@ -307,20 +332,13 @@
* Arguments:
* * user The mob interacting with a menu
*/
-/obj/structure/janitorialcart/proc/check_menu(mob/living/user)
- if(!istype(user))
- return FALSE
- if(user.incapacitated())
- return FALSE
- return TRUE
+/obj/structure/mop_bucket/janitorialcart/proc/check_menu(mob/living/user)
+ return istype(user) && !user.incapacitated()
-/obj/structure/janitorialcart/update_overlays()
+/obj/structure/mop_bucket/janitorialcart/update_overlays()
. = ..()
if(mybag)
- if(istype(mybag, /obj/item/storage/bag/trash/bluespace))
- . += "cart_bluespace_garbage"
- else
- . += "cart_garbage"
+ . += istype(mybag, /obj/item/storage/bag/trash/bluespace) ? "cart_bluespace_garbage" : "cart_garbage"
if(mymop)
. += "cart_mop"
if(mybroom)
@@ -331,8 +349,5 @@
. += "cart_replacer"
if(held_signs.len)
. += "cart_sign[min(held_signs.len, 4)]"
- if(reagents.total_volume > 0)
- . += "cart_water"
-
#undef CART_HAS_MINIMUM_REAGENT_VOLUME
diff --git a/code/game/objects/structures/mop_bucket.dm b/code/game/objects/structures/mop_bucket.dm
deleted file mode 100644
index 08a5eb6fee2..00000000000
--- a/code/game/objects/structures/mop_bucket.dm
+++ /dev/null
@@ -1,31 +0,0 @@
-/obj/structure/mopbucket//SKYRAT EDIT - ICON OVERRIDEN BY AESTHETICS - SEE MODULE
- name = "mop bucket"
- desc = "Fill it with water, but don't forget a mop!"
- icon = 'icons/obj/janitor.dmi'
- icon_state = "mopbucket"
- density = TRUE
- var/amount_per_transfer_from_this = 5 //shit I dunno, adding this so syringes stop runtime erroring. --NeoFite
-
-
-/obj/structure/mopbucket/Initialize(mapload)
- . = ..()
- create_reagents(100, OPENCONTAINER)
-
-/obj/structure/mopbucket/attackby(obj/item/I, mob/user, params)
- if(istype(I, /obj/item/mop))
- if(reagents.total_volume < 1)
- to_chat(user, span_warning("[src] is out of water!"))
- else
- reagents.trans_to(I, 5, transfered_by = user)
- to_chat(user, span_notice("You wet [I] in [src]."))
- playsound(loc, 'sound/effects/slosh.ogg', 25, TRUE)
- update_appearance()
- return TRUE //Stop the click handling chain so the mop after attack doesn't proc and you don't wet the turf the bucket is on
- else
- . = ..()
- update_appearance()
-
-/obj/structure/mopbucket/update_overlays()
- . = ..()
- if(reagents.total_volume > 0)
- . += "mopbucket_water"
diff --git a/code/modules/cargo/packs/service.dm b/code/modules/cargo/packs/service.dm
index f7ef771be15..284e232f258 100644
--- a/code/modules/cargo/packs/service.dm
+++ b/code/modules/cargo/packs/service.dm
@@ -47,7 +47,7 @@
desc = "The keystone to any successful janitor. As long as you have feet, this pair \
of galoshes will keep them firmly planted on the ground. Also contains a janitorial cart."
cost = CARGO_CRATE_VALUE * 4
- contains = list(/obj/structure/janitorialcart,
+ contains = list(/obj/structure/mop_bucket/janitorialcart,
/obj/item/clothing/shoes/galoshes,
)
crate_name = "janitorial cart crate"
diff --git a/code/modules/modular_computers/file_system/programs/radar.dm b/code/modules/modular_computers/file_system/programs/radar.dm
index 966f66f514b..6ad369e8433 100644
--- a/code/modules/modular_computers/file_system/programs/radar.dm
+++ b/code/modules/modular_computers/file_system/programs/radar.dm
@@ -277,8 +277,8 @@
var/obj/item/mop/wet_mop = custodial_tools
tool_name = "[wet_mop.reagents.total_volume ? "Wet" : "Dry"] [wet_mop.name]"
- if(istype(custodial_tools, /obj/structure/janitorialcart))
- var/obj/structure/janitorialcart/janicart = custodial_tools
+ if(istype(custodial_tools, /obj/structure/mop_bucket/janitorialcart))
+ var/obj/structure/mop_bucket/janitorialcart/janicart = custodial_tools
tool_name = "[janicart.name] - Water level: [janicart.reagents.total_volume] / [janicart.reagents.maximum_volume]"
if(istype(custodial_tools, /mob/living/simple_animal/bot/cleanbot))
diff --git a/code/modules/reagents/reagent_containers/dropper.dm b/code/modules/reagents/reagent_containers/dropper.dm
index 486da26b9a4..4be30fc719f 100644
--- a/code/modules/reagents/reagent_containers/dropper.dm
+++ b/code/modules/reagents/reagent_containers/dropper.dm
@@ -67,6 +67,7 @@
trans = src.reagents.trans_to(target, amount_per_transfer_from_this, transfered_by = user)
to_chat(user, span_notice("You transfer [trans] unit\s of the solution."))
update_appearance()
+ target.update_appearance()
else
@@ -83,6 +84,7 @@
to_chat(user, span_notice("You fill [src] with [trans] unit\s of the solution."))
update_appearance()
+ target.update_appearance()
/obj/item/reagent_containers/dropper/update_overlays()
. = ..()
diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm
index 53d308937d0..b8286116e0a 100644
--- a/code/modules/reagents/reagent_containers/spray.dm
+++ b/code/modules/reagents/reagent_containers/spray.dm
@@ -27,7 +27,7 @@
/obj/item/reagent_containers/spray/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
. = ..()
- if(istype(target, /obj/structure/sink) || istype(target, /obj/structure/janitorialcart) || istype(target, /obj/machinery/hydroponics))
+ if(istype(target, /obj/structure/sink) || istype(target, /obj/structure/mop_bucket/janitorialcart) || istype(target, /obj/machinery/hydroponics))
return
if((target.is_drainable() && !target.is_refillable()) && (get_dist(src, target) <= 1) && can_fill_from_container)
diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm
index 6b37d95a66f..a6ef7c810e2 100644
--- a/code/modules/reagents/reagent_containers/syringes.dm
+++ b/code/modules/reagents/reagent_containers/syringes.dm
@@ -83,6 +83,7 @@
log_combat(user, living_target, "injected", src, addition="which had [contained]")
reagents.trans_to(target, amount_per_transfer_from_this, transfered_by = user, methods = INJECT)
to_chat(user, span_notice("You inject [amount_per_transfer_from_this] units of the solution. The syringe now contains [reagents.total_volume] units."))
+ target.update_appearance()
/obj/item/reagent_containers/syringe/afterattack_secondary(atom/target, mob/user, proximity_flag, click_parameters)
if (!try_syringe(target, user, proximity_flag))
@@ -118,6 +119,7 @@
var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this, transfered_by = user) // transfer from, transfer to - who cares?
to_chat(user, span_notice("You fill [src] with [trans] units of the solution. It now contains [reagents.total_volume] units."))
+ target.update_appearance()
return SECONDARY_ATTACK_CONTINUE_CHAIN
diff --git a/modular_skyrat/modules/aesthetics/janitor/janitor.dm b/modular_skyrat/modules/aesthetics/janitor/janitor.dm
index 9b9d60ae342..418e224792e 100644
--- a/modular_skyrat/modules/aesthetics/janitor/janitor.dm
+++ b/modular_skyrat/modules/aesthetics/janitor/janitor.dm
@@ -1,5 +1,9 @@
-/obj/structure/mopbucket
+/obj/structure/mop_bucket
icon = 'modular_skyrat/modules/aesthetics/janitor/janitor.dmi'
+// This isn't custom though.
+/obj/structure/mop_bucket/janitorialcart
+ icon = 'icons/obj/janitor.dmi'
+
/obj/item/reagent_containers/cup/bucket
icon = 'modular_skyrat/modules/aesthetics/janitor/janitor.dmi'
diff --git a/tgstation.dme b/tgstation.dme
index 87df0981eb9..1c3b93834cc 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -1991,7 +1991,7 @@
#include "code\game\objects\structures\headpike.dm"
#include "code\game\objects\structures\hivebot.dm"
#include "code\game\objects\structures\holosign.dm"
-#include "code\game\objects\structures\janicart.dm"
+#include "code\game\objects\structures\janitor.dm"
#include "code\game\objects\structures\kitchen_spike.dm"
#include "code\game\objects\structures\ladders.dm"
#include "code\game\objects\structures\lattice.dm"
@@ -2001,7 +2001,6 @@
#include "code\game\objects\structures\memorial.dm"
#include "code\game\objects\structures\mineral_doors.dm"
#include "code\game\objects\structures\mirror.dm"
-#include "code\game\objects\structures\mop_bucket.dm"
#include "code\game\objects\structures\morgue.dm"
#include "code\game\objects\structures\mystery_box.dm"
#include "code\game\objects\structures\noticeboard.dm"