diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_greed.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_greed.dmm index df450b9803c..c140f4d827f 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_greed.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_greed.dmm @@ -14,15 +14,11 @@ /obj/machinery/light/small{ dir = 1 }, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/ruin/powered/greed) "f" = ( /obj/structure/cursed_slot_machine, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/ruin/powered/greed) "g" = ( /obj/structure/table/wood/poker, @@ -30,28 +26,20 @@ /obj/machinery/light/small{ dir = 1 }, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/ruin/powered/greed) "h" = ( /obj/structure/table/wood/poker, /obj/item/coin/diamond, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/ruin/powered/greed) "i" = ( -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/ruin/powered/greed) "j" = ( /obj/structure/table/wood/poker, /obj/item/coin/adamantine, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/ruin/powered/greed) "k" = ( /obj/machinery/computer/arcade/battle{ diff --git a/_maps/RandomRuins/SpaceRuins/spacehotel.dmm b/_maps/RandomRuins/SpaceRuins/spacehotel.dmm index 67694284b5a..9fed12240b9 100644 --- a/_maps/RandomRuins/SpaceRuins/spacehotel.dmm +++ b/_maps/RandomRuins/SpaceRuins/spacehotel.dmm @@ -1828,9 +1828,7 @@ /turf/open/floor/carpet, /area/ruin/space/has_grav/hotel/dock) "gg" = ( -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/ruin/space/has_grav/hotel/dock) "gh" = ( /obj/item/kirbyplants{ diff --git a/_maps/RandomZLevels/Academy.dmm b/_maps/RandomZLevels/Academy.dmm index 6043b0ea763..e8bc0fa0bce 100644 --- a/_maps/RandomZLevels/Academy.dmm +++ b/_maps/RandomZLevels/Academy.dmm @@ -560,9 +560,7 @@ /turf/open/floor/plasteel, /area/awaymission/academy/headmaster) "cu" = ( -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/awaymission/academy/headmaster) "cv" = ( /obj/machinery/door/window{ @@ -2669,9 +2667,7 @@ }, /area/awaymission/academy/headmaster) "kx" = ( -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/awaymission/academy/academygate) "ky" = ( /obj/machinery/door/poddoor/shutters{ diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm index 6b5e6963f27..b74338e19a0 100644 --- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm +++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm @@ -22777,9 +22777,7 @@ /turf/open/floor/plasteel/dark, /area/chapel/main) "baA" = ( -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/chapel/main) "baB" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index 5abae440de7..8da5d360d40 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -19878,27 +19878,21 @@ /obj/item/radio/intercom{ pixel_y = 26 }, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/crew_quarters/bar) "bap" = ( /obj/machinery/computer/slot_machine, /obj/machinery/airalarm{ pixel_y = 24 }, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/crew_quarters/bar) "baq" = ( /obj/machinery/computer/arcade, /obj/structure/noticeboard{ pixel_y = 32 }, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/crew_quarters/bar) "bar" = ( /obj/structure/extinguisher_cabinet{ @@ -20284,17 +20278,13 @@ /area/crew_quarters/bar) "bbo" = ( /obj/structure/table/wood/fancy, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/crew_quarters/bar) "bbp" = ( /obj/structure/chair/wood{ dir = 8 }, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/crew_quarters/bar) "bbq" = ( /obj/effect/turf_decal/tile/neutral{ @@ -20314,17 +20304,13 @@ /obj/structure/chair/wood{ dir = 4 }, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/crew_quarters/bar) "bbs" = ( /obj/item/cane, /obj/item/clothing/head/that, /obj/structure/table/wood/fancy, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/crew_quarters/bar) "bbt" = ( /obj/structure/disposalpipe/segment, @@ -20342,22 +20328,16 @@ "bbv" = ( /obj/structure/chair/stool, /obj/item/trash/can, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/crew_quarters/bar) "bbw" = ( /obj/effect/landmark/start/assistant, /obj/structure/chair/stool, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/crew_quarters/bar) "bbx" = ( /obj/structure/chair/stool, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/crew_quarters/bar) "bby" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -20621,17 +20601,13 @@ pixel_x = -3; pixel_y = 5 }, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/crew_quarters/bar) "bcq" = ( /obj/item/clothing/glasses/monocle, /obj/item/instrument/recorder, /obj/structure/table/wood/fancy, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/lone, /area/crew_quarters/bar) "bcr" = ( /obj/structure/disposalpipe/segment, diff --git a/code/__HELPERS/icon_smoothing.dm b/code/__HELPERS/icon_smoothing.dm index 810c4f1c32b..f4b2caa3e46 100644 --- a/code/__HELPERS/icon_smoothing.dm +++ b/code/__HELPERS/icon_smoothing.dm @@ -337,35 +337,44 @@ DEFINE_BITFIELD(smoothing_junction, list( if(new_junction & WEST_JUNCTION) SET_ADJ_IN_DIR(src, new_junction, SOUTHWEST, SOUTHWEST_JUNCTION) - if(. & EAST_JUNCTION) + if(new_junction & EAST_JUNCTION) SET_ADJ_IN_DIR(src, new_junction, SOUTHEAST, SOUTHEAST_JUNCTION) smoothing_junction = new_junction - icon_state = "[base_icon_state]-[new_junction]" + set_smoothed_icon_state(.) -/turf/closed/bitmask_smooth() - . = ..() - // No diagonal corner behavior or no changes since last smoothing? - if(!(smoothing_flags & SMOOTH_DIAGONAL_CORNERS) || . == smoothing_junction) - return - switch(smoothing_junction) - if(NORTH_JUNCTION|WEST_JUNCTION, NORTH_JUNCTION|EAST_JUNCTION, SOUTH_JUNCTION|WEST_JUNCTION, SOUTH_JUNCTION|EAST_JUNCTION, NORTH_JUNCTION|WEST_JUNCTION|NORTHWEST_JUNCTION, NORTH_JUNCTION|EAST_JUNCTION|NORTHEAST_JUNCTION, SOUTH_JUNCTION|WEST_JUNCTION|SOUTHWEST_JUNCTION, SOUTH_JUNCTION|EAST_JUNCTION|SOUTHEAST_JUNCTION) - icon_state = "[base_icon_state]-[smoothing_junction]-d" - if(!fixed_underlay) // Mutable underlays? - var/junction_dir = reverse_ndir(smoothing_junction) - var/turned_adjacency = REVERSE_DIR(junction_dir) - var/turf/neighbor_turf = get_step(src, turned_adjacency & (NORTH|SOUTH)) - var/mutable_appearance/underlay_appearance = mutable_appearance(layer = TURF_LAYER, plane = FLOOR_PLANE) - if(!neighbor_turf.get_smooth_underlay_icon(underlay_appearance, src, turned_adjacency)) - neighbor_turf = get_step(src, turned_adjacency & (EAST|WEST)) +///Changes the icon state based on the new junction bitmask. +/atom/proc/set_smoothed_icon_state(old_junction) + icon_state = "[base_icon_state]-[smoothing_junction]" + + +/turf/closed/set_smoothed_icon_state(old_junction) + if(smoothing_flags & SMOOTH_DIAGONAL_CORNERS && old_junction != smoothing_junction) + switch(smoothing_junction) + if(NORTH_JUNCTION|WEST_JUNCTION, NORTH_JUNCTION|EAST_JUNCTION, SOUTH_JUNCTION|WEST_JUNCTION, SOUTH_JUNCTION|EAST_JUNCTION, NORTH_JUNCTION|WEST_JUNCTION|NORTHWEST_JUNCTION, NORTH_JUNCTION|EAST_JUNCTION|NORTHEAST_JUNCTION, SOUTH_JUNCTION|WEST_JUNCTION|SOUTHWEST_JUNCTION, SOUTH_JUNCTION|EAST_JUNCTION|SOUTHEAST_JUNCTION) + icon_state = "[base_icon_state]-[smoothing_junction]-d" + if(!fixed_underlay) // Mutable underlays? + var/junction_dir = reverse_ndir(smoothing_junction) + var/turned_adjacency = REVERSE_DIR(junction_dir) + var/turf/neighbor_turf = get_step(src, turned_adjacency & (NORTH|SOUTH)) + var/mutable_appearance/underlay_appearance = mutable_appearance(layer = TURF_LAYER, plane = FLOOR_PLANE) if(!neighbor_turf.get_smooth_underlay_icon(underlay_appearance, src, turned_adjacency)) - neighbor_turf = get_step(src, turned_adjacency) + neighbor_turf = get_step(src, turned_adjacency & (EAST|WEST)) if(!neighbor_turf.get_smooth_underlay_icon(underlay_appearance, src, turned_adjacency)) - if(!get_smooth_underlay_icon(underlay_appearance, src, turned_adjacency)) //if all else fails, ask our own turf - underlay_appearance.icon = DEFAULT_UNDERLAY_ICON - underlay_appearance.icon_state = DEFAULT_UNDERLAY_ICON_STATE - underlays = list(underlay_appearance) + neighbor_turf = get_step(src, turned_adjacency) + if(!neighbor_turf.get_smooth_underlay_icon(underlay_appearance, src, turned_adjacency)) + if(!get_smooth_underlay_icon(underlay_appearance, src, turned_adjacency)) //if all else fails, ask our own turf + underlay_appearance.icon = DEFAULT_UNDERLAY_ICON + underlay_appearance.icon_state = DEFAULT_UNDERLAY_ICON_STATE + underlays = list(underlay_appearance) + return ..() + + +/turf/open/floor/set_smoothed_icon_state(old_junction) + if(broken || burnt) + return + return ..() //Icon smoothing helpers diff --git a/code/game/objects/effects/decals/cleanable/misc.dm b/code/game/objects/effects/decals/cleanable/misc.dm index e77c3b65813..6cdbf09145e 100644 --- a/code/game/objects/effects/decals/cleanable/misc.dm +++ b/code/game/objects/effects/decals/cleanable/misc.dm @@ -52,7 +52,9 @@ /obj/effect/decal/cleanable/dirt name = "dirt" desc = "Someone should clean that up." + icon = 'icons/effects/dirt.dmi' icon_state = "dirt" + base_icon_state = "dirt" smoothing_flags = NONE smoothing_groups = list(SMOOTH_GROUP_CLEANABLE_DIRT) canSmoothWith = list(SMOOTH_GROUP_CLEANABLE_DIRT, SMOOTH_GROUP_WALLS) @@ -63,9 +65,7 @@ . = ..() var/turf/T = get_turf(src) if(T.tiled_dirt) - smoothing_flags = SMOOTH_CORNERS - icon = 'icons/effects/dirt.dmi' - icon_state = "" + smoothing_flags = SMOOTH_BITMASK QUEUE_SMOOTH(src) if(smoothing_flags & (SMOOTH_CORNERS|SMOOTH_BITMASK)) QUEUE_SMOOTH_NEIGHBORS(src) diff --git a/code/game/turfs/open/chasm.dm b/code/game/turfs/open/chasm.dm index 7775da838b7..453a329c860 100644 --- a/code/game/turfs/open/chasm.dm +++ b/code/game/turfs/open/chasm.dm @@ -4,8 +4,9 @@ desc = "Watch your step." baseturfs = /turf/open/chasm icon = 'icons/turf/floors/chasms.dmi' - icon_state = "smooth" - smoothing_flags = SMOOTH_CORNERS | SMOOTH_BORDER + icon_state = "chasms-255" + base_icon_state = "chasms" + smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_TURF_CHASM) canSmoothWith = list(SMOOTH_GROUP_TURF_CHASM) density = TRUE //This will prevent hostile mobs from pathing into chasms, while the canpass override will still let it function like an open turf @@ -94,6 +95,8 @@ // Chasms for Ice moon, with planetary atmos and glow /turf/open/chasm/icemoon icon = 'icons/turf/floors/icechasms.dmi' + icon_state = "icechasms-255" + base_icon_state = "icechasms" initial_gas_mix = ICEMOON_DEFAULT_ATMOS planetary_atmos = TRUE baseturfs = /turf/open/chasm/icemoon @@ -104,6 +107,8 @@ // Chasms for the jungle, with planetary atmos and a different icon /turf/open/chasm/jungle icon = 'icons/turf/floors/junglechasm.dmi' + icon_state = "junglechasm-255" + base_icon_state = "junglechasm" initial_gas_mix = OPENTURF_LOW_PRESSURE planetary_atmos = TRUE baseturfs = /turf/open/chasm/jungle diff --git a/code/game/turfs/open/floor.dm b/code/game/turfs/open/floor.dm index dc325c53f3d..e8e4ebdd954 100644 --- a/code/game/turfs/open/floor.dm +++ b/code/game/turfs/open/floor.dm @@ -30,10 +30,11 @@ /turf/open/floor/Initialize(mapload) if (!broken_states) - broken_states = typelist("broken_states", list("damaged1", "damaged2", "damaged3", "damaged4", "damaged5")) + broken_states = string_list(list("damaged1", "damaged2", "damaged3", "damaged4", "damaged5")) else - broken_states = typelist("broken_states", broken_states) - burnt_states = typelist("burnt_states", burnt_states) + broken_states = string_list(broken_states) + if(burnt_states) + burnt_states = string_list(burnt_states) if(!broken && broken_states && (icon_state in broken_states)) broken = TRUE if(!burnt && burnt_states && (icon_state in burnt_states)) @@ -52,7 +53,7 @@ "snow","snow_dug","ice", "snow0","snow1","snow2","snow3","snow4", "snow5","snow6","snow7","snow8","snow9","snow10","snow11","snow12", - "oldburning","light-on-r","light-on-y","light-on-g","light-on-b", "wood", "carpetsymbol", "carpetstar", + "oldburning","light-on-r","light-on-y","light-on-g","light-on-b", "wood", "carpetcorner", "carpetside", "carpet", "ironsand1", "ironsand2", "ironsand3", "ironsand4", "ironsand5", "ironsand6", "ironsand7", "ironsand8", "ironsand9", "ironsand10", "ironsand11", "ironsand12", "ironsand13", "ironsand14", "ironsand15") @@ -139,7 +140,7 @@ /turf/open/floor/burn_tile() if(broken || burnt) return - if(burnt_states.len) + if(LAZYLEN(burnt_states)) icon_state = pick(burnt_states) else icon_state = pick(broken_states) diff --git a/code/game/turfs/open/floor/fancy_floor.dm b/code/game/turfs/open/floor/fancy_floor.dm index 2e58702ddd0..9484be34503 100644 --- a/code/game/turfs/open/floor/fancy_floor.dm +++ b/code/game/turfs/open/floor/fancy_floor.dm @@ -179,10 +179,11 @@ name = "carpet" desc = "Soft velvet carpeting. Feels good between your toes." icon = 'icons/turf/floors/carpet.dmi' - icon_state = "carpet" + icon_state = "carpet-255" + base_icon_state = "carpet" floor_tile = /obj/item/stack/tile/carpet broken_states = list("damaged") - smoothing_flags = SMOOTH_CORNERS + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_CARPET) canSmoothWith = list(SMOOTH_GROUP_CARPET) flags_1 = NONE @@ -213,56 +214,78 @@ if(smoothing_flags & (SMOOTH_CORNERS|SMOOTH_BITMASK)) QUEUE_SMOOTH_NEIGHBORS(src) +///Carpet variant for mapping aid, functionally the same as parent after smoothing. +/turf/open/floor/carpet/lone + icon_state = "carpet-0" + /turf/open/floor/carpet/black icon = 'icons/turf/floors/carpet_black.dmi' + icon_state = "carpet_black-255" + base_icon_state = "carpet_black" floor_tile = /obj/item/stack/tile/carpet/black smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_CARPET_BLACK) canSmoothWith = list(SMOOTH_GROUP_CARPET_BLACK) /turf/open/floor/carpet/blue icon = 'icons/turf/floors/carpet_blue.dmi' + icon_state = "carpet_blue-255" + base_icon_state = "carpet_blue" floor_tile = /obj/item/stack/tile/carpet/blue smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_CARPET_BLUE) canSmoothWith = list(SMOOTH_GROUP_CARPET_BLUE) /turf/open/floor/carpet/cyan icon = 'icons/turf/floors/carpet_cyan.dmi' + icon_state = "carpet_cyan-255" + base_icon_state = "carpet_cyan" floor_tile = /obj/item/stack/tile/carpet/cyan smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_CARPET_CYAN) canSmoothWith = list(SMOOTH_GROUP_CARPET_CYAN) /turf/open/floor/carpet/green icon = 'icons/turf/floors/carpet_green.dmi' + icon_state = "carpet_green-255" + base_icon_state = "carpet_green" floor_tile = /obj/item/stack/tile/carpet/green smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_CARPET_GREEN) canSmoothWith = list(SMOOTH_GROUP_CARPET_GREEN) /turf/open/floor/carpet/orange icon = 'icons/turf/floors/carpet_orange.dmi' + icon_state = "carpet_orange-255" + base_icon_state = "carpet_orange" floor_tile = /obj/item/stack/tile/carpet/orange smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_CARPET_ORANGE) canSmoothWith = list(SMOOTH_GROUP_CARPET_ORANGE) /turf/open/floor/carpet/purple icon = 'icons/turf/floors/carpet_purple.dmi' + icon_state = "carpet_purple-255" + base_icon_state = "carpet_purple" floor_tile = /obj/item/stack/tile/carpet/purple smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_CARPET_PURPLE) canSmoothWith = list(SMOOTH_GROUP_CARPET_PURPLE) /turf/open/floor/carpet/red icon = 'icons/turf/floors/carpet_red.dmi' + icon_state = "carpet_red-255" + base_icon_state = "carpet_red" floor_tile = /obj/item/stack/tile/carpet/red smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_CARPET_RED) canSmoothWith = list(SMOOTH_GROUP_CARPET_RED) /turf/open/floor/carpet/royalblack icon = 'icons/turf/floors/carpet_royalblack.dmi' + icon_state = "carpet_royalblack-255" + base_icon_state = "carpet_royalblack" floor_tile = /obj/item/stack/tile/carpet/royalblack smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_CARPET_ROYAL_BLACK) canSmoothWith = list(SMOOTH_GROUP_CARPET_ROYAL_BLACK) /turf/open/floor/carpet/royalblue icon = 'icons/turf/floors/carpet_royalblue.dmi' + icon_state = "carpet_royalblue-255" + base_icon_state = "carpet_royalblue" floor_tile = /obj/item/stack/tile/carpet/royalblue smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_CARPET_ROYAL_BLUE) canSmoothWith = list(SMOOTH_GROUP_CARPET_ROYAL_BLUE) @@ -321,11 +344,12 @@ /turf/open/floor/fakepit desc = "A clever illusion designed to look like a bottomless pit." - smoothing_flags = SMOOTH_CORNERS | SMOOTH_BORDER + icon = 'icons/turf/floors/chasms.dmi' + icon_state = "chasms-0" + base_icon_state = "chasms" + smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_TURF_CHASM) canSmoothWith = list(SMOOTH_GROUP_TURF_CHASM) - icon = 'icons/turf/floors/Chasms.dmi' - icon_state = "smooth" tiled_dirt = FALSE /turf/open/floor/fakepit/get_smooth_underlay_icon(mutable_appearance/underlay_appearance, turf/asking_turf, adjacency_dir) diff --git a/code/game/turfs/open/floor/plating/misc_plating.dm b/code/game/turfs/open/floor/plating/misc_plating.dm index 475685e2a85..86fdde73219 100644 --- a/code/game/turfs/open/floor/plating/misc_plating.dm +++ b/code/game/turfs/open/floor/plating/misc_plating.dm @@ -40,8 +40,8 @@ gender = PLURAL name = "ash" icon_state = "ash" - smoothing_flags = SMOOTH_CORNERS | SMOOTH_BORDER - var/smooth_icon = 'icons/turf/floors/ash.dmi' + base_icon_state = "ash" + smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER desc = "The ground is covered in volcanic ash." baseturfs = /turf/open/floor/plating/ashplanet/wateryrock //I assume this will be a chasm eventually, once this becomes an actual surface initial_gas_mix = LAVALAND_DEFAULT_ATMOS @@ -52,14 +52,18 @@ clawfootstep = FOOTSTEP_SAND heavyfootstep = FOOTSTEP_GENERIC_HEAVY tiled_dirt = FALSE + var/smooth_icon = 'icons/turf/floors/ash.dmi' + /turf/open/floor/plating/ashplanet/Initialize() - if(smoothing_flags) + . = ..() + if(smoothing_flags & SMOOTH_BITMASK) var/matrix/M = new M.Translate(-4, -4) transform = M icon = smooth_icon - . = ..() + icon_state = "[icon_state]-[smoothing_junction]" + /turf/open/floor/plating/ashplanet/try_replace_tile(obj/item/stack/tile/T, mob/user, params) return @@ -80,6 +84,7 @@ gender = PLURAL name = "rocky ground" icon_state = "rockyash" + base_icon_state = "rocky_ash" smooth_icon = 'icons/turf/floors/rocky_ash.dmi' layer = MID_TURF_LAYER smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_FLOOR_ASH_ROCKY) @@ -182,7 +187,7 @@ name = "ice sheet" desc = "A sheet of solid ice. Looks slippery." icon = 'icons/turf/floors/ice_turf.dmi' - icon_state = "unsmooth" + icon_state = "ice_turf-0" initial_gas_mix = FROZEN_ATMOS temperature = 180 planetary_atmos = TRUE @@ -203,8 +208,9 @@ return /turf/open/floor/plating/ice/smooth - icon_state = "smooth" - smoothing_flags = SMOOTH_CORNERS | SMOOTH_BORDER + icon_state = "ice_turf-255" + base_icon_state = "ice_turf" + smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_FLOOR_ICE) canSmoothWith = list(SMOOTH_GROUP_FLOOR_ICE) @@ -245,12 +251,13 @@ initial_gas_mix = ICEMOON_DEFAULT_ATMOS /turf/open/floor/plating/snowed/smoothed - smoothing_flags = SMOOTH_CORNERS | SMOOTH_BORDER + icon = 'icons/turf/floors/snow_turf.dmi' + icon_state = "snow_turf-0" + base_icon_state = "snow_turf" + smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_FLOOR_SNOWED) canSmoothWith = list(SMOOTH_GROUP_FLOOR_SNOWED) planetary_atmos = TRUE - icon = 'icons/turf/floors/snow_turf.dmi' - icon_state = "smooth" /turf/open/floor/plating/snowed/colder temperature = 140 @@ -265,14 +272,15 @@ name = "grass" desc = "A patch of grass." icon_state = "grass0" + base_icon_state = "grass" bullet_bounce_sound = null footstep = FOOTSTEP_GRASS barefootstep = FOOTSTEP_GRASS clawfootstep = FOOTSTEP_GRASS heavyfootstep = FOOTSTEP_GENERIC_HEAVY - smoothing_flags = SMOOTH_CORNERS - smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN,SMOOTH_GROUP_FLOOR_GRASS) - canSmoothWith = list(SMOOTH_GROUP_CLOSED_TURFS,SMOOTH_GROUP_FLOOR_GRASS) + smoothing_flags = SMOOTH_BITMASK + smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_FLOOR_GRASS) + canSmoothWith = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_FLOOR_GRASS) layer = HIGH_TURF_LAYER var/smooth_icon = 'icons/turf/floors/grass.dmi' diff --git a/code/game/turfs/open/floor/plating/planet.dm b/code/game/turfs/open/floor/plating/planet.dm index e23f0979f47..c9b0bcfb855 100644 --- a/code/game/turfs/open/floor/plating/planet.dm +++ b/code/game/turfs/open/floor/plating/planet.dm @@ -46,6 +46,7 @@ planetary_atmos = TRUE desc = "Greener on the other side." icon_state = "junglegrass" + base_icon_state = "junglegrass" smooth_icon = 'icons/turf/floors/junglegrass.dmi' /turf/closed/mineral/random/jungle diff --git a/code/game/turfs/open/transparent.dm b/code/game/turfs/open/transparent.dm index d49bba40a8e..28936789847 100644 --- a/code/game/turfs/open/transparent.dm +++ b/code/game/turfs/open/transparent.dm @@ -55,8 +55,9 @@ name = "Glass floor" desc = "Dont jump on it, or do, I'm not your mom." icon = 'icons/turf/floors/glass.dmi' - icon_state = "floor_glass" - smoothing_flags = SMOOTH_CORNERS + icon_state = "glass-0" + base_icon_state = "glass" + smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_FLOOR_TRANSPARENT_GLASS) canSmoothWith = list(SMOOTH_GROUP_FLOOR_TRANSPARENT_GLASS) footstep = FOOTSTEP_PLATING @@ -72,3 +73,5 @@ name = "Reinforced glass floor" desc = "Do jump on it, it can take it." icon = 'icons/turf/floors/reinf_glass.dmi' + icon_state = "reinf_glass-0" + base_icon_state = "reinf_glass" diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index cac1daeb8f2..7599000a31d 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -1108,7 +1108,8 @@ GLOBAL_LIST_INIT(hallucination_list, list( name = "chasm" /obj/effect/hallucination/danger/chasm/show_icon() - image = image('icons/turf/floors/Chasms.dmi',src,"smooth",TURF_LAYER) + var/turf/target_loc = get_turf(target) + image = image('icons/turf/floors/chasms.dmi', src, "chasms-[target_loc.smoothing_junction]", TURF_LAYER) if(target.client) target.client.images += image diff --git a/code/modules/holodeck/turfs.dm b/code/modules/holodeck/turfs.dm index 0dbf1d66d8d..467292c7874 100644 --- a/code/modules/holodeck/turfs.dm +++ b/code/modules/holodeck/turfs.dm @@ -109,7 +109,7 @@ icon = 'icons/turf/floors/carpet.dmi' icon_state = "carpet" floor_tile = /obj/item/stack/tile/carpet - smoothing_flags = SMOOTH_CORNERS + smoothing_flags = SMOOTH_BITMASK canSmoothWith = null bullet_bounce_sound = null tiled_dirt = FALSE diff --git a/icons/effects/dirt.dmi b/icons/effects/dirt.dmi index cd673a949de..3d63c60e90d 100644 Binary files a/icons/effects/dirt.dmi and b/icons/effects/dirt.dmi differ diff --git a/icons/effects/effects.dmi b/icons/effects/effects.dmi index 706cad3f5c8..c32c136ef56 100644 Binary files a/icons/effects/effects.dmi and b/icons/effects/effects.dmi differ diff --git a/icons/turf/floors/ash.dmi b/icons/turf/floors/ash.dmi index 718cd120194..4749fc2d330 100644 Binary files a/icons/turf/floors/ash.dmi and b/icons/turf/floors/ash.dmi differ diff --git a/icons/turf/floors/carpet.dmi b/icons/turf/floors/carpet.dmi index 52208611a47..0d71cfbd1cc 100644 Binary files a/icons/turf/floors/carpet.dmi and b/icons/turf/floors/carpet.dmi differ diff --git a/icons/turf/floors/carpet_black.dmi b/icons/turf/floors/carpet_black.dmi index d8cbc1c4534..cb4dff53543 100644 Binary files a/icons/turf/floors/carpet_black.dmi and b/icons/turf/floors/carpet_black.dmi differ diff --git a/icons/turf/floors/carpet_blue.dmi b/icons/turf/floors/carpet_blue.dmi index f797be9745a..ea04cffc6ba 100644 Binary files a/icons/turf/floors/carpet_blue.dmi and b/icons/turf/floors/carpet_blue.dmi differ diff --git a/icons/turf/floors/carpet_cyan.dmi b/icons/turf/floors/carpet_cyan.dmi index feca351ca92..1dc9400f78b 100644 Binary files a/icons/turf/floors/carpet_cyan.dmi and b/icons/turf/floors/carpet_cyan.dmi differ diff --git a/icons/turf/floors/carpet_green.dmi b/icons/turf/floors/carpet_green.dmi index fdd1f071f70..182b1af39c4 100644 Binary files a/icons/turf/floors/carpet_green.dmi and b/icons/turf/floors/carpet_green.dmi differ diff --git a/icons/turf/floors/carpet_orange.dmi b/icons/turf/floors/carpet_orange.dmi index ddf239b63b2..d1a20dfac5c 100644 Binary files a/icons/turf/floors/carpet_orange.dmi and b/icons/turf/floors/carpet_orange.dmi differ diff --git a/icons/turf/floors/carpet_purple.dmi b/icons/turf/floors/carpet_purple.dmi index c1f40ec7fa8..bfe03c195a9 100644 Binary files a/icons/turf/floors/carpet_purple.dmi and b/icons/turf/floors/carpet_purple.dmi differ diff --git a/icons/turf/floors/carpet_red.dmi b/icons/turf/floors/carpet_red.dmi index 926655688ed..934d541e8fd 100644 Binary files a/icons/turf/floors/carpet_red.dmi and b/icons/turf/floors/carpet_red.dmi differ diff --git a/icons/turf/floors/carpet_royalblack.dmi b/icons/turf/floors/carpet_royalblack.dmi index bc5cef1cf0e..323f1806f36 100644 Binary files a/icons/turf/floors/carpet_royalblack.dmi and b/icons/turf/floors/carpet_royalblack.dmi differ diff --git a/icons/turf/floors/carpet_royalblue.dmi b/icons/turf/floors/carpet_royalblue.dmi index 841e49e957b..95f1b6400de 100644 Binary files a/icons/turf/floors/carpet_royalblue.dmi and b/icons/turf/floors/carpet_royalblue.dmi differ diff --git a/icons/turf/floors/chasms.dmi b/icons/turf/floors/chasms.dmi index cc4feb2e032..b725e54d134 100644 Binary files a/icons/turf/floors/chasms.dmi and b/icons/turf/floors/chasms.dmi differ diff --git a/icons/turf/floors/glass.dmi b/icons/turf/floors/glass.dmi index adf6f57aaa3..ad833bddcbd 100644 Binary files a/icons/turf/floors/glass.dmi and b/icons/turf/floors/glass.dmi differ diff --git a/icons/turf/floors/grass.dmi b/icons/turf/floors/grass.dmi index 994c4667e6f..f73259b618a 100644 Binary files a/icons/turf/floors/grass.dmi and b/icons/turf/floors/grass.dmi differ diff --git a/icons/turf/floors/ice_turf.dmi b/icons/turf/floors/ice_turf.dmi index 8751a372162..46d37cf2681 100644 Binary files a/icons/turf/floors/ice_turf.dmi and b/icons/turf/floors/ice_turf.dmi differ diff --git a/icons/turf/floors/icechasms.dmi b/icons/turf/floors/icechasms.dmi index 97dfc0a2da6..998981326aa 100644 Binary files a/icons/turf/floors/icechasms.dmi and b/icons/turf/floors/icechasms.dmi differ diff --git a/icons/turf/floors/junglechasm.dmi b/icons/turf/floors/junglechasm.dmi index 699a3b667cd..141f5d7485b 100644 Binary files a/icons/turf/floors/junglechasm.dmi and b/icons/turf/floors/junglechasm.dmi differ diff --git a/icons/turf/floors/junglegrass.dmi b/icons/turf/floors/junglegrass.dmi index e7d93403e1c..281eccaa287 100644 Binary files a/icons/turf/floors/junglegrass.dmi and b/icons/turf/floors/junglegrass.dmi differ diff --git a/icons/turf/floors/reinf_glass.dmi b/icons/turf/floors/reinf_glass.dmi index dda99cd07f8..5abe9815eb4 100644 Binary files a/icons/turf/floors/reinf_glass.dmi and b/icons/turf/floors/reinf_glass.dmi differ diff --git a/icons/turf/floors/rocky_ash.dmi b/icons/turf/floors/rocky_ash.dmi index 2a57edfc53a..e972b09bf9b 100644 Binary files a/icons/turf/floors/rocky_ash.dmi and b/icons/turf/floors/rocky_ash.dmi differ diff --git a/icons/turf/floors/snow_turf.dmi b/icons/turf/floors/snow_turf.dmi index e7fef38602b..8cae37308e1 100644 Binary files a/icons/turf/floors/snow_turf.dmi and b/icons/turf/floors/snow_turf.dmi differ