StreamOverlay/addons/twitcher/media/twitch_cheermote_definition.gd
2026-02-23 18:38:03 -06:00

50 lines
1.6 KiB
GDScript

extends RefCounted
## Definition of a specific cheermote
class_name TwitchCheermoteDefinition
const THEME_DARK: StringName = &"dark"
const THEME_LIGHT: StringName = &"light"
const TYPE_ANIMATED: StringName = &"animated_format"
const TYPE_STATIC: StringName = &"static_format"
const SCALE_1: StringName = &"1"
const SCALE_2: StringName = &"2"
const SCALE_3: StringName = &"3"
const SCALE_4: StringName = &"4"
const SCALE_1_5: StringName = &"1.5"
const SCALE_MAP: Dictionary[float, StringName] = {
1: SCALE_1, 2: SCALE_2, 3: SCALE_3, 4: SCALE_4, 1.5: SCALE_1_5
}
var prefix: String
var tier: StringName
var theme: StringName = THEME_DARK
var type: StringName = TYPE_ANIMATED
var scale: StringName = SCALE_1
func _init(pre: String, tir: String) -> void:
prefix = pre
tier = tir
func theme_dark() -> TwitchCheermoteDefinition: theme = THEME_DARK; return self;
func theme_light() -> TwitchCheermoteDefinition: theme = THEME_LIGHT; return self;
func type_animated() -> TwitchCheermoteDefinition: type = TYPE_ANIMATED; return self;
func type_static() -> TwitchCheermoteDefinition: type = TYPE_STATIC; return self;
func scale_1() -> TwitchCheermoteDefinition: scale = SCALE_1; return self;
func scale_2() -> TwitchCheermoteDefinition: scale = SCALE_2; return self;
func scale_3() -> TwitchCheermoteDefinition: scale = SCALE_3; return self;
func scale_4() -> TwitchCheermoteDefinition: scale = SCALE_4; return self;
func scale_1_5() -> TwitchCheermoteDefinition: scale = SCALE_1_5; return self;
func _to_string() -> String:
return "Cheer[%s/%s]" % [prefix, tier]
func get_id() -> String:
return "/" + "/".join([ prefix, tier, theme, type, scale ])