public override void OnLevelLoaded(LoadMode mode)
        {
            base.OnLevelLoaded(mode);

            if (mode != LoadMode.LoadGame && mode != LoadMode.NewGame && mode != LoadMode.NewGameFromScenario)
            {
                //note: I won't to perform checks about reloading the game. Be advised - quitting to Desktop must be performed before every new load.
                return;
            }
            TransfersStatisticsPanel = (UI.TransfersStatisticsPanel)UIView.GetAView().AddUIComponent(typeof(UI.TransfersStatisticsPanel));
            OrigCargoInfoPanel       = (UI.OrigCargoInfoPanel)UIView.GetAView().AddUIComponent(typeof(UI.OrigCargoInfoPanel));
            CarriedCargoPanel        = (UI.CarriedCargoPanel)UIView.GetAView().AddUIComponent(typeof(UI.CarriedCargoPanel));
            Hooking.Setup();
        }
        public override void OnLevelUnloading()
        {
            base.OnLevelUnloading();

            if (TransfersStatisticsPanel != null)
            {
                GameObject.Destroy(TransfersStatisticsPanel);
            }
            TransfersStatisticsPanel = null;
            if (OrigCargoInfoPanel != null)
            {
                GameObject.Destroy(OrigCargoInfoPanel);
            }
            OrigCargoInfoPanel = null;
            if (CarriedCargoPanel != null)
            {
                GameObject.Destroy(CarriedCargoPanel);
            }
            CarriedCargoPanel = null;
        }