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 1/7] 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 5e181d8af8..18b9a9867a 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 a730263afa..8ef6bc3789 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 3c17fb0acf..6a527ffb62 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 ba7429eec4..3b24236b2e 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 42bf1e780e..4f1d52dca8 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 From 78dfaf3b648be7383475d66990efe63b197fcb93 Mon Sep 17 00:00:00 2001 From: Heroman Date: Sat, 18 Jun 2022 15:55:48 +1000 Subject: [PATCH 2/7] Fixes ambigous genders being too ambigous --- code/__defines/mobs.dm | 4 +++ code/game/atoms.dm | 8 +++--- .../mob/living/carbon/human/examine.dm | 22 +++++----------- code/modules/mob/living/carbon/human/human.dm | 26 ++++++++++++++----- 4 files changed, 33 insertions(+), 27 deletions(-) diff --git a/code/__defines/mobs.dm b/code/__defines/mobs.dm index d9a5f7a847..df7a90632c 100644 --- a/code/__defines/mobs.dm +++ b/code/__defines/mobs.dm @@ -447,3 +447,7 @@ #define DEATHGASP_NO_MESSAGE "no message" #define RESIST_COOLDOWN 2 SECONDS + +#define VISIBLE_GENDER_FORCE_PLURAL 1 // Used by get_visible_gender to return PLURAL +#define VISIBLE_GENDER_FORCE_IDENTIFYING 2 // Used by get_visible_gender to return the mob's identifying gender +#define VISIBLE_GENDER_FORCE_BIOLOGICAL 3 // Used by get_visible_gender to return the mob's biological gender diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 3df1820fa9..b0703f63a4 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -27,7 +27,7 @@ // Overlays ///Our local copy of (non-priority) overlays without byond magic. Use procs in SSoverlays to manipulate - var/list/our_overlays + var/list/our_overlays ///Overlays that should remain on top and not normally removed when using cut_overlay functions, like c4. var/list/priority_overlays ///vis overlays managed by SSvis_overlays to automaticaly turn them like other overlays @@ -35,7 +35,7 @@ ///Our local copy of filter data so we can add/remove it var/list/filter_data - + //Detective Work, used for the duplicate data points kept in the scanners var/list/original_atom // Track if we are already had initialize() called to prevent double-initialization. @@ -681,7 +681,7 @@ if(!isnull(.)) datum_flags |= DF_VAR_EDITED return - + . = ..() /atom/proc/atom_say(message) @@ -716,7 +716,7 @@ . = ..() SEND_SIGNAL(src, COMSIG_ATOM_EXITED, AM, new_loc) -/atom/proc/get_visible_gender() +/atom/proc/get_visible_gender(mob/user, force) return gender /atom/proc/interact(mob/user) diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index f2e4ffd67a..b7b494ae65 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -76,22 +76,12 @@ BP_L_LEG = skip_body & EXAMINE_SKIPLEGS, BP_R_LEG = skip_body & EXAMINE_SKIPLEGS) - var/datum/gender/T = gender_datums[get_visible_gender()] + var/gender_hidden = (skip_gear & EXAMINE_SKIPJUMPSUIT) && (skip_body & EXAMINE_SKIPFACE) + var/gender_key = get_visible_gender(user, gender_hidden) - if((skip_gear & EXAMINE_SKIPJUMPSUIT) && (skip_body & EXAMINE_SKIPFACE)) //big suits/masks/helmets make it hard to tell their gender - T = gender_datums[PLURAL] - - else if(species && species.ambiguous_genders) - if(ishuman(user)) - var/mob/living/carbon/human/H = user - if(H.species && !istype(species, H.species)) - T = gender_datums[PLURAL]// Species with ambiguous_genders will not show their true gender upon examine if the examiner is not also the same species. - if(!(issilicon(user) || isobserver(user))) // Ghosts and borgs are all knowing - T = gender_datums[PLURAL] - - if(!T) - // Just in case someone VVs the gender to something strange. It'll runtime anyway when it hits usages, better to CRASH() now with a helpful message. - CRASH("Gender datum was null; key was '[((skip_gear & EXAMINE_SKIPJUMPSUIT) && (skip_body & EXAMINE_SKIPFACE)) ? PLURAL : gender]'") + var/datum/gender/T = gender_datums[gender_key] + if (!T) + CRASH({"Null gender datum on examine: mob="[src]",hidden="[gender_hidden]",key="[gender_key]",bio="[gender]",id="[identifying_gender]""}) var/name_ender = "" if(!((skip_gear & EXAMINE_SKIPJUMPSUIT) && (skip_body & EXAMINE_SKIPFACE))) @@ -144,7 +134,7 @@ LAZYADD(pocket_msg, r_store_message) if(LAZYLEN(pocket_msg)) tie_msg += " Near the waist it has [english_list(pocket_msg)]." - + if(w_uniform.blood_DNA) msg += "[T.He] [T.is] wearing [bicon(w_uniform)] [w_uniform.gender==PLURAL?"some":"a"] [(w_uniform.blood_color != SYNTH_BLOOD_COLOUR) ? "blood" : "oil"]-stained [w_uniform.name]![tie_msg]" else diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 26e5963958..9c1c64d105 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -854,13 +854,25 @@ remoteview_target = null reset_view(0) -/mob/living/carbon/human/get_visible_gender() - if(wear_suit && wear_suit.flags_inv & HIDEJUMPSUIT && ((head && head.flags_inv & HIDEMASK) || wear_mask)) - return PLURAL //plural is the gender-neutral default - if(species) - if(species.ambiguous_genders) - return PLURAL // regardless of what you're wearing, your gender can't be figured out - return get_gender() +/mob/living/carbon/human/get_visible_gender(mob/user, force) + switch(force) + if(VISIBLE_GENDER_FORCE_PLURAL) + return PLURAL + if(VISIBLE_GENDER_FORCE_IDENTIFYING) + return get_gender() + if(VISIBLE_GENDER_FORCE_BIOLOGICAL) + return gender + else + if((wear_mask || (head?.flags_inv & HIDEMASK)) && (wear_suit?.flags_inv & HIDEJUMPSUIT)) + return PLURAL + if(species?.ambiguous_genders && user) + if(ishuman(user)) + var/mob/living/carbon/human/human = user + if(!istype(human.species, species)) + return PLURAL + else if(!isobserver(user) && !issilicon(user)) + return PLURAL + return get_gender() /mob/living/carbon/human/proc/increase_germ_level(n) if(gloves) From b0be07076fb0434e005c6bcf1bd09d18e3f95c78 Mon Sep 17 00:00:00 2001 From: Heroman Date: Sat, 18 Jun 2022 16:45:27 +1000 Subject: [PATCH 3/7] Fixes Absorbed Hold messages causing blank spaces to absorbed prey if you had none set --- code/modules/vore/eating/bellymodes_vr.dm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/code/modules/vore/eating/bellymodes_vr.dm b/code/modules/vore/eating/bellymodes_vr.dm index 5a92072756..3435541f19 100644 --- a/code/modules/vore/eating/bellymodes_vr.dm +++ b/code/modules/vore/eating/bellymodes_vr.dm @@ -124,7 +124,8 @@ formatted_message = replacetext(formatted_message, "%pred", owner) formatted_message = replacetext(formatted_message, "%prey", M) formatted_message = replacetext(formatted_message, "%countprey", absorbed_count) - to_chat(M, "[formatted_message]") + if(formatted_message) + to_chat(M, "[formatted_message]") else if(digest_mode == DM_DIGEST && !M.digestable) EL = emote_lists[DM_HOLD] // Use Hold's emote list if we're indigestible @@ -136,7 +137,8 @@ formatted_message = replacetext(formatted_message, "%prey", M) formatted_message = replacetext(formatted_message, "%countprey", living_count) formatted_message = replacetext(formatted_message, "%count", contents.len) - to_chat(M, "[formatted_message]") + if(formatted_message) + to_chat(M, "[formatted_message]") if(to_update) updateVRPanels() From c4fc0f570339fc89855880c0a50ee77f92bb1fde Mon Sep 17 00:00:00 2001 From: Foopwo Date: Sat, 18 Jun 2022 07:17:44 -0700 Subject: [PATCH 4/7] Makes security cyborg taser cost the same charge as security's tasers. --- code/modules/projectiles/guns/energy/stun_vr.dm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/code/modules/projectiles/guns/energy/stun_vr.dm b/code/modules/projectiles/guns/energy/stun_vr.dm index b0bfd53e46..3ddc43986c 100644 --- a/code/modules/projectiles/guns/energy/stun_vr.dm +++ b/code/modules/projectiles/guns/energy/stun_vr.dm @@ -3,4 +3,7 @@ fire_delay = 4 /obj/item/weapon/gun/energy/stunrevolver - charge_cost = 400 \ No newline at end of file + charge_cost = 400 + +/obj/item/weapon/gun/energy/taser/mounted/cyborg + charge_cost = 160 \ No newline at end of file From ad524bdd1e78be58034e562f9f387804cb0f7932 Mon Sep 17 00:00:00 2001 From: Heroman Date: Sun, 19 Jun 2022 07:24:07 +1000 Subject: [PATCH 5/7] Fixes tail layering bugs --- .../mob/living/carbon/human/human_movement.dm | 4 ++-- .../mob/living/carbon/human/update_icons.dm | 14 ++++++++++---- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index 9293eec473..c3eedab5ec 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -170,7 +170,7 @@ // Wind makes it easier or harder to move, depending on if you're with or against the wind. // I don't like that so I'm commenting it out :) - // VOREstation Edit Start + // VOREstation Edit Start /* if((T.is_outdoors()) && (T.z <= SSplanets.z_to_planet.len)) var/datum/planet/P = SSplanets.z_to_planet[z] @@ -292,5 +292,5 @@ /mob/living/carbon/human/set_dir(var/new_dir) . = ..() - if(. && species.tail) + if(. && (species.tail || tail_style)) update_tail_showing() \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 248439381c..e793180f16 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -90,7 +90,7 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon() #define L_HAND_LAYER 28 //Left-hand item #define R_HAND_LAYER 29 //Right-hand item #define WING_LAYER 30 //Wings or protrusions over the suit. -#define TAIL_LAYER_ALT 31 //Modified tail-sprite layer. Tend to be larger. +#define TAIL_NORTH_LAYER_ALT 31 //Modified tail-sprite layer. Tend to be larger. #define MODIFIER_EFFECTS_LAYER 32 //Effects drawn by modifiers #define FIRE_LAYER 33 //'Mob on fire' overlay layer #define MOB_WATER_LAYER 34 //'Mob submerged' overlay layer @@ -98,7 +98,7 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon() #define TOTAL_LAYERS 35 //VOREStation edit. <---- KEEP THIS UPDATED, should always equal the highest number here, used to initialize a list. ////////////////////////////////// -#define GET_TAIL_LAYER (dir == NORTH ? TAIL_NORTH_LAYER : TAIL_SOUTH_LAYER) +#define GET_TAIL_LAYER (dir == SOUTH ? TAIL_SOUTH_LAYER : TAIL_NORTH_LAYER) /mob/living/carbon/human var/list/overlays_standing[TOTAL_LAYERS] @@ -836,7 +836,7 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon() suit_sprite = INV_SUIT_DEF_ICON var/icon/c_mask = null - var/tail_is_rendered = (overlays_standing[TAIL_NORTH_LAYER] || overlays_standing[TAIL_SOUTH_LAYER]) + var/tail_is_rendered = (overlays_standing[TAIL_NORTH_LAYER] || overlays_standing[TAIL_NORTH_LAYER_ALT] || overlays_standing[TAIL_SOUTH_LAYER]) var/valid_clip_mask = tail_style?.clip_mask if(tail_is_rendered && valid_clip_mask && !(istype(suit) && suit.taurized)) //Clip the lower half of the suit off using the tail's clip mask for taurs since taur bodies aren't hidden. @@ -954,9 +954,12 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon() return remove_layer(TAIL_NORTH_LAYER) + remove_layer(TAIL_NORTH_LAYER_ALT) remove_layer(TAIL_SOUTH_LAYER) - var tail_layer = GET_TAIL_LAYER + var/tail_layer = GET_TAIL_LAYER + if(tail_alt && tail_layer == TAIL_NORTH_LAYER) + tail_layer = TAIL_NORTH_LAYER_ALT var/image/tail_image = get_tail_image() if(tail_image) @@ -996,9 +999,12 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon() /mob/living/carbon/human/proc/set_tail_state(var/t_state) var/tail_layer = GET_TAIL_LAYER + if(tail_alt && tail_layer == TAIL_NORTH_LAYER) + tail_layer = TAIL_NORTH_LAYER_ALT var/image/tail_overlay = overlays_standing[tail_layer] remove_layer(TAIL_NORTH_LAYER) + remove_layer(TAIL_NORTH_LAYER_ALT) remove_layer(TAIL_SOUTH_LAYER) if(tail_overlay) From 380347d3a57f7b7ee644bd4b20adf902cd21b21b Mon Sep 17 00:00:00 2001 From: Heroman Date: Sun, 19 Jun 2022 08:51:12 +1000 Subject: [PATCH 6/7] Gives all voremobs 'nom from above' ability. --- code/modules/mob/living/simple_mob/simple_mob_vr.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/mob/living/simple_mob/simple_mob_vr.dm b/code/modules/mob/living/simple_mob/simple_mob_vr.dm index dae0fe6294..a2d7d216bf 100644 --- a/code/modules/mob/living/simple_mob/simple_mob_vr.dm +++ b/code/modules/mob/living/simple_mob/simple_mob_vr.dm @@ -213,6 +213,7 @@ // Since they have bellies, add verbs to toggle settings on them. verbs |= /mob/living/simple_mob/proc/toggle_digestion verbs |= /mob/living/simple_mob/proc/toggle_fancygurgle + verbs |= /mob/living/proc/vertical_nom //A much more detailed version of the default /living implementation var/obj/belly/B = new /obj/belly(src) From f7f9d4f5f0071204ecbee45b856572952df41a6a Mon Sep 17 00:00:00 2001 From: VerySoft Date: Sat, 18 Jun 2022 20:31:11 -0400 Subject: [PATCH 7/7] Fixy --- code/datums/supplypacks/materials.dm | 11 ---- .../items/stacks/tiles/fifty_spawner_tiles.dm | 11 ---- .../objects/items/stacks/tiles/tile_types.dm | 12 ++-- code/game/turfs/flooring/flooring.dm | 39 +++++------- code/game/turfs/flooring/flooring_premade.dm | 60 ++++++++++++++---- code/game/turfs/simulated/floor_icon.dm | 5 +- icons/obj/stacks.dmi | Bin 69993 -> 72077 bytes icons/turf/flooring/carpet.dmi | Bin 55306 -> 57502 bytes icons/turf/flooring/wood.dmi | Bin 5297 -> 5294 bytes icons/turf/flooring/wood_vr.dmi | Bin 2328 -> 2327 bytes maps/groundbase/gb-z2.dmm | 20 +++--- maps/stellardelight/overmap.dmm | 2 +- maps/stellardelight/stellar_delight3.dmm | 2 +- 13 files changed, 83 insertions(+), 79 deletions(-) diff --git a/code/datums/supplypacks/materials.dm b/code/datums/supplypacks/materials.dm index 18b9a9867a..45951c516d 100644 --- a/code/datums/supplypacks/materials.dm +++ b/code/datums/supplypacks/materials.dm @@ -66,16 +66,6 @@ /obj/fiftyspawner/tealcarpet ) -<<<<<<< HEAD -/datum/supply_pack/materials/arcade_carpet - name = "Retro carpets" - containertype = /obj/structure/closet/crate/grayson - containername = "Retro carpets crate" - cost = 15 - contains = list( - /obj/fiftyspawner/decocarpet, - /obj/fiftyspawner/retrocarpet -======= /datum/supply_pack/materials/retrocarpet name = "Retro carpet" containertype = /obj/structure/closet/crate/grayson @@ -85,7 +75,6 @@ /obj/fiftyspawner/geocarpet, /obj/fiftyspawner/retrocarpet, /obj/fiftyspawner/retrocarpet_red ->>>>>>> f7cc15b0988... Merge pull request #8556 from Cerebulon/arcadecarpets ) /datum/supply_pack/materials/linoleum 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 8ef6bc3789..6e805411a4 100644 --- a/code/game/objects/items/stacks/tiles/fifty_spawner_tiles.dm +++ b/code/game/objects/items/stacks/tiles/fifty_spawner_tiles.dm @@ -28,16 +28,6 @@ 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 - -/obj/fiftyspawner/retrocarpet - 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 @@ -50,7 +40,6 @@ 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 6a527ffb62..baa29fb477 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -75,6 +75,11 @@ desc = "An easy to fit wooden floor tile. It's blue!" icon_state = "tile-sifwood" +/obj/item/stack/tile/wood/alt + name = "wood floor tile" + singular_name = "wood floor tile" + icon_state = "tile-wood_tile" + /obj/item/stack/tile/wood/parquet name = "parquet wood floor tile" singular_name = "parquet wood floor tile" @@ -124,8 +129,6 @@ 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!" @@ -139,7 +142,6 @@ 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 @@ -154,10 +156,6 @@ icon_state = "tile-carpet" /obj/item/stack/tile/carpet/oracarpet icon_state = "tile-carpet" -/obj/item/stack/tile/carpet/deco - icon_state = "tile-carpet-deco" -/obj/item/stack/tile/carpet/retro - icon_state = "tile-carpet-retro" /obj/item/stack/tile/floor name = "floor tile" diff --git a/code/game/turfs/flooring/flooring.dm b/code/game/turfs/flooring/flooring.dm index 3b24236b2e..15670da8e3 100644 --- a/code/game/turfs/flooring/flooring.dm +++ b/code/game/turfs/flooring/flooring.dm @@ -321,16 +321,6 @@ 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" - build_type = /obj/item/stack/tile/carpet/deco - flags = TURF_REMOVE_CROWBAR | TURF_CAN_BURN - -/decl/flooring/carpet/retro - name = "retro carpet" -======= /decl/flooring/carpet/geo name = "geometric carpet" icon_base = "geocarpet" @@ -339,20 +329,16 @@ var/list/flooring_types /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." @@ -516,23 +502,30 @@ 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/alt + icon = 'icons/turf/flooring/wood.dmi' + icon_base = "wood" + build_type = /obj/item/stack/tile/wood/alt -/decl/flooring/wood/parquet +/decl/flooring/wood/alt/panel + desc = "Polished wooden panels." + icon = 'icons/turf/flooring/wood.dmi' + icon_base = "wood_panel" + has_damage_range = 2 + build_type = /obj/item/stack/tile/wood/panel + +/decl/flooring/wood/alt/parquet desc = "Polished wooden tiles." + icon = 'icons/turf/flooring/wood.dmi' icon_base = "wood_parquet" build_type = /obj/item/stack/tile/wood/parquet - flags = TURF_REMOVE_CROWBAR | TURF_CAN_BURN -/decl/flooring/wood/tile +/decl/flooring/wood/alt/tile desc = "Polished wooden tiles." + icon = 'icons/turf/flooring/wood.dmi' icon_base = "wood_tile" + has_damage_range = 2 build_type = /obj/item/stack/tile/wood/tile - flags = TURF_REMOVE_CROWBAR | TURF_CAN_BURN /decl/flooring/reinforced name = "reinforced floor" diff --git a/code/game/turfs/flooring/flooring_premade.dm b/code/game/turfs/flooring/flooring_premade.dm index 4f1d52dca8..a8e25b2e63 100644 --- a/code/game/turfs/flooring/flooring_premade.dm +++ b/code/game/turfs/flooring/flooring_premade.dm @@ -19,10 +19,10 @@ icon_state = "tealcarpet" initial_flooring = /decl/flooring/carpet/tealcarpet -/turf/simulated/floor/carpet/deco +/turf/simulated/floor/carpet/geo name = "deco carpet" icon_state = "decocarpet" - initial_flooring = /decl/flooring/carpet/deco + initial_flooring = /decl/flooring/carpet/geo /turf/simulated/floor/carpet/retro name = "retro carpet" @@ -94,11 +94,11 @@ initial_flooring = /decl/flooring/wood /turf/simulated/floor/wood/broken - icon_state = "wood_broken0" // This gets changed when spawned. + icon_state = "wood-broken0" // This gets changed when spawned. -/turf/simulated/floor/wood/broken/Initialize() +/turf/simulated/floor/wood/broken/LateInitialize() + . = ..() break_tile() - return ..() /turf/simulated/floor/wood/sif name = "alien wooden floor" @@ -106,23 +106,55 @@ initial_flooring = /decl/flooring/wood/sif /turf/simulated/floor/wood/sif/broken - icon_state = "sifwood_broken0" // This gets changed when spawned. + icon_state = "sifwood-broken0" // This gets changed when spawned. -/turf/simulated/floor/wood/sif/broken/Initialize() +/turf/simulated/floor/wood/sif/broken/LateInitialize() + . = ..() break_tile() - return ..() -/turf/simulated/floor/wood/tile +/turf/simulated/floor/wood/alt + icon = 'icons/turf/flooring/wood.dmi' + initial_flooring = /decl/flooring/wood/alt + +/turf/simulated/floor/wood/alt/broken + icon_state = "wood-broken0" // This gets changed when spawned. + +/turf/simulated/floor/wood/alt/broken/LateInitialize() + . = ..() + break_tile() + +/turf/simulated/floor/wood/alt/tile icon_state = "wood_tile" - initial_flooring = /decl/flooring/wood/tile + initial_flooring = /decl/flooring/wood/alt/tile -/turf/simulated/floor/wood/panel +/turf/simulated/floor/wood/alt/tile/broken + icon_state = "wood_tile-broken0" // This gets changed when spawned. + +/turf/simulated/floor/wood/alt/tile/broken/LateInitialize() + . = ..() + break_tile() + +/turf/simulated/floor/wood/alt/panel icon_state = "wood_panel" - initial_flooring = /decl/flooring/wood/panel + initial_flooring = /decl/flooring/wood/alt/panel -/turf/simulated/floor/wood/parquet +/turf/simulated/floor/wood/alt/panel/broken + icon_state = "wood_panel-broken0" // This gets changed when spawned. + +/turf/simulated/floor/wood/alt/panel/broken/LateInitialize() + . = ..() + break_tile() + +/turf/simulated/floor/wood/alt/parquet icon_state = "wood_parquet" - initial_flooring = /decl/flooring/wood/parquet + initial_flooring = /decl/flooring/wood/alt/parquet + +/turf/simulated/floor/wood/alt/parquet/broken + icon_state = "wood_parquet-broken0" // This gets changed when spawned. + +/turf/simulated/floor/wood/alt/parquet/broken/LateInitialize() + . = ..() + break_tile() /turf/simulated/floor/grass name = "grass patch" diff --git a/code/game/turfs/simulated/floor_icon.dm b/code/game/turfs/simulated/floor_icon.dm index 420d8628b5..82153557a8 100644 --- a/code/game/turfs/simulated/floor_icon.dm +++ b/code/game/turfs/simulated/floor_icon.dm @@ -75,7 +75,10 @@ var/image/no_ceiling_image = null icon_state = "dmg[rand(1,4)]" else if(flooring) if(!isnull(broken) && (flooring.flags & TURF_CAN_BREAK)) - add_overlay(flooring.get_flooring_overlay("[flooring.icon_base]-broken-[broken]","broken[broken]")) + if(istype(src, /turf/simulated/floor/wood)) + add_overlay(flooring.get_flooring_overlay("[flooring.icon_base]-broken-[broken]","[flooring.icon_base]-broken[broken]")) + else + add_overlay(flooring.get_flooring_overlay("[flooring.icon_base]-broken-[broken]","broken[broken]")) if(!isnull(burnt) && (flooring.flags & TURF_CAN_BURN)) add_overlay(flooring.get_flooring_overlay("[flooring.icon_base]-burned-[burnt]","burned[burnt]")) diff --git a/icons/obj/stacks.dmi b/icons/obj/stacks.dmi index 6a70a2982d13675b45dc2bf387361b17a887103a..67a370b2197af26306f3c01e5b3c61a2c81d9665 100644 GIT binary patch delta 12145 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 delta 10057 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 delta 7131 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 AGXMYp diff --git a/icons/turf/flooring/wood.dmi b/icons/turf/flooring/wood.dmi index 7f9b3aa567bfca7cda5c72384fb48b97b888490c..afec20c85158dde32014fe86466aba155988fb04 100644 GIT binary patch delta 268 zcmV+n0rUQ`DXuB7;{t#5dQ@0+L}hbha%pgMX>V=-0C=30mCFu-Fc3x8^eY-zYk29- zje!^z@(Tt-kw&E2R{4EVOrT9nXLgw*se delta 271 zcmV+q0r38=DX}TA;{t#8dQ@0+L}hbha%pgMX>V=-0C=38mA?*xFc61l`VQoJf7ys V^i_NTVY1V=-0C=30)4vMBFc8P_IeCiE&PxC3 z<{~Z9!M;N!sX3$#B*DJE!MfZa*W2y~pXm#it7~`b2i4wt`8Ga)Thv80$3lt~bhK&I zl@!*%)5dLtI7XAsY;{g&QfTlY%~FcVkF(isgbokyUS=scxa2qBii2woZaDbF!DkW& yn06)px!skqr$b{;x5l2%jXhl)dpbJyf4k?Z8`|$9d;oyC=Q}^EpxCn|0`mq*Xku>w delta 197 zcmV;$06PDd5||ROZUKL;dQ@0+L}hbha%pgMX>V=-0C=2@(!UDAFc8P_IeCiE?$Up{ zxk!t2u&+=mxtbttAPM&M4OWC3cOqS| zGppa%jogmd(><}LyJAoG#eSqi;|Fwb?Ei+(RX4PsZ~g{P=i9DqK_^|aBm(mWGe2RW diff --git a/maps/groundbase/gb-z2.dmm b/maps/groundbase/gb-z2.dmm index b9e9767171..83b765918e 100644 --- a/maps/groundbase/gb-z2.dmm +++ b/maps/groundbase/gb-z2.dmm @@ -466,7 +466,7 @@ /turf/simulated/floor/lino, /area/groundbase/civilian/chapel/office) "bl" = ( -/turf/simulated/floor/carpet/deco, +/turf/simulated/floor/carpet/geo, /area/groundbase/civilian/kitchen/backroom) "bn" = ( /obj/machinery/door/airlock{ @@ -2368,7 +2368,7 @@ /obj/machinery/light{ dir = 4 }, -/turf/simulated/floor/carpet/deco, +/turf/simulated/floor/carpet/geo, /area/groundbase/civilian/kitchen/backroom) "gZ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -2464,7 +2464,7 @@ /obj/structure/bed/chair/sofa/black, /obj/machinery/alarm, /obj/effect/landmark/start/chef, -/turf/simulated/floor/carpet/deco, +/turf/simulated/floor/carpet/geo, /area/groundbase/civilian/kitchen/backroom) "hp" = ( /obj/structure/bed/chair/sofa/pew/left{ @@ -4235,7 +4235,7 @@ /obj/machinery/light{ dir = 4 }, -/turf/simulated/floor/carpet/deco, +/turf/simulated/floor/carpet/geo, /area/groundbase/civilian/kitchen/backroom) "mo" = ( /obj/structure/table/woodentable, @@ -4486,7 +4486,7 @@ /area/groundbase/civilian/janitor) "nf" = ( /obj/structure/table/wooden_reinforced, -/turf/simulated/floor/carpet/deco, +/turf/simulated/floor/carpet/geo, /area/groundbase/civilian/kitchen/backroom) "ng" = ( /obj/machinery/camera/network/research{ @@ -10491,7 +10491,7 @@ /area/groundbase/medical/psych) "EW" = ( /obj/structure/bed/chair/sofa/right/black, -/turf/simulated/floor/carpet/deco, +/turf/simulated/floor/carpet/geo, /area/groundbase/civilian/kitchen/backroom) "EX" = ( /obj/structure/closet/secure_closet/quartermaster, @@ -13698,7 +13698,7 @@ /obj/structure/bed/chair/sofa/black{ dir = 8 }, -/turf/simulated/floor/carpet/deco, +/turf/simulated/floor/carpet/geo, /area/groundbase/civilian/kitchen/backroom) "NU" = ( /obj/structure/sign/painting/library_secure{ @@ -13797,7 +13797,7 @@ /obj/structure/bed/chair/sofa/left/black{ dir = 8 }, -/turf/simulated/floor/carpet/deco, +/turf/simulated/floor/carpet/geo, /area/groundbase/civilian/kitchen/backroom) "Oi" = ( /obj/structure/disposalpipe/tagger{ @@ -13819,7 +13819,7 @@ layer = 3.3; pixel_y = -27 }, -/turf/simulated/floor/carpet/deco, +/turf/simulated/floor/carpet/geo, /area/groundbase/civilian/kitchen/backroom) "Ok" = ( /obj/machinery/power/apc{ @@ -17543,7 +17543,7 @@ /area/groundbase/cargo/office) "Zi" = ( /obj/machinery/firealarm, -/turf/simulated/floor/carpet/deco, +/turf/simulated/floor/carpet/geo, /area/groundbase/civilian/kitchen/backroom) "Zk" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, diff --git a/maps/stellardelight/overmap.dmm b/maps/stellardelight/overmap.dmm index 2890f0159b..8edb64c502 100644 --- a/maps/stellardelight/overmap.dmm +++ b/maps/stellardelight/overmap.dmm @@ -9,7 +9,7 @@ /turf/unsimulated/map, /area/overmap) "I" = ( -/turf/simulated/floor/carpet/deco, +/turf/simulated/floor/carpet/geo, /area/space) "J" = ( /obj/effect/overmap/bluespace_rift, diff --git a/maps/stellardelight/stellar_delight3.dmm b/maps/stellardelight/stellar_delight3.dmm index 067cf7585b..9ef1441ea3 100644 --- a/maps/stellardelight/stellar_delight3.dmm +++ b/maps/stellardelight/stellar_delight3.dmm @@ -8114,7 +8114,7 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 1 }, -/turf/simulated/floor/carpet/deco, +/turf/simulated/floor/carpet/geo, /area/ai) "Dy" = ( /obj/machinery/atmospherics/pipe/simple/hidden/black,