Newer
Older
TheVengeance-Project-IADE-Unity2D / Assets / Ink / InkLibs / InkCompiler / ParsedHierarchy / ContentList.cs
  1. using System.Collections.Generic;
  2. using System.Text;
  3. namespace Ink.Parsed
  4. {
  5. public class ContentList : Parsed.Object
  6. {
  7. public bool dontFlatten { get; set; }
  8. public Runtime.Container runtimeContainer {
  9. get {
  10. return (Runtime.Container) this.runtimeObject;
  11. }
  12. }
  13. public ContentList (List<Parsed.Object> objects)
  14. {
  15. if( objects != null )
  16. AddContent (objects);
  17. }
  18. public ContentList (params Parsed.Object[] objects)
  19. {
  20. if (objects != null) {
  21. var objList = new List<Parsed.Object> (objects);
  22. AddContent (objList);
  23. }
  24. }
  25. public ContentList()
  26. {
  27. }
  28. public void TrimTrailingWhitespace()
  29. {
  30. for (int i = this.content.Count - 1; i >= 0; --i) {
  31. var text = this.content [i] as Text;
  32. if (text == null)
  33. break;
  34. text.text = text.text.TrimEnd (' ', '\t');
  35. if (text.text.Length == 0)
  36. this.content.RemoveAt (i);
  37. else
  38. break;
  39. }
  40. }
  41. public override Runtime.Object GenerateRuntimeObject ()
  42. {
  43. var container = new Runtime.Container ();
  44. if (content != null) {
  45. foreach (var obj in content) {
  46. var contentObjRuntime = obj.runtimeObject;
  47. // Some objects (e.g. author warnings) don't generate runtime objects
  48. if( contentObjRuntime )
  49. container.AddContent (contentObjRuntime);
  50. }
  51. }
  52. if( dontFlatten )
  53. story.DontFlattenContainer (container);
  54. return container;
  55. }
  56. public override string ToString ()
  57. {
  58. var sb = new StringBuilder ();
  59. sb.Append ("ContentList(");
  60. sb.Append(string.Join (", ", content.ToStringsArray()));
  61. sb.Append (")");
  62. return sb.ToString ();
  63. }
  64. }
  65. }