Пример #1
0
        private void ResetHearingUser()
        {
            World world = FrooxEngine.Engine.Current.WorldManager.FocusedWorld;

            UniLog.Log("Reset hearing user for world " + world.CorrespondingWorldId);
            Dictionary <RefID, User> .ValueCollection users = world.AllUsers;
            recording_hearing_user = world.LocalUser;
            if (!is_in_VR_mode || !default_record_local_user)
            {
                foreach (User user in users)
                {
                    if (user.UserID != null)
                    {
                        MetaGenUser user_data = dataBase.GetUserData(user.UserID);
                        if (user != world.LocalUser && user_data.default_public && user_data.default_recording)
                        {
                            recording_hearing_user = user;
                            break;
                        }
                    }
                }
            }
            SetHearingUser(recording_hearing_user);
        }
Пример #2
0
        private void processCommand(Message msg)
        {
            string msg_text     = msg.Content;
            World  currentWorld = FrooxEngine.Engine.Current.WorldManager.FocusedWorld;

            currentWorld.RunSynchronously(() =>
            {
                List <string> msgarr = msg_text.Split(' ').ToList();
                string command       = msgarr[0];
                string argument      = msgarr.Count > 1 ? string.Join(" ", msgarr.Skip(1)) : "";
                switch (command)
                {
                case "hearing":
                    current_metagen.recording_hearing = argument == "y";
                    break;

                case "vision":
                    current_metagen.recording_vision = argument == "y";
                    break;

                case "voice":
                    current_metagen.recording_voice = argument == "y";
                    break;

                case "movement":
                    current_metagen.recording_streams = argument == "y";
                    break;

                case "hu": //hearing user
                    User user = FrooxEngine.Engine.Current.WorldManager.FocusedWorld.FindUser(u => u.UserName == argument);
                    if (user != null)
                    {
                        SetHearingUser(user);
                    }
                    break;

                case "rec": //start recording
                    current_metagen.StartRecording();
                    break;

                case "stoprec": //stop recording
                    current_metagen.StopRecording();
                    break;

                case "play": //start recording
                    current_metagen.StartPlaying();
                    break;

                case "stop": //stop playing
                    current_metagen.StopPlaying();
                    break;

                case "reset": //reset current metagen (e.g. if it crashed)
                    ResetCurrentMetaGen();
                    break;

                case "default":
                    if (argument == "no public")
                    {
                        dataBase.UpdateDefaultPublic(msg.SenderId, false);
                        SendMessage(msg.SenderId, "Default updated to private");
                    }
                    else
                    {
                        dataBase.UpdateDefaultPublic(msg.SenderId, true);
                        SendMessage(msg.SenderId, "Default updated to public");
                    }
                    break;

                case "info":
                    MetaGenUser user_data            = dataBase.GetUserData(msg.SenderId);
                    bool default_public              = user_data.default_public;
                    float total_recorded_time        = (int)user_data.total_recorded;
                    float total_recorded_time_public = (int)user_data.total_recorded_public;
                    string message = System.String.Format("Default license: " + (default_public ? "public" : "private") + "\n" + "Total recorded time: {0:0}h{1:0}m{2:0}s" + "\n" + "Total public recorded time:  {3:0}h{4:0}m{5:0}s",
                                                          System.Math.Floor(System.Math.Floor(total_recorded_time / 60f) / 60f), System.Math.Floor(total_recorded_time / 60f) % 60, total_recorded_time % 60,
                                                          System.Math.Floor(System.Math.Floor(total_recorded_time_public / 60f) / 60f), System.Math.Floor(total_recorded_time_public / 60f) % 60, total_recorded_time_public % 60);
                    SendMessage(msg.SenderId, message);
                    break;
                }
            });
        }