GameFramework.RoomManager.PlayerGotoRoom C# (CSharp) Method

PlayerGotoRoom() private method

private PlayerGotoRoom ( User user, int roomId, int targetRoomId ) : void
user User
roomId int
targetRoomId int
return void
        private void PlayerGotoRoom(User user, int roomId, int targetRoomId)
        {
            bool isFieldThread;
            int ix = GetActiveRoomThreadIndex(targetRoomId, out isFieldThread);
            if (ix < 0)
                return;

            RoomThread roomThread;
            if (isFieldThread) {
                roomThread = field_roomthread_list_[ix];
            } else {
                roomThread = roomthread_list_[ix];
            }
            roomThread.QueueAction(roomThread.AddUser, user, targetRoomId, (MyAction<bool, int, User>)((bool ret, int sceneId, User successUser) => {
                if (ret) {
                    Msg_RC_ChangeScene msg = new Msg_RC_ChangeScene();
                    msg.target_scene_id = sceneId;
                    successUser.SendMessage(RoomMessageDefine.Msg_RC_ChangeScene, msg);

                    Msg_RL_ChangeSceneResult replyBuilder = new Msg_RL_ChangeSceneResult();
                    EntityInfo info = user.Info;
                    if (null != info) {
                        replyBuilder.HP = info.Hp;
                        replyBuilder.MP = info.Energy;
                    }
                    replyBuilder.UserGuid = user.Guid;
                    replyBuilder.RoomID = roomId;
                    replyBuilder.TargetRoomID = targetRoomId;
                    replyBuilder.Result = (int)SceneOperationResultEnum.Success;
                    connector_.SendMsgToLobby(replyBuilder);
                } else {
                    Msg_RL_ChangeSceneResult replyBuilder = new Msg_RL_ChangeSceneResult();
                    replyBuilder.UserGuid = user.Guid;
                    replyBuilder.RoomID = roomId;
                    replyBuilder.TargetRoomID = targetRoomId;
                    replyBuilder.Result = (int)SceneOperationResultEnum.Cant_Find_Room;
                    connector_.SendMsgToLobby(replyBuilder);
                }
            }));
        }