You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
	
	
		
			64 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			GDScript
		
	
		
		
			
		
	
	
			64 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			GDScript
		
	
| 
											2 years ago
										 | @tool | ||
|  | extends EditorImportPlugin | ||
|  | 
 | ||
|  | const VoxImporterCommon = preload("./vox-importer-common.gd"); | ||
|  | 
 | ||
|  | func _init(): | ||
|  | 	print('MagicaVoxel MeshLibrary Importer: Ready') | ||
|  | 
 | ||
|  | func _get_importer_name(): | ||
|  | 	return 'MagicaVoxel.With.Extensions.To.MeshLibrary' | ||
|  | 
 | ||
|  | func _get_visible_name(): | ||
|  | 	return 'MagicaVoxel MeshLibrary' | ||
|  | 
 | ||
|  | func _get_recognized_extensions(): | ||
|  | 	return [ 'vox' ] | ||
|  | 
 | ||
|  | func _get_resource_type(): | ||
|  | 	return 'MeshLibrary' | ||
|  | 
 | ||
|  | func _get_save_extension(): | ||
|  | 	return 'meshlib' | ||
|  | 
 | ||
|  | func _get_preset_count(): | ||
|  | 	return 0 | ||
|  | 
 | ||
|  | func _get_preset_name(_preset): | ||
|  | 	return 'Default' | ||
|  | 
 | ||
|  | func _get_import_order(): | ||
|  | 	return 0 | ||
|  | 
 | ||
|  | func _get_priority() -> float: | ||
|  | 	return 1.0 | ||
|  | 
 | ||
|  | func _get_import_options(path, preset_index): | ||
|  | 	return [ | ||
|  | 		{ | ||
|  | 			'name': 'Scale', | ||
|  | 			'default_value': 0.1 | ||
|  | 		}, | ||
|  | 		{ | ||
|  | 			'name': 'GreedyMeshGenerator', | ||
|  | 			'default_value': true | ||
|  | 		}, | ||
|  | 		{ | ||
|  | 			'name': 'SnapToGround', | ||
|  | 			'default_value': false | ||
|  | 		} | ||
|  | 	] | ||
|  | 
 | ||
|  | func _get_option_visibility(path, option, options): | ||
|  | 	return true | ||
|  | 
 | ||
|  | func _import(source_path, destination_path, options, _platforms, _gen_files): | ||
|  | 	var meshes = VoxImporterCommon.new().import(source_path, destination_path, options, _platforms, _gen_files); | ||
|  | 	var meshLib = MeshLibrary.new() | ||
|  | 	for mesh in meshes: | ||
|  | 		var itemId = meshLib.get_last_unused_item_id() | ||
|  | 		meshLib.create_item(itemId) | ||
|  | 		meshLib.set_item_mesh(itemId, mesh) | ||
|  | 	var full_path = "%s.%s" % [ destination_path, _get_save_extension() ] | ||
|  | 	return ResourceSaver.save(meshLib, full_path) |