Files
Mirka-l eae8fbfde2 Fix simulated floor sprite (#32147)
* tile sprite fix

* fix for failed test

* del icon_state

---------

Co-authored-by: Mirka-l <mirkahadii@gmail.com>
2026-07-08 00:14:16 +00:00

354 lines
11 KiB
Plaintext

/turf/simulated/floor/vault
name = "stone floor"
desc = "Smooth flooring carved from solid rock. It looks sturdy."
icon_state = "rockvault"
/turf/simulated/floor/vault/lavaland_air
oxygen = LAVALAND_OXYGEN
nitrogen = LAVALAND_NITROGEN
temperature = LAVALAND_TEMPERATURE
atmos_mode = ATMOS_MODE_EXPOSED_TO_ENVIRONMENT
atmos_environment = ENVIRONMENT_LAVALAND
baseturf = /turf/simulated/floor/chasm/straight_down/lava_land_surface
/turf/simulated/wall/vault
icon = 'icons/turf/walls.dmi'
icon_state = "rockvault"
smoothing_flags = NONE
/turf/simulated/floor/bluegrid
icon_state = "bcircuit"
/turf/simulated/floor/bluegrid/telecomms
nitrogen = 100
oxygen = 0
temperature = 80
/turf/simulated/floor/bluegrid/telecomms/server
name = "server base"
/turf/simulated/floor/greengrid
icon_state = "gcircuit"
/turf/simulated/floor/greengrid/airless
name = "airless floor"
oxygen = 0
nitrogen = 0
temperature = TCMB
/turf/simulated/floor/greengrid/airless/Initialize(mapload)
. = ..()
name = "floor"
/turf/simulated/floor/redgrid
icon_state = "rcircuit"
/turf/simulated/floor/beach
name = "beach"
desc = "The sandy seaside, waves crashing, the sun shining... It's a true paradise."
icon = 'icons/misc/beach.dmi'
footstep = FOOTSTEP_SAND
barefootstep = FOOTSTEP_SAND
clawfootstep = FOOTSTEP_SAND
/turf/simulated/floor/desert_sand
name = "sand"
desc = "I don't like sand... It's coarse, and rough, and irritating... And it gets everywhere."
icon = 'icons/misc/beach.dmi'
icon_state = "desert"
footstep = FOOTSTEP_SAND
barefootstep = FOOTSTEP_SAND
clawfootstep = FOOTSTEP_SAND
/turf/simulated/floor/beach/pry_tile(obj/item/C, mob/user, silent = FALSE)
return
/turf/simulated/floor/beach/sand
name = "sand"
icon_state = "sand"
baseturf = /turf/simulated/floor/beach/sand
/turf/simulated/floor/beach/coastline
name = "coastline"
icon = 'icons/misc/beach2.dmi'
icon_state = "sandwater"
baseturf = /turf/simulated/floor/beach/coastline
footstep = FOOTSTEP_WATER
barefootstep = FOOTSTEP_WATER
clawfootstep = FOOTSTEP_WATER
heavyfootstep = FOOTSTEP_WATER
/turf/simulated/floor/beach/coastline_t
name = "coastline"
desc = "Tide's high tonight. Charge your batons."
icon_state = "sandwater_t"
baseturf = /turf/simulated/floor/beach/coastline_t
footstep = FOOTSTEP_WATER
barefootstep = FOOTSTEP_WATER
clawfootstep = FOOTSTEP_WATER
heavyfootstep = FOOTSTEP_WATER
/turf/simulated/floor/beach/coastline_b
name = "coastline"
icon_state = "sandwater_b"
baseturf = /turf/simulated/floor/beach/coastline_b
footstep = FOOTSTEP_WATER
barefootstep = FOOTSTEP_WATER
clawfootstep = FOOTSTEP_WATER
heavyfootstep = FOOTSTEP_WATER
/// TODO - Refactor water so they share the same parent type - Or alternatively component something like that
/turf/simulated/floor/beach/water
name = "water"
icon_state = "water"
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
var/obj/machinery/poolcontroller/linkedcontroller = null
baseturf = /turf/simulated/floor/beach/water
footstep = FOOTSTEP_WATER
barefootstep = FOOTSTEP_WATER
clawfootstep = FOOTSTEP_WATER
heavyfootstep = FOOTSTEP_WATER
/turf/simulated/floor/beach/water/Initialize(mapload)
. = ..()
var/image/overlay_image = image('icons/misc/beach.dmi', icon_state = "water5", layer = ABOVE_MOB_LAYER)
overlay_image.plane = GAME_PLANE
overlays += overlay_image
RegisterSignal(src, COMSIG_ATOM_INITIALIZED_ON, PROC_REF(InitializedOn))
/turf/simulated/floor/beach/water/Entered(atom/movable/AM, atom/OldLoc)
. = ..()
if(!linkedcontroller)
return
if(ismob(AM))
linkedcontroller.mobinpool += AM
/turf/simulated/floor/beach/water/Exited(atom/movable/AM, direction)
. = ..()
if(!linkedcontroller)
return
if(ismob(AM))
linkedcontroller.mobinpool -= AM
/turf/simulated/floor/beach/water/proc/InitializedOn(atom/A)
if(!linkedcontroller)
return
if(istype(A, /obj/effect/decal/cleanable)) // Better a typecheck than looping through thousands of turfs everyday
linkedcontroller.decalinpool += A
/turf/simulated/floor/noslip
name = "high-traction floor"
desc = "Textured and rubberized flooring designed to maximize grip. You won't slip on this."
icon_state = "noslip"
floor_tile = /obj/item/stack/tile/noslip
slowdown = -0.3
/turf/simulated/floor/noslip/get_broken_states()
return list("noslip-damaged1", "noslip-damaged2", "noslip-damaged3")
/turf/simulated/floor/noslip/get_burnt_states()
return list("noslip-scorched1", "noslip-scorched2")
/turf/simulated/floor/noslip/MakeSlippery()
return
/turf/simulated/floor/noslip/lavaland
oxygen = LAVALAND_OXYGEN
nitrogen = LAVALAND_NITROGEN
temperature = LAVALAND_TEMPERATURE
atmos_mode = ATMOS_MODE_EXPOSED_TO_ENVIRONMENT
atmos_environment = ENVIRONMENT_LAVALAND
/turf/simulated/floor/lubed
name = "slippery floor"
desc = "This floor appears to be perpetually covered in a thick layer of slippery lubricant."
icon_state = "tile_standard"
/turf/simulated/floor/lubed/Initialize(mapload)
. = ..()
MakeSlippery(TURF_WET_LUBE, INFINITY)
/turf/simulated/floor/lubed/pry_tile(obj/item/C, mob/user, silent = FALSE) //I want to get off Mr Honk's Wild Ride
if(ishuman(user))
var/mob/living/carbon/human/H = user
to_chat(H, SPAN_WARNING("You lose your footing trying to pry off the tile!"))
H.slip("the floor", 10 SECONDS, tilesSlipped = 4, walkSafely = 0, slipAny = 1)
return
/turf/simulated/floor/lubed/lavaland_air
oxygen = LAVALAND_OXYGEN
nitrogen = LAVALAND_NITROGEN
temperature = LAVALAND_TEMPERATURE
atmos_mode = ATMOS_MODE_EXPOSED_TO_ENVIRONMENT
atmos_environment = ENVIRONMENT_LAVALAND
//Clockwork floor: Slowly heals toxin damage on nearby servants.
/turf/simulated/floor/clockwork
name = "clockwork floor"
desc = "Tightly-pressed brass tiles. They emit minute vibration."
baseturf = /turf/simulated/floor/clockwork
var/dropped_brass
var/uses_overlay = TRUE
var/obj/effect/clockwork/overlay/floor/realappearence
/turf/simulated/floor/clockwork/Initialize(mapload)
. = ..()
if(uses_overlay)
new /obj/effect/temp_visual/ratvar/floor(src)
new /obj/effect/temp_visual/ratvar/beam(src)
realappearence = new /obj/effect/clockwork/overlay/floor(src)
realappearence.linked = src
/turf/simulated/floor/clockwork/Entered(atom/A, atom/OL, ignoreRest)
. = ..()
var/counter = 0
for(var/obj/effect/temp_visual/ratvar/floor/floor in contents)
if(++counter == 3)
return
if(!. && isliving(A))
addtimer(CALLBACK(src, PROC_REF(spawn_visual)), 0.2 SECONDS, TIMER_DELETE_ME)
/turf/simulated/floor/clockwork/proc/spawn_visual()
new /obj/effect/temp_visual/ratvar/floor(src)
/turf/simulated/floor/clockwork/Destroy()
if(uses_overlay && realappearence)
QDEL_NULL(realappearence)
return ..()
/turf/simulated/floor/clockwork/crowbar_act(mob/user, obj/item/I)
. = TRUE
if(!I.tool_use_check(user, 0))
return
user.visible_message(SPAN_NOTICE("[user] begins slowly prying up [src]..."), SPAN_NOTICE("You begin painstakingly prying up [src]..."))
if(!I.use_tool(src, user, 70, volume = I.tool_volume))
return
user.visible_message(SPAN_NOTICE("[user] pries up [src]!"), SPAN_NOTICE("You pry up [src]!"))
make_plating()
/turf/simulated/floor/clockwork/make_plating()
if(!dropped_brass)
new /obj/item/stack/tile/brass(src)
dropped_brass = TRUE
if(baseturf == type)
return
return ..()
/turf/simulated/floor/clockwork/narsie_act()
..()
if(istype(src, /turf/simulated/floor/clockwork)) //if we haven't changed type
var/previouscolor = color
color = "#960000"
animate(src, color = previouscolor, time = 8)
addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_atom_colour)), 8)
/turf/simulated/floor/clockwork/reebe
name = "cogplate"
desc = "Warm brass plating. You can feel it gently vibrating, as if machinery is on the other side."
icon_state = "reebe"
baseturf = /turf/simulated/floor/clockwork/reebe
uses_overlay = FALSE
/turf/simulated/floor/clockwork/lavaland_air
oxygen = LAVALAND_OXYGEN
nitrogen = LAVALAND_NITROGEN
temperature = LAVALAND_TEMPERATURE
atmos_mode = ATMOS_MODE_EXPOSED_TO_ENVIRONMENT
atmos_environment = ENVIRONMENT_LAVALAND
/turf/simulated/floor/catwalk
name = "catwalk"
desc = "Flooring made of a metal grid with large holes for easier inspection of cable and pipe installations."
icon = 'icons/turf/floors/catwalk_floor.dmi'
icon_state = "catwalk"
base_icon_state = "catwalk"
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
rust_resistance = RUST_RESISTANCE_BASIC
/turf/simulated/floor/catwalk/grey
icon = 'icons/turf/floors/catwalk_floor_grey.dmi'
floor_tile = /obj/item/stack/tile/catwalk/grey
/turf/simulated/floor/catwalk/white
icon = 'icons/turf/floors/catwalk_floor_white.dmi'
floor_tile = /obj/item/stack/tile/catwalk/white
/turf/simulated/floor/catwalk/black
icon = 'icons/turf/floors/catwalk_floor_black.dmi'
floor_tile = /obj/item/stack/tile/catwalk/black
/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/catwalk/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)
/turf/simulated/floor/backrooms_carpet
name = "backrooms carpet"
desc = "An old, musty carpet. It smells faintly mildewy."
icon_state = "backrooms_carpet"
baseturf = /turf/simulated/floor/backrooms_carpet
/turf/simulated/floor/plating/rust
// Carpet used in the backrooms hallucination
//SDMM supports colors, this is simply for easier mapping
//and should be removed on initialize
color = COLOR_BROWN
/turf/simulated/floor/plating/rust/Initialize(mapload)
. = ..()
AddElement(/datum/element/rust)
color = null
/turf/simulated/floor/plating/heretic_rust
color = COLOR_GREEN_GRAY
/turf/simulated/floor/plating/heretic_rust/Initialize(mapload)
. = ..()
AddElement(/datum/element/rust/heretic)
color = null