forked from V-Sekai/unidot_importer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathimport_worker.gd
37 lines (30 loc) · 1.2 KB
/
import_worker.gd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
@tool
extends "./thread_worker.gd"
const tarfile: GDScript = preload("./tarfile.gd")
const unitypackagefile: GDScript = preload("./unitypackagefile.gd")
class ThreadWork:
var asset: unitypackagefile.UnityPackageAsset
var tmpdir: String
var output_path: String
var extra: Variant
var is_loaded: bool
# asset: unitypackagefile.UnityPackageAsset object
func push_asset(asset: unitypackagefile.UnityPackageAsset, tmpdir: String, extra: Variant = null):
var tw = ThreadWork.new()
tw.asset = asset
tw.tmpdir = tmpdir
tw.extra = extra
if asset.parsed_meta != null:
asset.parsed_meta.log_debug(0, "Enqueue asset " + str(asset.guid) + " " + str(asset.pathname))
else:
print("Enqueue asset " + str(asset.guid) + " " + str(asset.pathname))
self.push_work_obj(tw)
func _run_single_item(tw_: Object, thread_subdir: String):
var tw: ThreadWork = tw_ as ThreadWork
asset_processing_started.emit(tw)
tw.output_path = asset_adapter.preprocess_asset(asset_database, tw.asset, tw.tmpdir, thread_subdir)
# It has not yet been added to the database, so do not use rename()
if tw.asset.parsed_meta != null:
tw.asset.parsed_meta.path = tw.output_path
tw.asset.pathname = tw.output_path
asset_processing_finished.emit(tw)