From c37c4fdae03586c4e6eda0e18faf5ecaee51d86f Mon Sep 17 00:00:00 2001 From: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Date: Wed, 29 Sep 2021 03:17:24 +0200 Subject: [PATCH] [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 --- code/modules/cargo/supplypod.dm | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/code/modules/cargo/supplypod.dm b/code/modules/cargo/supplypod.dm index d82bdcb2c85..0cce41d4a88 100644 --- a/code/modules/cargo/supplypod.dm +++ b/code/modules/cargo/supplypod.dm @@ -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)