Files
Bubberstation/code/modules/buildmode/effects/line.dm
SkyratBot b0c01e40af [MIRROR] Del The World: Unit testing for hard deletes (#7589)
* Del The World: Unit testing for hard deletes (#59612)

Co-authored-by: SteelSlayer <42044220+SteelSlayer@ users.noreply.github.com>

* Del The World: Unit testing for hard deletes

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: SteelSlayer <42044220+SteelSlayer@ users.noreply.github.com>
2021-08-17 18:58:57 +01:00

32 lines
974 B
Plaintext

/obj/effect/buildmode_line
var/image/I
var/client/cl
/obj/effect/buildmode_line/New(client/C, atom/atom_a, atom/atom_b, linename)
if(!C || !atom_a || !atom_b)
stack_trace("Buildmode effect created with odd inputs")
return
name = linename
abstract_move(get_turf(atom_a))
I = image('icons/misc/mark.dmi', src, "line", 19.0)
var/x_offset = ((atom_b.x * 32) + atom_b.pixel_x) - ((atom_a.x * 32) + atom_a.pixel_x)
var/y_offset = ((atom_b.y * 32) + atom_b.pixel_y) - ((atom_a.y * 32) + atom_a.pixel_y)
var/matrix/mat = matrix()
mat.Translate(0, 16)
mat.Scale(1, sqrt((x_offset * x_offset) + (y_offset * y_offset)) / 32)
mat.Turn(90 - ATAN2(x_offset, y_offset)) // So... You pass coords in order x,y to this version of atan2. It should be called acsc2.
mat.Translate(atom_a.pixel_x, atom_a.pixel_y)
transform = mat
cl = C
cl.images += I
/obj/effect/buildmode_line/Destroy()
if(I)
if(istype(cl))
cl.images -= I
cl = null
QDEL_NULL(I)
return ..()