Files
Aurora.3/code/game/objects/structures/lattice.dm
Fluffy b8902e2e16 Runtime map now loads in ~11 seconds instead of ~40, sped up various other things (#19957)
Runtime map now has a bunch of new areas / items with often-tested
stuffs, and some hard-to-put-at-runtime stuffs.
Runtime map jobs now are positioned to make it faster to reach the
aforementioned often-tested stuffs.
Runtime map doesn't generate an overmap anymore by default, which speeds
up the process.
Runtime map now loads in ~11 seconds instead of ~40 seconds as it was
before.
Updated the maploader to be faster in parsing maps.
Bapi is not engaged anymore if we're only measuring the map size, which
speeds up the process.
In fastboot we do not generate the codexes anymore, which speeds up the
process.
In fastboot and if exoplanets and away sites are not enabled, we do not
parse the map templates anymore, which speeds up the process.
Updated the icon smoothing to be faster.
Optimized cargo area code.
Other optimizations.
2024-10-06 21:31:01 +00:00

229 lines
6.6 KiB
Plaintext

/obj/structure/lattice
name = "lattice"
desc = "A lightweight support lattice."
desc_info = "Add a metal floor tile to build a floor on top of the lattice.<br>\
Lattices can be made by applying metal rods to a space tile."
icon = 'icons/obj/smooth/lattice.dmi'
icon_state = "lattice"
density = FALSE
anchored = TRUE
w_class = WEIGHT_CLASS_NORMAL
layer = ABOVE_TILE_LAYER
obj_flags = OBJ_FLAG_MOVES_UNSUPPORTED
smoothing_flags = SMOOTH_MORE
canSmoothWith = list(
/obj/structure/lattice,
/turf/simulated/wall,
/turf/simulated/floor,
/turf/simulated/mineral,
/turf/unsimulated/wall,
/turf/unsimulated/floor,
/obj/structure/grille,
/turf/unsimulated/mineral/asteroid
)
footstep_sound = /singleton/sound_category/catwalk_footstep
/obj/structure/lattice/Initialize()
. = ..()
for(var/obj/structure/lattice/LAT in loc)
if(LAT == src)
continue
stack_trace("multiple lattices found in ([loc.x], [loc.y], [loc.z])")
return INITIALIZE_HINT_QDEL
if(isturf(loc))
var/turf/turf = loc
turf.is_hole = FALSE
/obj/structure/lattice/Destroy()
if(isturf(loc))
var/turf/turf = loc
turf.is_hole = initial(turf.is_hole)
return ..()
/obj/structure/lattice/ex_act(severity)
switch(severity)
if(1.0)
qdel(src)
if(2.0)
qdel(src)
return
/obj/structure/lattice/attackby(obj/item/attacking_item, mob/user)
if (istype(attacking_item, /obj/item/stack/tile/floor))
var/turf/T = get_turf(src)
T.attackby(attacking_item, user) //BubbleWrap - hand this off to the underlying turf instead
return
if (attacking_item.iswelder())
var/obj/item/weldingtool/WT = attacking_item
if(WT.use(1, user))
to_chat(user, SPAN_NOTICE("Slicing lattice joints ..."))
new /obj/item/stack/rods(src.loc)
qdel(src)
if (istype(attacking_item, /obj/item/stack/rods))
var/obj/item/stack/rods/R = attacking_item
if (R.use(2))
to_chat(user, SPAN_NOTICE("Constructing catwalk ..."))
playsound(src, 'sound/weapons/Genhit.ogg', 50, 1)
new /obj/structure/lattice/catwalk(src.loc)
qdel(src)
return
/obj/structure/lattice/catwalk
name = "catwalk"
desc = "A catwalk for easier EVA maneuvering."
icon = 'icons/obj/smooth/catwalk.dmi'
icon_state = "catwalk"
smoothing_flags = SMOOTH_TRUE
canSmoothWith = list(
/obj/structure/lattice/catwalk,
/obj/structure/lattice/catwalk/indoor
)
var/return_amount = 3
// Special catwalk that can be placed on regular flooring.
/obj/structure/lattice/catwalk/indoor
desc = "A floor-mounted catwalk designed to protect pipes & station wiring from passing feet."
can_be_unanchored = TRUE
layer = CATWALK_LAYER
/obj/structure/lattice/catwalk/attackby(obj/item/attacking_item, mob/user)
if(attacking_item.iswelder())
var/obj/item/weldingtool/WT = attacking_item
if(!WT.use(1, user))
to_chat(user, SPAN_WARNING("You need more welding fuel to complete this task."))
return
if(attacking_item.use_tool(src, user, 5, volume = 50))
to_chat(user, SPAN_NOTICE("You slice apart [src]."))
var/obj/item/stack/rods/R = new /obj/item/stack/rods(get_turf(src))
R.amount = return_amount
R.update_icon()
qdel(src)
/obj/structure/lattice/catwalk/indoor/attackby(obj/item/attacking_item, mob/user)
if(attacking_item.isscrewdriver())
if(attacking_item.use_tool(src, user, 5, volume = 50))
anchored = !anchored
to_chat(user, SPAN_NOTICE("You [anchored ? "" : "un"]anchor [src]."))
QUEUE_SMOOTH(src)
QUEUE_SMOOTH_NEIGHBORS(src)
else
..()
/obj/structure/lattice/catwalk/hoist_act(turf/dest)
for (var/A in loc)
var/atom/movable/AM = A
AM.forceMove(dest)
..()
/obj/structure/lattice/catwalk/indoor/grate
name = "grate"
desc = "A metal grate."
icon = 'icons/obj/grate.dmi'
icon_state = "grate"
return_amount = 1
smoothing_flags = null
color = COLOR_TILED
var/base_icon_state = "grate"
var/damaged = FALSE
/obj/structure/lattice/catwalk/indoor/grate/attackby(obj/item/attacking_item, mob/user)
if(attacking_item.iswelder() && damaged)
var/obj/item/weldingtool/WT = attacking_item
if(attacking_item.use_tool(src, user, 5, volume = 50) && WT.use(1, user))
user.visible_message(
SPAN_NOTICE("\The [user] slices apart \the [src], leaving nothing useful behind."),
SPAN_NOTICE("You slice apart \the [src], leaving nothing useful behind."),
SPAN_NOTICE("You hear the sound of a welder, slicing apart metal.")
)
playsound(src, 'sound/items/welder.ogg', 50, 1)
qdel(src)
else
..()
/obj/structure/lattice/catwalk/indoor/grate/ex_act(severity)
switch(severity)
if(1.0)
qdel(src)
if(2.0)
if(!damaged)
icon_state = "[base_icon_state]_dam[rand(0,3)]"
damaged = TRUE
else
qdel(src)
return
/obj/structure/lattice/catwalk/indoor/grate/old/Initialize()
. = ..()
AddOverlays("rust")
/obj/structure/lattice/catwalk/indoor/grate/damaged
icon_state = "grate_dark_dam0"
damaged = TRUE
/obj/structure/lattice/catwalk/indoor/grate/damaged/Initialize()
. = ..()
icon_state = "[base_icon_state]_dam[rand(0,3)]"
/obj/structure/lattice/catwalk/indoor/grate/light
icon_state = "grate_light"
base_icon_state = "grate_light"
return_amount = 1
color = COLOR_GRAY50
/obj/structure/lattice/catwalk/indoor/grate/light/old/Initialize()
. = ..()
AddOverlays("rust")
/obj/structure/lattice/catwalk/indoor/grate/light/damaged
icon_state = "grate_light_dam0"
damaged = TRUE
/obj/structure/lattice/catwalk/indoor/grate/light/damaged/Initialize()
. = ..()
icon_state = "[base_icon_state]_dam[rand(0,3)]"
/obj/structure/lattice/catwalk/indoor/grate/dark
color = COLOR_DARK_GUNMETAL
/obj/structure/lattice/catwalk/indoor/grate/gunmetal
color = COLOR_DARK_GUNMETAL
/obj/structure/lattice/catwalk/indoor/grate/slate
color = COLOR_SLATE
/obj/structure/lattice/catwalk/indoor/urban
name = "grate"
desc = "A metal grate."
icon = 'icons/obj/structure/over_turf.dmi'
icon_state = "city_grate"
return_amount = 1
smoothing_flags = null
/obj/structure/lattice/catwalk/indoor/tatami
name = "tatami spread"
desc = "A straw mat rug of some sort, frequently referred to as a tatami."
icon = 'icons/obj/structure/over_turf.dmi'
icon_state = "tatami"
return_amount = null
smoothing_flags = null
footstep_sound = /singleton/sound_category/carpet_footstep
/obj/structure/lattice/catwalk/indoor/planks
name = "flooring plank"
desc = "A ricket assortment of planks meant to be stood upon."
icon = 'icons/obj/structure/urban/wood.dmi'
icon_state = "plank"
return_amount = null
smoothing_flags = null
footstep_sound = /singleton/sound_category/wood_footstep
/obj/structure/lattice/catwalk/indoor/planks/opaque
icon_state = "plank_dark"
/obj/structure/lattice/catwalk/indoor/planks/stairs
icon_state = "plank_stairs"
/obj/structure/lattice/catwalk/indoor/planks/deep
icon_state = "plank_deep"