66 lines
1.7 KiB
Plaintext
66 lines
1.7 KiB
Plaintext
/obj/effect/decal/cleanable/crayon
|
|
name = "rune"
|
|
desc = "Graffiti. Damn kids."
|
|
icon = 'icons/effects/crayondecal.dmi'
|
|
icon_state = "rune1"
|
|
plane = ABOVE_WALL_PLANE //makes the graffiti visible over a wall.
|
|
gender = NEUTER
|
|
persistent = TRUE
|
|
persistence_allow_stacking = TRUE
|
|
mergeable_decal = FALSE
|
|
var/do_icon_rotate = TRUE
|
|
var/rotation = 0
|
|
var/paint_colour = "#FFFFFF"
|
|
|
|
/obj/effect/decal/cleanable/crayon/Initialize(mapload, main, type, e_name, graf_rot, alt_icon = null)
|
|
. = ..()
|
|
|
|
if(e_name)
|
|
name = e_name
|
|
desc = "A [name] vandalizing the station."
|
|
if(alt_icon)
|
|
icon = alt_icon
|
|
if(type)
|
|
icon_state = type
|
|
if(graf_rot)
|
|
rotation = graf_rot
|
|
if(rotation && do_icon_rotate)
|
|
var/matrix/M = matrix()
|
|
M.Turn(rotation)
|
|
src.transform = M
|
|
if(main)
|
|
paint_colour = main
|
|
add_atom_colour(paint_colour, FIXED_COLOUR_PRIORITY)
|
|
|
|
/obj/effect/decal/cleanable/crayon/PersistenceSave(list/data)
|
|
. = ..()
|
|
if(icon != initial(icon)) // no support for alticons yet, awful system anyways
|
|
return null
|
|
data["icon_state"] = icon_state
|
|
data["paint_color"] = paint_colour
|
|
if(do_icon_rotate)
|
|
data["rotation"] = rotation
|
|
data["name"] = name
|
|
if(pixel_x != initial(pixel_x))
|
|
data["pixel_x"] = pixel_x
|
|
if(pixel_y != initial(pixel_y))
|
|
data["pixel_y"] = pixel_y
|
|
|
|
/obj/effect/decal/cleanable/crayon/PersistenceLoad(list/data)
|
|
. = ..()
|
|
if(data["name"])
|
|
name = data["name"]
|
|
if(do_icon_rotate && data["rotation"])
|
|
var/matrix/M = matrix()
|
|
M.Turn(text2num(data["rotation"]))
|
|
transform = M
|
|
if(data["paint_color"])
|
|
paint_colour = data["paint_color"]
|
|
add_atom_colour(paint_colour, FIXED_COLOUR_PRIORITY)
|
|
if(data["icon_state"])
|
|
icon_state = data["icon_state"]
|
|
if(data["pixel_x"])
|
|
pixel_x = data["pixel_x"]
|
|
if(data["pixel_y"])
|
|
pixel_y = data["pixel_y"]
|