Exemplo n.º 1
0
        public static TalkComponent LoadTalkComponent(TalkComponentIO talkComponentIO, ObservableCollection <CharacterImage> characterImages)
        {
            var component = new TalkComponent(characterImages);

            foreach (TalkComponentIO.BaseTalkElementIO item in talkComponentIO.TalkElements)
            {
                try
                {
                    if (item is TalkComponentIO.ShowCharacterElementIO)
                    {
                        component.TalkElements.Add(
                            new ShowCharacterElement(component.CharacterImages)
                        {
                            Index          = ((TalkComponentIO.ShowCharacterElementIO)item).Index,
                            CharacterImage = component.CharacterImages.First(obj => obj.Name == item.CharacterName),
                        });
                    }
                    if (item is TalkComponentIO.TalkElementIO)
                    {
                        component.TalkElements.Add(
                            new TalkElement(component.CharacterImages)
                        {
                            Text           = ((TalkComponentIO.TalkElementIO)item).Text.Replace("\n", "\r\n"),
                            CharacterImage = component.CharacterImages.First(obj => obj.Name == item.CharacterName),
                        });
                    }
                    if (item is TalkComponentIO.ChangeDiffElementIO)
                    {
                        component.TalkElements.Add(
                            new ChangeDiffElement(component.CharacterImages)
                        {
                            CharacterImage = component.CharacterImages.First(obj => obj.Name == item.CharacterName),
                            DiffImage      = component.CharacterImages.First(obj => obj.Name == item.CharacterName).DiffImages.First
                                                 (obj => obj.Name == ((TalkComponentIO.ChangeDiffElementIO)item).DiffImage),
                        });
                    }
                    if (item is TalkComponentIO.HideCharacterElementIO)
                    {
                        component.TalkElements.Add(
                            new HideCharacterElement(component.CharacterImages)
                        {
                            CharacterImage = component.CharacterImages.First(obj => obj.Name == item.CharacterName),
                        });
                    }
                }
                catch (Exception e)
                {
                    Logger.Error(e);
                }
            }
            return(component);
        }
Exemplo n.º 2
0
        public static TalkComponent LoadTalkComponent(TalkComponentIO talkComponentIO, List <CharacterImage> characterImages)
        {
            var component = new TalkComponent(characterImages);

            foreach (TalkComponentIO.BaseTalkElementIO item in talkComponentIO.TalkElements)
            {
                if (item is TalkComponentIO.ShowCharacterElementIO)
                {
                    component.TalkElements.Add(
                        new ShowCharacterElement()
                    {
                        Index          = ((TalkComponentIO.ShowCharacterElementIO)item).Index,
                        CharacterImage = component.CharacterImages.First(obj => obj.Name == item.CharacterName),
                    });
                }
                if (item is TalkComponentIO.TalkElementIO)
                {
                    component.TalkElements.Add(
                        new TalkElement()
                    {
                        Text           = ((TalkComponentIO.TalkElementIO)item).Text,
                        CharacterImage = component.CharacterImages.First(obj => obj.Name == item.CharacterName),
                    });
                }
                if (item is TalkComponentIO.ChangeDiffElementIO)
                {
                    component.TalkElements.Add(
                        new ChangeDiffElement()
                    {
                        DiffImage      = ((TalkComponentIO.ChangeDiffElementIO)item).DiffImage,
                        CharacterImage = component.CharacterImages.First(obj => obj.Name == item.CharacterName),
                    });
                }
                if (item is TalkComponentIO.HideCharacterElementIO)
                {
                    component.TalkElements.Add(
                        new HideCharacterElement()
                    {
                        CharacterImage = component.CharacterImages.First(obj => obj.Name == item.CharacterName),
                    });
                }
            }
            return(component);
        }