LanguageData.cs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. using System;
  2. using UnityEngine;
  3. using System.Linq;
  4. using System.Collections.Generic;
  5. using Object = UnityEngine.Object;
  6. namespace I2.Loc
  7. {
  8. public enum eLanguageDataFlags
  9. {
  10. DISABLED = 1,
  11. KEEP_LOADED = 2,
  12. NOT_LOADED = 4
  13. }
  14. [Serializable]
  15. public class LanguageData
  16. {
  17. public string Name;
  18. public string Code;
  19. public byte Flags; // eLanguageDataFlags
  20. [NonSerialized]
  21. public bool Compressed = false; // This will be used in the next version for only loading used Languages
  22. public bool IsEnabled () { return (Flags & (int)eLanguageDataFlags.DISABLED) == 0; }
  23. public void SetEnabled( bool bEnabled )
  24. {
  25. if (bEnabled) Flags = (byte)(Flags & (~(int)eLanguageDataFlags.DISABLED));
  26. else Flags = (byte)(Flags | (int)eLanguageDataFlags.DISABLED);
  27. }
  28. public bool IsLoaded () { return (Flags & (int)eLanguageDataFlags.NOT_LOADED) == 0; }
  29. public bool CanBeUnloaded () { return (Flags & (int)eLanguageDataFlags.KEEP_LOADED) == 0; }
  30. public void SetLoaded ( bool loaded )
  31. {
  32. if (loaded) Flags = (byte)(Flags & (~(int)eLanguageDataFlags.NOT_LOADED));
  33. else Flags = (byte)(Flags | (int)eLanguageDataFlags.NOT_LOADED);
  34. }
  35. public void SetCanBeUnLoaded(bool allowUnloading)
  36. {
  37. if (allowUnloading) Flags = (byte)(Flags & (~(int)eLanguageDataFlags.KEEP_LOADED));
  38. else Flags = (byte)(Flags | (int)eLanguageDataFlags.KEEP_LOADED);
  39. }
  40. }
  41. }