diff --git a/code/__DEFINES/footsteps.dm b/code/__DEFINES/footsteps.dm index 215e287adf..cc0c6547b0 100644 --- a/code/__DEFINES/footsteps.dm +++ b/code/__DEFINES/footsteps.dm @@ -8,6 +8,7 @@ #define FOOTSTEP_LAVA "lava" #define FOOTSTEP_MEAT "meat" #define FOOTSTEP_RUST "rust" +#define FOOTSTEP_CATWALK "catwalk" //barefoot sounds #define FOOTSTEP_WOOD_BAREFOOT "woodbarefoot" @@ -94,6 +95,12 @@ GLOBAL_LIST_INIT(footstep, list( 'sound/effects/footstep/lava3.ogg'), 100, 0), FOOTSTEP_MEAT = list(list( 'sound/effects/meatslap.ogg'), 100, 0), + FOOTSTEP_CATWALK = list(list( + 'sound/effects/footstep/catwalk1.ogg', + 'sound/effects/footstep/catwalk2.ogg', + 'sound/effects/footstep/catwalk3.ogg', + 'sound/effects/footstep/catwalk4.ogg', + 'sound/effects/footstep/catwalk5.ogg'), 100, 1), FOOTSTEP_RUST = list(list( 'sound/effects/footstep/rustystep1.ogg'), 100, 0) )) diff --git a/code/__DEFINES/layers_planes.dm b/code/__DEFINES/layers_planes.dm index ea7b1b2e0a..c7be89721e 100644 --- a/code/__DEFINES/layers_planes.dm +++ b/code/__DEFINES/layers_planes.dm @@ -64,8 +64,9 @@ #define GAS_PIPE_VISIBLE_LAYER 2.47 #define GAS_FILTER_LAYER 2.48 #define GAS_PUMP_LAYER 2.49 - #define LOW_OBJ_LAYER 2.5 +///catwalk overlay of /turf/open/floor/plating/plating_catwalk +#define CATWALK_LAYER 2.51 #define LOW_SIGIL_LAYER 2.52 #define SIGIL_LAYER 2.54 #define HIGH_SIGIL_LAYER 2.56 diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm index c6763092ca..08f0a6fb7f 100644 --- a/code/game/objects/items/stacks/rods.dm +++ b/code/game/objects/items/stacks/rods.dm @@ -3,6 +3,7 @@ GLOBAL_LIST_INIT(rod_recipes, list ( \ new/datum/stack_recipe("table frame", /obj/structure/table_frame, 2, time = 10, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("scooter frame", /obj/item/scooter_frame, 10, time = 25, one_per_turf = 0), \ new/datum/stack_recipe("railing", /obj/structure/railing, 3, time = 18, window_checks = TRUE), \ + new/datum/stack_recipe("catwalk tile", /obj/item/stack/tile/catwalk, 1, 4, 20), \ )) /obj/item/stack/rods diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index 8b272f98b4..6eac04b976 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -555,3 +555,10 @@ color = "#92661A" turf_type = /turf/open/floor/bronze custom_materials = list(/datum/material/bronze = 250) + +/obj/item/stack/tile/catwalk + name = "catwalk tile" + singular_name = "catwalk floor tile" + desc = "Flooring that shows its contents underneath. Engineers love it!" + icon_state = "catwalk_tile" + turf_type = /turf/open/floor/plating/catwalk_floor diff --git a/code/game/turfs/open/floor/catwalk_plating.dm b/code/game/turfs/open/floor/catwalk_plating.dm new file mode 100644 index 0000000000..c6bfdc0448 --- /dev/null +++ b/code/game/turfs/open/floor/catwalk_plating.dm @@ -0,0 +1,44 @@ +/** + * ## catwalk flooring + * + * They show what's underneath their catwalk flooring (pipes and the like) + * you can crowbar it to interact with the underneath stuff without destroying the tile... + * unless you want to! + */ +/turf/open/floor/plating/catwalk_floor + icon = 'icons/turf/floors/catwalk_plating.dmi' + icon_state = "catwalk_below" + floor_tile = /obj/item/stack/tile/catwalk + name = "catwalk floor" + desc = "Flooring that shows its contents underneath. Engineers love it!" + baseturfs = /turf/open/floor/plating + footstep = FOOTSTEP_CATWALK + barefootstep = FOOTSTEP_CATWALK + clawfootstep = FOOTSTEP_CATWALK + heavyfootstep = FOOTSTEP_CATWALK + var/covered = TRUE + +/turf/open/floor/plating/catwalk_floor/Initialize() + . = ..() + layer = CATWALK_LAYER + update_icon(UPDATE_OVERLAYS) + +/turf/open/floor/plating/catwalk_floor/update_overlays() + . = ..() + var/static/catwalk_overlay + if(isnull(catwalk_overlay)) + catwalk_overlay = iconstate2appearance(icon, "catwalk_above") + if(covered) + . += catwalk_overlay + +/turf/open/floor/plating/catwalk_floor/screwdriver_act(mob/living/user, obj/item/tool) + . = ..() + covered = !covered + to_chat(user, span_notice("[!covered ? "You removed the cover!" : "You added the cover!"]")) + update_icon(UPDATE_OVERLAYS) + +/turf/open/floor/plating/catwalk_floor/pry_tile(obj/item/crowbar, mob/user, silent) + if(covered) + to_chat(user, span_notice("You need to remove the cover first!")) + return FALSE + . = ..() diff --git a/icons/obj/tiles.dmi b/icons/obj/tiles.dmi index 088b6c2c7b..757208cd9b 100644 Binary files a/icons/obj/tiles.dmi and b/icons/obj/tiles.dmi differ diff --git a/icons/turf/floors/catwalk_plating.dmi b/icons/turf/floors/catwalk_plating.dmi new file mode 100644 index 0000000000..24954e4a17 Binary files /dev/null and b/icons/turf/floors/catwalk_plating.dmi differ diff --git a/tgstation.dme b/tgstation.dme index 65c5b7acab..1d8f600059 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1389,6 +1389,7 @@ #include "code\game\turfs\closed.dm" #include "code\game\turfs\open.dm" #include "code\game\turfs\turf.dm" +#include "code\game\turfs\open\floor\catwalk_plating.dm" #include "code\game\turfs\simulated\chasm.dm" #include "code\game\turfs\simulated\dirtystation.dm" #include "code\game\turfs\simulated\floor.dm"