Add constructable floor lights + mapping subtypes (#93537)

## About The Pull Request
Features:
- Floor lights can be constructed using a small light fixture on the
turf you are standing on
- Floor light construction sprites
- `/burned` subtypes for lights
- Convert `/build` subtypes to `/empty` subtypes with `UpdatePaths`
script

## Why It's Good For The Game
Floor lights can now be constructed in game using the same mechanics as
other lights. The `/burned` and `/empty` subtypes might be useful for
mapping.

## Changelog
🆑
add: Add constructable floor lights by using a small light fixture on
the floor. They are constructed the same way as other lights.
qol: Add `/burned` subtype to `/obj/machinery/light` for mapping
shenanigans
image: Add floor light construction sprites
map: Converted the `/built` subtype for `/obj/machinery/light` to be
`/empty` and added an UpdatePaths script.
/🆑

---------

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
This commit is contained in:
Tim
2025-11-10 21:17:51 +13:00
committed by GitHub
co-authored by SyncIt21
parent bf4a53d6dc
commit e30b7d97ef
27 changed files with 209 additions and 139 deletions
+12 -1
View File
@@ -424,6 +424,8 @@
frame = new /obj/item/wallframe/light_fixture(drop_point)
if("bulb")
frame = new /obj/item/wallframe/light_fixture/small(drop_point)
if("floor bulb")
frame = new /obj/item/wallframe/light_fixture/small(drop_point)
if(!disassembled)
frame.take_damage(frame.max_integrity * 0.5, sound_effect = FALSE)
if(status != LIGHT_BROKEN)
@@ -728,7 +730,7 @@
layer = BELOW_CATWALK_LAYER
plane = FLOOR_PLANE
light_type = /obj/item/light/bulb
fitting = "bulb"
fitting = "floor bulb"
nightshift_brightness = 4
fire_brightness = 4.5
@@ -739,6 +741,15 @@
status = LIGHT_BROKEN
icon_state = "floor-broken"
/obj/machinery/light/floor/burned
status = LIGHT_BURNED
icon_state = "floor-burned"
/obj/machinery/light/floor/empty
icon_state = "floor-empty"
start_with_cell = FALSE
status = LIGHT_EMPTY
/obj/machinery/light/floor/transport
name = "transport light"
break_if_moved = FALSE