diff --git a/code/game/machinery/autolathe_datums.dm b/code/game/machinery/autolathe_datums.dm index 61dda416f12..679f8f31d0d 100644 --- a/code/game/machinery/autolathe_datums.dm +++ b/code/game/machinery/autolathe_datums.dm @@ -46,6 +46,18 @@ path = /obj/machinery/floor_light category = "General" +/datum/autolathe/recipe/tile_circuit_blue + name = "circuit tile, blue" + path = /obj/item/stack/tile/circuit_blue + category = "General" + is_stack = 1 + +/datum/autolathe/recipe/tile_circuit_green + name = "circuit tile, green" + path = /obj/item/stack/tile/circuit_green + category = "General" + is_stack = 1 + /datum/autolathe/recipe/extinguisher name = "extinguisher" path = /obj/item/extinguisher diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm index 0858ef9d0d5..54d9deb9679 100644 --- a/code/game/objects/items/stacks/rods.dm +++ b/code/game/objects/items/stacks/rods.dm @@ -1,6 +1,8 @@ var/global/list/datum/stack_recipe/rod_recipes = list( new /datum/stack_recipe("grille", /obj/structure/grille, 2, time = 10, one_per_turf = TRUE, on_floor = TRUE), new /datum/stack_recipe("floor-mounted catwalk", /obj/structure/lattice/catwalk/indoor, 4, time = 10, one_per_turf = TRUE, on_floor = TRUE), + new /datum/stack_recipe("grate, dark", /obj/structure/lattice/catwalk/indoor/grate, 4, time = 10, one_per_turf = TRUE, on_floor = TRUE), + new /datum/stack_recipe("grate, light", /obj/structure/lattice/catwalk/indoor/grate/light, 4, time = 10, one_per_turf = TRUE, on_floor = TRUE), new /datum/stack_recipe("mine track", /obj/structure/track, 3, time = 10, one_per_turf = TRUE, on_floor = TRUE), new /datum/stack_recipe("cane", /obj/item/cane, 1, time = 6), new /datum/stack_recipe("crowbar", /obj/item/crowbar, 1, time = 6), diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index 86e14d704d8..55e74c3f650 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -43,7 +43,7 @@ name = "wood floor tile" singular_name = "wood floor tile" desc = "An easy to fit wooden floor tile." - icon_state = "tile-wood" + icon_state = "tile_wood" force = 1.0 throwforce = 1.0 throw_speed = 5 @@ -58,7 +58,7 @@ name = "carpet" singular_name = "carpet" desc = "A piece of carpet. It is the same size as a normal floor tile!" - icon_state = "tile-carpet" + icon_state = "tile_carpet" force = 1.0 throwforce = 1.0 throw_speed = 5 @@ -66,6 +66,88 @@ flags = 0 drop_sound = 'sound/items/drop/clothing.ogg' +/obj/item/stack/tile/carpet_blue + name = "blue carpet" + singular_name = "carpet" + desc = "A piece of carpet. It is the same size as a normal floor tile!" + icon_state = "tile_carpet_blue" + force = 1.0 + throwforce = 1.0 + throw_speed = 5 + throw_range = 20 + flags = 0 + drop_sound = 'sound/items/drop/clothing.ogg' + +/obj/item/stack/tile/carpet_rubber + name = "rubber carpet" + singular_name = "carpet" + desc = "A piece of rubber carpet. It is the same size as a normal floor tile!" + icon_state = "tile_carpet_rubber" + force = 1.0 + throwforce = 1.0 + throw_speed = 5 + throw_range = 20 + flags = 0 + drop_sound = 'sound/items/drop/clothing.ogg' + +/obj/item/stack/tile/lino + name = "old linoleum" + singular_name = "linoleum" + desc = "A piece of linoleum. It is the same size as a normal floor tile!" + icon_state = "tile_linoleum" + force = 1.0 + throwforce = 1.0 + throw_speed = 5 + throw_range = 20 + flags = 0 + drop_sound = 'sound/items/drop/clothing.ogg' + matter = list("plastic" = 937.5) + +/obj/item/stack/tile/lino_grey + name = "linoleum" + singular_name = "linoleum" + desc = "A piece of linoleum. It is the same size as a normal floor tile!" + icon_state = "tile_linoleum_grey" + force = 1.0 + throwforce = 1.0 + throw_speed = 5 + throw_range = 20 + flags = 0 + drop_sound = 'sound/items/drop/clothing.ogg' + matter = list("plastic" = 937.5) + +/* + * Circuits + */ + +/obj/item/stack/tile/circuit_blue + name = "circuit tile" + singular_name = "circuit tile" + desc = "An advanced tile covered in various circuitry and wiring." + icon_state = "tile_bcircuit" + force = 6.0 + matter = list(DEFAULT_WALL_MATERIAL = 937.5,"glass" = 937.5) + throwforce = 15.0 + throw_speed = 5 + throw_range = 20 + flags = CONDUCT + +/obj/item/stack/tile/circuit_green + name = "circuit tile" + singular_name = "circuit tile" + desc = "An advanced tile covered in various circuitry and wiring." + icon_state = "tile_gcircuit" + force = 6.0 + matter = list(DEFAULT_WALL_MATERIAL = 937.5,"glass" = 937.5) + throwforce = 15.0 + throw_speed = 5 + throw_range = 20 + flags = CONDUCT + +/* + * Floors + */ + /obj/item/stack/tile/floor name = "floor tile" singular_name = "floor tile" diff --git a/code/game/objects/structures/lattice.dm b/code/game/objects/structures/lattice.dm index 9ac8bc0d0cb..ee96c2d0998 100644 --- a/code/game/objects/structures/lattice.dm +++ b/code/game/objects/structures/lattice.dm @@ -64,8 +64,8 @@ desc = "A catwalk for easier EVA maneuvering." icon = 'icons/obj/smooth/catwalk.dmi' icon_state = "catwalk" - smooth = SMOOTH_MORE - canSmoothWith = list(/obj/structure/lattice/catwalk) + smooth = TRUE + canSmoothWith = null // Special catwalk that can be placed on regular flooring. /obj/structure/lattice/catwalk/indoor @@ -98,3 +98,60 @@ var/atom/movable/AM = A AM.forceMove(dest) ..() + +/obj/structure/lattice/catwalk/indoor/grate + name = "grate" + desc = "A metal grate." + icon = 'icons/obj/grate.dmi' + icon_state = "grate_dark" + smooth = null + var/base_icon_state = "grate_dark" + var/damaged = FALSE + +/obj/structure/lattice/catwalk/indoor/grate/old + icon_state = "grate_dark_old" + +/obj/structure/lattice/catwalk/indoor/grate/damaged + icon_state = "grate_dark_dam0" + damaged = TRUE + +/obj/structure/lattice/catwalk/indoor/grate/damaged/Initialize() + .=..() + icon_state = "[base_icon_state]_dam[rand(0,3)]" + +/obj/structure/lattice/catwalk/indoor/grate/light + icon_state = "grate_light" + base_icon_state = "grate_light" + +/obj/structure/lattice/catwalk/indoor/grate/light/old + icon_state = "grate_light_old" + +/obj/structure/lattice/catwalk/indoor/grate/light/damaged + icon_state = "grate_light_dam0" + damaged = TRUE + +/obj/structure/lattice/catwalk/indoor/grate/light/damaged/Initialize() + .=..() + icon_state = "[base_icon_state]_dam[rand(0,3)]" + +/obj/structure/lattice/catwalk/indoor/grate/attackby(obj/item/C, mob/user) + if(C.iswelder() && damaged) + var/obj/item/weldingtool/WT = C + if(do_after(user, 5/C.toolspeed, act_target = src) && WT.remove_fuel(1, user)) + to_chat(user, span("notice","You slice apart the [src] leaving nothing useful behind.")) + playsound(src, 'sound/items/Welder.ogg', 50, 1) + qdel(src) + else + ..() + +/obj/structure/lattice/catwalk/indoor/grate/ex_act(severity) + switch(severity) + if(1.0) + qdel(src) + if(2.0) + if(!damaged) + icon_state = "[base_icon_state]_dam[rand(0,3)]" + damaged = TRUE + else + qdel(src) + return \ No newline at end of file diff --git a/code/game/turfs/flooring/flooring.dm b/code/game/turfs/flooring/flooring.dm index 33131791767..ed6e6a58746 100644 --- a/code/game/turfs/flooring/flooring.dm +++ b/code/game/turfs/flooring/flooring.dm @@ -81,8 +81,13 @@ var/list/flooring_types /decl/flooring/carpet/blue name = "carpet" icon_base = "bcarpet" - build_type = null - flags = TURF_HAS_EDGES + build_type = /obj/item/stack/tile/carpet_blue + +/decl/flooring/carpet/rubber + name = "rubber carpet" + desc = "Durable, easy to clean and provides extra grip. Perfect for industrial settings." + icon_base = "rub_carpet" + build_type = /obj/item/stack/tile/carpet_rubber /decl/flooring/tiling name = "floor" @@ -111,8 +116,14 @@ var/list/flooring_types icon = 'icons/turf/flooring/linoleum.dmi' icon_base = "lino" flags = TURF_REMOVE_CROWBAR | TURF_CAN_BREAK + build_type = /obj/item/stack/tile/lino can_paint = 1 - footstep_sound = "tiles" + footstep_sound = "carpet" + +/decl/flooring/linoleum/grey + icon_base = "lino_grey" + build_type = /obj/item/stack/tile/lino_grey + has_damage_range = 2 /decl/flooring/tiling/red name = "floor" @@ -188,15 +199,19 @@ var/list/flooring_types /decl/flooring/reinforced/circuit name = "processing strata" + desc = "A durable surface covered in various circuity and wiring." icon = 'icons/turf/flooring/circuit.dmi' icon_base = "bcircuit" build_type = null + build_cost = 1 flags = TURF_ACID_IMMUNE | TURF_CAN_BREAK | TURF_REMOVE_CROWBAR can_paint = 1 + build_type = /obj/item/stack/tile/circuit_blue /decl/flooring/reinforced/circuit/green name = "processing strata" icon_base = "gcircuit" + build_type = /obj/item/stack/tile/circuit_green /decl/flooring/reinforced/circuit/red icon_base = "rcircuit" @@ -219,7 +234,7 @@ var/list/flooring_types icon = 'icons/turf/flooring/tiles.dmi' icon_base = "ramptop" build_type = null - has_damage_range = 1 + has_damage_range = 2 flags = TURF_ACID_IMMUNE | TURF_CAN_BREAK can_paint = 1 diff --git a/code/game/turfs/flooring/flooring_premade.dm b/code/game/turfs/flooring/flooring_premade.dm index 6763a5e3fc0..0f581c4eea7 100644 --- a/code/game/turfs/flooring/flooring_premade.dm +++ b/code/game/turfs/flooring/flooring_premade.dm @@ -5,6 +5,16 @@ initial_flooring = /decl/flooring/carpet footstep_sound = "carpet" +/turf/simulated/floor/carpet/blue + name = "blue carpet" + icon_state = "bcarpet" + initial_flooring = /decl/flooring/carpet/blue + +/turf/simulated/floor/carpet/rubber + name = "rubber carpet" + icon_state = "rub_carpet" + initial_flooring = /decl/flooring/carpet/rubber + /turf/simulated/floor/bluegrid name = "mainframe floor" icon = 'icons/turf/flooring/circuit.dmi' @@ -36,11 +46,6 @@ icon_state = "grass_alt" initial_flooring = /decl/flooring/grass/alt -/turf/simulated/floor/carpet/blue - name = "blue carpet" - icon_state = "bcarpet" - initial_flooring = /decl/flooring/carpet/blue - /turf/simulated/floor/tiled name = "floor" icon = 'icons/turf/flooring/tiles.dmi' @@ -167,6 +172,10 @@ icon_state = "lino" initial_flooring = /decl/flooring/linoleum +/turf/simulated/floor/lino/grey + icon_state = "lino_grey" + initial_flooring = /decl/flooring/linoleum/grey + //ATMOS PREMADES /turf/simulated/floor/reinforced/airless name = "vacuum floor" diff --git a/html/changelogs/Ferner-200213-coding_gratesandcarpets.yml b/html/changelogs/Ferner-200213-coding_gratesandcarpets.yml new file mode 100644 index 00000000000..956fad10b07 --- /dev/null +++ b/html/changelogs/Ferner-200213-coding_gratesandcarpets.yml @@ -0,0 +1,6 @@ +author: Ferner, Happy_Fox +delete-after: True +changes: + - rscadd: "Added a new type of linoleum, rubber carpets, dark/light metal grates. Added some proper footramp damaged states. All spriting by Happy_Fox" + - tweak: "Blue/Green Circuit tiles can now be made in the autolathe." + - bugfix: "Blown up footramps will no longer result in a 'Fix me!' icon appearing." diff --git a/icons/obj/grate.dmi b/icons/obj/grate.dmi new file mode 100644 index 00000000000..c2b786e502a Binary files /dev/null and b/icons/obj/grate.dmi differ diff --git a/icons/obj/stacks/tiles.dmi b/icons/obj/stacks/tiles.dmi index 32b077a4540..7279872b339 100644 Binary files a/icons/obj/stacks/tiles.dmi and b/icons/obj/stacks/tiles.dmi differ diff --git a/icons/turf/flooring/carpet.dmi b/icons/turf/flooring/carpet.dmi index 5f1405ce486..be37061a86b 100644 Binary files a/icons/turf/flooring/carpet.dmi and b/icons/turf/flooring/carpet.dmi differ diff --git a/icons/turf/flooring/linoleum.dmi b/icons/turf/flooring/linoleum.dmi index f4dfa17bfe4..a01d4ad59a0 100644 Binary files a/icons/turf/flooring/linoleum.dmi and b/icons/turf/flooring/linoleum.dmi differ diff --git a/icons/turf/flooring/tiles.dmi b/icons/turf/flooring/tiles.dmi index 22ee0a2c7a7..3f1423226a1 100644 Binary files a/icons/turf/flooring/tiles.dmi and b/icons/turf/flooring/tiles.dmi differ