mirror of
https://github.com/Relintai/material-maker.git
synced 2024-12-23 21:16:54 +01:00
New recent projects menu entry and paper sample texture.
This commit is contained in:
parent
b36d44eb06
commit
4baba77243
1
addons/material_maker/examples/paper.ptex
Normal file
1
addons/material_maker/examples/paper.ptex
Normal file
@ -0,0 +1 @@
|
||||
{"connections":[{"from":"pattern_0","from_port":0,"to":"colorize_0","to_port":0},{"from":"pattern_1","from_port":0,"to":"colorize_1","to_port":0},{"from":"colorize_0","from_port":0,"to":"blend_0","to_port":0},{"from":"colorize_1","from_port":0,"to":"blend_0","to_port":1},{"from":"blend_0","from_port":0,"to":"Material","to_port":0},{"from":"shape_0","from_port":0,"to":"colorize_2","to_port":0},{"from":"colorize_2","from_port":0,"to":"transform_0","to_port":0},{"from":"perlin_1","from_port":0,"to":"transform_0","to_port":1},{"from":"colorize_3","from_port":0,"to":"blend_1","to_port":0},{"from":"transform_0","from_port":0,"to":"blend_1","to_port":1},{"from":"perlin_1","from_port":0,"to":"colorize_3","to_port":0}],"nodes":[{"name":"Material","node_position":{"x":479,"y":-5},"parameters":{"albedo_color":{"a":1,"b":1,"g":1,"r":1,"type":"Color"},"ao_light_affect":1,"depth_scale":1,"emission_energy":1,"metallic":1,"normal_scale":1,"resolution":1,"roughness":1},"type":"material"},{"name":"pattern_1","node_position":{"x":-295.25,"y":-24.25},"parameters":{"mix":3,"x_scale":8,"x_wave":1,"y_scale":8,"y_wave":1},"type":"pattern"},{"name":"pattern_0","node_position":{"x":-303,"y":-157},"parameters":{"mix":3,"x_scale":4,"x_wave":4,"y_scale":32,"y_wave":1},"type":"pattern"},{"name":"colorize_1","node_position":{"x":-13.25,"y":-31.25},"parameters":{"gradient":{"points":[{"a":1,"b":1,"g":0.752604,"pos":0.036364,"r":0.583333},{"a":1,"b":1,"g":1,"pos":0.054545,"r":1}],"type":"Gradient"}},"type":"colorize"},{"name":"colorize_0","node_position":{"x":-34,"y":-153},"parameters":{"gradient":{"points":[{"a":1,"b":1,"g":0.752604,"pos":0.054545,"r":0.583333},{"a":1,"b":1,"g":1,"pos":0.081818,"r":1}],"type":"Gradient"}},"type":"colorize"},{"name":"blend_0","node_position":{"x":231,"y":5.5},"parameters":{"amount":1,"blend_type":10},"type":"blend"},{"name":"perlin_0","node_position":{"x":-27.999969,"y":111},"parameters":{"iterations":3,"persistence":0.5,"scale_x":4,"scale_y":4},"type":"perlin"},{"name":"shape_0","node_position":{"x":-300.999969,"y":281},"parameters":{"edge":0.465753,"radius":0.452055,"shape":1,"sides":4},"type":"shape"},{"name":"colorize_2","node_position":{"x":-137.999969,"y":291},"parameters":{"gradient":{"points":[{"a":1,"b":0,"g":0,"pos":0.3,"r":0},{"a":1,"b":1,"g":1,"pos":0.509091,"r":1},{"a":1,"b":0,"g":0,"pos":0.754545,"r":0}],"type":"Gradient"}},"type":"colorize"},{"name":"perlin_1","node_position":{"x":-267.999969,"y":487},"parameters":{"iterations":6,"persistence":0.5,"scale_x":16,"scale_y":16},"type":"perlin"},{"name":"blend_1","node_position":{"x":312.000031,"y":380.5},"parameters":{"amount":1,"blend_type":0},"type":"blend"},{"name":"colorize_3","node_position":{"x":48.000031,"y":499.5},"parameters":{"gradient":{"points":[{"a":1,"b":0,"g":0,"pos":0,"r":0},{"a":1,"b":1,"g":1,"pos":1,"r":1}],"type":"Gradient"}},"type":"colorize"},{"name":"transform_0","node_position":{"x":66.000031,"y":250.5},"parameters":{"repeat":true,"rotate":0,"scale_x":1,"scale_y":1,"translate_x":0.01,"translate_y":0},"type":"transform"}]}
|
@ -1,12 +1,16 @@
|
||||
tool
|
||||
extends Panel
|
||||
|
||||
var recent_files = []
|
||||
var recent_files_submenu = null
|
||||
|
||||
var editor_interface = null
|
||||
var current_tab = null
|
||||
|
||||
const MENU = [
|
||||
{ menu="File", command="new_material", description="New material" },
|
||||
{ menu="File", command="load_material", shortcut="Control+O", description="Load material" },
|
||||
{ menu="File", submenu="load_recent", description="Load recent", standalone_only=true },
|
||||
{ menu="File" },
|
||||
{ menu="File", command="save_material", shortcut="Control+S", description="Save material" },
|
||||
{ menu="File", command="save_material_as", shortcut="Control+Shift+S", description="Save material as..." },
|
||||
@ -32,6 +36,7 @@ signal quit
|
||||
func _ready():
|
||||
if !Engine.editor_hint:
|
||||
OS.set_window_title(ProjectSettings.get_setting("application/config/name")+" v"+ProjectSettings.get_setting("application/config/release"))
|
||||
load_recents()
|
||||
for m in $VBoxContainer/Menu.get_children():
|
||||
var menu = m.get_popup()
|
||||
create_menu(menu, m.name)
|
||||
@ -42,11 +47,17 @@ func create_menu(menu, menu_name):
|
||||
menu.clear()
|
||||
menu.connect("id_pressed", self, "_on_PopupMenu_id_pressed")
|
||||
for i in MENU.size():
|
||||
if MENU[i].has("standalone_only") and MENU[i].standalone_only and Engine.editor_hint:
|
||||
continue
|
||||
if MENU[i].menu != menu_name:
|
||||
continue
|
||||
if MENU[i].has("submenu"):
|
||||
var submenu = PopupMenu.new()
|
||||
create_menu(submenu, MENU[i].submenu)
|
||||
var submenu_function = "create_menu_"+MENU[i].submenu
|
||||
if has_method(submenu_function):
|
||||
call(submenu_function, submenu)
|
||||
else:
|
||||
create_menu(submenu, MENU[i].submenu)
|
||||
menu.add_child(submenu)
|
||||
menu.add_submenu_item(MENU[i].description, submenu.get_name())
|
||||
elif MENU[i].has("description"):
|
||||
@ -66,6 +77,37 @@ func create_menu(menu, menu_name):
|
||||
menu.add_separator()
|
||||
return menu
|
||||
|
||||
func update_recents_menu():
|
||||
if recent_files_submenu != null:
|
||||
recent_files_submenu.clear()
|
||||
for i in recent_files.size():
|
||||
recent_files_submenu.add_item(recent_files[i], i)
|
||||
|
||||
func create_menu_load_recent(menu):
|
||||
menu.connect("id_pressed", self, "_on_LoadRecent_id_pressed")
|
||||
recent_files_submenu = menu
|
||||
update_recents_menu()
|
||||
|
||||
func load_recents():
|
||||
var f = File.new()
|
||||
if f.open("user://recent_files.bin", File.READ) == OK:
|
||||
recent_files = parse_json(f.get_as_text())
|
||||
f.close()
|
||||
|
||||
func add_recent(path):
|
||||
while true:
|
||||
var index = recent_files.find(path)
|
||||
if index >= 0:
|
||||
recent_files.remove(index)
|
||||
else:
|
||||
break
|
||||
recent_files.push_front(path)
|
||||
update_recents_menu()
|
||||
var f = File.new()
|
||||
f.open("user://recent_files.bin", File.WRITE)
|
||||
f.store_string(to_json(recent_files))
|
||||
f.close()
|
||||
|
||||
func menu_about_to_show(name, menu):
|
||||
for i in MENU.size():
|
||||
if MENU[i].menu != name:
|
||||
@ -120,6 +162,7 @@ func do_load_material(filename):
|
||||
if node_count > 1:
|
||||
graph_edit = new_pane()
|
||||
graph_edit.do_load_file(filename)
|
||||
add_recent(filename)
|
||||
|
||||
func save_material():
|
||||
var graph_edit = $VBoxContainer/HBoxContainer/Projects.get_current_tab_control()
|
||||
@ -234,6 +277,9 @@ func _on_PopupMenu_id_pressed(id):
|
||||
var command = MENU[id].command
|
||||
if has_method(command):
|
||||
call(command)
|
||||
|
||||
func _on_LoadRecent_id_pressed(id):
|
||||
do_load_material(recent_files[id])
|
||||
|
||||
# Preview
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user