mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 10:12:45 +00:00
Co-authored-by: Cameron Lennox <killer65311@gmail.com> Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
30 lines
983 B
Plaintext
30 lines
983 B
Plaintext
/*
|
|
MouseDrop:
|
|
|
|
Called on the atom you're dragging. In a lot of circumstances we want to use the
|
|
recieving object instead, so that's the default action. This allows you to drag
|
|
almost anything into a trash can.
|
|
*/
|
|
|
|
/atom/proc/CanMouseDrop(atom/over, var/mob/user = usr)
|
|
if(!user || !over)
|
|
return FALSE
|
|
if(user.incapacitated())
|
|
return FALSE
|
|
if(!src.Adjacent(user) || !over.Adjacent(user))
|
|
return FALSE // should stop you from dragging through windows
|
|
return TRUE
|
|
|
|
/atom/MouseDrop(atom/over, src_location, over_location, src_control, over_control, params)
|
|
if(!usr || !over)
|
|
return
|
|
if(!Adjacent(usr) || !over.Adjacent(usr))
|
|
return // should stop you from dragging through windows
|
|
if(is_incorporeal(usr))
|
|
return
|
|
|
|
INVOKE_ASYNC(over, TYPE_PROC_REF(/atom, MouseDrop_T), src, usr, src_location, over_location, src_control, over_control, params)
|
|
|
|
/atom/proc/MouseDrop_T(atom/dropping, mob/user, src_location, over_location, src_control, over_control, params)
|
|
return
|