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); }
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; } }); }