[MIRROR] Fixes contractor drop pods not being clickable due to suspected BYOND issue. [MDB IGNORE] (#8454)

* Fixes contractor drop pods not being clickable due to suspected BYOND issue. (#61723)

Fixes #61695

When breaking the entire problem down, I identified the point in time at which the pod stopped being clickable
Spawning in pods manually and running their various procs couldn't replicate the issue. As a result, I eliminated pod code as the root cause and focused on the pod_landingzone that control them.

I considered the debris as a possible cause following:
#61695

However, removing the debris actually removed ALL clickable area for the pods. The debris overlap was the only part that let me click on the pods.

So then I set to hacking away at any animation code. At one point I removed both the animates

animate(pod.get_filter("motionblur"), y = 0, time = pod.delays[POD_FALLING], flags = ANIMATION_PARALLEL)
animate(pod, pixel_z = -1 * abs(sin(rotation))*4, pixel_x = SUPPLYPOD_X_OFFSET + (sin(rotation) * 20), time = pod.delays[POD_FALLING], easing = LINEAR_EASING, flags = ANIMATION_PARALLEL) //Make the pod fall! At an angle!
from /obj/effect/pod_landingzone/proc/beginLaunch and the problem still persisted.

When I removed pod.add_filter("motionblur",1,list("type"="motion_blur", "x"=0, "y"=3)) after this (the effect was permanently on the pod which made it pretty obvious as a possible cause) the problem vanished entirely.

Without the motion blur filter applied, pods now function properly.

As a result, I believe this is a BYOND issue. Someone with more brains than me can probably work out a test case. Until someone with more brains than me comes along to fix it, removing the motion blur filter is my solution.

* Fixes contractor drop pods not being clickable due to suspected BYOND issue.

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
This commit is contained in:
SkyratBot
2021-09-29 02:17:24 +01:00
committed by GitHub
co-authored by Timberpoes
parent b2a800c77d
commit c37c4fdae0
+1 -4
View File
@@ -612,8 +612,6 @@
/obj/effect/pod_landingzone/proc/beginLaunch(effectCircle) //Begin the animation for the pod falling. The effectCircle param determines whether the pod gets to come in from any descent angle
pod.addGlow()
pod.update_appearance()
if (pod.style != STYLE_INVISIBLE)
pod.add_filter("motionblur",1,list("type"="motion_blur", "x"=0, "y"=3))
pod.forceMove(drop_location())
for (var/mob/living/M in pod) //Remember earlier (initialization) when we moved mobs into the pod_landingzone so they wouldnt get lost in nullspace? Time to get them out
M.reset_perspective(null)
@@ -625,8 +623,7 @@
pod.transform = matrix().Turn(rotation)
pod.layer = FLY_LAYER
if (pod.style != STYLE_INVISIBLE)
animate(pod.get_filter("motionblur"), y = 0, time = pod.delays[POD_FALLING], flags = ANIMATION_PARALLEL)
animate(pod, pixel_z = -1 * abs(sin(rotation))*4, pixel_x = SUPPLYPOD_X_OFFSET + (sin(rotation) * 20), time = pod.delays[POD_FALLING], easing = LINEAR_EASING, flags = ANIMATION_PARALLEL) //Make the pod fall! At an angle!
animate(pod, pixel_z = -1 * abs(sin(rotation))*4, pixel_x = SUPPLYPOD_X_OFFSET + (sin(rotation) * 20), time = pod.delays[POD_FALLING], easing = LINEAR_EASING) //Make the pod fall! At an angle!
addtimer(CALLBACK(src, .proc/endLaunch), pod.delays[POD_FALLING], TIMER_CLIENT_TIME) //Go onto the last step after a very short falling animation
/obj/effect/pod_landingzone/proc/setupSmoke(rotation)