private static void ToggleBeamAnimation(Workbench workbench, bool active) { workbench.GetData().animatingBeams = active; try { workbench.workingLight.SetActive(active); workbench.animator.SetBool(AnimatorHashID.working, active); var sparks = (GameObject[])sparksField.GetValue(workbench); var beams = workbench.fxLaserBeam; for (var i = 0; i < beams.Length; i++) { beams[i].SetActive(active); var ps = sparks[i].GetComponent <ParticleSystem>(); if (active) { ps.Play(); } else { ps.Stop(); } } } catch (Exception e) { AGLogger.ExceptionOnce(e); } }