Port 2V0-f window input and UI render command bridge
This commit is contained in:
+27
-1
@@ -67,11 +67,37 @@ static func _load_uncached(assets_root: String, vpath: String) -> Texture2D:
|
||||
if real != "":
|
||||
break
|
||||
if real == "":
|
||||
return null
|
||||
return _load_pack_image(rel)
|
||||
if real.get_extension().to_lower() == "sub":
|
||||
return _load_sub(real)
|
||||
return _load_image_file(real)
|
||||
|
||||
static func _load_pack_image(rel: String) -> Texture2D:
|
||||
if not ClassDB.class_exists("Metin2Pack") or not Metin2Pack.is_ready():
|
||||
return null
|
||||
if not Metin2Pack.exists(rel):
|
||||
return null
|
||||
var ext := rel.get_extension().to_lower()
|
||||
var image: Image
|
||||
if ext == "dds":
|
||||
if not ClassDB.class_exists("Metin2World"):
|
||||
return null
|
||||
var helper: Object = ClassDB.instantiate("Metin2World")
|
||||
image = helper.call("load_dds", "pack://" + rel)
|
||||
helper.free()
|
||||
else:
|
||||
var bytes: PackedByteArray = Metin2Pack.get_bytes(rel)
|
||||
image = Image.new()
|
||||
var err := ERR_FILE_UNRECOGNIZED
|
||||
match ext:
|
||||
"tga": err = image.load_tga_from_buffer(bytes)
|
||||
"png": err = image.load_png_from_buffer(bytes)
|
||||
"jpg", "jpeg": err = image.load_jpg_from_buffer(bytes)
|
||||
"bmp": err = image.load_bmp_from_buffer(bytes)
|
||||
if err != OK:
|
||||
return null
|
||||
return ImageTexture.create_from_image(image) if image != null and not image.is_empty() else null
|
||||
|
||||
static func _load_image_file(path: String) -> Texture2D:
|
||||
# .sub 文件可能引用了未随当前资源包发布的共享贴图(例如 Public.tga)。
|
||||
# 先做存在性检查,避免 headless/UI fallback 因缺失可选贴图刷错误日志。
|
||||
|
||||
Reference in New Issue
Block a user