protected override void UnloadData()
        {
            base.UnloadData();

            if (MyPerGameSettings.EnableAi)
            {
                Sync.Players.NewPlayerRequestSucceeded -= PlayerCreated;
                Sync.Players.LocalPlayerRemoved -= LocalPlayerRemoved;
                Sync.Players.LocalPlayerLoaded -= LocalPlayerLoaded;
                Sync.Players.NewPlayerRequestFailed -= Players_NewPlayerRequestFailed;
                if (Sync.IsServer)
                {
                    Sync.Players.PlayerRequesting -= Players_PlayerRequesting;
                    Sync.Players.PlayerRemoved -= Players_PlayerRemoved;
                }

                if (m_pathfinding != null) 
					m_pathfinding.UnloadData();
                m_botCollection.UnloadData();

                m_botCollection = null;
                m_pathfinding = null;

#if !XB1
                if (MyFakes.ENABLE_BEHAVIOR_TREE_TOOL_COMMUNICATION)
                {
                    MyMessageLoop.RemoveMessageHandler(MyWMCodes.BEHAVIOR_GAME_UPLOAD_TREE, OnUploadNewTree);
                    MyMessageLoop.RemoveMessageHandler(MyWMCodes.BEHAVIOR_GAME_STOP_SENDING, OnBreakDebugging);
                    MyMessageLoop.RemoveMessageHandler(MyWMCodes.BEHAVIOR_GAME_RESUME_SENDING, OnResumeDebugging);
                }
#endif

                if (MyToolbarComponent.CurrentToolbar != null)
                {
                    MyToolbarComponent.CurrentToolbar.SelectedSlotChanged -= CurrentToolbar_SelectedSlotChanged;
                    MyToolbarComponent.CurrentToolbar.SlotActivated -= CurrentToolbar_SlotActivated;
                    MyToolbarComponent.CurrentToolbar.Unselected -= CurrentToolbar_Unselected;
                }
            }
        }
Example #2
0
 protected override void UnloadData()
 {
     base.UnloadData();
     if (MyPerGameSettings.EnableAi)
     {
         Sync.Players.NewPlayerRequestSucceeded -= new Action <MyPlayer.PlayerId>(this.PlayerCreated);
         Sync.Players.LocalPlayerRemoved        -= new Action <int>(this.LocalPlayerRemoved);
         Sync.Players.LocalPlayerLoaded         -= new Action <int>(this.LocalPlayerLoaded);
         Sync.Players.NewPlayerRequestFailed    -= new Action <int>(this.Players_NewPlayerRequestFailed);
         if (Sync.IsServer)
         {
             Sync.Players.PlayerRequesting -= new PlayerRequestDelegate(this.Players_PlayerRequesting);
             Sync.Players.PlayerRemoved    -= new Action <MyPlayer.PlayerId>(this.Players_PlayerRemoved);
         }
         if (this.m_pathfinding != null)
         {
             this.m_pathfinding.UnloadData();
         }
         this.m_botCollection.UnloadData();
         this.m_botCollection = null;
         this.m_pathfinding   = null;
         if (MyFakes.ENABLE_BEHAVIOR_TREE_TOOL_COMMUNICATION)
         {
             MyMessageLoop.RemoveMessageHandler((uint)0x40a, new ActionRef <System.Windows.Forms.Message>(this.OnUploadNewTree));
             MyMessageLoop.RemoveMessageHandler((uint)0x40c, new ActionRef <System.Windows.Forms.Message>(this.OnBreakDebugging));
             MyMessageLoop.RemoveMessageHandler((uint)0x40b, new ActionRef <System.Windows.Forms.Message>(this.OnResumeDebugging));
         }
         if (MyToolbarComponent.CurrentToolbar != null)
         {
             MyToolbarComponent.CurrentToolbar.SelectedSlotChanged -= new Action <MyToolbar, MyToolbar.SlotArgs>(this.CurrentToolbar_SelectedSlotChanged);
             MyToolbarComponent.CurrentToolbar.SlotActivated       -= new Action <MyToolbar, MyToolbar.SlotArgs, bool>(this.CurrentToolbar_SlotActivated);
             MyToolbarComponent.CurrentToolbar.Unselected          -= new Action <MyToolbar>(this.CurrentToolbar_Unselected);
         }
     }
     Static = null;
 }