Updated Godot import plugin to use new material export functions

This commit is contained in:
RodZill4 2020-02-26 22:52:03 +01:00
parent 9f32e2e19a
commit 2b593beb32
3 changed files with 14 additions and 21 deletions

View File

@ -46,20 +46,26 @@ func get_visible_name() -> String:
return "Material Maker Importer"
func import(source_file: String, save_path: String, options: Dictionary, platform_variants: Array, gen_files: Array) -> int:
var filename = save_path + "." + get_save_extension()
var material = null
if options.render:
material = plugin.generate_material(source_file)
while material is GDScriptFunctionState:
material = yield(material, "completed")
var gen = mm_loader.load_gen(source_file)
if gen != null:
plugin.add_child(gen)
for c in gen.get_children():
if c.has_method("get_export_profiles"):
var result = c.export_material(source_file.get_basename(), "Godot")
while result is GDScriptFunctionState:
result = yield(result, "completed")
break
gen.queue_free()
else:
var filename = save_path + "." + get_save_extension()
material = SpatialMaterial.new()
material.set_script(preload("res://addons/material_maker/import_plugin/ptex_spatial_material.gd"))
var file : File = File.new()
if file.open(source_file, File.READ) == OK:
material.set_ptex_no_render(to_json(parse_json(file.get_as_text())))
file.close()
if material != null:
material.uv1_scale = options.scale * Vector3(1.0, 1.0, 1.0)
ResourceSaver.save(filename, material)
return OK

View File

@ -1,7 +1,7 @@
[plugin]
name="MaterialMaker"
description="Procedural Material creation tool"
name="Material Maker"
description="Import plugin for Material Maker"
author="RodZilla"
version="0.6"
version="0.9"
script="plugin.gd"

View File

@ -11,16 +11,3 @@ func _exit_tree() -> void:
if importer != null:
remove_import_plugin(importer)
importer = null
func generate_material(ptex_filename: String) -> Material:
var generator = mm_loader.load_gen(ptex_filename)
add_child(generator)
if generator.has_node("Material"):
var gen_material = generator.get_node("Material")
if gen_material != null:
var return_value = gen_material.render_textures()
while return_value is GDScriptFunctionState:
return_value = yield(return_value, "completed")
var prefix = ptex_filename.left(ptex_filename.rfind("."))
return gen_material.export_textures(prefix, get_editor_interface())
return null