From 4cbe9a028e515268de800a3129300a1e51676d23 Mon Sep 17 00:00:00 2001 From: Sypsoti <98442665+Sypsoti@users.noreply.github.com> Date: Tue, 19 Apr 2022 11:12:31 -0500 Subject: [PATCH] Adds Some More Decorative Flooring Types --- code/datums/supplypacks/materials.dm | 14 ++++++- .../items/stacks/tiles/fifty_spawner_tiles.dm | 15 +++++++ .../objects/items/stacks/tiles/tile_types.dm | 33 +++++++++++++++ code/game/turfs/flooring/flooring.dm | 38 ++++++++++++++++++ code/game/turfs/flooring/flooring_premade.dm | 28 ++++++++++++- icons/turf/flooring/wood.dmi | Bin 3190 -> 5297 bytes 6 files changed, 126 insertions(+), 2 deletions(-) diff --git a/code/datums/supplypacks/materials.dm b/code/datums/supplypacks/materials.dm index 5e181d8af8a..18b9a9867a2 100644 --- a/code/datums/supplypacks/materials.dm +++ b/code/datums/supplypacks/materials.dm @@ -66,6 +66,7 @@ /obj/fiftyspawner/tealcarpet ) +<<<<<<< HEAD /datum/supply_pack/materials/arcade_carpet name = "Retro carpets" containertype = /obj/structure/closet/crate/grayson @@ -74,9 +75,20 @@ contains = list( /obj/fiftyspawner/decocarpet, /obj/fiftyspawner/retrocarpet +======= +/datum/supply_pack/materials/retrocarpet + name = "Retro carpet" + containertype = /obj/structure/closet/crate/grayson + containername = "Retro carpet crate" + cost = 15 + contains = list( + /obj/fiftyspawner/geocarpet, + /obj/fiftyspawner/retrocarpet, + /obj/fiftyspawner/retrocarpet_red +>>>>>>> f7cc15b0988... Merge pull request #8556 from Cerebulon/arcadecarpets ) -/datum/supply_pack/misc/linoleum +/datum/supply_pack/materials/linoleum name = "Linoleum" containertype = /obj/structure/closet/crate/grayson containername = "Linoleum crate" diff --git a/code/game/objects/items/stacks/tiles/fifty_spawner_tiles.dm b/code/game/objects/items/stacks/tiles/fifty_spawner_tiles.dm index a730263afa1..8ef6bc3789a 100644 --- a/code/game/objects/items/stacks/tiles/fifty_spawner_tiles.dm +++ b/code/game/objects/items/stacks/tiles/fifty_spawner_tiles.dm @@ -28,6 +28,7 @@ name = "stack of teal carpet" type_to_spawn = /obj/item/stack/tile/carpet/teal +<<<<<<< HEAD /obj/fiftyspawner/decocarpet name = "stack of deco carpet" type_to_spawn = /obj/item/stack/tile/carpet/deco @@ -36,6 +37,20 @@ name = "stack of retro carpet" type_to_spawn = /obj/item/stack/tile/carpet/retro +======= +/obj/fiftyspawner/geocarpet + name = "stack of geometric carpet" + type_to_spawn = /obj/item/stack/tile/carpet/geo + +/obj/fiftyspawner/retrocarpet + name = "stack of blue retro carpet" + type_to_spawn = /obj/item/stack/tile/carpet/retro + +/obj/fiftyspawner/retrocarpet_red + name = "stack of red retro carpet" + type_to_spawn = /obj/item/stack/tile/carpet/retro_red + +>>>>>>> f7cc15b0988... Merge pull request #8556 from Cerebulon/arcadecarpets /obj/fiftyspawner/floor name = "stack of floor tiles" type_to_spawn = /obj/item/stack/tile/floor diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index 3c17fb0acf8..6a527ffb627 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -75,6 +75,21 @@ desc = "An easy to fit wooden floor tile. It's blue!" icon_state = "tile-sifwood" +/obj/item/stack/tile/wood/parquet + name = "parquet wood floor tile" + singular_name = "parquet wood floor tile" + icon_state = "tile-wood_parquet" + +/obj/item/stack/tile/wood/panel + name = "large wood floor tile" + singular_name = "large wood floor tile" + icon_state = "tile-wood_large" + +/obj/item/stack/tile/wood/tile + name = "tiled wood floor tile" + singular_name = "tiled wood floor tile" + icon_state = "tile-wood_tile" + /obj/item/stack/tile/wood/cyborg name = "wood floor tile synthesizer" desc = "A device that makes wood floor tiles." @@ -83,6 +98,8 @@ stacktype = /obj/item/stack/tile/wood build_type = /obj/item/stack/tile/wood + + /* * Carpets */ @@ -107,6 +124,22 @@ icon_state = "tile-tealcarpet" no_variants = FALSE +<<<<<<< HEAD +======= +/obj/item/stack/tile/carpet/geo + icon_state = "tile-carpet-deco" + desc = "A piece of carpet with a gnarly geometric design. It is the same size as a normal floor tile!" + +/obj/item/stack/tile/carpet/retro + icon_state = "tile-carpet-retro" + desc = "A piece of carpet with totally wicked blue space patterns. It is the same size as a normal floor tile!" + +/obj/item/stack/tile/carpet/retro_red + icon_state = "tile-carpet-retro-red" + desc = "A piece of carpet with red-ical space patterns. It is the same size as a normal floor tile!" + +// TODO - Add descriptions to these +>>>>>>> f7cc15b0988... Merge pull request #8556 from Cerebulon/arcadecarpets /obj/item/stack/tile/carpet/bcarpet icon_state = "tile-carpet" /obj/item/stack/tile/carpet/blucarpet diff --git a/code/game/turfs/flooring/flooring.dm b/code/game/turfs/flooring/flooring.dm index ba7429eec4f..3b24236b2ed 100644 --- a/code/game/turfs/flooring/flooring.dm +++ b/code/game/turfs/flooring/flooring.dm @@ -321,6 +321,7 @@ var/list/flooring_types icon_base = "tealcarpet" build_type = /obj/item/stack/tile/carpet/teal +<<<<<<< HEAD /decl/flooring/carpet/deco name = "deco carpet" icon_base = "decocarpet" @@ -329,10 +330,29 @@ var/list/flooring_types /decl/flooring/carpet/retro name = "retro carpet" +======= +/decl/flooring/carpet/geo + name = "geometric carpet" + icon_base = "geocarpet" + build_type = /obj/item/stack/tile/carpet/geo + flags = TURF_REMOVE_CROWBAR | TURF_CAN_BURN + +/decl/flooring/carpet/retro + name = "blue retro carpet" +>>>>>>> f7cc15b0988... Merge pull request #8556 from Cerebulon/arcadecarpets icon_base = "retrocarpet" build_type = /obj/item/stack/tile/carpet/retro flags = TURF_REMOVE_CROWBAR | TURF_CAN_BURN +<<<<<<< HEAD +======= +/decl/flooring/carpet/retro_red + name = "red retro carpet" + icon_base = "retrocarpet_red" + build_type = /obj/item/stack/tile/carpet/retro_red + flags = TURF_REMOVE_CROWBAR | TURF_CAN_BURN + +>>>>>>> f7cc15b0988... Merge pull request #8556 from Cerebulon/arcadecarpets /decl/flooring/tiling name = "floor" desc = "Scuffed from the passage of countless greyshirts." @@ -496,6 +516,24 @@ var/list/flooring_types icon_base = "sifwood" build_type = /obj/item/stack/tile/wood/sif +/decl/flooring/wood/panel + desc = "Polished wooden panels." + icon_base = "wood_large" + build_type = /obj/item/stack/tile/wood/panel + flags = TURF_REMOVE_CROWBAR | TURF_CAN_BURN + +/decl/flooring/wood/parquet + desc = "Polished wooden tiles." + icon_base = "wood_parquet" + build_type = /obj/item/stack/tile/wood/parquet + flags = TURF_REMOVE_CROWBAR | TURF_CAN_BURN + +/decl/flooring/wood/tile + desc = "Polished wooden tiles." + icon_base = "wood_tile" + build_type = /obj/item/stack/tile/wood/tile + flags = TURF_REMOVE_CROWBAR | TURF_CAN_BURN + /decl/flooring/reinforced name = "reinforced floor" desc = "Heavily reinforced with steel rods." diff --git a/code/game/turfs/flooring/flooring_premade.dm b/code/game/turfs/flooring/flooring_premade.dm index 42bf1e780e0..4f1d52dca89 100644 --- a/code/game/turfs/flooring/flooring_premade.dm +++ b/code/game/turfs/flooring/flooring_premade.dm @@ -60,6 +60,21 @@ icon_state = "oracarpet" initial_flooring = /decl/flooring/carpet/oracarpet +/turf/simulated/floor/carpet/geo + name = "geometric carpet" + icon_state = "geocarpet" + initial_flooring = /decl/flooring/carpet/geo + +/turf/simulated/floor/carpet/retro + name = "blue retro carpet" + icon_state = "retrocarpet" + initial_flooring = /decl/flooring/carpet/retro + +/turf/simulated/floor/carpet/retro_red + name = "red retro carpet" + icon_state = "retrocarpet_red" + initial_flooring = /decl/flooring/carpet/retro_red + /turf/simulated/floor/bluegrid name = "mainframe floor" icon = 'icons/turf/flooring/circuit.dmi' @@ -87,7 +102,6 @@ /turf/simulated/floor/wood/sif name = "alien wooden floor" - icon = 'icons/turf/flooring/wood.dmi' icon_state = "sifwood" initial_flooring = /decl/flooring/wood/sif @@ -98,6 +112,18 @@ break_tile() return ..() +/turf/simulated/floor/wood/tile + icon_state = "wood_tile" + initial_flooring = /decl/flooring/wood/tile + +/turf/simulated/floor/wood/panel + icon_state = "wood_panel" + initial_flooring = /decl/flooring/wood/panel + +/turf/simulated/floor/wood/parquet + icon_state = "wood_parquet" + initial_flooring = /decl/flooring/wood/parquet + /turf/simulated/floor/grass name = "grass patch" icon = 'icons/turf/flooring/grass.dmi' diff --git a/icons/turf/flooring/wood.dmi b/icons/turf/flooring/wood.dmi index eb913336735ad89f2098bc117824ae3a7f2cc43e..7f9b3aa567bfca7cda5c72384fb48b97b888490c 100644 GIT binary patch delta 4689 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 TqX-fJ000R9NkvXXu0mjfieXkg delta 2566 zcmaLZdpy&R8VB%cWfVpvN#^oHiV@D-85xr>A(s>?M2NXA>^puWxko9NR7eU#nOkyc zQ8Aa?ma)lgavO5VW*q0dUgverU+0hKc|LzU|32^6Q?0xyp_7EMu@F2gc^Cu&30k7f zF6~dkzlsmM-`6KHw?Uu-MVN~YC_Q;GM_ozle@NIOPS|Om$kaar7Kidxd-)sy{xYt9 zyuV#}*TFf|%q!#u);B2B_f8-P6q)~MpyhD8x^U;JF783!@^_%I0i7ILMZ}zG$dy54 z9OSTh7qEZ3-D!eF*F?)UG=`4gF-sLWcUIaOQ3Z}6r;D8{(iBr0AGQ->p46ubm-7AU zzRV0&OduH*yIeTO`E`hv+7}6IE%RHowJAWHq})P+KDAj08D;8FaZZzkw5ung^t3iZ zZ!i8Dqo#*qcLg%7DxVQv`$q&;h~%OAzz;xSv7Jd$BF5 z`rXt=KV_uou=p}_YMV#>_Yb2d2v`|)zfe^jkM7tTUv*BIku8~-=s`ajiRt>hmK3l& z9P;;h)3(N7x3Q`ibpT}dGM2A%e8)>l;_EqS@+9v?vS`x5W7=8vV30w?@0=AsA3`R0 z0^|K+SRFAdGLVLjl<~MIypYZmw3TV&5kRZzXo=-xprwjWBy#xf34s$66(_%H;>Zbk zyR#5y8wFuXTfKam0KqxV?X^X$9!(vmj$T2>Pf^YGta}OpX^;%ARucqbPH<{@VE*gW z$Uv_n(@2Nff&hn1IS`sd6YU9J7o*(=M^!v@93?4P=L*pJ?bDu)V(N@lVm;kNtA%9{Q)! zSw%6W85rZ$30ER%k=GIW;sOO`WVm#pj*|M;O>fyFH%_K@Tt{}#upl=VS3j+e3E2R~ zlAgLveJ*gIg;<4pMaert`=D`?@DvWpi!bBAjVqnOuQ1G1@Jem0+`C(b zP8s=|+Q}ka=h^mC+>GnXs`DYNfDd;hg~j$X{CVY%2U{I`MUd9z9)BJCA-s(XHK4w4 zg|qE$TbPYe7@0*FdN>OBP8Y70GDA6TY0W#hGK(s<1#QXnc-@+z+Xph@osv?5L8Fkc6EM4 z&w*_abpc82ycs#k@!n)3OulN9{86sp%^yQOpoo~~-$`$cFuu!nu-8(=aNa&Pq2c6Q z?F>uuBds|+WyH_LgT3= zE`!{UDr|yb{3L6u1p7{CLRJiDQF{a~`6l>RmSssrv%DqnUbZ$i*Y(Z&lEF~DioI6G z;{xx+Z$TM0YWCk9}?DhVC;ap$_~ENMYlMh&$vEw zd#!f%YP?sFqe3L2E77|gtY4Z!3QKj5qJF!>S_*QW!{YTAl{%|P??)` zO8HZB$|MoUt5`hk?EuNC((MrKY_lQo_Q=&P5B`f&51uUbU%OTm%uQmQJ-lT!)!?~s z%3!+n?cFO)n?qs53Px*^i(zVFe^O9NV-i!+GU>Zl@2-#X%X zS($bc)z`JRV|wCBx2bpsB4R%$%IOW8-jy` zRx-copq2|F+yNqy$cou4XATuk6Ve7Duy*yC-$5(~`>sQoX3_RPi|Favz?$#g<5bgq zAA&u$2ye&eN40Kd#lDZk56o9I(=G?l=`BT8=Rj<+?;@AGg zIucH%JCG#u5WSv9%h@jixalXOP-A*wRlA!Ao1F-Sc={Bx#qo zW^ta0#9e1G!iOMdD2DUkM^m5vf-E|w;3pW3!*X`p@lCxz27t#Td1^HctF zg6G_K~f>5G0iy(kU;hUN^&1$@#x`&vMfAu zo7r!O>1qB2zMp59nT4$e=(jFi<4Vm@A6?J!w%g*=%z-zBAG9!XzESiDiI^SkM~7YG YcH1SzQO|1L{bvniiLx=PH1&x4C&6eEssI20