public static void SetActiveTurretController(TurretController turretController, bool inheritControlStates)
    {
        if (s_instance == null)
        {
            return;
        }

        if (s_instance.m_activeTurretController != null)
        {
            if (inheritControlStates && turretController != null)
            {
                turretController.SetCanControl(s_instance.m_activeTurretController.CanControl);
                turretController.SetCanFire(s_instance.m_activeTurretController.CanFire);
            }

            foreach (TurretController tc in s_instance.m_activeTurretController.GetComponents <TurretController>())
            {
                tc.SetActive(false);
            }
        }

        s_instance.m_activeTurretController = turretController;

        if (turretController != null)
        {
            Debug.Log(DebugUtilities.AddTimestampPrefix("Active TurretController is now " + turretController.GetType()));
            foreach (TurretController tc in turretController.gameObject.GetComponents <TurretController>())
            {
                tc.SetActive(tc == turretController);
            }
        }
        else
        {
            Debug.Log(DebugUtilities.AddTimestampPrefix("Active TurretController was cleared"));
        }
    }