示例#1
0
    public void Initialize()
    {
        if (PlayerPrefs.HasKey("masterVolume"))
        {
            Debug.Log($"masterVolume key exist with value of {PlayerPrefs.GetFloat("masterVolume")}");
            this.MasterAudioVolume = PlayerPrefs.GetFloat("masterVolume");
        }
        if (PlayerPrefs.HasKey("voiceVolume"))
        {
            this.VoiceAudioVolume = PlayerPrefs.GetFloat("voiceVolume");
        }
        if (PlayerPrefs.HasKey("musicVolume"))
        {
            this.MusicAudioVolume = PlayerPrefs.GetFloat("musicVolume");
        }
        if (PlayerPrefs.HasKey("sfxVolume"))
        {
            this.SfxAudioVolume = PlayerPrefs.GetFloat("sfxVolume");
        }
        if (PlayerPrefs.HasKey("audioPackage"))
        {
            Enum.TryParse(PlayerPrefs.GetString("audioPackage"), out VoicePackage audioPackage);
            this.VoicePackage = audioPackage;
        }

        if (PlayerPrefs.HasKey("imageAudioOption"))
        {
            Enum.TryParse(PlayerPrefs.GetString("imageAudioOption"), out ImageAudioOptions imageAudioOptions);
            this.ImageAudio = imageAudioOptions;
        }

        if (PlayerPrefs.HasKey("letterAudioOption"))
        {
            Enum.TryParse(PlayerPrefs.GetString("letterAudioOption"), out LetterAudioOptions letterAudioOptions);
            this.LetterAudio = letterAudioOptions;
        }

        if (PlayerPrefs.HasKey("letterCasingOption"))
        {
            Enum.TryParse(PlayerPrefs.GetString("letterCasingOption"), out LetterCasingOptions letterCasingOptions);
            this.LetterCasingOptions = letterCasingOptions;
        }

        if (PlayerPrefs.HasKey("shuffleOption"))
        {
            this.Shuffle = Convert.ToBoolean(PlayerPrefs.GetInt("shuffleOption"));
        }
        if (PlayerPrefs.HasKey("repeatOption"))
        {
            this.Repeat = Convert.ToBoolean(PlayerPrefs.GetInt("repeatOption"));
        }
    }
示例#2
0
        private async Task HandleReceivedPackage(IPackage package)
        {
            this.online = true;

            if (package.IdReceiver != "")
            {
                await this.server.SendPackage(package);

                if (package.Type == PackageType.Text || package.Type == PackageType.Voice ||
                    package.Type == PackageType.File)
                {
                    IMessage message = package switch
                    {
                        TextPackage textPackage => new TextMessage(this.Id, textPackage.IdAuthor, textPackage.Time,
                                                                   textPackage.Content),
                        VoicePackage voicePackage => new VoiceMessage(this.Id, voicePackage.IdAuthor, voicePackage.Time,
                                                                      voicePackage.Content),
                        FilePackage filePackage => new FileMessage(this.Id, filePackage.IdAuthor, filePackage.Time,
                                                                   filePackage.Content)
                    };
                    // Тут нужен текст сообщения еще
                    // Лучше в Imessage еще хранить chatId, и текст
                    var chatId = string.Compare(this.Id, message.IdAuthor) == -1 ?
                                 $"{Id} {message.IdAuthor}" :
                                 $"{message.IdAuthor} {Id}";
                    server.dataBase.SetMessage(message, chatId);

                    //this.server.ServerDataBase.AddMessage(message);
                }

                this.OnGetPackage?.Invoke(package);
            }
            else
            {
                switch (package)
                {
                case DisconnectPackage:
                    await this.server.Disconnect(this.Id);

                    await this.Disconnect();

                    break;

                    /*case HistoryRequestPackage historyRequestPackage:
                     *  List<IMessage> messages = this.server.ServerDataBase.GetMessages(
                     *      this.Id, historyRequestPackage.IdRequest, historyRequestPackage.TimeUntil);
                     *  HistoryAnswerPackage packageAnswer1 = new HistoryAnswerPackage(this.Id,"",
                     *      messages.Select(message =>
                     *      {
                     *          Tuple<MessageType, string> result = message switch
                     *          {
                     *              TextMessage textMessage => new Tuple<MessageType, string>(message.Type,
                     *                  textMessage.Content),
                     *              VoiceMessage => new Tuple<MessageType, string>(message.Type, "voice message"),
                     *              FileMessage => new Tuple<MessageType, string>(message.Type, "file")
                     *          };
                     *          return result;
                     *      }).ToList());
                     *  await this.server.SendPackage(packageAnswer1);
                     *  break;*/

                    /*case UsersListRequestPackage usersListRequestPackage:
                     *  List<string> users = this.server.ServerDataBase
                     *      .GetUsersWithSimilarId(usersListRequestPackage.IdRequest);
                     *  UsersListAnswerPackage packageAnswer2 = new UsersListAnswerPackage(this.Id, "", users);
                     *  await this.server.SendPackage(packageAnswer2);
                     *  break;*/
                }
            }
        }