From a5ecf3bce5399256f7224ac93b59bb30bd068ede Mon Sep 17 00:00:00 2001 From: Vi3trice <80771500+Vi3trice@users.noreply.github.com> Date: Fri, 7 Jul 2023 08:50:17 -0400 Subject: [PATCH] Catwalk floors for interior use (#21437) * That's a start * We had sounds all this time * New icons, fix tile interaction with plating. --- code/__DEFINES/footstep_defines.dm | 19 ++++++ code/game/objects/items/stacks/rods.dm | 1 + .../objects/items/stacks/tiles/tile_types.dm | 17 +++++ code/game/turfs/simulated/floor/misc_floor.dm | 58 ++++++++++++++++++ code/game/turfs/simulated/floor/plating.dm | 2 +- icons/obj/tiles.dmi | Bin 15339 -> 15596 bytes icons/turf/floors/catwalk_floor.dmi | Bin 0 -> 5685 bytes 7 files changed, 96 insertions(+), 1 deletion(-) create mode 100644 icons/turf/floors/catwalk_floor.dmi diff --git a/code/__DEFINES/footstep_defines.dm b/code/__DEFINES/footstep_defines.dm index 65b96577386..3eb8641291b 100644 --- a/code/__DEFINES/footstep_defines.dm +++ b/code/__DEFINES/footstep_defines.dm @@ -8,6 +8,7 @@ #define FOOTSTEP_LAVA "lava" #define FOOTSTEP_MEAT "meat" #define FOOTSTEP_GLASS "glass" +#define FOOTSTEP_CATWALK "catwalk" //barefoot sounds #define FOOTSTEP_WOOD_BAREFOOT "woodbarefoot" #define FOOTSTEP_WOOD_CLAW "woodclaw" @@ -90,6 +91,12 @@ GLOBAL_LIST_INIT(footstep, list( 'sound/effects/footstep/glass1.ogg', 'sound/effects/footstep/glass2.ogg', 'sound/effects/footstep/glass3.ogg'), 100, 1), + 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), )) //bare footsteps lists GLOBAL_LIST_INIT(barefootstep, list( @@ -137,6 +144,12 @@ GLOBAL_LIST_INIT(barefootstep, list( 'sound/effects/footstep/glassbarefoot1.ogg', 'sound/effects/footstep/glassbarefoot2.ogg', 'sound/effects/footstep/glassbarefoot3.ogg'), 100, 1), + 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), )) //claw footsteps lists @@ -185,6 +198,12 @@ GLOBAL_LIST_INIT(clawfootstep, list( 'sound/effects/footstep/glassbarefoot1.ogg', 'sound/effects/footstep/glassbarefoot2.ogg', 'sound/effects/footstep/glassbarefoot3.ogg'), 100, 1), + 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), )) //heavy footsteps list diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm index c7aa2acd569..0d10558a264 100644 --- a/code/game/objects/items/stacks/rods.dm +++ b/code/game/objects/items/stacks/rods.dm @@ -1,6 +1,7 @@ GLOBAL_LIST_INIT(rod_recipes, list ( new /datum/stack_recipe("grille", /obj/structure/grille, 2, time = 1 SECONDS, one_per_turf = TRUE, on_floor_or_lattice = TRUE), new /datum/stack_recipe("table frame", /obj/structure/table_frame, 2, time = 1 SECONDS, one_per_turf = TRUE, on_floor = TRUE), + new /datum/stack_recipe("catwalk tile", /obj/item/stack/tile/catwalk, 2, 4, 20), null, new /datum/stack_recipe("railing", /obj/structure/railing, 3, time = 1 SECONDS, one_per_turf = TRUE, on_floor = TRUE), new /datum/stack_recipe("railing corner", /obj/structure/railing/corner, 3, time = 1 SECONDS, one_per_turf = TRUE, on_floor = TRUE), diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index 3168ce2d239..a60ef991b63 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -271,3 +271,20 @@ /obj/item/stack/tile/disco_light/thirty amount = 30 + +/obj/item/stack/tile/catwalk + name = "catwalk tiles" + gender = PLURAL + singular_name = "catwalk tile" + desc = "A catwalk tile. Not rated for space usage." + icon_state = "tile_catwalk" + force = 6 + materials = list(MAT_METAL=500) + throwforce = 10 + throw_speed = 3 + throw_range = 7 + flags = CONDUCT + turf_type = /turf/simulated/floor/catwalk + mineralType = "metal" + armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, RAD = 0, FIRE = 100, ACID = 70) + resistance_flags = FIRE_PROOF diff --git a/code/game/turfs/simulated/floor/misc_floor.dm b/code/game/turfs/simulated/floor/misc_floor.dm index 2900aaa2970..b52126b9a0d 100644 --- a/code/game/turfs/simulated/floor/misc_floor.dm +++ b/code/game/turfs/simulated/floor/misc_floor.dm @@ -209,3 +209,61 @@ icon_state = "reebe" baseturf = /turf/simulated/floor/clockwork/reebe uses_overlay = FALSE + +/turf/simulated/floor/catwalk + name = "catwalk" + desc = "A catwalk for easier inspection of cable and pipe installations." + icon = 'icons/turf/floors/catwalk_floor.dmi' + icon_state = "catwalk" + base_icon_state = "catwalk" + baseturf = /turf/simulated/floor/plating + floor_tile = /obj/item/stack/tile/catwalk + smoothing_flags = SMOOTH_BITMASK + smoothing_groups = list(SMOOTH_GROUP_CATWALK, SMOOTH_GROUP_SIMULATED_TURFS) + canSmoothWith = list(SMOOTH_GROUP_CATWALK) + footstep = FOOTSTEP_CATWALK + barefootstep = FOOTSTEP_CATWALK + clawfootstep = FOOTSTEP_CATWALK + keep_dir = FALSE + intact = FALSE + transparent_floor = TRUE + +/turf/simulated/floor/catwalk/Initialize(mapload) + . = ..() + var/image/I = image('icons/turf/floors/plating.dmi', src, "plating") + I.layer = PLATING_LAYER + underlays += I + dir = SOUTH //dirs that are not 2/south cause smoothing jank + icon_state = "" //Prevents default icon appearing behind the catwalk + +/turf/simulated/floor/catwalk/crowbar_act(mob/user, obj/item/I) + . = TRUE + if(!I.use_tool(src, user, 0, volume = I.tool_volume)) + return + pry_tile(I, user, TRUE) + +/turf/simulated/floor/transparent/glass/can_lay_cable() + return FALSE // Pry the catwalk up if you want to apply cables underneath + +/turf/simulated/floor/catwalk/ex_act(severity) + if(is_shielded()) + return + switch(severity) + if(1.0) + ChangeTurf(baseturf) + if(2.0) + switch(pick(1,2;75,3)) + if(1) + spawn(0) + ReplaceWithLattice() + if(prob(33)) new /obj/item/stack/rods(src) + if(2) + ChangeTurf(baseturf) + if(3) + break_tile_to_plating() + hotspot_expose(1000,CELL_VOLUME) + if(prob(33)) new /obj/item/stack/rods(src) + if(3.0) + if(prob(50)) + break_tile_to_plating() + hotspot_expose(1000,CELL_VOLUME) diff --git a/code/game/turfs/simulated/floor/plating.dm b/code/game/turfs/simulated/floor/plating.dm index 4606450b6e9..b2da17065ef 100644 --- a/code/game/turfs/simulated/floor/plating.dm +++ b/code/game/turfs/simulated/floor/plating.dm @@ -64,7 +64,7 @@ var/obj/item/stack/tile/W = C if(!W.use(1)) return - ChangeTurf(W.turf_type) + ChangeTurf(W.turf_type, keep_icon = FALSE) playsound(src, 'sound/weapons/genhit.ogg', 50, 1) else to_chat(user, "This section is too damaged to support a tile! Use a welder to fix the damage.") diff --git a/icons/obj/tiles.dmi b/icons/obj/tiles.dmi index f088426c1a57edd8b7fd6b7b973d6cfc5f054391..4168f09ab9b5b8bb5e0e3f087fc384044dbda5e4 100644 GIT binary patch literal 15596 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 LUbIF;Kk$D5uV{%| literal 15339 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 BGv@#R diff --git a/icons/turf/floors/catwalk_floor.dmi b/icons/turf/floors/catwalk_floor.dmi new file mode 100644 index 0000000000000000000000000000000000000000..75b0b64564b2909b9fcfeca24b5bebc6a5a14504 GIT binary patch literal 5685 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 literal 0 HcmV?d00001