Sym.GameObject.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using System;
  2. using System.Collections.Generic;
  3. namespace FF8
  4. {
  5. public static partial class Sym
  6. {
  7. public sealed class GameObject
  8. {
  9. public String Name { get; }
  10. private readonly List<String> _names = new List<String>();
  11. internal GameObject(String objectName)
  12. {
  13. if (String.IsNullOrWhiteSpace(objectName))
  14. throw new ArgumentException($"Object name cannot be empty.", nameof(objectName));
  15. Name = objectName;
  16. }
  17. public String GetScriptName(Int32 index, String defaultValue = "Undefined_{0:D2}")
  18. {
  19. if (index < _names.Count)
  20. return _names[index];
  21. return String.Format(defaultValue, index);
  22. }
  23. internal Int32 AddScript(String scriptName)
  24. {
  25. if (String.IsNullOrWhiteSpace(scriptName))
  26. throw new ArgumentException($"Script name cannot be empty.", nameof(scriptName));
  27. _names.Add(scriptName);
  28. return _names.Count - 1;
  29. }
  30. }
  31. }
  32. }