diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm index 144a40b50d0..d5dfc335c7c 100644 --- a/code/game/machinery/spaceheater.dm +++ b/code/game/machinery/spaceheater.dm @@ -69,6 +69,8 @@ ), ) AddElement(/datum/element/contextual_screentip_tools, tool_behaviors) + AddElement(/datum/element/climbable) + AddElement(/datum/element/elevation, pixel_shift = 8) /obj/machinery/space_heater/Destroy() SSair.stop_processing_machine(src) diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 952a35a470f..a0b8f9d79dc 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -825,6 +825,11 @@ pass_flags_self = LETPASSTHROW //You can throw objects over this, despite it's density. max_integrity = 20 +/obj/structure/rack/Initialize(mapload) + . = ..() + AddElement(/datum/element/climbable) + AddElement(/datum/element/elevation, pixel_shift = 12) + /obj/structure/rack/examine(mob/user) . = ..() . += span_notice("It's held together by a couple of bolts.") diff --git a/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm b/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm index d8c47b1610c..389de6e3701 100644 --- a/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm +++ b/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm @@ -43,6 +43,8 @@ air_contents.volume = volume air_contents.temperature = T20C SSair.start_processing_machine(src) + AddElement(/datum/element/climbable, climb_time = 3 SECONDS, climb_stun = 3 SECONDS) + AddElement(/datum/element/elevation, pixel_shift = 8) /obj/machinery/portable_atmospherics/Destroy() disconnect() diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index f9dd39e01f0..5dd5e8b93dd 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -31,6 +31,8 @@ var/mutable_appearance/assembliesoverlay /// The person who attached an assembly to this dispenser, for bomb logging purposes var/last_rigger = "" + /// is it climbable? some of our wall-mounted dispensers should not have this + var/climbable = FALSE // This check is necessary for assemblies to automatically detect that we are compatible /obj/structure/reagent_dispensers/IsSpecialAssembly() @@ -53,6 +55,9 @@ if(icon_state == "water" && check_holidays(APRIL_FOOLS)) icon_state = "water_fools" + if(climbable) + AddElement(/datum/element/climbable, climb_time = 4 SECONDS, climb_stun = 4 SECONDS) + AddElement(/datum/element/elevation, pixel_shift = 14) /obj/structure/reagent_dispensers/examine(mob/user) . = ..() @@ -233,6 +238,7 @@ desc = "A water tank." icon_state = "water" openable = TRUE + climbable = TRUE /obj/structure/reagent_dispensers/watertank/high name = "high-capacity water tank" @@ -247,6 +253,7 @@ reagent_id = /datum/reagent/firefighting_foam tank_volume = 500 openable = TRUE + climbable = TRUE /obj/structure/reagent_dispensers/fueltank name = "fuel tank" @@ -255,6 +262,7 @@ reagent_id = /datum/reagent/fuel openable = TRUE accepts_rig = TRUE + climbable = TRUE /obj/structure/reagent_dispensers/fueltank/Initialize(mapload) . = ..()