Newer
Older
TheVengeance-Project-IADE-Unity2D / Assets / Ink / InkLibs / InkRuntime / StatePatch.cs
  1. using System.Collections.Generic;
  2. namespace Ink.Runtime
  3. {
  4. public class StatePatch
  5. {
  6. public Dictionary<string, Runtime.Object> globals { get { return _globals; } }
  7. public HashSet<string> changedVariables { get { return _changedVariables; } }
  8. public Dictionary<Container, int> visitCounts { get { return _visitCounts; } }
  9. public Dictionary<Container, int> turnIndices { get { return _turnIndices; } }
  10. public StatePatch(StatePatch toCopy)
  11. {
  12. if( toCopy != null ) {
  13. _globals = new Dictionary<string, Object>(toCopy._globals);
  14. _changedVariables = new HashSet<string>(toCopy._changedVariables);
  15. _visitCounts = new Dictionary<Container, int>(toCopy._visitCounts);
  16. _turnIndices = new Dictionary<Container, int>(toCopy._turnIndices);
  17. } else {
  18. _globals = new Dictionary<string, Object>();
  19. _changedVariables = new HashSet<string>();
  20. _visitCounts = new Dictionary<Container, int>();
  21. _turnIndices = new Dictionary<Container, int>();
  22. }
  23. }
  24. public bool TryGetGlobal(string name, out Runtime.Object value)
  25. {
  26. return _globals.TryGetValue(name, out value);
  27. }
  28. public void SetGlobal(string name, Runtime.Object value){
  29. _globals[name] = value;
  30. }
  31. public void AddChangedVariable(string name)
  32. {
  33. _changedVariables.Add(name);
  34. }
  35. public bool TryGetVisitCount(Container container, out int count)
  36. {
  37. return _visitCounts.TryGetValue(container, out count);
  38. }
  39. public void SetVisitCount(Container container, int count)
  40. {
  41. _visitCounts[container] = count;
  42. }
  43. public void SetTurnIndex(Container container, int index)
  44. {
  45. _turnIndices[container] = index;
  46. }
  47. public bool TryGetTurnIndex(Container container, out int index)
  48. {
  49. return _turnIndices.TryGetValue(container, out index);
  50. }
  51. Dictionary<string, Runtime.Object> _globals;
  52. HashSet<string> _changedVariables = new HashSet<string>();
  53. Dictionary<Container, int> _visitCounts = new Dictionary<Container, int>();
  54. Dictionary<Container, int> _turnIndices = new Dictionary<Container, int>();
  55. }
  56. }