123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- using System;
- using Unity.Collections;
- namespace LitMotion
- {
- /// <summary>
- /// Type of characters used to fill in invisible strings.
- /// </summary>
- public enum ScrambleMode : byte
- {
- /// <summary>
- /// None
- /// </summary>
- None = 0,
- /// <summary>
- /// A-Z
- /// </summary>
- Uppercase = 1,
- /// <summary>
- /// a-z
- /// </summary>
- Lowercase = 2,
- /// <summary>
- /// 0-9
- /// </summary>
- Numerals = 3,
- /// <summary>
- /// A-Z, a-z, 0-9
- /// </summary>
- All = 4,
- /// <summary>
- /// Custom characters.
- /// </summary>
- Custom = 5
- }
- /// <summary>
- /// Options for string type motion.
- /// </summary>
- public struct StringOptions : IMotionOptions, IEquatable<StringOptions>
- {
- public ScrambleMode ScrambleMode;
- public bool RichTextEnabled;
- public FixedString64Bytes CustomScrambleChars;
- public Unity.Mathematics.Random RandomState;
- public readonly bool Equals(StringOptions other)
- {
- return other.ScrambleMode == ScrambleMode &&
- other.RichTextEnabled == RichTextEnabled &&
- other.CustomScrambleChars == CustomScrambleChars &&
- other.RandomState.state == RandomState.state;
- }
- public override readonly bool Equals(object obj)
- {
- if (obj is StringOptions options) return Equals(options);
- return false;
- }
- public override readonly int GetHashCode()
- {
- return HashCode.Combine(ScrambleMode, RichTextEnabled, CustomScrambleChars, RandomState);
- }
- }
- }
|