using System; using UnityEngine; using System.Collections.Generic; namespace UnityEngine.Purchasing { /// /// Definition of a purchase payout /// [Serializable] public class PayoutDefinition { [SerializeField] PayoutType m_Type = PayoutType.Other; [SerializeField] string m_Subtype = string.Empty; [SerializeField] double m_Quantity; [SerializeField] string m_Data = string.Empty; /// /// Type of the payout /// public PayoutType type { get { return m_Type; } private set { m_Type = value; } } /// /// Type of the payout as a string /// public string typeString { get { return m_Type.ToString (); } } /// /// Maximum string length of the payout subtype /// public const int MaxSubtypeLength = 64; /// /// Subtype of the payout /// public string subtype { get { return m_Subtype; } private set { if (value.Length > MaxSubtypeLength) throw new ArgumentException(string.Format("subtype cannot be longer than {0}", MaxSubtypeLength)); m_Subtype = value; } } /// /// Quantity or value of the payout /// public double quantity { get { return m_Quantity; } private set { m_Quantity = value; } } /// /// Maximum number of bytes of the payout data /// public const int MaxDataLength = 1024; /// /// Payload data of the payout /// public string data { get { return m_Data; } private set { if (value.Length > MaxDataLength) throw new ArgumentException (string.Format ("data cannot be longer than {0}", MaxDataLength)); m_Data = value; } } /// /// Default constructor /// public PayoutDefinition() { } /// /// Parametrized constructor /// /// The payout type, as a string. /// The payout subtype. /// The payout quantity. public PayoutDefinition (string typeString, string subtype, double quantity) : this (typeString, subtype, quantity, string.Empty) { } /// /// Parametrized constructor /// /// The payout type, as a string. /// The payout subtype. /// The payout quantity. /// The payout data. public PayoutDefinition (string typeString, string subtype, double quantity, string data) { PayoutType t = PayoutType.Other; if (Enum.IsDefined(typeof(PayoutType), typeString)) t = (PayoutType)Enum.Parse (typeof (PayoutType), typeString); this.type = t; this.subtype = subtype; this.quantity = quantity; this.data = data; } /// /// Parametrized constructor /// /// The payout subtype. /// The payout quantity. public PayoutDefinition (string subtype, double quantity) : this (PayoutType.Other, subtype, quantity, string.Empty) { } /// /// Parametrized constructor /// /// The payout subtype. /// The payout quantity. /// The payout data. public PayoutDefinition (string subtype, double quantity, string data) : this (PayoutType.Other, subtype, quantity, data) { } /// /// Parametrized constructor /// /// The payout type. /// The payout subtype. /// The payout quantity. public PayoutDefinition (PayoutType type, string subtype, double quantity) : this (type, subtype, quantity, string.Empty) { } /// /// Parametrized constructor /// /// The payout type. /// The payout subtype. /// The payout quantity. /// The payout data. public PayoutDefinition (PayoutType type, string subtype, double quantity, string data) { this.type = type; this.subtype = subtype; this.quantity = quantity; this.data = data; } } }