123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- using System;
- using System.Collections.Generic;
- namespace UnityEngine.Monetization
- {
- public struct CustomEvent
- {
- public string category;
- public string type;
- public IDictionary<string, object> data;
- public CustomEvent(string type, IDictionary<string, object> data = null) : this(null, type, data)
- {
- }
- public CustomEvent(string category, string type, IDictionary<string, object> data)
- {
- this.category = category;
- this.type = type;
- this.data = data;
- }
- internal IDictionary<string, object> dictionaryValue
- {
- get => new Dictionary<string, object>
- {
- {"category", category},
- {"type", type},
- {"data", data}
- };
- }
- }
- public class PlacementContent
- {
- public PlacementContent(string placementId, IPlacementContentOperations operations)
- {
- this.placementId = placementId;
- this.placementContentOperations = operations;
- }
- public string placementId { get; set; }
- public IDictionary<string, object> extras { get; internal set; }
- internal IPlacementContentOperations placementContentOperations { get; set; }
- public bool ready => placementContentOperations.ready;
- public PlacementContentState state => placementContentOperations.state;
- public virtual void SendCustomEvent(CustomEvent customEvent)
- {
- placementContentOperations.SendCustomEvent(customEvent);
- }
- }
- public class RewardablePlacementContent : PlacementContent
- {
- public RewardablePlacementContent(string placementId, IRewardedOperations operations) : base(placementId, operations)
- {
- rewardedOperations = operations;
- }
- private IRewardedOperations rewardedOperations { get; }
- public bool rewarded => rewardedOperations.IsRewarded();
- public string rewardId => rewardedOperations.rewardId;
- }
- public class ShowAdYield : CustomYieldInstruction
- {
- public ShowResult result { get; internal set; }
- internal bool showing { get; set; }
- public override bool keepWaiting => showing;
- }
- public class ShowAdPlacementContent : RewardablePlacementContent
- {
- public ShowAdPlacementContent(string placementId, IShowAdOperations operations) : base(placementId, operations)
- {
- this.showAdOperations = operations;
- }
- public string gamerSid { get; set; }
- public bool showing { get; private set; }
- private IShowAdOperations showAdOperations { get; }
- private ShowAdYield adYield;
- public ShowAdYield Show(ShowAdCallbacks? callbacks = null)
- {
- if (!string.IsNullOrEmpty(gamerSid))
- {
- var player = new MetaData("player");
- player.Set("server_id", gamerSid);
- #pragma warning disable 0618
- Monetization.SetMetaData(player);
- #pragma warning restore 0618
- }
- adYield = new ShowAdYield();
- adYield.showing = true;
- var adCallbacks = new ShowAdCallbacks
- {
- finishCallback = finishState =>
- {
- adYield.result = finishState;
- adYield.showing = showing = false;
- callbacks?.finishCallback?.Invoke(finishState);
- },
- startCallback = () =>
- {
- showing = true;
- callbacks?.startCallback?.Invoke();
- }
- };
- showAdOperations.Show(adCallbacks);
- return adYield;
- }
- public ShowAdYield Show(ShowAdFinishCallback finishCallback)
- {
- return Show(new ShowAdCallbacks
- {
- finishCallback = finishCallback
- });
- }
- }
- public class PromoAdPlacementContent : ShowAdPlacementContent
- {
- public PromoAdPlacementContent(string placementId, IPromoAdOperations operations) : base(placementId, operations)
- {
- this.promoAdOperations = operations;
- }
- private IPromoAdOperations promoAdOperations { get; set; }
- public PromoMetadata metadata => promoAdOperations.metadata;
- }
- }
|