fonts can now have custom variations via jsons

This commit is contained in:
JHDev2006
2025-10-16 22:46:02 +01:00
parent 823b6274f8
commit 44e7da3fea
7 changed files with 42 additions and 23 deletions

View File

@@ -10,7 +10,7 @@ extends Node
resource_json = value
update_resource()
enum ResourceMode {SPRITE_FRAMES, TEXTURE, AUDIO, RAW}
enum ResourceMode {SPRITE_FRAMES, TEXTURE, AUDIO, RAW, FONT}
@export var use_cache := true
static var cache := {}
@@ -156,6 +156,9 @@ func get_resource(json_file: JSON) -> Resource:
resource = load_audio_from_path(source_resource_path)
ResourceMode.RAW:
pass
ResourceMode.FONT:
resource = FontFile.new()
resource.load_bitmap_font(source_resource_path)
if cache.has(json_file.resource_path) == false and use_cache and not is_random:
cache[json_file.resource_path] = resource
return resource

View File

@@ -1,12 +1,10 @@
class_name FontUpdater
extends Node
@onready var resource_getter_smb1 := ResourceGetter.new()
@onready var resource_getter_smbll := ResourceGetter.new()
@onready var resource_getter_score := ResourceGetter.new()
var main_font: Resource = null
var score_font: Resource = null
@onready var FONT_LL_MAIN = load("uid://djxdgxy1iv8yv")
@onready var FONT_MAIN = load("uid://bl7sbw4nx3l1t")
var FONT_MAIN = preload("uid://bl7sbw4nx3l1t")
@onready var SCORE_FONT = load("uid://cflgloiossd8a")
@@ -17,6 +15,5 @@ func _ready() -> void:
Global.level_theme_changed.connect(update_fonts)
func update_fonts() -> void:
FONT_MAIN.base_font = resource_getter_smb1.get_resource(FONT_MAIN.base_font)
FONT_LL_MAIN.base_font = resource_getter_smbll.get_resource(FONT_LL_MAIN.base_font)
SCORE_FONT.base_font = resource_getter_score.get_resource(SCORE_FONT.base_font)
FONT_MAIN.base_font = main_font
SCORE_FONT.base_font = score_font

View File

@@ -3,8 +3,7 @@ extends Node
@export var labels: Array[Label]
const SMB1 = preload("uid://bl7sbw4nx3l1t")
const SMBLL = preload("uid://djxdgxy1iv8yv")
const MAIN_FONT = preload("uid://bl7sbw4nx3l1t")
const SCORE_FONT = preload("uid://bk0no5p6sifgu")
@export var use_score_font := false
@@ -16,18 +15,11 @@ func _ready() -> void:
Global.level_theme_changed.connect(refresh_font)
func refresh_font() -> void:
if Global.current_campaign == "SMBLL":
current_font = SMBLL
else:
current_font = SMB1
update_labels()
func update_labels() -> void:
var font_to_use = current_font
if use_score_font:
font_to_use = SCORE_FONT
for i in labels:
if i == null:
continue
i.remove_theme_font_override("font")
i.add_theme_font_override("font", font_to_use)
i.add_theme_font_override("font", MAIN_FONT)