Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions material_maker/main_window.gd
Original file line number Diff line number Diff line change
Expand Up @@ -450,12 +450,15 @@ func quick_export() -> void:
var exports : Array
var has_unconnected_exports : bool = false

for g in graph_edit.top_generator.get_children():
if g.has_method("export_material") and !g.has_method("get_export_profiles"):
if g.get_source(0) != null:
exports.append(g)
var stack : Array[MMGenBase] = [graph_edit.top_generator]
while stack.size():
var node : MMGenBase = stack.pop_back()
if node.has_method("export_material") and not node.has_method("get_export_profiles"):
if node.get_source(0) != null:
exports.append(node)
else:
has_unconnected_exports = true
stack.append_array(node.get_children())

# No export nodes
if not exports.size():
Expand Down
18 changes: 12 additions & 6 deletions material_maker/panels/graph_edit/graph_edit.gd
Original file line number Diff line number Diff line change
Expand Up @@ -867,12 +867,18 @@ func get_material_node() -> MMGenMaterial:
return null

func export_material(export_prefix, profile) -> void:
var exports : Array
for g in top_generator.get_children():
if g.has_method("get_export_profiles"):
await g.export_material(export_prefix, profile)
elif g.has_method("export_material"):
exports.append(g)
var exports : Array[MMGenBase]

var material_node : MMGenMaterial = get_material_node()
if material_node != null:
await material_node.export_material(export_prefix, profile)

var stack : Array[MMGenBase] = [top_generator]
while stack.size():
var node : MMGenBase = stack.pop_back()
if node.has_method("export_material"):
exports.append(node)
stack.append_array(node.get_children())

# Show progress for additional exports (export nodes)
var dim_color_rect = ColorRect.new()
Expand Down
17 changes: 12 additions & 5 deletions parse_args.gd
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,10 @@ func export_files(files, output_dir, target, target_file, image_size) -> void:
var mat_author_lower = name_to_lower(mat_author)
if gen != null:
add_child(gen)
for c in gen.get_children():
var gen_stack : Array[MMGenBase] = [gen]
while gen_stack.size():
var c : MMGenBase = gen_stack.pop_back()
gen_stack.append_array(c.get_children())
if c.has_method("export_material"):
var best_target : String = target
if c.has_method("get_export_profiles"):
Expand All @@ -68,18 +71,22 @@ func export_files(files, output_dir, target, target_file, image_size) -> void:
if best_target == "":
continue
print("Using target ", best_target, " (and not ", target, ")")
var target_file_name = target_file
var target_file_name : String = target_file
target_file_name = target_file_name.replace("%f", basename)
target_file_name = target_file_name.replace("%N", mat_name)
target_file_name = target_file_name.replace("%A", mat_author)
target_file_name = target_file_name.replace("%n", mat_name_lower)
target_file_name = target_file_name.replace("%a", mat_author_lower)
var prefix : String = output_dir+"/"+target_file_name
print("Exporting %s to %s..." % [f.get_file(), prefix])
var prefix : String = output_dir.path_join(target_file_name)
if c.has_method("get_export_profiles"):
print("Exporting Material %s to %s..." % [f.get_file(), prefix])
else:
var file_name : String = c.interpret_file_name(c.parameters.suffix, prefix.get_base_dir())
print("Saving additional export %s" % file_name)
await c.export_material(prefix, best_target, image_size, true)
print("Done")
if from_website:
export_list.append("\""+prefix.get_file()+"\": \""+mat_name+","+mat_author+"\"")
print("Done")
gen.queue_free()
if not export_list.is_empty():
print(",\n".join(export_list))
Expand Down
Loading