Files
Bubberstation/code/modules/asset_cache/assets/rtd.dm
SkyratBot a3d2bc53ae [MIRROR] RTD Rapid Tiling Device [MDB IGNORE] (#18546)
* RTD Rapid Tiling Device

* Update tool_designs.dm

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
2023-01-12 22:15:08 +00:00

55 lines
2.1 KiB
Plaintext

/datum/asset/spritesheet/rtd
name = "rtd"
/datum/asset/spritesheet/rtd/create_spritesheets()
//some tiles may share the same icon but have diffrent properties to animate that icon
//so we keep track of what icons we registered
var/list/registered = list()
for(var/main_root in GLOB.floor_designs)
for(var/sub_category in GLOB.floor_designs[main_root])
for(var/list/design in GLOB.floor_designs[main_root][sub_category])
var/obj/item/stack/tile/type = design["type"]
var/icon_state = initial(type.icon_state)
if(registered[icon_state])
continue
Insert(sprite_name = icon_state, I = 'icons/obj/tiles.dmi', icon_state = icon_state)
registered[icon_state] = TRUE
var/list/tile_directions = design["tile_rotate_dirs"]
if(tile_directions == null)
continue
for(var/direction as anything in tile_directions)
//we can rotate the icon is css for these directions
if(direction in GLOB.tile_dont_rotate)
continue
//but for these directions we have to do some hacky stuff
var/icon/img = icon(icon = 'icons/obj/tiles.dmi', icon_state = icon_state)
switch(direction)
if(NORTHEAST)
img.Turn(-180)
var/icon/east_rotated = icon(icon = 'icons/obj/tiles.dmi', icon_state = icon_state)
east_rotated.Turn(-90)
img.Blend(east_rotated,ICON_MULTIPLY)
img.SetIntensity(2,2,2)
if(NORTHWEST)
img.Turn(-180)
var/icon/west_rotated = icon(icon = 'icons/obj/tiles.dmi', icon_state = icon_state)
west_rotated.Turn(90)
img.Blend(west_rotated,ICON_MULTIPLY)
img.SetIntensity(2,2,2)
if(SOUTHEAST)
var/icon/east_rotated = icon(icon = 'icons/obj/tiles.dmi', icon_state = icon_state)
east_rotated.Turn(-90)
img.Blend(east_rotated,ICON_MULTIPLY)
img.SetIntensity(2,2,2)
if(SOUTHWEST)
var/icon/west_rotated = icon(icon = 'icons/obj/tiles.dmi', icon_state = icon_state)
west_rotated.Turn(90)
img.Blend(west_rotated,ICON_MULTIPLY)
img.SetIntensity(2,2,2)
Insert(sprite_name = "[icon_state]-[dir2text(direction)]", I = img)