123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299 |
- using Godot;
- using System;
- using System.Collections;
- public class Example : Control
- {
- private Node MobileAds;
- IDictionary config;
- private Button EnableBanner;
- private Button DisableBanner;
- private Button ShowBanner;
- private Button HideBanner;
-
- private Button Interstitial;
- private Button Rewarded;
- private Button RewardedInterstitial;
-
- private Button RequestUserConsent;
- private Button ResetConsentState;
-
- private RichTextLabel Advice;
- private AudioStreamPlayer Music;
-
- private CheckBox BannerPosition;
- private ItemList BannerSizes;
- private void GetAllNodes()
- {
- MobileAds = (Node) GetNode("/root/MobileAds");
- config = (IDictionary) MobileAds.Get("config");
-
- EnableBanner = (Button) GetNode("Background/TabContainer/AdFormats/VBoxContainer/Banner/EnableBanner");
- DisableBanner = (Button) GetNode("Background/TabContainer/AdFormats/VBoxContainer/Banner/DisableBanner");
- ShowBanner = (Button) GetNode("Background/TabContainer/AdFormats/VBoxContainer/Banner2/ShowBanner");
- HideBanner = (Button) GetNode("Background/TabContainer/AdFormats/VBoxContainer/Banner2/HideBanner");
-
- Interstitial = (Button) GetNode("Background/TabContainer/AdFormats/VBoxContainer/Interstitial");
- Rewarded = (Button) GetNode("Background/TabContainer/AdFormats/VBoxContainer/Rewarded");
- RewardedInterstitial = (Button) GetNode("Background/TabContainer/AdFormats/VBoxContainer/RewardedInterstitial");
- RequestUserConsent = (Button) GetNode("Background/TabContainer/UMP/VBoxContainer/RequestUserConsent");
- ResetConsentState = (Button) GetNode("Background/TabContainer/UMP/VBoxContainer/ResetConsentState");
- Advice = (RichTextLabel) GetNode("Background/Advice");
- Music = (AudioStreamPlayer) GetNode("Music");
- BannerPosition = (CheckBox) GetNode("Background/TabContainer/Banner/VBoxContainer/Position");
- BannerSizes = (ItemList) GetNode("Background/TabContainer/Banner/VBoxContainer/BannerSizes");
- }
-
- private void _add_text_Advice_Node(String text_value)
- {
- Advice.BbcodeText += text_value + "\n";
- }
-
- public override void _Ready()
- {
- GetAllNodes();
- OS.CenterWindow();
- Music.Play();
- foreach(String banner_size in (IEnumerable) ((Godot.Object)MobileAds.Get("AdMobSettings")).Get("BANNER_SIZE"))
- {
- BannerSizes.AddItem(banner_size);
- }
- if (OS.GetName() == "Android" || OS.GetName() == "iOS"){
- BannerPosition.Pressed = Convert.ToBoolean(((IDictionary) config["banner"])["position"]);
- MobileAds.Call("request_user_consent");
- MobileAds.Connect("consent_info_update_failure", this, nameof(_on_MobileAds_consent_info_update_failure));
- MobileAds.Connect("consent_status_changed", this, nameof(_on_MobileAds_consent_status_changed));
- MobileAds.Connect("banner_loaded", this, nameof(_on_MobileAds_banner_loaded));
- MobileAds.Connect("banner_destroyed", this, nameof(_on_MobileAds_banner_destroyed));
- MobileAds.Connect("interstitial_loaded", this, nameof(_on_MobileAds_interstitial_loaded));
- MobileAds.Connect("interstitial_closed", this, nameof(_on_MobileAds_interstitial_closed));
- MobileAds.Connect("rewarded_ad_loaded", this, nameof(_on_MobileAds_rewarded_ad_loaded));
- MobileAds.Connect("rewarded_ad_closed", this, nameof(_on_MobileAds_rewarded_ad_closed));
- MobileAds.Connect("rewarded_interstitial_ad_loaded", this, nameof(_on_MobileAds_rewarded_interstitial_ad_loaded));
- MobileAds.Connect("rewarded_interstitial_ad_closed", this, nameof(_on_MobileAds_rewarded_interstitial_ad_closed));
- MobileAds.Connect("user_earned_rewarded", this, nameof(_on_MobileAds_user_earned_rewarded));
- MobileAds.Connect("initialization_complete", this, nameof(_on_MobileAds_initialization_complete));
- }
- else
- {
- _add_text_Advice_Node("AdMob only works on Android or iOS devices!");
- }
- }
- private void _on_MobileAds_initialization_complete(int status, String _adapter_name)
- {
- if (status == (int)((IDictionary) ((Godot.Object)MobileAds.Get("AdMobSettings")).Get("INITIALIZATION_STATUS"))["READY"])
- {
- MobileAds.Call("load_interstitial");
- MobileAds.Call("load_rewarded");
- MobileAds.Call("load_rewarded_interstitial");
-
- _add_text_Advice_Node("AdMob initialized on C#! With parameters:");
- _add_text_Advice_Node("is_for_child_directed_treatment: " + ((IDictionary) config["general"])["is_for_child_directed_treatment"].ToString());
- _add_text_Advice_Node("is_test_europe_user_consent: " + ((IDictionary) config["general"])["is_test_europe_user_consent"].ToString());
- _add_text_Advice_Node("max_ad_content_rating: " + ((IDictionary) config["general"])["max_ad_content_rating"].ToString());
- _add_text_Advice_Node("instance_id: " + GetInstanceId().ToString());
- EnableBanner.Disabled = false;
- BannerPosition.Disabled = false;
- RequestUserConsent.Disabled = false;
- ResetConsentState.Disabled = false;
- }
- else
- {
- _add_text_Advice_Node("AdMob not initialized, check your configuration");
- }
- _add_text_Advice_Node("---------------------------------------------------");
- }
- private void _on_MobileAds_interstitial_loaded()
- {
- _add_text_Advice_Node("Interstitial loaded");
- Interstitial.Disabled = false;
- }
- private void _on_MobileAds_interstitial_closed()
- {
- MobileAds.Call("load_interstitial");
- _add_text_Advice_Node("Interstitial closed");
- }
- private void _on_Interstitial_pressed()
- {
- MobileAds.Call("show_interstitial");
- Interstitial.Disabled = true;
- }
- private void reset_banner_buttons()
- {
- DisableBanner.Disabled = true;
- EnableBanner.Disabled = false;
- ShowBanner.Disabled = true;
- HideBanner.Disabled = true;
- }
- private void _on_MobileAds_banner_destroyed()
- {
- reset_banner_buttons();
- _add_text_Advice_Node("Banner destroyed");
- }
- private void _on_MobileAds_banner_loaded()
- {
- DisableBanner.Disabled = false;
- EnableBanner.Disabled = true;
- ShowBanner.Disabled = false;
- HideBanner.Disabled = false;
- _add_text_Advice_Node("Banner loaded");
- _add_text_Advice_Node("Banner width: " + MobileAds.Call("get_banner_width"));
- _add_text_Advice_Node("Banner height: " + MobileAds.Call("get_banner_height"));
- _add_text_Advice_Node("Banner width in pixels: " + MobileAds.Call("get_banner_width_in_pixels"));
- _add_text_Advice_Node("Banner height in pixels: " + MobileAds.Call("get_banner_height_in_pixels"));
- }
- private void _on_EnableBanner_pressed()
- {
- EnableBanner.Disabled = true;
- MobileAds.Call("load_banner");
- }
- private void _on_DisableBanner_pressed()
- {
- DisableBanner.Disabled = true;
- EnableBanner.Disabled = false;
- MobileAds.Call("destroy_banner");
- }
- private void _on_Rewarded_pressed()
- {
- MobileAds.Call("show_rewarded");
- Rewarded.Disabled = true;
- }
- private void _on_RewardedInterstitial_pressed()
- {
- MobileAds.Call("show_rewarded_interstitial");
- RewardedInterstitial.Disabled = true;
- }
- private void _on_MobileAds_rewarded_ad_loaded()
- {
- _add_text_Advice_Node("Rewarded ad loaded");
- Rewarded.Disabled = false;
- }
-
- private void _on_MobileAds_rewarded_ad_closed()
- {
- MobileAds.Call("load_rewarded");
- _add_text_Advice_Node("Rewarded ad closed");
- }
- private void _on_MobileAds_rewarded_interstitial_ad_loaded()
- {
- _add_text_Advice_Node("Rewarded Interstitial ad loaded");
- RewardedInterstitial.Disabled = false;
- }
-
- private void _on_MobileAds_rewarded_interstitial_ad_closed()
- {
- MobileAds.Call("load_rewarded_interstitial");
- _add_text_Advice_Node("Rewarded Interstitial ad closed");
- }
-
- private void _on_MobileAds_user_earned_rewarded(String currency, int amount)
- {
- Advice.BbcodeText += "EARNED " + currency + " with amount: " + amount.ToString() + "\n";
- }
- private void _on_MobileAds_consent_info_update_failure(int _error_code, String error_message)
- {
- _add_text_Advice_Node("Request Consent from European Users failure: " + error_message);
- _add_text_Advice_Node("---------------------------------------------------");
- }
- private void _on_MobileAds_consent_status_changed(String status_message)
- {
- _add_text_Advice_Node(status_message);
- }
- private void _on_BannerSizes_item_selected(int index)
- {
- if ((bool) MobileAds.Call("get_is_initialized"))
- {
- String item_text = (String) BannerSizes.GetItemText(index);
- ((IDictionary)config["banner"])["size"] = index;
- _add_text_Advice_Node("Banner Size changed:" + item_text);
- if ((bool) MobileAds.Call("get_is_banner_loaded"))
- {
- MobileAds.Call("load_banner");
- }
- }
- }
- private void _on_ResetConsentState_pressed()
- {
- MobileAds.Call("reset_consent_state", true);
- }
- private void _on_RequestUserConsent_pressed()
- {
- MobileAds.Call("request_user_consent");
- }
- private void _on_Position_pressed()
- {
- ((IDictionary)config["banner"])["position"] = BannerPosition.Pressed;
- if ((bool)MobileAds.Call("get_is_banner_loaded"))
- {
- MobileAds.Call("load_banner");
- }
- }
- private void _on_IsInitialized_pressed()
- {
- _add_text_Advice_Node("Is initialized: " + MobileAds.Call("get_is_initialized"));
- }
- private void _on_IsBannerLoaded_pressed()
- {
- _add_text_Advice_Node("Is Banner loaded: " + MobileAds.Call("get_is_banner_loaded"));
- }
- private void _on_IsInterstitialLoaded_pressed()
- {
- _add_text_Advice_Node("Is Interstitial loaded: " + MobileAds.Call("get_is_interstitial_loaded"));
- }
- private void _on_IsRewardedLoaded_pressed(){
- _add_text_Advice_Node("Is Rewarded loaded: " + MobileAds.Call("get_is_rewarded_loaded"));
- }
- private void _on_IsRewardedInterstitialLoaded_pressed(){
- _add_text_Advice_Node("Is RewardedInterstitial loaded: " + MobileAds.Call("get_is_rewarded_interstitial_loaded"));
- }
- private void _on_ShowBanner_pressed()
- {
- MobileAds.Call("show_banner");
- }
-
- private void _on_HideBanner_pressed()
- {
- MobileAds.Call("hide_banner");
- }
- }
|