UnitIds.gd 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. tool
  2. extends HBoxContainer
  3. var AdUnit = preload("res://addons/admob/src/core/components/ad_format/unit_ids/ad_unit_operational_system/ad_unit/AdUnit.tscn")
  4. onready var AdMobEditor : Control = find_parent("AdMobEditor")
  5. onready var ad_format_name = AdMobEditor.AdMobSettings.pascal2snake(get_parent().name)
  6. func _ready():
  7. for operational_system in $OperationalSystemTabContainer.get_children():
  8. for unit_name in (AdMobEditor.AdMobSettings.config[ad_format_name].unit_ids[operational_system.name] as Dictionary):
  9. var unit_id = AdMobEditor.AdMobSettings.config[ad_format_name].unit_ids[operational_system.name][unit_name]
  10. instance_ad_unit(operational_system.name, false, unit_name, unit_id)
  11. get_node("OperationalSystemTabContainer/"+operational_system.name+"/AddAdUnitButton").connect("pressed", self, "_on_AddAdUnitButton_pressed", [operational_system.name])
  12. func _on_AdUnitChanged(name_value: String, id_value: String, old_name_value :String, system):
  13. remove_ad_unit(system, name_value)
  14. remove_ad_unit(system, old_name_value)
  15. add_ad_unit(system, name_value, id_value)
  16. func _on_AdUnitRemoved(name_value : String, system):
  17. remove_ad_unit(system, name_value)
  18. func _on_AddAdUnitButton_pressed(system):
  19. instance_ad_unit(system, true)
  20. func add_ad_unit(operational_system : String, name_value: String, id_value : String):
  21. AdMobEditor.AdMobSettings.config[ad_format_name].unit_ids[operational_system][name_value] = id_value
  22. func remove_ad_unit(operational_system : String, name_value: String):
  23. AdMobEditor.AdMobSettings.config[ad_format_name].unit_ids[operational_system].erase(name_value)
  24. AdMobEditor.AdMobSettings.save_config()
  25. func instance_ad_unit(system : String, is_editing : bool, unit_name : String = "", unit_id : String = ""):
  26. var tab_container = get_node("OperationalSystemTabContainer/"+system+"/AdUnitVBoxContainer")
  27. var ad_unit = AdUnit.instance()
  28. tab_container.add_child(ad_unit)
  29. ad_unit.connect("AdUnitChanged", self, "_on_AdUnitChanged", [system])
  30. ad_unit.connect("AdUnitRemoved", self, "_on_AdUnitRemoved", [system])
  31. ad_unit.Name.text = unit_name
  32. ad_unit.Id.text = unit_id
  33. ad_unit.is_editing = is_editing