From d37fc835f9bca6d1238bc37f8ab4a8ef108680b4 Mon Sep 17 00:00:00 2001 From: RodZill4 Date: Thu, 7 Nov 2019 08:25:57 +0100 Subject: [PATCH] Updated library export to generate unique icon names --- addons/material_maker/library.gd | 30 +- addons/material_maker/library/base.json | 308 +++++++++++++++--- .../base/{blend.png => filter_blend.png} | Bin .../base/{blur.png => filter_blur.png} | Bin ...tional.png => filter_blur_directional.png} | Bin .../{colorize.png => filter_colorize.png} | Bin ...{invert.png => filter_colorize_invert.png} | Bin ...ainbow.png => filter_colorize_rainbow.png} | Bin .../base/{emboss.png => filter_emboss.png} | Bin .../{normal_map.png => filter_normal_map.png} | Bin .../{buffer.png => miscellaneous_buffer.png} | Bin .../{debug.png => miscellaneous_debug.png} | Bin .../{switch.png => miscellaneous_switch.png} | Bin .../base/{perlin.png => noise_perlin.png} | Bin .../{warp1.png => noise_perlin_warp1.png} | Bin .../{warp2.png => noise_perlin_warp2.png} | Bin .../base/{voronoi.png => noise_voronoi.png} | Bin .../base/{bricks.png => pattern_bricks.png} | Bin ...ave.png => pattern_bricks_basketweave.png} | Bin ...one.png => pattern_bricks_herringbone.png} | Bin ...ond.png => pattern_bricks_spanishbond.png} | Bin .../{tiles.png => pattern_bricks_tiles.png} | Bin .../base/{fibers.png => pattern_fibers.png} | Bin .../base/{pattern.png => pattern_generic.png} | Bin ...d.png => pattern_generic_checkerboard.png} | Bin .../base/{runes.png => pattern_runes.png} | Bin .../{scratches.png => pattern_scratches.png} | Bin .../base/{truchet.png => pattern_truchet.png} | Bin .../base/{weave.png => pattern_weave.png} | Bin .../{gradient.png => simple_gradient.png} | Bin ...cular.png => simple_gradient_circular.png} | Bin ...{radial.png => simple_gradient_radial.png} | Bin .../base/{image.png => simple_image.png} | Bin .../simple_sdf_operators_sdannularshape.png | Bin 0 -> 814 bytes .../base/simple_sdf_operators_sdboolean.png | Bin 0 -> 951 bytes .../simple_sdf_operators_sdroundedshape.png | Bin 0 -> 1145 bytes .../base/simple_sdf_operators_sdshow.png | Bin 0 -> 1413 bytes .../simple_sdf_operators_sdsmoothboolean.png | Bin 0 -> 1070 bytes .../library/base/simple_sdf_shapes_sdbox.png | Bin 0 -> 750 bytes .../base/simple_sdf_shapes_sdcircle.png | Bin 0 -> 1300 bytes .../library/base/simple_sdf_shapes_sdline.png | Bin 0 -> 723 bytes .../base/simple_sdf_shapes_sdrhombus.png | Bin 0 -> 1124 bytes .../base/{polygon.png => simple_shape.png} | Bin .../{circle.png => simple_shape_circle.png} | Bin ..._star.png => simple_shape_curved_star.png} | Bin .../base/{rays.png => simple_shape_rays.png} | Bin .../base/{star.png => simple_shape_star.png} | Bin .../base/{uniform.png => simple_uniform.png} | Bin ...doscope.png => transform_kaleidoscope.png} | Bin .../base/{mirror.png => transform_mirror.png} | Bin .../base/{warp.png => transform_warp.png} | Bin addons/material_maker/main_window.gd | 2 +- 52 files changed, 290 insertions(+), 50 deletions(-) rename addons/material_maker/library/base/{blend.png => filter_blend.png} (100%) rename addons/material_maker/library/base/{blur.png => filter_blur.png} (100%) rename addons/material_maker/library/base/{directional.png => filter_blur_directional.png} (100%) rename addons/material_maker/library/base/{colorize.png => filter_colorize.png} (100%) rename addons/material_maker/library/base/{invert.png => filter_colorize_invert.png} (100%) rename addons/material_maker/library/base/{rainbow.png => filter_colorize_rainbow.png} (100%) rename addons/material_maker/library/base/{emboss.png => filter_emboss.png} (100%) rename addons/material_maker/library/base/{normal_map.png => filter_normal_map.png} (100%) rename addons/material_maker/library/base/{buffer.png => miscellaneous_buffer.png} (100%) rename addons/material_maker/library/base/{debug.png => miscellaneous_debug.png} (100%) rename addons/material_maker/library/base/{switch.png => miscellaneous_switch.png} (100%) rename addons/material_maker/library/base/{perlin.png => noise_perlin.png} (100%) rename addons/material_maker/library/base/{warp1.png => noise_perlin_warp1.png} (100%) rename addons/material_maker/library/base/{warp2.png => noise_perlin_warp2.png} (100%) rename addons/material_maker/library/base/{voronoi.png => noise_voronoi.png} (100%) rename addons/material_maker/library/base/{bricks.png => pattern_bricks.png} (100%) rename addons/material_maker/library/base/{basketweave.png => pattern_bricks_basketweave.png} (100%) rename addons/material_maker/library/base/{herringbone.png => pattern_bricks_herringbone.png} (100%) rename addons/material_maker/library/base/{spanishbond.png => pattern_bricks_spanishbond.png} (100%) rename addons/material_maker/library/base/{tiles.png => pattern_bricks_tiles.png} (100%) rename addons/material_maker/library/base/{fibers.png => pattern_fibers.png} (100%) rename addons/material_maker/library/base/{pattern.png => pattern_generic.png} (100%) rename addons/material_maker/library/base/{checkerboard.png => pattern_generic_checkerboard.png} (100%) rename addons/material_maker/library/base/{runes.png => pattern_runes.png} (100%) rename addons/material_maker/library/base/{scratches.png => pattern_scratches.png} (100%) rename addons/material_maker/library/base/{truchet.png => pattern_truchet.png} (100%) rename addons/material_maker/library/base/{weave.png => pattern_weave.png} (100%) rename addons/material_maker/library/base/{gradient.png => simple_gradient.png} (100%) rename addons/material_maker/library/base/{circular.png => simple_gradient_circular.png} (100%) rename addons/material_maker/library/base/{radial.png => simple_gradient_radial.png} (100%) rename addons/material_maker/library/base/{image.png => simple_image.png} (100%) create mode 100644 addons/material_maker/library/base/simple_sdf_operators_sdannularshape.png create mode 100644 addons/material_maker/library/base/simple_sdf_operators_sdboolean.png create mode 100644 addons/material_maker/library/base/simple_sdf_operators_sdroundedshape.png create mode 100644 addons/material_maker/library/base/simple_sdf_operators_sdshow.png create mode 100644 addons/material_maker/library/base/simple_sdf_operators_sdsmoothboolean.png create mode 100644 addons/material_maker/library/base/simple_sdf_shapes_sdbox.png create mode 100644 addons/material_maker/library/base/simple_sdf_shapes_sdcircle.png create mode 100644 addons/material_maker/library/base/simple_sdf_shapes_sdline.png create mode 100644 addons/material_maker/library/base/simple_sdf_shapes_sdrhombus.png rename addons/material_maker/library/base/{polygon.png => simple_shape.png} (100%) rename addons/material_maker/library/base/{circle.png => simple_shape_circle.png} (100%) rename addons/material_maker/library/base/{curved_star.png => simple_shape_curved_star.png} (100%) rename addons/material_maker/library/base/{rays.png => simple_shape_rays.png} (100%) rename addons/material_maker/library/base/{star.png => simple_shape_star.png} (100%) rename addons/material_maker/library/base/{uniform.png => simple_uniform.png} (100%) rename addons/material_maker/library/base/{kaleidoscope.png => transform_kaleidoscope.png} (100%) rename addons/material_maker/library/base/{mirror.png => transform_mirror.png} (100%) rename addons/material_maker/library/base/{warp.png => transform_warp.png} (100%) diff --git a/addons/material_maker/library.gd b/addons/material_maker/library.gd index 6abb50d..598827c 100644 --- a/addons/material_maker/library.gd +++ b/addons/material_maker/library.gd @@ -109,28 +109,40 @@ func add_item(item, item_name, item_icon = null, item_parent = null, force_expan new_parent.set_text(0, prefix) return add_item(item, suffix, item_icon, new_parent, force_expand) -func serialize_library(array : Array, library_name : String = "", item : TreeItem = null, icon_path : String = "") -> void: +func get_item_path(item : TreeItem) -> String: + var item_path = item.get_text(0) + var item_parent = item.get_parent() + while item_parent != tree.get_root(): + item_path = item_parent.get_text(0)+"/"+item_path + item_parent = item_parent.get_parent() + return item_path + +func get_icon_name(item_name : String) -> String: + return item_name.to_lower().replace("/", "_").replace(" ", "_") + +func serialize_library(array : Array, library_name : String = "", item : TreeItem = null, icon_dir : String = "") -> void: if item == null: item = tree.get_root() item = item.get_children() while item != null: if item.get_metadata(0) != null: var m : Dictionary = item.get_metadata(0) - if icon_path != "": - pass if library_name == "" or (m.has("library") and m.library == library_name): var copy : Dictionary = m.duplicate() copy.erase("library") copy.collapsed = item.collapsed + if icon_dir != "" and m.has("icon"): + var src_path = m.library.get_basename()+"/"+m.icon+".png" + var icon_name : String = get_icon_name(get_item_path(item)) + var icon_path = icon_dir+"/"+icon_name+".png" + var dir : Directory = Directory.new() + dir.copy(src_path, icon_path) + copy.icon = icon_name array.append(copy) elif !item.collapsed: - var item_path = item.get_text(0) - var item_parent = item.get_parent() - while item_parent != tree.get_root(): - item_path = item_parent.get_text(0)+"/"+item_path - item_parent = item_parent.get_parent() + var item_path = get_item_path(item) array.append({ tree_item=item_path, collapsed=false }) - serialize_library(array, library_name, item) + serialize_library(array, library_name, item, icon_dir) item = item.get_next() func save_library(library_name : String, item : TreeItem = null) -> void: diff --git a/addons/material_maker/library/base.json b/addons/material_maker/library/base.json index b333481..60ce7ae 100644 --- a/addons/material_maker/library/base.json +++ b/addons/material_maker/library/base.json @@ -6,7 +6,7 @@ }, { "collapsed": true, - "icon": "uniform", + "icon": "simple_uniform", "name": "uniform", "parameters": { "color": { @@ -22,7 +22,7 @@ }, { "collapsed": true, - "icon": "polygon", + "icon": "simple_shape", "name": "shape", "parameters": { "edge": 0.051546, @@ -35,7 +35,7 @@ }, { "collapsed": true, - "icon": "star", + "icon": "simple_shape_star", "name": "shape", "parameters": { "edge": 0.2, @@ -48,7 +48,7 @@ }, { "collapsed": true, - "icon": "curved_star", + "icon": "simple_shape_curved_star", "name": "shape", "parameters": { "edge": 0.628866, @@ -61,7 +61,7 @@ }, { "collapsed": true, - "icon": "rays", + "icon": "simple_shape_rays", "name": "shape", "parameters": { "edge": 0.628866, @@ -74,7 +74,7 @@ }, { "collapsed": true, - "icon": "circle", + "icon": "simple_shape_circle", "name": "shape", "parameters": { "edge": 0.2, @@ -87,7 +87,7 @@ }, { "collapsed": true, - "icon": "image", + "icon": "simple_image", "name": "image", "parameters": { "file_path": "res://addons/material_maker/nodes/image/godot_logo.png", @@ -118,7 +118,7 @@ "to_port": 0 } ], - "icon": "gradient", + "icon": "simple_gradient", "label": "Gradient", "name": "graph", "nodes": [ @@ -328,7 +328,7 @@ "to_port": 0 } ], - "icon": "radial", + "icon": "simple_gradient_radial", "label": "Radial Gradient", "name": "graph", "nodes": [ @@ -520,7 +520,7 @@ "to_port": 0 } ], - "icon": "circular", + "icon": "simple_gradient_circular", "label": "Circular Gradient", "name": "graph", "nodes": [ @@ -713,13 +713,241 @@ "tree_item": "Simple/Gradient/Circular", "type": "graph" }, + { + "collapsed": true, + "icon": "simple_sdf_shapes_sdcircle", + "name": "sdcircle", + "parameters": { + "cx": 0, + "cy": 0, + "r": 0.25 + }, + "tree_item": "Simple/SDF/Shapes/sdCircle", + "type": "sdcircle" + }, + { + "collapsed": true, + "icon": "simple_sdf_shapes_sdbox", + "name": "sdbox", + "parameters": { + "cx": 0, + "cy": 0, + "h": 0.2, + "r": 0.3, + "w": 0.3 + }, + "tree_item": "Simple/SDF/Shapes/sdBox", + "type": "sdbox" + }, + { + "collapsed": true, + "icon": "simple_sdf_shapes_sdline", + "name": "sdline", + "parameters": { + "ax": 0.2, + "ay": 0.2, + "bx": 0.8, + "by": 0.8, + "cx": 0, + "cy": 0, + "h": 0.2, + "r": 0.3, + "w": 0.3 + }, + "tree_item": "Simple/SDF/Shapes/sdLine", + "type": "sdline" + }, + { + "collapsed": true, + "icon": "simple_sdf_shapes_sdrhombus", + "name": "sdrhombus", + "parameters": { + "cx": 0, + "cy": 0, + "h": 0.2, + "r": 0.3, + "w": 0.3 + }, + "tree_item": "Simple/SDF/Shapes/sdRhombus", + "type": "sdrhombus" + }, + { + "collapsed": true, + "icon": "simple_sdf_operators_sdboolean", + "name": "sdboolean", + "parameters": { + "bevel": 0, + "cx": 0, + "cy": 0, + "h": 0.08, + "op": 0, + "r": 0.3, + "w": 0.28 + }, + "tree_item": "Simple/SDF/Operators/sdBoolean", + "type": "sdboolean" + }, + { + "collapsed": true, + "icon": "simple_sdf_operators_sdsmoothboolean", + "name": "sdsmoothboolean", + "parameters": { + "bevel": 0, + "cx": 0, + "cy": 0, + "h": 0.08, + "k": 0.15, + "op": 0, + "r": 0.3, + "w": 0.28 + }, + "shader_model": { + "code": "", + "global": "float sdSmoothUnion( float d1, float d2, float k ) {\n float h = clamp( 0.5 + 0.5*(d2-d1)/k, 0.0, 1.0 );\n return mix( d2, d1, h ) - k*h*(1.0-h); }\n\nfloat sdSmoothSubtraction( float d1, float d2, float k ) {\n float h = clamp( 0.5 - 0.5*(d2+d1)/k, 0.0, 1.0 );\n return mix( d2, -d1, h ) + k*h*(1.0-h); }\n\nfloat sdSmoothIntersection( float d1, float d2, float k ) {\n float h = clamp( 0.5 - 0.5*(d2-d1)/k, 0.0, 1.0 );\n return mix( d2, d1, h ) + k*h*(1.0-h); }\n", + "inputs": [ + { + "default": "0.0", + "label": "", + "name": "in1", + "type": "f" + }, + { + "default": "0.0", + "label": "", + "name": "in2", + "type": "f" + } + ], + "instance": "", + "name": "sdSmoothBoolean", + "outputs": [ + { + "f": "sdSmooth$op($in1($uv), $in2($uv), $k)", + "type": "f" + } + ], + "parameters": [ + { + "default": 0, + "label": "", + "name": "op", + "type": "enum", + "values": [ + { + "name": "Union", + "value": "Union" + }, + { + "name": "Subtraction", + "value": "Subtraction" + }, + { + "name": "Intersection", + "value": "Intersection" + } + ] + }, + { + "default": 0, + "label": "", + "max": 1, + "min": 0, + "name": "k", + "step": 0.01, + "type": "float" + } + ] + }, + "tree_item": "Simple/SDF/Operators/sdSmoothBoolean", + "type": "shader" + }, + { + "collapsed": true, + "icon": "simple_sdf_operators_sdroundedshape", + "name": "sdroundedshape", + "parameters": { + "bevel": 0, + "cx": 0, + "cy": 0, + "h": 0.08, + "k": 0.15, + "op": 0, + "r": 0.1, + "w": 0.28 + }, + "tree_item": "Simple/SDF/Operators/sdRoundedShape", + "type": "sdroundedshape" + }, + { + "collapsed": true, + "icon": "simple_sdf_operators_sdannularshape", + "name": "sdannularshape", + "parameters": { + "bevel": 0, + "cx": 0, + "cy": 0, + "h": 0.08, + "k": 0.15, + "op": 0, + "r": 0.05, + "w": 0.28 + }, + "tree_item": "Simple/SDF/Operators/sdAnnularShape", + "type": "sdannularshape" + }, + { + "collapsed": true, + "icon": "simple_sdf_operators_sdshow", + "name": "sdshow", + "parameters": { + "bevel": 0.1, + "cx": 0, + "cy": 0, + "h": 0.08, + "r": 0.3, + "w": 0.28 + }, + "shader_model": { + "code": "", + "global": "", + "inputs": [ + { + "default": "0.0", + "label": "", + "name": "in", + "type": "f" + } + ], + "instance": "", + "name": "sdShow", + "outputs": [ + { + "f": "clamp(-$in($uv)/max($bevel, 0.00001), 0.0, 1.0)", + "type": "f" + } + ], + "parameters": [ + { + "default": 0, + "label": "Bevel", + "max": 1, + "min": 0, + "name": "bevel", + "step": 0.01, + "type": "float" + } + ] + }, + "tree_item": "Simple/SDF/Operators/sdShow", + "type": "shader" + }, { "collapsed": false, "tree_item": "Pattern" }, { "collapsed": true, - "icon": "pattern", + "icon": "pattern_generic", "parameters": { "mix": 0, "x_scale": 4, @@ -732,7 +960,7 @@ }, { "collapsed": true, - "icon": "checkerboard", + "icon": "pattern_generic_checkerboard", "name": "pattern", "parameters": { "mix": 4, @@ -746,7 +974,7 @@ }, { "collapsed": true, - "icon": "bricks", + "icon": "pattern_bricks", "parameters": { "bevel": 0.1, "columns": 3, @@ -759,7 +987,7 @@ }, { "collapsed": true, - "icon": "tiles", + "icon": "pattern_bricks_tiles", "parameters": { "bevel": 0.05, "columns": 4, @@ -772,7 +1000,7 @@ }, { "collapsed": true, - "icon": "basketweave", + "icon": "pattern_bricks_basketweave", "parameters": { "bevel": 0.05, "columns": 2, @@ -787,7 +1015,7 @@ }, { "collapsed": true, - "icon": "herringbone", + "icon": "pattern_bricks_herringbone", "parameters": { "bevel": 0.05, "columns": 2, @@ -802,7 +1030,7 @@ }, { "collapsed": true, - "icon": "spanishbond", + "icon": "pattern_bricks_spanishbond", "parameters": { "bevel": 0.05, "columns": 2, @@ -817,7 +1045,7 @@ }, { "collapsed": true, - "icon": "weave", + "icon": "pattern_weave", "name": "weave", "parameters": { "columns": 4, @@ -828,7 +1056,7 @@ }, { "collapsed": true, - "icon": "truchet", + "icon": "pattern_truchet", "name": "truchet", "parameters": { "Size": 4, @@ -841,7 +1069,7 @@ }, { "collapsed": true, - "icon": "runes", + "icon": "pattern_runes", "name": "runes", "parameters": { "columns": 4, @@ -890,7 +1118,7 @@ "to_port": 0 } ], - "icon": "fibers", + "icon": "pattern_fibers", "label": "Fibers", "name": "graph", "nodes": [ @@ -1070,7 +1298,7 @@ }, { "collapsed": true, - "icon": "scratches", + "icon": "pattern_scratches", "name": "scratches", "parameters": { "Randomness": 0.5, @@ -1097,7 +1325,7 @@ }, { "collapsed": true, - "icon": "perlin", + "icon": "noise_perlin", "parameters": { "iterations": 3, "persistence": 0.5, @@ -1135,7 +1363,7 @@ "to_port": 0 } ], - "icon": "warp1", + "icon": "noise_perlin_warp1", "label": "Warp1", "name": "graph", "nodes": [ @@ -1342,7 +1570,7 @@ "to_port": 0 } ], - "icon": "warp2", + "icon": "noise_perlin_warp2", "label": "Warp2", "name": "graph", "nodes": [ @@ -1527,7 +1755,7 @@ }, { "collapsed": true, - "icon": "voronoi", + "icon": "noise_voronoi", "parameters": { "intensity": 1, "scale_x": 4, @@ -1552,7 +1780,7 @@ }, { "collapsed": true, - "icon": "colorize", + "icon": "filter_colorize", "parameters": { "gradient": [ { @@ -1574,7 +1802,7 @@ }, { "collapsed": true, - "icon": "invert", + "icon": "filter_colorize_invert", "parameters": { "gradient": [ { @@ -1596,7 +1824,7 @@ }, { "collapsed": true, - "icon": "rainbow", + "icon": "filter_colorize_rainbow", "name": "colorize", "parameters": { "gradient": { @@ -1645,7 +1873,7 @@ }, { "collapsed": true, - "icon": "blend", + "icon": "filter_blend", "parameters": { "amount": 0.5, "blend_type": 0 @@ -1665,7 +1893,7 @@ }, { "collapsed": true, - "icon": "normal_map", + "icon": "filter_normal_map", "parameters": { "amount": 0.5 }, @@ -1674,7 +1902,7 @@ }, { "collapsed": true, - "icon": "blur", + "icon": "filter_blur", "name": "gaussian_blur", "parameters": { "param0": 9, @@ -1686,7 +1914,7 @@ }, { "collapsed": true, - "icon": "directional", + "icon": "filter_blur_directional", "name": "directional_blur", "parameters": { "param0": 9, @@ -1698,7 +1926,7 @@ }, { "collapsed": true, - "icon": "emboss", + "icon": "filter_emboss", "name": "emboss_2", "parameters": { "param0": 9, @@ -1723,7 +1951,7 @@ }, { "collapsed": true, - "icon": "mirror", + "icon": "transform_mirror", "name": "mirror", "parameters": { "direction": 0, @@ -1734,7 +1962,7 @@ }, { "collapsed": true, - "icon": "kaleidoscope", + "icon": "transform_kaleidoscope", "name": "kaleidoscope", "parameters": { "count": 5, @@ -1746,7 +1974,7 @@ }, { "collapsed": true, - "icon": "warp", + "icon": "transform_warp", "name": "warp", "parameters": { "amount": 0.1, @@ -1762,7 +1990,7 @@ }, { "collapsed": true, - "icon": "buffer", + "icon": "miscellaneous_buffer", "tree_item": "Miscellaneous/Buffer", "type": "buffer" }, @@ -1776,7 +2004,7 @@ }, { "collapsed": true, - "icon": "switch", + "icon": "miscellaneous_switch", "tree_item": "Miscellaneous/Switch", "type": "switch" }, @@ -1803,7 +2031,7 @@ }, { "collapsed": true, - "icon": "debug", + "icon": "miscellaneous_debug", "tree_item": "Miscellaneous/Debug", "type": "debug" } diff --git a/addons/material_maker/library/base/blend.png b/addons/material_maker/library/base/filter_blend.png similarity index 100% rename from addons/material_maker/library/base/blend.png rename to addons/material_maker/library/base/filter_blend.png diff --git a/addons/material_maker/library/base/blur.png b/addons/material_maker/library/base/filter_blur.png similarity index 100% rename from addons/material_maker/library/base/blur.png rename to addons/material_maker/library/base/filter_blur.png diff --git a/addons/material_maker/library/base/directional.png b/addons/material_maker/library/base/filter_blur_directional.png similarity index 100% rename from addons/material_maker/library/base/directional.png rename to addons/material_maker/library/base/filter_blur_directional.png diff --git a/addons/material_maker/library/base/colorize.png b/addons/material_maker/library/base/filter_colorize.png similarity index 100% rename from addons/material_maker/library/base/colorize.png rename to addons/material_maker/library/base/filter_colorize.png diff --git a/addons/material_maker/library/base/invert.png b/addons/material_maker/library/base/filter_colorize_invert.png similarity index 100% rename from addons/material_maker/library/base/invert.png rename to addons/material_maker/library/base/filter_colorize_invert.png diff --git a/addons/material_maker/library/base/rainbow.png b/addons/material_maker/library/base/filter_colorize_rainbow.png similarity index 100% rename from addons/material_maker/library/base/rainbow.png rename to addons/material_maker/library/base/filter_colorize_rainbow.png diff --git a/addons/material_maker/library/base/emboss.png b/addons/material_maker/library/base/filter_emboss.png similarity index 100% rename from addons/material_maker/library/base/emboss.png rename to addons/material_maker/library/base/filter_emboss.png diff --git a/addons/material_maker/library/base/normal_map.png b/addons/material_maker/library/base/filter_normal_map.png similarity index 100% rename from addons/material_maker/library/base/normal_map.png rename to addons/material_maker/library/base/filter_normal_map.png diff --git a/addons/material_maker/library/base/buffer.png b/addons/material_maker/library/base/miscellaneous_buffer.png similarity index 100% rename from addons/material_maker/library/base/buffer.png rename to addons/material_maker/library/base/miscellaneous_buffer.png diff --git a/addons/material_maker/library/base/debug.png b/addons/material_maker/library/base/miscellaneous_debug.png similarity index 100% rename from addons/material_maker/library/base/debug.png rename to addons/material_maker/library/base/miscellaneous_debug.png diff --git a/addons/material_maker/library/base/switch.png b/addons/material_maker/library/base/miscellaneous_switch.png similarity index 100% rename from addons/material_maker/library/base/switch.png rename to addons/material_maker/library/base/miscellaneous_switch.png diff --git a/addons/material_maker/library/base/perlin.png b/addons/material_maker/library/base/noise_perlin.png similarity index 100% rename from addons/material_maker/library/base/perlin.png rename to addons/material_maker/library/base/noise_perlin.png diff --git a/addons/material_maker/library/base/warp1.png b/addons/material_maker/library/base/noise_perlin_warp1.png similarity index 100% rename from addons/material_maker/library/base/warp1.png rename to addons/material_maker/library/base/noise_perlin_warp1.png diff --git a/addons/material_maker/library/base/warp2.png b/addons/material_maker/library/base/noise_perlin_warp2.png similarity index 100% rename from addons/material_maker/library/base/warp2.png rename to addons/material_maker/library/base/noise_perlin_warp2.png diff --git a/addons/material_maker/library/base/voronoi.png b/addons/material_maker/library/base/noise_voronoi.png similarity index 100% rename from addons/material_maker/library/base/voronoi.png rename to addons/material_maker/library/base/noise_voronoi.png diff --git a/addons/material_maker/library/base/bricks.png b/addons/material_maker/library/base/pattern_bricks.png similarity index 100% rename from addons/material_maker/library/base/bricks.png rename to addons/material_maker/library/base/pattern_bricks.png diff --git a/addons/material_maker/library/base/basketweave.png b/addons/material_maker/library/base/pattern_bricks_basketweave.png similarity index 100% rename from addons/material_maker/library/base/basketweave.png rename to addons/material_maker/library/base/pattern_bricks_basketweave.png diff --git a/addons/material_maker/library/base/herringbone.png b/addons/material_maker/library/base/pattern_bricks_herringbone.png similarity index 100% rename from addons/material_maker/library/base/herringbone.png rename to addons/material_maker/library/base/pattern_bricks_herringbone.png diff --git a/addons/material_maker/library/base/spanishbond.png b/addons/material_maker/library/base/pattern_bricks_spanishbond.png similarity index 100% rename from addons/material_maker/library/base/spanishbond.png rename to addons/material_maker/library/base/pattern_bricks_spanishbond.png diff --git a/addons/material_maker/library/base/tiles.png b/addons/material_maker/library/base/pattern_bricks_tiles.png similarity index 100% rename from addons/material_maker/library/base/tiles.png rename to addons/material_maker/library/base/pattern_bricks_tiles.png diff --git a/addons/material_maker/library/base/fibers.png b/addons/material_maker/library/base/pattern_fibers.png similarity index 100% rename from addons/material_maker/library/base/fibers.png rename to addons/material_maker/library/base/pattern_fibers.png diff --git a/addons/material_maker/library/base/pattern.png b/addons/material_maker/library/base/pattern_generic.png similarity index 100% rename from addons/material_maker/library/base/pattern.png rename to addons/material_maker/library/base/pattern_generic.png diff --git a/addons/material_maker/library/base/checkerboard.png b/addons/material_maker/library/base/pattern_generic_checkerboard.png similarity index 100% rename from addons/material_maker/library/base/checkerboard.png rename to addons/material_maker/library/base/pattern_generic_checkerboard.png diff --git a/addons/material_maker/library/base/runes.png b/addons/material_maker/library/base/pattern_runes.png similarity index 100% rename from addons/material_maker/library/base/runes.png rename to addons/material_maker/library/base/pattern_runes.png diff --git a/addons/material_maker/library/base/scratches.png b/addons/material_maker/library/base/pattern_scratches.png similarity index 100% rename from addons/material_maker/library/base/scratches.png rename to addons/material_maker/library/base/pattern_scratches.png diff --git a/addons/material_maker/library/base/truchet.png b/addons/material_maker/library/base/pattern_truchet.png similarity index 100% rename from addons/material_maker/library/base/truchet.png rename to addons/material_maker/library/base/pattern_truchet.png diff --git a/addons/material_maker/library/base/weave.png b/addons/material_maker/library/base/pattern_weave.png similarity index 100% rename from addons/material_maker/library/base/weave.png rename to addons/material_maker/library/base/pattern_weave.png diff --git a/addons/material_maker/library/base/gradient.png b/addons/material_maker/library/base/simple_gradient.png similarity index 100% rename from addons/material_maker/library/base/gradient.png rename to addons/material_maker/library/base/simple_gradient.png diff --git a/addons/material_maker/library/base/circular.png b/addons/material_maker/library/base/simple_gradient_circular.png similarity index 100% rename from addons/material_maker/library/base/circular.png rename to addons/material_maker/library/base/simple_gradient_circular.png diff --git a/addons/material_maker/library/base/radial.png b/addons/material_maker/library/base/simple_gradient_radial.png similarity index 100% rename from addons/material_maker/library/base/radial.png rename to addons/material_maker/library/base/simple_gradient_radial.png diff --git a/addons/material_maker/library/base/image.png b/addons/material_maker/library/base/simple_image.png similarity index 100% rename from addons/material_maker/library/base/image.png rename to addons/material_maker/library/base/simple_image.png diff --git a/addons/material_maker/library/base/simple_sdf_operators_sdannularshape.png b/addons/material_maker/library/base/simple_sdf_operators_sdannularshape.png new file mode 100644 index 0000000000000000000000000000000000000000..f86793b8c84906fae5dc454474557aa501ec689e GIT binary patch literal 814 zcmV+}1JV46P)#n0P41^~pkJtBq8`Ax;G98S=R%+6Ax>$-h5-nmrUt$h!x!rE})*5`>@AvH(my(rI z4$I88qp!NID;U5T1SQMFx7J{0J53t^Kf3r|1i%oMWqAO2HVTxi=Y5WVWm%2@)^$yz z0DugHQp$FW-gnQtmK}f?2^=4+ zJ@!8E1OUZC7z<#${~Z7pnt_PBfr4e#KYHFjvx|VUdY}p*ZhO&c^gc&G76l5Hc|ZG1 zDP^AmJs2DX3KqQ|&vAh~0LW6onpc%BSajl9 zM{C)Ceqz_8B;GC4kS%-WBFX^%b?>JD{s+4NeEJ4HZS~a)c+2?-^9uipy$k^O41^Kl zfk6O(_d*yY9vBD!cn^e;;(@^cfVmJxiw7nE0OmlLAs(0n02m8lmUv(y0ALJ+nc{)T z0D#vZ%oYz^o#6Zkc!w8Xv8e#QT|6)mfP#2n5&#wPzyttF;(@^c)Wib=0Vs+G1_4kN z4-5dHEFQQz!3)3z;Or#7R#vlT@7=PgYW|`+0RB6jAdg>&14cY%u436}eCAvLsQmuC zH(ur!Rd`L#qL*bkI5GZqptAVhJS|^X0f67D1Mp*v1~Yp^fQyTBbv$>g@T#1>9EHcV zMF0zrGj%*$^X=l@viV?N5yAmLHdf|oq6UCdp%)Fc=Xt-7_xcL??-qBmvq-2t;XYc% z-d6;W6+~V&3w_S}I9{e;Sw9oE#xw%5&MBL>|90y&by*}F0I=tO;U_a$6r=z+@3W2& z&;yXQ#4!qX033n~kJVohKzttH8ju3ufnvqq3%O-|f0hQ-+ugYB#p{Il2PG?*IS*07*qoM6N<$f(b)ko&W#< literal 0 HcmV?d00001 diff --git a/addons/material_maker/library/base/simple_sdf_operators_sdboolean.png b/addons/material_maker/library/base/simple_sdf_operators_sdboolean.png new file mode 100644 index 0000000000000000000000000000000000000000..a23356b7c0bd76b3843a44fcf074399b31afced4 GIT binary patch literal 951 zcmV;o14#UdP)$*0_+qSg;*pZ&&8i3g>I0L|nzSWQHZ(Y|zpAy0WzzmGuP_QzA zA7; zj`O%5Wq=iJc@A*1biM~-G$gD!W8`=b2>L?gWnaAv;BhXua2ycwjPqyi6cWZGRBH{T z6m!O(8Rxu}5Dr6N1Y&eoz~3LOUN+4{o*h370i>8Ud7a6OX9<1tglA1~Jegu2KBbg? z0ciK?QD$hF@J#0=1fJnJ@>-|F2Lu!Zih3rvE$p;F0o~~grz;*aYuN*en$YPBQO;BCKp)&!33Z| zVCT`H*8>r*Z$YT_cRdm3wV%zI*Y>o>Nn8xhOUJz+Naq=ZToK}xBGeb4tSx9V1imn* zlcf6!Nv9b^2qBbGn$L0uNU6n9fH0q+$Z>2RwG=)QJ1?`4Gf@ISzXoRHb@zbtjj6nk_g z$QK|&n9nqTf?d2s-T+__fN)kZ#*lM<$eN*yb}!W}Ez6=#ggXH1iwwg{f4RP#Bh1g- zYuLBw0^n_cw=MwQ26*cN;BA1nE&$#JcjL0yfVVCH-UfK<0^n_c zxBfi9R`ZP}WM{C_tc)@X6u=Dwoi+be>Dc-;f0|pr|fM z2)S3{9u*ZnL5Q?0rpmSh;K<_*i*Es-{iAgQKswrcq2SZRlR9TY)*|omZ!pi4_C^UZ Z;Ri1dV?;LTx%vPA002ovPDHLkV1kVBwzB{L literal 0 HcmV?d00001 diff --git a/addons/material_maker/library/base/simple_sdf_operators_sdroundedshape.png b/addons/material_maker/library/base/simple_sdf_operators_sdroundedshape.png new file mode 100644 index 0000000000000000000000000000000000000000..49e46243002384365f9ac3bac3675c4bb3e462de GIT binary patch literal 1145 zcmV-<1cv*GP)yG0v2!$QTuiVGCvp-g(t1OPhqBaJcvM0#Ll!AbyD^qKhW``!njCktkG0;>bG*23uP^nU@Mo$o1!NC;;G zz${?Vx9lqD{7(dNH2_rqJK9vx`5ryMwm72|dM!|*Z4EtG_ZI*xx>h#yc7vG!thUGM zp24FT-~qtlh;@Tm0GRsYq!-yySk&)y1`R-e;V1z5YW02=dG>kRwmn7g-BK7WgiHW? zgby8-U2A;;u$=Dg466X(O;6PF7{G$gGZ-uzyeyanfJI*v-*Q?aPXRE;qd6fOi$?*l z+8%pft@ZL=nH)_3QAv1$IBE#e4l&_Ni9=^2^9uky*mxyjl?LkuBLT3s#~fxUuf?;q zmI_XFcQS#AVQXzD05$Q&2n3JRF#d<0{( z4xsw$$a{6pvgXVHc1zn+7OWIT*S~e+WdUGO$6d67S|AV#gE4a*$8ixi=D3bB^GiM_ zd(KBtRyeO0>p*vQN-5>&1u1brxkDAD z0jt*+z-j|luP=br2CQB#0QMs!?$zsE8*|SatzTp1hly1S?YLwA=|}Ve%Xzu7etI;)SDDT|17Em&1rzM`DtF zvMmr^iJSm*l<^=D9mlhHF|5`~|8E2UITY1Td`2085ajQ|Qk)$mT9Ma=$pOX4g^`Ui z0W}Ltr1Ye_=eV5B>GzLZOoS1FmlX)2c#h)}mMrz9_I0+52Eatnayrt764kjCc{BzE z@V7y*??geolL@jZ0R2!Aa|9!g$ImkWSgnvb@4>hLU=I~DL-0&qJ3kWu6GN5_UP)X4 zSWYto*w5mt0Yv4%vY^NdqvK@H06hiH03cV^5~B>j*A%b6qXDe#;jc2XMgh>aus)Bq zA7w)6aa?~Xwml|*vjBKm5CM=~wDDHzqwtC2?8nF10C2EjV&`^&sL$ggCK&x00?6$8 zNfxkdC^^55u1s*4@LAb28$hohvN<8l0E~R}z`-g2Rt9*TVc+*B09Io-@I>lA6M(jp zbpvbo2?2O@AF2N;0Fe%OGyr!5kphs&5(0O-7x1#CES0kFCk z$0POs1OPpyfO_x(z#Dp4>d)!`2%#5%H5^?4c#-do{-*%AD~SI93uaKzbxZcJ00000 LNkvXXu0mjf5y%UL literal 0 HcmV?d00001 diff --git a/addons/material_maker/library/base/simple_sdf_operators_sdshow.png b/addons/material_maker/library/base/simple_sdf_operators_sdshow.png new file mode 100644 index 0000000000000000000000000000000000000000..eaf638b10ce5ed6d971136b4d0a92d3e5f07893e GIT binary patch literal 1413 zcmZuxX;9L682%xGN0`)Ti;0G3#P-w*FG@60prGtc|ZQ+_CTzmef~LjZu0 z{{g=+xYECeJ{rzYa^_nAP=Wq_-Vxb#OEqcXVwOqC33}X*_F*-LE53fa9M#MTuk=;`Z2#VCt8%n_~yIAntQys@u|KGjnpvUnUjJWQ^%lSsV0Ho=;4e$0$(=n2?Z=0~c?G=hy2{Fi7<} z{#>69oRv!DLy4ppUXwae!o~r<=WzSP5>^)x8yg$P6p|`SOG|?t8^b}zIL5`r#ZDit zvmbFHRSz`?(1o0_^aoLQmG{!36VWRrqsK?9Wpa=$Dji5Hm_NCTK)xC<`SxwRdwuUJ zFG`34W6P^!sm^vJ4pZ2r!Ia)CuHh_*h-g#L0&`PlL@slTPc+NfI zT7i^O+~-mCfd$f;d!23-$YJ&L#@7cj%~NBzbCs8>Pc{YvO8+xlAsYt^(wq!mC{+FH zfSBCwWf7uU^r;68dw)?-Z!K)tm@w9rGR0E}@=;JRXyi+LNb4me43f0@DySqufuybP z&h_T`2eRLj1?0g)LYoCiNfT*=Y9whp_h{y_yBlEfSnFbP^bxH`F}uv#ze?ryhxm-k zZK$5(ZEHpc5Tv1~@=<5gb3;wo-S2LY3?m|Kz{v{;+b2c~lFbTgnoAUgp!sMau}JDrHj9IxCUSta|EHNu z*NTManP055wLPkw&GPjDn&X-i=)ZGrpbfh4EG~kyJLwGPeEBNXn&)iuhHKYA)g$b3 zWG#6PGrBx!w1TX>JaGT`Wdo`>jIUc*K*NZL48yvtJ=3NPL_bc@gheRg{LW^{+gYte z#y^3iKJs91d^;b4TG#7iYt369Ly#RX(O2O)%r0k*#TCEE$f(xCe`&(NNb!I!Z|ye8 z5Z1}txsm#A2MzCJg)N)gnCldYM690h@j45-+DWi;a%!r4dcM=lRU25fIi-7?VC;?G z^m#}T`L$LKt;2cchc9TmaPrV*-<*( zL8}QGQ*bahENf-n`4r~otQCKmLqoMe={{9N*axZo!B<{;ShgOwz72PIp+;h~!(u+o zV=Y{Zd-jcyuU$p{zl*i#5hnPlD99u>USbn7*t_to>aUi16CcI%aD z`>mUnPVsxYEq8g?w%YstYjZ50U$)zJG2QZch|Qn)ZP!ye(NA}^v&Mo zb3U)MZ}}#<$Y5utd#ii}Mww7JgW8^OEwD#Z?Ku?eiF-zAWy_cg*6JS65xi(dTmO_t^}s3MPf0FJulW zTQx1ZS$d3hmclL0OKTWrFj>6yeE8TSYQv)ZYYg2#I=J1qlf0gDoN`$EqWGb-;;X;9 zGs+s=?`Zb~${u*h@7mE}uYBYnW0+m^k-b0fY4_MjM>IcwHGk4Ov21BkCp+u2OoD~4 zkEnaKMrBLb?kVfg+UGjwWEJ0vt*)Z7iYgb<92>aK6L;mjLWeuW#FDCuadeETDC^3uM zMA4bijU)T||MhJ?-9`m>uInwg{p8FPp(!x;`RRYF8_iu(cVygP09z1F@a{B)&SeF4LyL`66KynCKLF`5Fgk;V_K}U~; zPnGkIT6L(m#H^^f^owUDD?;}ObcEu z5;jr%R$I^UKyZ4W{Z_UI`U#8yEZ!YWfmf$3FFt->fnoOn@AgCbN|~}nU-o-8oZw`Q zx7j2nk+5*e`#3?PqaRIHTy4HDu5S7Mqv7T?YYsWhy!4gzfL4Fzfwu=4qtr9%^MC#d zJ&=6;Qp4qi8QtAGCg-21Z!9~M%$Z=tpuAq!bf?jp%ax}&S&QXA-|PBk&XwTXy^105 k%YI*m_g^fY&-uq#Zl_So`9`82SPn3Fy85}Sb4q9e0FC|g)Bpeg literal 0 HcmV?d00001 diff --git a/addons/material_maker/library/base/simple_sdf_shapes_sdbox.png b/addons/material_maker/library/base/simple_sdf_shapes_sdbox.png new file mode 100644 index 0000000000000000000000000000000000000000..3e65d3da679b508d350e258ed8a69dbc5fb3f0e3 GIT binary patch literal 750 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEVA|^G;uumf=k4skq9Y0%ZH7fB z_x?8(d+FS*+M)K_<;KVPg_FuA_0%XFn>ywC>!WK;FZ9lAocY_5f#>-0Ra1;)`X4t0 zdD&m*?c~s5;B_=_h+$Z=_1dnF*VI&$HVAC_zMru{;(nBM<^F42KkD}1<(R>ELW%!? z2~$+|_C*Sl-&NFe9%!E6Iq&1W0y%~Zf%{Aj{EQ!M4#+bY{>sug!7HiKdEv9&ft!7H z+&6AEbX<`2X`e+!!XkegC8xBq?F5znS^g z%5%}e934EB4m={~&xf@zF}}TZ-)Y0d35*8{WtQ*XdVTB1Gk>@pQo_A9YgBCV(hSHh z<=rlL=1fD;rYtLefxsDs`h?TuQy=J>v!wWu_Z03%4 z4qM1%=Dp{6xvE>;`&VW7iu_rod#`^xd008+HFG#G1H)Fw)xV-{7S_Jnx8Q_!=Xajz z*%zxSL!-XEJeJ&YWL{MEea&qOUo5MR8GjB)Q>uO|nWCJ)%9yLVHQaZmDq~m9#3{Wj zvGzS?clJJ7bS5;3>7cbdL&o{r`uava^%KK2UP|6)tT5fO>zG>g(iO6NRS^rqgO|%c z3XQdky%%D4n%&~Fo#5A-iq%_p_;kmqJP6fX>A-N}=fNX7ie(JjRs{6j`))RK%dZqS z`M|isufF&HoSne>km-Mu_}+Xm@-%mN>${Mhn+@1;x2n?Ee7 z6lJw#TDNDu>;WAvKj#Dce!TepzlY&TMtI|{zYKxr!fty_{1pXE#|)mXelF{r5}E)B C7FnMF literal 0 HcmV?d00001 diff --git a/addons/material_maker/library/base/simple_sdf_shapes_sdcircle.png b/addons/material_maker/library/base/simple_sdf_shapes_sdcircle.png new file mode 100644 index 0000000000000000000000000000000000000000..61924e072f5f633f201b82be78c7ef2cf4e005a8 GIT binary patch literal 1300 zcmV+v1?&2WP)JtWjJE2>pC1|wAP06)|xwBuNOVa=oWa703<`eMkL%JptZK_`+hlZt(|iq=*pZS z0Ur2B1=h$Cpof5G*~d9F39r{{m{Xs31Q@BoBEwU`I|x7}SlQR0H3=4IJy%EI83LFR zkcdwZph>{&Gx>XS_6Ynt4DlTVc)(fa**q5lEC7s<3=tZ~c=0L#7wyrh5#e8mr#3S?0p0agpNO29HdITz>mVo(6fWTi7yTB5fo zY=P+hUfpM}yKUQ50iFt~ogv!|G7DwyKjZk;Jlz7o`hB%CMBN}mK&I_kpuLW=ZQGRq zYm>t~z}qS6Yk4ZDEEuzIZFsz_i`4PjLc-7nJu+teAlnJN4uILmw&xMRGB5rzcmM*g zm}AxuGXzA&$F9N5&LUwTAOkkLPw@5x5dl{3_clB%*bSAOp9JW7t(HW!6f&WEe`P0$ zpfTH4Ywgw|vt(pDLuN;&Lx|G#A345P=lUqX<=;I5?fFBdGu(;eIF@bO(vI(C-a59{ z{+0l4UuT9UqndRuEETa`qX*o2o^VkBJFhC?o!})z4OT>%*Rsd+t_{W`BI6IA0&kJv zWgc&zt@CqFp-TWu!2)j)p?80u4w>J(3&q5-E&0ChOY?r{DZ?7y3U3Y87Tm+v*xeet z5F_H-kp*sn*TW^iBgWd@eKRr=&y1!oI7`A)aR;kXOg=mysEMBnYc17ME_(n@DCbXrx7Ja{5&^|Y*f)CL4xB$)uS5y9}a4ETry`2zDBr6BXmoF4cL3Eh&sJUL|_C!Kdv>Reu0eDcZgx~}IZ zt{D}u#A(bu0xlrsXnlo=@d*+%cpRw2j56fBuLKdX#O33z}j znHLXO*S~LR?mRTrYxBPN&MLtoq-&u1t%;R+{5%DLX#xa1KDN$goOK)|fc-pDfsC$! zTQXXoT!Z)8A}fW+94{phg$9h@MfpnwQCJF@I!@1G?gqkPO(_M@!G@x8W}`DkI5fJ|G=5-@ZDj{tAOV?9s!1OeGnKqYwlgi8sqtZU#% zg3dm=zSRP=1ZX0#6L{so%7BqUJ-~B(G(9W(-VIQdfQW=Ut?>`u@+F#^fJc-70000< KMNUMnLSTZ_-eQOV literal 0 HcmV?d00001 diff --git a/addons/material_maker/library/base/simple_sdf_shapes_sdline.png b/addons/material_maker/library/base/simple_sdf_shapes_sdline.png new file mode 100644 index 0000000000000000000000000000000000000000..0c783f995d8138e4450b4979fa62790cefa52de6 GIT binary patch literal 723 zcmV;^0xbQBP)Gz4j$*OU@!tvllymRA*NzLyEl07&!lJ7EAw^GBuv z#ni90-m^ePJ`4bDRKuWoUMW5Q2`J}0(a!rSmhoOa0RAIunU4~6sh1hRt2U{tf3(O` z4*)C}RvpmMkE+7?eIyes0FjnFOGT!(EO@<4pjk#gx^@7hdEQ$^k;`Ayc`x+h{XVq{gd)?~GR|sm6}%N7 z6dmOw#-*Y|D3e2Z1RZs0zO@z~0ANF~jO*8b%K!lO5Ud`C-f_TX008*tC2!~=sKui_ zDJAo?o26wkK%Q-~AOQApz$E~%*zsO>tjUva%L3q3rZJk=8KEJB1|XNZXPqn-41!n! zfb3n+CtZ8yIl`_2jJ(y#1K?>F>kdG~4CuA&$-nF3XSL0S1Rx)2dt2OIKXd2|&}+GD z>j7W_&=9O9>aYNG55o}vRy_z)1ZCtodMDa@eGgV9`~iBeVY~GeL>mAA002ovPDHLk FV1isBH|GEV literal 0 HcmV?d00001 diff --git a/addons/material_maker/library/base/simple_sdf_shapes_sdrhombus.png b/addons/material_maker/library/base/simple_sdf_shapes_sdrhombus.png new file mode 100644 index 0000000000000000000000000000000000000000..8be1c6761adc21f35388b9a4b66eb96c1bcece0a GIT binary patch literal 1124 zcmV-q1e^PbP)CYlY)D&JNSL)OmhA`CB_iYeU}g zS=D>>Edd<3tR8^!w`{|G-$PZ`+B6qD5g^s)wjBlCJMR_(GeCPzkRn;3sOFFgc!TQ3ok`p0ox)PD=m>xSVF zm?5Z_2xS6{0Qi*<=(Y9ofJ}fMFcEHWg+MexPXv$yB9mWg2#k=%T_6dt)X#K-83Ng1 zVG%&;zg2$J4X;CBhBT_YL=Jl+1maVNv%-Ss0UG|IhdmF0Lm?0yDx83))n1kx)Wy(> zWT+7kHOm_z@J2wk>atD7f99|!+W_E7K&BI{V*ns+miKh63juGyN031aqsXT`9DYA1foWUh!WujnfN#n*xKLn)XE1dRkzBF8zgA{ z+z};+UO22$-72GQAm!!rM*fL(uyn!b$dIABRlIJX!U>R1ospkRpfnYQNzt6JQgy3nZs338U;(b!T5Evvg7N@K1U*6ePldYy5!FZQG9gl_U+C|@ zDmMpcFDYl)If9aUeH-?m{pzHhy+OnYHMhIa}D4sH_WKs8yR>T(ih1( zC%^)j<%THLpPW!@{R;uv0WZL4H$eCvj6 z)q763I3Nn(h#LT4iRxB9xDXHt(0eWJfNa%en@WHeOaxiA)^7Yqs%~8$X`%BL%#0iO zRC|@`vh5^b2Fx1*YpoXoMn-|iP`MB=Yi%!q+I&EEd_^*>wE`kysI|QWQvAz#zzWsP z5Qt247J;?a?nJ1RvNRdqLSTg(c>K%R=L*$bA&}t)u6~aI%>`Lu(G7uUH)tCb+WNzj z45JdHD+Hq4z`^$j;3Q-xLw5*7412W01knGN8OsGxs!xT$%&=!AKr0WdNQSRMU?llT z^{qX+CjwGKU}jzKNq$oOCjxpTL?^@30ki9ROL=Wi-a|mo0jVJn=?1R;(>Aq5fJH=9 qGE_q#!VLsmQ{PJf2T$LlL*N(4bmYaX)cQdH0000 void: var result = nodes[0].generator.render(0, 64) while result is GDScriptFunctionState: result = yield(result, "completed") - result.save_to_file("user://library/user/"+data.icon+".png") + result.save_to_file("user://library/user/"+library.get_icon_name(name)+".png") result.release() library.add_item(data, name, library.get_preview_texture(data)) library.save_library("user://library/user.json")