Laggy DragNDrop fix (#21052)

* added dragndrop click methods for atoms

* some updating, little changing MouseDrop logic

* added INVOKE_ASYNC to delayed procs

* cleanup

* cleanup

* cleanup

* no cheesing

* more comments, removed  variable from atom

* whoopsie

* added inventory screen objects support, disabling tooltips now disables all tooltips, not only items

* fixing table hitting self issue
This commit is contained in:
HMBGERDO
2023-06-22 18:19:52 +02:00
committed by GitHub
parent 70541d997c
commit fc3dcb1254
30 changed files with 138 additions and 58 deletions
@@ -255,6 +255,7 @@
if(user != O)
user.visible_message("<span class='danger'>[user] stuffs [O] into [src]!</span>", "<span class='danger'>You stuff [O] into [src]!</span>")
add_fingerprint(user)
return TRUE
/obj/structure/closet/attack_ai(mob/user)
if(isrobot(user) && Adjacent(user)) //Robots can open/close it, but not the AI
@@ -89,7 +89,8 @@
if(isanimal(user) && victim != user)
return // animals cannot put mobs other than themselves onto spikes
add_fingerprint(user)
start_spike(victim, user)
INVOKE_ASYNC(src, TYPE_PROC_REF(/obj/structure/kitchenspike, start_spike), victim, user)
return TRUE
/obj/structure/kitchenspike/proc/start_spike(mob/living/victim, mob/user)
if(has_buckled_mobs())
+2 -1
View File
@@ -244,6 +244,7 @@
if(user != O)
user.visible_message("<span class='warning'>[user] stuffs [O] into [src]!</span>")
return TRUE
/obj/structure/m_tray/Destroy()
@@ -527,7 +528,7 @@ GLOBAL_LIST_EMPTY(crematoriums)
if(user != O)
user.visible_message("<span class='warning'>[user] stuffs [O] into [src]!</span>")
//Foreach goto(99)
return
return TRUE
/obj/structure/c_tray/Destroy()
if(connected && connected.connected == src)
@@ -216,7 +216,6 @@
return
/obj/structure/bed/roller/MouseDrop(over_object, src_location, over_location)
..()
if(over_object == usr && Adjacent(usr) && (in_range(src, usr) || usr.contents.Find(src)))
if(!ishuman(usr) || usr.incapacitated())
return
@@ -225,6 +224,8 @@
usr.visible_message("<span class='notice'>[usr] collapses \the [name].</span>", "<span class='notice'>You collapse \the [name].</span>")
new folded(get_turf(src))
qdel(src)
return
..()
/obj/item/roller_holder
name = "roller bed rack"
@@ -63,7 +63,6 @@
..()
/obj/structure/chair/MouseDrop(over_object, src_location, over_location)
. = ..()
if(over_object == usr && Adjacent(usr))
if(!item_chair || has_buckled_mobs())
return
@@ -82,6 +81,8 @@
var/C = new item_chair(loc)
usr.put_in_hands(C)
qdel(src)
return
. = ..()
/obj/structure/chair/attack_tk(mob/user as mob)
if(!anchored || has_buckled_mobs() || !isturf(user.loc))
+4 -2
View File
@@ -176,7 +176,8 @@
return 1
/obj/structure/table/MouseDrop_T(obj/O, mob/user)
..()
if(..())
return TRUE
if((!( isitem(O) ) || user.get_active_hand() != O))
return
if(isrobot(user))
@@ -185,7 +186,7 @@
return
if(O.loc != src.loc)
step(O, get_dir(O, src))
return
return TRUE
/obj/structure/table/proc/tablepush(obj/item/grab/G, mob/user)
if(HAS_TRAIT(user, TRAIT_PACIFISM))
@@ -878,6 +879,7 @@
return
if(O.loc != src.loc)
step(O, get_dir(O, src))
return TRUE
/obj/structure/rack/attackby(obj/item/W, mob/user, params)
if(isrobot(user))