mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-01 04:21:42 +00:00
* Refactor /turf/var/intact (#62331) Turfs have a variable, intact, which conflates three meanings: Determining whether there's something that can be pried out, such as directly with a crowbar or indirectly with a tile stack and a crowbar off-hand. Determining whether underfloor pieces are visible. Determining whether underfloor pieces can be interacted with - by players with tools, through interaction with effects like chemical acid, or foam. When plating is hit with a stack of tiles, /turf/open/floor/attackby checks whether the turf is intact, and if so, ends the attack chain regardless of whether or not the attempt to hotswap a turf (with a crowbar) is successful or not. However, turfs which want the underfloor to be visible - such as catwalks and glass - set the intact variable to FALSE, and so can be repeatedly placed over one another, as if they were the first tile to be placed over the plating. This refactors /turf/var/intact into two distinct variables: /turf/var/overfloor_placed, for whether or not there is something over plating. /turf/var/underfloor_visible, for whether or not the various underfloor pieces should be invisible, visible, or both visible and interactable. All references to /turf/var/intact have been replaced with an equivalent overfloor_placed or underfloor_visible reference, depending on which check is appropriate. underfloor_accessibility can take one of UNDERFLOOR_HIDDEN, UNDERFLOOR_VISIBLE, or UNDERFLOOR_INTERACTABLE. This prevents cases such as acid foam or tools phasing through glass floors to affect the underfloor pieces underneath, and covers all kinds of unusual, not-wiring-visiblity usage such as Holodeck completeness, Revenant interaction, or station integrity checking. * Refactor /turf/var/intact * Thank Co-authored-by: esainane <esainane+github@gmail.com> Co-authored-by: Funce <funce.973@gmail.com>
174 lines
4.1 KiB
Plaintext
174 lines
4.1 KiB
Plaintext
/turf/open/floor/holofloor
|
|
icon_state = "floor"
|
|
holodeck_compatible = TRUE
|
|
thermal_conductivity = 0
|
|
flags_1 = NONE
|
|
var/direction = SOUTH
|
|
|
|
/turf/open/floor/holofloor/attackby(obj/item/I, mob/living/user)
|
|
return // HOLOFLOOR DOES NOT GIVE A FUCK
|
|
|
|
/turf/open/floor/holofloor/tool_act(mob/living/user, obj/item/I, tool_type)
|
|
return
|
|
|
|
/turf/open/floor/holofloor/burn_tile()
|
|
return //you can't burn a hologram!
|
|
|
|
/turf/open/floor/holofloor/break_tile()
|
|
return //you can't break a hologram!
|
|
|
|
/turf/open/floor/holofloor/plating
|
|
name = "holodeck projector floor"
|
|
icon_state = "engine"
|
|
|
|
/turf/open/floor/holofloor/chapel
|
|
name = "chapel floor"
|
|
icon_state = "chapel"
|
|
|
|
/turf/open/floor/holofloor/chapel/bottom_left
|
|
direction = WEST
|
|
|
|
/turf/open/floor/holofloor/chapel/top_right
|
|
direction = EAST
|
|
|
|
/turf/open/floor/holofloor/chapel/bottom_right
|
|
|
|
/turf/open/floor/holofloor/chapel/top_left
|
|
direction = NORTH
|
|
|
|
/turf/open/floor/holofloor/chapel/Initialize(mapload)
|
|
. = ..()
|
|
if (direction != SOUTH)
|
|
setDir(direction)
|
|
|
|
/turf/open/floor/holofloor/white
|
|
name = "white floor"
|
|
icon_state = "white"
|
|
|
|
/turf/open/floor/holofloor/plating/burnmix
|
|
name = "burn-mix floor"
|
|
initial_gas_mix = BURNMIX_ATMOS
|
|
|
|
/turf/open/floor/holofloor/grass
|
|
gender = PLURAL
|
|
name = "lush grass"
|
|
icon_state = "grass0"
|
|
bullet_bounce_sound = null
|
|
tiled_dirt = FALSE
|
|
|
|
/turf/open/floor/holofloor/grass/Initialize(mapload)
|
|
. = ..()
|
|
icon_state = "grass[rand(0,3)]"
|
|
|
|
/turf/open/floor/holofloor/beach
|
|
gender = PLURAL
|
|
name = "sand"
|
|
icon = 'icons/misc/beach.dmi'
|
|
icon_state = "sand"
|
|
bullet_bounce_sound = null
|
|
tiled_dirt = FALSE
|
|
|
|
/turf/open/floor/holofloor/beach/coast_t
|
|
gender = NEUTER
|
|
name = "coastline"
|
|
icon_state = "sandwater_t"
|
|
|
|
/turf/open/floor/holofloor/beach/coast_b
|
|
gender = NEUTER
|
|
name = "coastline"
|
|
icon_state = "sandwater_b"
|
|
|
|
/turf/open/floor/holofloor/beach/water
|
|
name = "water"
|
|
icon_state = "water"
|
|
bullet_sizzle = TRUE
|
|
|
|
/turf/open/floor/holofloor/asteroid
|
|
gender = PLURAL
|
|
name = "asteroid sand"
|
|
icon_state = "asteroid"
|
|
tiled_dirt = FALSE
|
|
|
|
/turf/open/floor/holofloor/asteroid/Initialize(mapload)
|
|
icon_state = "asteroid[rand(0, 12)]"
|
|
. = ..()
|
|
|
|
/turf/open/floor/holofloor/basalt
|
|
gender = PLURAL
|
|
name = "basalt"
|
|
icon_state = "basalt0"
|
|
tiled_dirt = FALSE
|
|
|
|
/turf/open/floor/holofloor/basalt/Initialize(mapload)
|
|
. = ..()
|
|
if(prob(15))
|
|
icon_state = "basalt[rand(0, 12)]"
|
|
set_basalt_light(src)
|
|
|
|
/turf/open/floor/holofloor/space
|
|
name = "\proper space"
|
|
icon = 'icons/turf/space.dmi'
|
|
icon_state = "0"
|
|
|
|
/turf/open/floor/holofloor/space/Initialize(mapload)
|
|
icon_state = SPACE_ICON_STATE // so realistic
|
|
. = ..()
|
|
|
|
/turf/open/floor/holofloor/hyperspace
|
|
name = "\proper hyperspace"
|
|
icon = 'icons/turf/space.dmi'
|
|
icon_state = "speedspace_ns_1"
|
|
bullet_bounce_sound = null
|
|
tiled_dirt = FALSE
|
|
|
|
/turf/open/floor/holofloor/hyperspace/Initialize(mapload)
|
|
icon_state = "speedspace_ns_[(x + 5*y + (y%2+1)*7)%15+1]"
|
|
. = ..()
|
|
|
|
/turf/open/floor/holofloor/hyperspace/ns/Initialize(mapload)
|
|
. = ..()
|
|
icon_state = "speedspace_ns_[(x + 5*y + (y%2+1)*7)%15+1]"
|
|
|
|
/turf/open/floor/holofloor/carpet
|
|
name = "carpet"
|
|
desc = "Electrically inviting."
|
|
icon = 'icons/turf/floors/carpet.dmi'
|
|
icon_state = "carpet-255"
|
|
base_icon_state = "carpet"
|
|
floor_tile = /obj/item/stack/tile/carpet
|
|
smoothing_flags = SMOOTH_BITMASK
|
|
smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_CARPET)
|
|
canSmoothWith = list(SMOOTH_GROUP_CARPET)
|
|
bullet_bounce_sound = null
|
|
tiled_dirt = FALSE
|
|
|
|
/turf/open/floor/holofloor/carpet/Initialize(mapload)
|
|
. = ..()
|
|
addtimer(CALLBACK(src, /atom/.proc/update_appearance), 1)
|
|
|
|
/turf/open/floor/holofloor/carpet/update_icon(updates=ALL)
|
|
. = ..()
|
|
if((updates & UPDATE_SMOOTHING) && overfloor_placed && smoothing_flags & (SMOOTH_CORNERS|SMOOTH_BITMASK))
|
|
QUEUE_SMOOTH(src)
|
|
|
|
/turf/open/floor/holofloor/wood
|
|
icon_state = "wood"
|
|
tiled_dirt = FALSE
|
|
|
|
/turf/open/floor/holofloor/snow
|
|
gender = PLURAL
|
|
name = "snow"
|
|
desc = "Looks cold."
|
|
icon = 'icons/turf/snow.dmi'
|
|
icon_state = "snow"
|
|
slowdown = 2
|
|
bullet_sizzle = TRUE
|
|
bullet_bounce_sound = null
|
|
tiled_dirt = FALSE
|
|
|
|
/turf/open/floor/holofloor/snow/cold
|
|
initial_gas_mix = "nob=7500;TEMP=2.7"
|
|
|
|
/turf/open/floor/holofloor/dark
|
|
icon_state = "darkfull"
|