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