68 lines
1.6 KiB
GDScript
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
|