TowerGame/addons/icons-fonts/resources/FontIconSetting.gd

68 lines
1.6 KiB
GDScript

@tool
@icon("res://addons/icons-fonts/resources/FontIconSettings.svg")
class_name FontIconSettings
extends Resource
@export_enum("MaterialIcons", "Emojis")
var icon_font := "MaterialIcons"
## Name of Icon to display
@export var icon_name := "image-outline":
set(value):
icon_name = value
emit_changed()
## Size of the icon in range 16-128
@export_range(16, 128, 1)
var icon_size := 16:
set(value):
icon_size = value
emit_changed()
@export var icon_color := Color.WHITE:
set(value):
icon_color = value
emit_changed()
@export_group("Outline", "outline_")
@export var outline_color := Color.WHITE:
set(value):
outline_color = value
emit_changed()
@export var outline_size := 0:
set(value):
outline_size = value
emit_changed()
@export_group("Shadow", "shadow_")
@export var shadow_color := Color.WHITE:
set(value):
shadow_color = value
emit_changed()
@export var shadow_size := 0:
set(value):
shadow_size = value
emit_changed()
@export var shadow_offset := Vector2.ZERO:
set(value):
shadow_offset = value
emit_changed()
func update_label_settings(label_settings: LabelSettings) -> void:
match icon_font:
"MaterialIcons":
label_settings.font = load(IconsFonts.material_icons_font)
"Emojis":
label_settings.font = load(IconsFonts.emojis_font)
label_settings.font_size = icon_size
label_settings.font_color = icon_color
label_settings.outline_color = outline_color
label_settings.outline_size = outline_size
label_settings.shadow_color = shadow_color
label_settings.shadow_offset = shadow_offset
label_settings.shadow_size = shadow_size