public LoadingWriterSceneInfo(User user, ILoadingScreen loadingScreen, WaitableTask <Encounter> encounter)
 {
     User          = user;
     LoadingScreen = loadingScreen;
     Encounter     = encounter;
     Encounter.AddOnCompletedListener(EncounterRetrieved);
 }
예제 #2
0
 public LoadingMenuSceneInfo(User user, ILoadingScreen loadingScreen, MenuArea menuArea, WaitableTask <IMenuEncountersInfo> menuEncountersInfo)
 {
     User               = user;
     LoadingScreen      = loadingScreen;
     MenuArea           = menuArea;
     MenuEncountersInfo = menuEncountersInfo;
     MenuEncountersInfo.AddOnCompletedListener(CategoriesRetrieved);
 }
        private void ProcessResults(WaitableTask <EncounterStatus> result,
                                    TaskResult <string> fileText, EncounterBasicStatus basicStatus)
        {
            EncounterContentStatus detailedStatus = (fileText.IsError()) ? new EncounterContentStatus() : parser.Deserialize(fileText.Value);
            var status = new EncounterStatus(basicStatus, detailedStatus);

            result.SetResult(status);
        }
예제 #4
0
        public WaitableTask <User> Login()
        {
            var user          = new WaitableTask <User>();
            var autoLoginUser = AutoLogin.Login();

            autoLoginUser.AddOnCompletedListener((result) => AutoLoginCompleted(user, result));

            return(user);
        }
        public WaitableTask <EncounterImageContent> GetImageData(User user, EncounterMetadata metadata)
        {
            var imageData = new WaitableTask <EncounterImageContent>();

            var fileText = fileManager.GetFileText(user, FileType.Image, metadata);

            fileText.AddOnCompletedListener((result) => ProcessResults(imageData, result));

            return(imageData);
        }
예제 #6
0
        public WaitableTask <EncounterMetadata> GetMetadata(User user, EncounterMetadata metadata)
        {
            var metadataResult = new WaitableTask <EncounterMetadata>();

            var fileText = fileManager.GetFileText(user, FileType.Metadata, metadata);

            fileText.AddOnCompletedListener((result) => ProcessResults(metadataResult, result));

            return(metadataResult);
        }
        public WaitableTask <EncounterNonImageContent> GetNonImageContent(User user, EncounterMetadata metadata)
        {
            var content = new WaitableTask <EncounterNonImageContent>();

            var fileText = fileManager.GetFileText(user, FileType.Data, metadata);

            fileText.AddOnCompletedListener((result) => ProcessResults(content, result));

            return(content);
        }
 private void ProcessResults(WaitableTask <EncounterImageContent> result, TaskResult <string> fileText)
 {
     if (fileText.IsError())
     {
         result.SetError(fileText.Exception);
     }
     else
     {
         result.SetResult(parser.Deserialize(fileText.Value));
     }
 }
        public WaitableTask <EncounterStatus> GetDetailedStatus(User user,
                                                                EncounterMetadata metadata, EncounterBasicStatus basicStatus)
        {
            var detailedStatus = new WaitableTask <EncounterStatus>();

            var fileText = fileManager.GetFileText(user, FileType.DetailedStatus, metadata);

            fileText.AddOnCompletedListener((result) => ProcessResults(detailedStatus, result, basicStatus));

            return(detailedStatus);
        }
예제 #10
0
 private void ManualLoginCompleted(WaitableTask <User> result, TaskResult <User> manualLoginUser)
 {
     if (manualLoginUser.IsError())
     {
         result.SetError(manualLoginUser.Exception);
     }
     else
     {
         result.SetResult(manualLoginUser.Value);
     }
 }
        public virtual WaitableTask <EncounterContent> GetEncounterData(User user, EncounterMetadata metadata)
        {
            var encounterData = new WaitableTask <EncounterContent>();
            var content       = ContentReader.GetNonImageContent(user, metadata);
            var imageData     = ImageDataReader.GetImageData(user, metadata);

            content.AddOnCompletedListener((result) => ProcessResults(encounterData, content, imageData));
            imageData.AddOnCompletedListener((result) => ProcessResults(encounterData, content, imageData));

            return(encounterData);
        }
예제 #12
0
        private void ProcessResults(WaitableTask <EncounterMetadata> result, TaskResult <string> fileText)
        {
            if (fileText.Value == null)
            {
                result.SetError(null);
                return;
            }

            var metadata = parser.Deserialize(fileText.Value);

            result.SetResult(metadata);
        }
예제 #13
0
        public virtual WaitableTask <Encounter> GetEncounter(User user, EncounterMetadata metadata, SaveType saveType)
        {
            var dataReader = dataReaderSelector.GetEncounterDataReader(saveType);

            var data = dataReader.GetEncounterData(user, metadata);

            var encounterData = new WaitableTask <Encounter>();

            data.AddOnCompletedListener((result) => ProcessResults(encounterData, metadata, result));

            return(encounterData);
        }
예제 #14
0
        private void AutoLoginCompleted(WaitableTask <User> result, TaskResult <User> autoLoginUser)
        {
            if (!autoLoginUser.IsError())
            {
                result.SetResult(autoLoginUser.Value);
                return;
            }

            var manualLoginUser = ManualLogin.Login();

            manualLoginUser.AddOnCompletedListener((manualLoginResult) => ManualLoginCompleted(result, manualLoginResult));
        }
예제 #15
0
        protected virtual void ProcessResults(WaitableTask <Encounter> result,
                                              EncounterMetadata metadata,
                                              TaskResult <EncounterContent> data)
        {
            if (data.IsError())
            {
                result.SetError(data.Exception);
                return;
            }
            var encounterData = new Encounter(metadata, data.Value);

            result.SetResult(encounterData);
        }
        protected virtual void ProcessResults(WaitableTask <EncounterContent> result,
                                              WaitableTask <EncounterNonImageContent> content,
                                              WaitableTask <EncounterImageContent> imageData)
        {
            if (result.IsCompleted() || !content.IsCompleted() || !imageData.IsCompleted())
            {
                return;
            }

            var encounterData = new EncounterContent(content.Result.Value, imageData.Result.Value);

            result.SetResult(encounterData);
        }