pixel builder

This commit is contained in:
Tanasart 2025-03-01 14:13:15 +07:00
parent 3e30c496a5
commit bb2247f415
382 changed files with 2653 additions and 6354 deletions

View file

@ -154,15 +154,15 @@
{"name":"mk blinker","order":17,"path":"folders/nodes/data/MKFX/mk blinker.yy",}, {"name":"mk blinker","order":17,"path":"folders/nodes/data/MKFX/mk blinker.yy",},
{"name":"Subpixel","order":25,"path":"folders/nodes/data/MKFX/Subpixel.yy",}, {"name":"Subpixel","order":25,"path":"folders/nodes/data/MKFX/Subpixel.yy",},
{"name":"Tile","order":12,"path":"folders/nodes/data/MKFX/Tile.yy",}, {"name":"Tile","order":12,"path":"folders/nodes/data/MKFX/Tile.yy",},
{"name":"PB","order":12,"path":"folders/nodes/data/PB.yy",},
{"name":"draw","order":2,"path":"folders/nodes/data/PB/draw.yy",},
{"name":"modify","order":3,"path":"folders/nodes/data/PB/modify.yy",},
{"name":"pbbox","order":1,"path":"folders/nodes/data/PB/pbbox.yy",},
{"name":"PCX","order":11,"path":"folders/nodes/data/PCX.yy",}, {"name":"PCX","order":11,"path":"folders/nodes/data/PCX.yy",},
{"name":"flow_control","order":1,"path":"folders/nodes/data/PCX/flow_control.yy",}, {"name":"flow_control","order":1,"path":"folders/nodes/data/PCX/flow_control.yy",},
{"name":"fn","order":2,"path":"folders/nodes/data/PCX/fn.yy",}, {"name":"fn","order":2,"path":"folders/nodes/data/PCX/fn.yy",},
{"name":"surface","order":3,"path":"folders/nodes/data/PCX/surface.yy",}, {"name":"surface","order":3,"path":"folders/nodes/data/PCX/surface.yy",},
{"name":"value","order":4,"path":"folders/nodes/data/PCX/value.yy",}, {"name":"value","order":4,"path":"folders/nodes/data/PCX/value.yy",},
{"name":"pixel builder","order":12,"path":"folders/nodes/data/pixel builder.yy",},
{"name":"draw","order":1,"path":"folders/nodes/data/pixel builder/draw.yy",},
{"name":"effect","order":2,"path":"folders/nodes/data/pixel builder/effect.yy",},
{"name":"shader","order":3,"path":"folders/nodes/data/pixel builder/shader.yy",},
{"name":"render","order":13,"path":"folders/nodes/data/render.yy",}, {"name":"render","order":13,"path":"folders/nodes/data/render.yy",},
{"name":"simulation","order":14,"path":"folders/nodes/data/simulation.yy",}, {"name":"simulation","order":14,"path":"folders/nodes/data/simulation.yy",},
{"name":"FLIP","order":1,"path":"folders/nodes/data/simulation/FLIP.yy",}, {"name":"FLIP","order":1,"path":"folders/nodes/data/simulation/FLIP.yy",},
@ -431,13 +431,11 @@
{"name":"__node_shader","order":22,"path":"scripts/__node_shader/__node_shader.yy",}, {"name":"__node_shader","order":22,"path":"scripts/__node_shader/__node_shader.yy",},
{"name":"__node_surface_filter","order":6,"path":"scripts/__node_surface_filter/__node_surface_filter.yy",}, {"name":"__node_surface_filter","order":6,"path":"scripts/__node_surface_filter/__node_surface_filter.yy",},
{"name":"__node_template","order":20,"path":"scripts/__node_template/__node_template.yy",}, {"name":"__node_template","order":20,"path":"scripts/__node_template/__node_template.yy",},
{"name":"__node_value_object","order":3,"path":"scripts/__node_value_object/__node_value_object.yy",},
{"name":"__node_value_processor","order":2,"path":"scripts/__node_value_processor/__node_value_processor.yy",}, {"name":"__node_value_processor","order":2,"path":"scripts/__node_value_processor/__node_value_processor.yy",},
{"name":"__node","order":1,"path":"scripts/__node/__node.yy",}, {"name":"__node","order":1,"path":"scripts/__node/__node.yy",},
{"name":"__panel_empty","order":12,"path":"scripts/__panel_empty/__panel_empty.yy",}, {"name":"__panel_empty","order":12,"path":"scripts/__panel_empty/__panel_empty.yy",},
{"name":"__panel_linear_setting","order":13,"path":"scripts/__panel_linear_setting/__panel_linear_setting.yy",}, {"name":"__panel_linear_setting","order":13,"path":"scripts/__panel_linear_setting/__panel_linear_setting.yy",},
{"name":"__path","order":1,"path":"scripts/__path/__path.yy",}, {"name":"__path","order":1,"path":"scripts/__path/__path.yy",},
{"name":"__pbBox","order":4,"path":"scripts/__pbBox/__pbBox.yy",},
{"name":"__polygon","order":2,"path":"scripts/__polygon/__polygon.yy",}, {"name":"__polygon","order":2,"path":"scripts/__polygon/__polygon.yy",},
{"name":"__raymarching","order":5,"path":"scripts/__raymarching/__raymarching.yy",}, {"name":"__raymarching","order":5,"path":"scripts/__raymarching/__raymarching.yy",},
{"name":"__rectangle","order":7,"path":"scripts/__rectangle/__rectangle.yy",}, {"name":"__rectangle","order":7,"path":"scripts/__rectangle/__rectangle.yy",},
@ -1053,36 +1051,18 @@
{"name":"node_path_trim","order":11,"path":"scripts/node_path_trim/node_path_trim.yy",}, {"name":"node_path_trim","order":11,"path":"scripts/node_path_trim/node_path_trim.yy",},
{"name":"node_path_wave","order":12,"path":"scripts/node_path_wave/node_path_wave.yy",}, {"name":"node_path_wave","order":12,"path":"scripts/node_path_wave/node_path_wave.yy",},
{"name":"node_path_weight_adjust","order":32,"path":"scripts/node_path_weight_adjust/node_path_weight_adjust.yy",}, {"name":"node_path_weight_adjust","order":32,"path":"scripts/node_path_weight_adjust/node_path_weight_adjust.yy",},
{"name":"node_pb_box_contract","order":8,"path":"scripts/node_pb_box_contract/node_pb_box_contract.yy",}, {"name":"node_pb_box_bbox","order":1,"path":"scripts/node_pb_box_bbox/node_pb_box_bbox.yy",},
{"name":"node_pb_box_divide_grid","order":7,"path":"scripts/node_pb_box_divide_grid/node_pb_box_divide_grid.yy",}, {"name":"node_pb_box_mirror","order":2,"path":"scripts/node_pb_box_mirror/node_pb_box_mirror.yy",},
{"name":"node_pb_box_divide","order":5,"path":"scripts/node_pb_box_divide/node_pb_box_divide.yy",}, {"name":"node_pb_dimension","order":3,"path":"scripts/node_pb_dimension/node_pb_dimension.yy",},
{"name":"node_pb_box_inset","order":4,"path":"scripts/node_pb_box_inset/node_pb_box_inset.yy",}, {"name":"node_pb_draw_diamond","order":7,"path":"scripts/node_pb_draw_diamond/node_pb_draw_diamond.yy",},
{"name":"node_pb_box_mirror","order":10,"path":"scripts/node_pb_box_mirror/node_pb_box_mirror.yy",}, {"name":"node_pb_draw_ellipse","order":4,"path":"scripts/node_pb_draw_ellipse/node_pb_draw_ellipse.yy",},
{"name":"node_pb_box_split","order":2,"path":"scripts/node_pb_box_split/node_pb_box_split.yy",}, {"name":"node_pb_draw_line","order":6,"path":"scripts/node_pb_draw_line/node_pb_draw_line.yy",},
{"name":"node_pb_box_transform","order":9,"path":"scripts/node_pb_box_transform/node_pb_box_transform.yy",}, {"name":"node_pb_draw_rectangle","order":2,"path":"scripts/node_pb_draw_rectangle/node_pb_draw_rectangle.yy",},
{"name":"node_pb_draw_angle","order":7,"path":"scripts/node_pb_draw_angle/node_pb_draw_angle.yy",}, {"name":"node_pb_draw_round_rectangle","order":3,"path":"scripts/node_pb_draw_round_rectangle/node_pb_draw_round_rectangle.yy",},
{"name":"node_pb_draw_blob","order":5,"path":"scripts/node_pb_draw_blob/node_pb_draw_blob.yy",}, {"name":"node_pb_draw_surface","order":9,"path":"scripts/node_pb_draw_surface/node_pb_draw_surface.yy",},
{"name":"node_pb_draw_diamond","order":10,"path":"scripts/node_pb_draw_diamond/node_pb_draw_diamond.yy",}, {"name":"node_pb_draw_trapezoid","order":5,"path":"scripts/node_pb_draw_trapezoid/node_pb_draw_trapezoid.yy",},
{"name":"node_pb_draw_ellipse","order":2,"path":"scripts/node_pb_draw_ellipse/node_pb_draw_ellipse.yy",},
{"name":"node_pb_draw_fill","order":3,"path":"scripts/node_pb_draw_fill/node_pb_draw_fill.yy",},
{"name":"node_pb_draw_line","order":9,"path":"scripts/node_pb_draw_line/node_pb_draw_line.yy",},
{"name":"node_pb_draw_round_rectangle","order":4,"path":"scripts/node_pb_draw_round_rectangle/node_pb_draw_round_rectangle.yy",},
{"name":"node_pb_draw_semi_ellipse","order":6,"path":"scripts/node_pb_draw_semi_ellipse/node_pb_draw_semi_ellipse.yy",},
{"name":"node_pb_draw_trapezoid","order":8,"path":"scripts/node_pb_draw_trapezoid/node_pb_draw_trapezoid.yy",},
{"name":"node_pb_draw","order":1,"path":"scripts/node_pb_draw/node_pb_draw.yy",}, {"name":"node_pb_draw","order":1,"path":"scripts/node_pb_draw/node_pb_draw.yy",},
{"name":"node_pb_fx_add","order":6,"path":"scripts/node_pb_fx_add/node_pb_fx_add.yy",}, {"name":"node_pb_output","order":2,"path":"scripts/node_pb_output/node_pb_output.yy",},
{"name":"node_pb_fx_brick","order":12,"path":"scripts/node_pb_fx_brick/node_pb_fx_brick.yy",},
{"name":"node_pb_fx_hash","order":7,"path":"scripts/node_pb_fx_hash/node_pb_fx_hash.yy",},
{"name":"node_pb_fx_highlight","order":1,"path":"scripts/node_pb_fx_highlight/node_pb_fx_highlight.yy",},
{"name":"node_pb_fx_intersect","order":5,"path":"scripts/node_pb_fx_intersect/node_pb_fx_intersect.yy",},
{"name":"node_pb_fx_outline","order":2,"path":"scripts/node_pb_fx_outline/node_pb_fx_outline.yy",},
{"name":"node_pb_fx_radial","order":9,"path":"scripts/node_pb_fx_radial/node_pb_fx_radial.yy",},
{"name":"node_pb_fx_shading","order":3,"path":"scripts/node_pb_fx_shading/node_pb_fx_shading.yy",},
{"name":"node_pb_fx_stack","order":8,"path":"scripts/node_pb_fx_stack/node_pb_fx_stack.yy",},
{"name":"node_pb_fx_strip","order":11,"path":"scripts/node_pb_fx_strip/node_pb_fx_strip.yy",},
{"name":"node_pb_fx_subtract","order":4,"path":"scripts/node_pb_fx_subtract/node_pb_fx_subtract.yy",},
{"name":"node_pb_layer","order":1,"path":"scripts/node_pb_layer/node_pb_layer.yy",},
{"name":"node_pb","order":6,"path":"scripts/node_pb/node_pb.yy",},
{"name":"node_PCX_array_set","order":1,"path":"scripts/node_PCX_array_set/node_PCX_array_set.yy",}, {"name":"node_PCX_array_set","order":1,"path":"scripts/node_PCX_array_set/node_PCX_array_set.yy",},
{"name":"node_PCX_equation","order":7,"path":"scripts/node_PCX_equation/node_PCX_equation.yy",}, {"name":"node_PCX_equation","order":7,"path":"scripts/node_PCX_equation/node_PCX_equation.yy",},
{"name":"node_PCX_fn_random","order":1,"path":"scripts/node_PCX_fn_random/node_PCX_fn_random.yy",}, {"name":"node_PCX_fn_random","order":1,"path":"scripts/node_PCX_fn_random/node_PCX_fn_random.yy",},
@ -1093,7 +1073,7 @@
{"name":"node_perlin_smear","order":22,"path":"scripts/node_perlin_smear/node_perlin_smear.yy",}, {"name":"node_perlin_smear","order":22,"path":"scripts/node_perlin_smear/node_perlin_smear.yy",},
{"name":"node_perlin","order":18,"path":"scripts/node_perlin/node_perlin.yy",}, {"name":"node_perlin","order":18,"path":"scripts/node_perlin/node_perlin.yy",},
{"name":"node_pin","order":6,"path":"scripts/node_pin/node_pin.yy",}, {"name":"node_pin","order":6,"path":"scripts/node_pin/node_pin.yy",},
{"name":"node_pixel_builder","order":5,"path":"scripts/node_pixel_builder/node_pixel_builder.yy",}, {"name":"node_pixel_builder","order":1,"path":"scripts/node_pixel_builder/node_pixel_builder.yy",},
{"name":"node_pixel_cloud","order":43,"path":"scripts/node_pixel_cloud/node_pixel_cloud.yy",}, {"name":"node_pixel_cloud","order":43,"path":"scripts/node_pixel_cloud/node_pixel_cloud.yy",},
{"name":"node_pixel_extract","order":19,"path":"scripts/node_pixel_extract/node_pixel_extract.yy",}, {"name":"node_pixel_extract","order":19,"path":"scripts/node_pixel_extract/node_pixel_extract.yy",},
{"name":"node_pixel_math","order":55,"path":"scripts/node_pixel_math/node_pixel_math.yy",}, {"name":"node_pixel_math","order":55,"path":"scripts/node_pixel_math/node_pixel_math.yy",},
@ -1238,55 +1218,58 @@
{"name":"node_trigger_bool","order":1,"path":"scripts/node_trigger_bool/node_trigger_bool.yy",}, {"name":"node_trigger_bool","order":1,"path":"scripts/node_trigger_bool/node_trigger_bool.yy",},
{"name":"node_tunnel_out","order":1,"path":"scripts/node_tunnel_out/node_tunnel_out.yy",}, {"name":"node_tunnel_out","order":1,"path":"scripts/node_tunnel_out/node_tunnel_out.yy",},
{"name":"node_twirl","order":8,"path":"scripts/node_twirl/node_twirl.yy",}, {"name":"node_twirl","order":8,"path":"scripts/node_twirl/node_twirl.yy",},
{"name":"node_value_area","order":11,"path":"scripts/node_value_area/node_value_area.yy",}, {"name":"node_value_area","order":12,"path":"scripts/node_value_area/node_value_area.yy",},
{"name":"node_value_armature","order":1,"path":"scripts/node_value_armature/node_value_armature.yy",},
{"name":"node_value_atlas","order":7,"path":"scripts/node_value_atlas/node_value_atlas.yy",}, {"name":"node_value_atlas","order":7,"path":"scripts/node_value_atlas/node_value_atlas.yy",},
{"name":"node_value_audioBit","order":1,"path":"scripts/node_value_audioBit/node_value_audioBit.yy",}, {"name":"node_value_audioBit","order":2,"path":"scripts/node_value_audioBit/node_value_audioBit.yy",},
{"name":"node_value_base","order":2,"path":"scripts/node_value_base/node_value_base.yy",}, {"name":"node_value_base","order":2,"path":"scripts/node_value_base/node_value_base.yy",},
{"name":"node_value_bool","order":5,"path":"scripts/node_value_bool/node_value_bool.yy",}, {"name":"node_value_bool","order":5,"path":"scripts/node_value_bool/node_value_bool.yy",},
{"name":"node_value_buffer","order":2,"path":"scripts/node_value_buffer/node_value_buffer.yy",}, {"name":"node_value_buffer","order":3,"path":"scripts/node_value_buffer/node_value_buffer.yy",},
{"name":"node_value_corner","order":17,"path":"scripts/node_value_corner/node_value_corner.yy",}, {"name":"node_value_corner","order":18,"path":"scripts/node_value_corner/node_value_corner.yy",},
{"name":"node_value_curve","order":22,"path":"scripts/node_value_curve/node_value_curve.yy",}, {"name":"node_value_curve","order":23,"path":"scripts/node_value_curve/node_value_curve.yy",},
{"name":"node_value_d3_light","order":1,"path":"scripts/node_value_d3_light/node_value_d3_light.yy",}, {"name":"node_value_d3_light","order":1,"path":"scripts/node_value_d3_light/node_value_d3_light.yy",},
{"name":"node_value_d3_material","order":2,"path":"scripts/node_value_d3_material/node_value_d3_material.yy",}, {"name":"node_value_d3_material","order":2,"path":"scripts/node_value_d3_material/node_value_d3_material.yy",},
{"name":"node_value_d3_mesh","order":3,"path":"scripts/node_value_d3_mesh/node_value_d3_mesh.yy",}, {"name":"node_value_d3_mesh","order":3,"path":"scripts/node_value_d3_mesh/node_value_d3_mesh.yy",},
{"name":"node_value_d3_scene","order":4,"path":"scripts/node_value_d3_scene/node_value_d3_scene.yy",}, {"name":"node_value_d3_scene","order":4,"path":"scripts/node_value_d3_scene/node_value_d3_scene.yy",},
{"name":"node_value_dimension","order":20,"path":"scripts/node_value_dimension/node_value_dimension.yy",}, {"name":"node_value_dimension","order":21,"path":"scripts/node_value_dimension/node_value_dimension.yy",},
{"name":"node_value_enum_button","order":7,"path":"scripts/node_value_enum_button/node_value_enum_button.yy",}, {"name":"node_value_enum_button","order":8,"path":"scripts/node_value_enum_button/node_value_enum_button.yy",},
{"name":"node_value_enum_scroll","order":8,"path":"scripts/node_value_enum_scroll/node_value_enum_scroll.yy",}, {"name":"node_value_enum_scroll","order":9,"path":"scripts/node_value_enum_scroll/node_value_enum_scroll.yy",},
{"name":"node_value_fdomain","order":8,"path":"scripts/node_value_fdomain/node_value_fdomain.yy",}, {"name":"node_value_fdomain","order":8,"path":"scripts/node_value_fdomain/node_value_fdomain.yy",},
{"name":"node_value_float","order":1,"path":"scripts/node_value_float/node_value_float.yy",}, {"name":"node_value_float","order":1,"path":"scripts/node_value_float/node_value_float.yy",},
{"name":"node_value_font","order":11,"path":"scripts/node_value_font/node_value_font.yy",}, {"name":"node_value_font","order":11,"path":"scripts/node_value_font/node_value_font.yy",},
{"name":"node_value_gradient","order":1,"path":"scripts/node_value_gradient/node_value_gradient.yy",}, {"name":"node_value_gradient","order":1,"path":"scripts/node_value_gradient/node_value_gradient.yy",},
{"name":"node_value_int","order":2,"path":"scripts/node_value_int/node_value_int.yy",}, {"name":"node_value_int","order":2,"path":"scripts/node_value_int/node_value_int.yy",},
{"name":"node_value_matrix","order":23,"path":"scripts/node_value_matrix/node_value_matrix.yy",}, {"name":"node_value_matrix","order":24,"path":"scripts/node_value_matrix/node_value_matrix.yy",},
{"name":"node_value_mesh","order":5,"path":"scripts/node_value_mesh/node_value_mesh.yy",}, {"name":"node_value_mesh","order":5,"path":"scripts/node_value_mesh/node_value_mesh.yy",},
{"name":"node_value_output","order":4,"path":"scripts/node_value_output/node_value_output.yy",}, {"name":"node_value_output","order":4,"path":"scripts/node_value_output/node_value_output.yy",},
{"name":"node_value_padding","order":16,"path":"scripts/node_value_padding/node_value_padding.yy",}, {"name":"node_value_padding","order":17,"path":"scripts/node_value_padding/node_value_padding.yy",},
{"name":"node_value_palette","order":2,"path":"scripts/node_value_palette/node_value_palette.yy",}, {"name":"node_value_palette","order":2,"path":"scripts/node_value_palette/node_value_palette.yy",},
{"name":"node_value_particle","order":4,"path":"scripts/node_value_particle/node_value_particle.yy",}, {"name":"node_value_particle","order":4,"path":"scripts/node_value_particle/node_value_particle.yy",},
{"name":"node_value_path_anchor","order":18,"path":"scripts/node_value_path_anchor/node_value_path_anchor.yy",}, {"name":"node_value_path_anchor","order":19,"path":"scripts/node_value_path_anchor/node_value_path_anchor.yy",},
{"name":"node_value_path","order":10,"path":"scripts/node_value_path/node_value_path.yy",}, {"name":"node_value_path","order":10,"path":"scripts/node_value_path/node_value_path.yy",},
{"name":"node_value_pathnode","order":5,"path":"scripts/node_value_pathnode/node_value_pathnode.yy",}, {"name":"node_value_pathnode","order":5,"path":"scripts/node_value_pathnode/node_value_pathnode.yy",},
{"name":"node_value_quarterion","order":19,"path":"scripts/node_value_quarterion/node_value_quarterion.yy",}, {"name":"node_value_pbbox","order":10,"path":"scripts/node_value_pbbox/node_value_pbbox.yy",},
{"name":"node_value_range","order":3,"path":"scripts/node_value_range/node_value_range.yy",}, {"name":"node_value_quarterion","order":20,"path":"scripts/node_value_quarterion/node_value_quarterion.yy",},
{"name":"node_value_rotation_random","order":12,"path":"scripts/node_value_rotation_random/node_value_rotation_random.yy",}, {"name":"node_value_range","order":4,"path":"scripts/node_value_range/node_value_range.yy",},
{"name":"node_value_rotation_range","order":10,"path":"scripts/node_value_rotation_range/node_value_rotation_range.yy",}, {"name":"node_value_rotation_random","order":13,"path":"scripts/node_value_rotation_random/node_value_rotation_random.yy",},
{"name":"node_value_rotation","order":9,"path":"scripts/node_value_rotation/node_value_rotation.yy",}, {"name":"node_value_rotation_range","order":11,"path":"scripts/node_value_rotation_range/node_value_rotation_range.yy",},
{"name":"node_value_rotation","order":10,"path":"scripts/node_value_rotation/node_value_rotation.yy",},
{"name":"node_value_sdf","order":6,"path":"scripts/node_value_sdf/node_value_sdf.yy",}, {"name":"node_value_sdf","order":6,"path":"scripts/node_value_sdf/node_value_sdf.yy",},
{"name":"node_value_slider_range","order":13,"path":"scripts/node_value_slider_range/node_value_slider_range.yy",}, {"name":"node_value_slider_range","order":14,"path":"scripts/node_value_slider_range/node_value_slider_range.yy",},
{"name":"node_value_slider","order":3,"path":"scripts/node_value_slider/node_value_slider.yy",},
{"name":"node_value_struct","order":7,"path":"scripts/node_value_struct/node_value_struct.yy",}, {"name":"node_value_struct","order":7,"path":"scripts/node_value_struct/node_value_struct.yy",},
{"name":"node_value_surface","order":6,"path":"scripts/node_value_surface/node_value_surface.yy",}, {"name":"node_value_surface","order":6,"path":"scripts/node_value_surface/node_value_surface.yy",},
{"name":"node_value_text","order":8,"path":"scripts/node_value_text/node_value_text.yy",}, {"name":"node_value_text","order":8,"path":"scripts/node_value_text/node_value_text.yy",},
{"name":"node_value_tileset","order":9,"path":"scripts/node_value_tileset/node_value_tileset.yy",}, {"name":"node_value_tileset","order":9,"path":"scripts/node_value_tileset/node_value_tileset.yy",},
{"name":"node_value_toggle","order":21,"path":"scripts/node_value_toggle/node_value_toggle.yy",}, {"name":"node_value_toggle","order":22,"path":"scripts/node_value_toggle/node_value_toggle.yy",},
{"name":"node_value_trigger","order":9,"path":"scripts/node_value_trigger/node_value_trigger.yy",}, {"name":"node_value_trigger","order":9,"path":"scripts/node_value_trigger/node_value_trigger.yy",},
{"name":"node_value_types","order":3,"path":"scripts/node_value_types/node_value_types.yy",}, {"name":"node_value_types","order":3,"path":"scripts/node_value_types/node_value_types.yy",},
{"name":"node_value_validators","order":4,"path":"scripts/node_value_validators/node_value_validators.yy",}, {"name":"node_value_validators","order":4,"path":"scripts/node_value_validators/node_value_validators.yy",},
{"name":"node_value_vec2_range","order":14,"path":"scripts/node_value_vec2_range/node_value_vec2_range.yy",}, {"name":"node_value_vec2_range","order":15,"path":"scripts/node_value_vec2_range/node_value_vec2_range.yy",},
{"name":"node_value_vec2","order":4,"path":"scripts/node_value_vec2/node_value_vec2.yy",}, {"name":"node_value_vec2","order":5,"path":"scripts/node_value_vec2/node_value_vec2.yy",},
{"name":"node_value_vec3_range","order":15,"path":"scripts/node_value_vec3_range/node_value_vec3_range.yy",}, {"name":"node_value_vec3_range","order":16,"path":"scripts/node_value_vec3_range/node_value_vec3_range.yy",},
{"name":"node_value_vec3","order":5,"path":"scripts/node_value_vec3/node_value_vec3.yy",}, {"name":"node_value_vec3","order":6,"path":"scripts/node_value_vec3/node_value_vec3.yy",},
{"name":"node_value_vec4","order":6,"path":"scripts/node_value_vec4/node_value_vec4.yy",}, {"name":"node_value_vec4","order":7,"path":"scripts/node_value_vec4/node_value_vec4.yy",},
{"name":"node_value","order":1,"path":"scripts/node_value/node_value.yy",}, {"name":"node_value","order":1,"path":"scripts/node_value/node_value.yy",},
{"name":"node_vec2_cart_to_polar","order":11,"path":"scripts/node_vec2_cart_to_polar/node_vec2_cart_to_polar.yy",}, {"name":"node_vec2_cart_to_polar","order":11,"path":"scripts/node_vec2_cart_to_polar/node_vec2_cart_to_polar.yy",},
{"name":"node_vec2_polar_to_cart","order":10,"path":"scripts/node_vec2_polar_to_cart/node_vec2_polar_to_cart.yy",}, {"name":"node_vec2_polar_to_cart","order":10,"path":"scripts/node_vec2_polar_to_cart/node_vec2_polar_to_cart.yy",},
@ -1401,6 +1384,7 @@
{"name":"path_reader","order":5,"path":"scripts/path_reader/path_reader.yy",}, {"name":"path_reader","order":5,"path":"scripts/path_reader/path_reader.yy",},
{"name":"pathAnchorBox","order":17,"path":"scripts/pathAnchorBox/pathAnchorBox.yy",}, {"name":"pathAnchorBox","order":17,"path":"scripts/pathAnchorBox/pathAnchorBox.yy",},
{"name":"pathArrayBox","order":12,"path":"scripts/pathArrayBox/pathArrayBox.yy",}, {"name":"pathArrayBox","order":12,"path":"scripts/pathArrayBox/pathArrayBox.yy",},
{"name":"pbBoxBox","order":4,"path":"scripts/pbBoxBox/pbBoxBox.yy",},
{"name":"pcx_parse","order":3,"path":"scripts/pcx_parse/pcx_parse.yy",}, {"name":"pcx_parse","order":3,"path":"scripts/pcx_parse/pcx_parse.yy",},
{"name":"pcx_server","order":2,"path":"scripts/pcx_server/pcx_server.yy",}, {"name":"pcx_server","order":2,"path":"scripts/pcx_server/pcx_server.yy",},
{"name":"perlin_noise","order":5,"path":"scripts/perlin_noise/perlin_noise.yy",}, {"name":"perlin_noise","order":5,"path":"scripts/perlin_noise/perlin_noise.yy",},
@ -1769,16 +1753,7 @@
{"name":"sh_path_fill_profile","order":16,"path":"shaders/sh_path_fill_profile/sh_path_fill_profile.yy",}, {"name":"sh_path_fill_profile","order":16,"path":"shaders/sh_path_fill_profile/sh_path_fill_profile.yy",},
{"name":"sh_path_morph","order":25,"path":"shaders/sh_path_morph/sh_path_morph.yy",}, {"name":"sh_path_morph","order":25,"path":"shaders/sh_path_morph/sh_path_morph.yy",},
{"name":"sh_path_sdf","order":30,"path":"shaders/sh_path_sdf/sh_path_sdf.yy",}, {"name":"sh_path_sdf","order":30,"path":"shaders/sh_path_sdf/sh_path_sdf.yy",},
{"name":"sh_pb_blob","order":1,"path":"shaders/sh_pb_blob/sh_pb_blob.yy",}, {"name":"sh_pb_diamond","order":8,"path":"shaders/sh_pb_diamond/sh_pb_diamond.yy",},
{"name":"sh_pb_brick","order":9,"path":"shaders/sh_pb_brick/sh_pb_brick.yy",},
{"name":"sh_pb_draw_mask","order":8,"path":"shaders/sh_pb_draw_mask/sh_pb_draw_mask.yy",},
{"name":"sh_pb_hash","order":4,"path":"shaders/sh_pb_hash/sh_pb_hash.yy",},
{"name":"sh_pb_mask_inset","order":10,"path":"shaders/sh_pb_mask_inset/sh_pb_mask_inset.yy",},
{"name":"sh_pb_outline","order":2,"path":"shaders/sh_pb_outline/sh_pb_outline.yy",},
{"name":"sh_pb_shade_half","order":5,"path":"shaders/sh_pb_shade_half/sh_pb_shade_half.yy",},
{"name":"sh_pb_shade","order":3,"path":"shaders/sh_pb_shade/sh_pb_shade.yy",},
{"name":"sh_pb_strip","order":6,"path":"shaders/sh_pb_strip/sh_pb_strip.yy",},
{"name":"sh_pb_to_mask","order":7,"path":"shaders/sh_pb_to_mask/sh_pb_to_mask.yy",},
{"name":"sh_perlin_extra","order":25,"path":"shaders/sh_perlin_extra/sh_perlin_extra.yy",}, {"name":"sh_perlin_extra","order":25,"path":"shaders/sh_perlin_extra/sh_perlin_extra.yy",},
{"name":"sh_perlin_smear","order":23,"path":"shaders/sh_perlin_smear/sh_perlin_smear.yy",}, {"name":"sh_perlin_smear","order":23,"path":"shaders/sh_perlin_smear/sh_perlin_smear.yy",},
{"name":"sh_perlin_tiled","order":1,"path":"shaders/sh_perlin_tiled/sh_perlin_tiled.yy",}, {"name":"sh_perlin_tiled","order":1,"path":"shaders/sh_perlin_tiled/sh_perlin_tiled.yy",},
@ -2288,39 +2263,22 @@
{"name":"s_node_path_trim","order":17,"path":"sprites/s_node_path_trim/s_node_path_trim.yy",}, {"name":"s_node_path_trim","order":17,"path":"sprites/s_node_path_trim/s_node_path_trim.yy",},
{"name":"s_node_path_wave","order":18,"path":"sprites/s_node_path_wave/s_node_path_wave.yy",}, {"name":"s_node_path_wave","order":18,"path":"sprites/s_node_path_wave/s_node_path_wave.yy",},
{"name":"s_node_path_weight_adjust","order":27,"path":"sprites/s_node_path_weight_adjust/s_node_path_weight_adjust.yy",}, {"name":"s_node_path_weight_adjust","order":27,"path":"sprites/s_node_path_weight_adjust/s_node_path_weight_adjust.yy",},
{"name":"s_node_pb_box_contract","order":31,"path":"sprites/s_node_pb_box_contract/s_node_pb_box_contract.yy",}, {"name":"s_node_pb_box_bbox","order":5,"path":"sprites/s_node_pb_box_bbox/s_node_pb_box_bbox.yy",},
{"name":"s_node_pb_box_divide_grid","order":33,"path":"sprites/s_node_pb_box_divide_grid/s_node_pb_box_divide_grid.yy",}, {"name":"s_node_pb_box_mirror","order":4,"path":"sprites/s_node_pb_box_mirror/s_node_pb_box_mirror.yy",},
{"name":"s_node_pb_box_divide","order":32,"path":"sprites/s_node_pb_box_divide/s_node_pb_box_divide.yy",}, {"name":"s_node_pb_box","order":2,"path":"sprites/s_node_pb_box/s_node_pb_box.yy",},
{"name":"s_node_pb_box_inset","order":34,"path":"sprites/s_node_pb_box_inset/s_node_pb_box_inset.yy",}, {"name":"s_node_pb_crop_box","order":3,"path":"sprites/s_node_pb_crop_box/s_node_pb_crop_box.yy",},
{"name":"s_node_pb_box_mirror","order":35,"path":"sprites/s_node_pb_box_mirror/s_node_pb_box_mirror.yy",}, {"name":"s_node_pb_dimension","order":6,"path":"sprites/s_node_pb_dimension/s_node_pb_dimension.yy",},
{"name":"s_node_pb_box_split","order":36,"path":"sprites/s_node_pb_box_split/s_node_pb_box_split.yy",}, {"name":"s_node_pb_draw_diamond","order":11,"path":"sprites/s_node_pb_draw_diamond/s_node_pb_draw_diamond.yy",},
{"name":"s_node_pb_box_transform","order":37,"path":"sprites/s_node_pb_box_transform/s_node_pb_box_transform.yy",}, {"name":"s_node_pb_draw_ellipse","order":7,"path":"sprites/s_node_pb_draw_ellipse/s_node_pb_draw_ellipse.yy",},
{"name":"s_node_pb_draw_angle","order":39,"path":"sprites/s_node_pb_draw_angle/s_node_pb_draw_angle.yy",}, {"name":"s_node_pb_draw_line","order":10,"path":"sprites/s_node_pb_draw_line/s_node_pb_draw_line.yy",},
{"name":"s_node_pb_draw_blob","order":40,"path":"sprites/s_node_pb_draw_blob/s_node_pb_draw_blob.yy",}, {"name":"s_node_pb_draw_rectangle","order":8,"path":"sprites/s_node_pb_draw_rectangle/s_node_pb_draw_rectangle.yy",},
{"name":"s_node_pb_draw_diamond","order":30,"path":"sprites/s_node_pb_draw_diamond/s_node_pb_draw_diamond.yy",}, {"name":"s_node_pb_draw_round_rectangle","order":12,"path":"sprites/s_node_pb_draw_round_rectangle/s_node_pb_draw_round_rectangle.yy",},
{"name":"s_node_pb_draw_ellipse","order":41,"path":"sprites/s_node_pb_draw_ellipse/s_node_pb_draw_ellipse.yy",}, {"name":"s_node_pb_draw_surface","order":13,"path":"sprites/s_node_pb_draw_surface/s_node_pb_draw_surface.yy",},
{"name":"s_node_pb_draw_fill","order":42,"path":"sprites/s_node_pb_draw_fill/s_node_pb_draw_fill.yy",}, {"name":"s_node_pb_draw_trapezoid","order":9,"path":"sprites/s_node_pb_draw_trapezoid/s_node_pb_draw_trapezoid.yy",},
{"name":"s_node_pb_draw_line","order":56,"path":"sprites/s_node_pb_draw_line/s_node_pb_draw_line.yy",}, {"name":"s_node_pb_output","order":1,"path":"sprites/s_node_pb_output/s_node_pb_output.yy",},
{"name":"s_node_pb_draw_rectangle","order":43,"path":"sprites/s_node_pb_draw_rectangle/s_node_pb_draw_rectangle.yy",},
{"name":"s_node_pb_draw_round_rectangle","order":44,"path":"sprites/s_node_pb_draw_round_rectangle/s_node_pb_draw_round_rectangle.yy",},
{"name":"s_node_pb_draw_semi_ellipse","order":45,"path":"sprites/s_node_pb_draw_semi_ellipse/s_node_pb_draw_semi_ellipse.yy",},
{"name":"s_node_pb_draw_trapezoid","order":46,"path":"sprites/s_node_pb_draw_trapezoid/s_node_pb_draw_trapezoid.yy",},
{"name":"s_node_pb_fx_add","order":47,"path":"sprites/s_node_pb_fx_add/s_node_pb_fx_add.yy",},
{"name":"s_node_pb_fx_brick","order":58,"path":"sprites/s_node_pb_fx_brick/s_node_pb_fx_brick.yy",},
{"name":"s_node_pb_fx_hash","order":48,"path":"sprites/s_node_pb_fx_hash/s_node_pb_fx_hash.yy",},
{"name":"s_node_pb_fx_highlight","order":49,"path":"sprites/s_node_pb_fx_highlight/s_node_pb_fx_highlight.yy",},
{"name":"s_node_pb_fx_intersect","order":50,"path":"sprites/s_node_pb_fx_intersect/s_node_pb_fx_intersect.yy",},
{"name":"s_node_pb_fx_outline","order":51,"path":"sprites/s_node_pb_fx_outline/s_node_pb_fx_outline.yy",},
{"name":"s_node_pb_fx_radial","order":52,"path":"sprites/s_node_pb_fx_radial/s_node_pb_fx_radial.yy",},
{"name":"s_node_pb_fx_shading","order":53,"path":"sprites/s_node_pb_fx_shading/s_node_pb_fx_shading.yy",},
{"name":"s_node_pb_fx_stack","order":54,"path":"sprites/s_node_pb_fx_stack/s_node_pb_fx_stack.yy",},
{"name":"s_node_pb_fx_strip","order":57,"path":"sprites/s_node_pb_fx_strip/s_node_pb_fx_strip.yy",},
{"name":"s_node_pb_fx_subtract","order":55,"path":"sprites/s_node_pb_fx_subtract/s_node_pb_fx_subtract.yy",},
{"name":"s_node_pb_layer","order":38,"path":"sprites/s_node_pb_layer/s_node_pb_layer.yy",},
{"name":"s_node_perlin_extra","order":31,"path":"sprites/s_node_perlin_extra/s_node_perlin_extra.yy",}, {"name":"s_node_perlin_extra","order":31,"path":"sprites/s_node_perlin_extra/s_node_perlin_extra.yy",},
{"name":"s_node_perlin","order":11,"path":"sprites/s_node_perlin/s_node_perlin.yy",}, {"name":"s_node_perlin","order":11,"path":"sprites/s_node_perlin/s_node_perlin.yy",},
{"name":"s_node_pin","order":2,"path":"sprites/s_node_pin/s_node_pin.yy",}, {"name":"s_node_pin","order":2,"path":"sprites/s_node_pin/s_node_pin.yy",},
{"name":"s_node_pixel_builder","order":29,"path":"sprites/s_node_pixel_builder/s_node_pixel_builder.yy",},
{"name":"s_node_pixel_cloud","order":53,"path":"sprites/s_node_pixel_cloud/s_node_pixel_cloud.yy",}, {"name":"s_node_pixel_cloud","order":53,"path":"sprites/s_node_pixel_cloud/s_node_pixel_cloud.yy",},
{"name":"s_node_pixel_extract","order":15,"path":"sprites/s_node_pixel_extract/s_node_pixel_extract.yy",}, {"name":"s_node_pixel_extract","order":15,"path":"sprites/s_node_pixel_extract/s_node_pixel_extract.yy",},
{"name":"s_node_pixel_math","order":82,"path":"sprites/s_node_pixel_math/s_node_pixel_math.yy",}, {"name":"s_node_pixel_math","order":82,"path":"sprites/s_node_pixel_math/s_node_pixel_math.yy",},

View file

@ -215,17 +215,17 @@
{"$GMFolder":"","%Name":"src","folderPath":"folders/nodes/data/MKFX/src.yy","name":"src","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"src","folderPath":"folders/nodes/data/MKFX/src.yy","name":"src","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"Subpixel","folderPath":"folders/nodes/data/MKFX/Subpixel.yy","name":"Subpixel","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"Subpixel","folderPath":"folders/nodes/data/MKFX/Subpixel.yy","name":"Subpixel","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"Tile","folderPath":"folders/nodes/data/MKFX/Tile.yy","name":"Tile","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"Tile","folderPath":"folders/nodes/data/MKFX/Tile.yy","name":"Tile","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"PB","folderPath":"folders/nodes/data/PB.yy","name":"PB","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"draw","folderPath":"folders/nodes/data/PB/draw.yy","name":"draw","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"main","folderPath":"folders/nodes/data/PB/main.yy","name":"main","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"modify","folderPath":"folders/nodes/data/PB/modify.yy","name":"modify","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"pbbox","folderPath":"folders/nodes/data/PB/pbbox.yy","name":"pbbox","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"PCX","folderPath":"folders/nodes/data/PCX.yy","name":"PCX","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"PCX","folderPath":"folders/nodes/data/PCX.yy","name":"PCX","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"array","folderPath":"folders/nodes/data/PCX/array.yy","name":"array","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"array","folderPath":"folders/nodes/data/PCX/array.yy","name":"array","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"flow_control","folderPath":"folders/nodes/data/PCX/flow_control.yy","name":"flow_control","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"flow_control","folderPath":"folders/nodes/data/PCX/flow_control.yy","name":"flow_control","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"fn","folderPath":"folders/nodes/data/PCX/fn.yy","name":"fn","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"fn","folderPath":"folders/nodes/data/PCX/fn.yy","name":"fn","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"surface","folderPath":"folders/nodes/data/PCX/surface.yy","name":"surface","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"surface","folderPath":"folders/nodes/data/PCX/surface.yy","name":"surface","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"value","folderPath":"folders/nodes/data/PCX/value.yy","name":"value","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"value","folderPath":"folders/nodes/data/PCX/value.yy","name":"value","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"pixel builder","folderPath":"folders/nodes/data/pixel builder.yy","name":"pixel builder","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"box","folderPath":"folders/nodes/data/pixel builder/box.yy","name":"box","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"draw","folderPath":"folders/nodes/data/pixel builder/draw.yy","name":"draw","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"effect","folderPath":"folders/nodes/data/pixel builder/effect.yy","name":"effect","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"shader","folderPath":"folders/nodes/data/pixel builder/shader.yy","name":"shader","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"render","folderPath":"folders/nodes/data/render.yy","name":"render","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"render","folderPath":"folders/nodes/data/render.yy","name":"render","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"simulation","folderPath":"folders/nodes/data/simulation.yy","name":"simulation","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"simulation","folderPath":"folders/nodes/data/simulation.yy","name":"simulation","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"diffuse","folderPath":"folders/nodes/data/simulation/diffuse.yy","name":"diffuse","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"diffuse","folderPath":"folders/nodes/data/simulation/diffuse.yy","name":"diffuse","resourceType":"GMFolder","resourceVersion":"2.0",},
@ -1022,35 +1022,19 @@
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/PCX/pcx_Functions/Node_PCX_fn_Surface_Width","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/PCX/pcx_Functions/Node_PCX_fn_Surface_Width","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/PCX/pcx_Variable/Node_PCX_fn_var","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/PCX/pcx_Variable/Node_PCX_fn_var","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/PCX/pcx_Variable/Node_PCX_var","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/PCX/pcx_Variable/Node_PCX_var","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Pixel Builder/pb_Box/Node_PB_Box_Contract","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Pixel Builder/pb_Box/Node_PB_Box_Divide_Grid","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Pixel Builder/pb_Box/Node_PB_Box_Divide","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Pixel Builder/pb_Box/Node_PB_Box_Inset","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Pixel Builder/pb_Box/Node_PB_Box_Mirror","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Pixel Builder/pb_Box/Node_PB_Box_Split","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Pixel Builder/pb_Box/Node_PB_Box_Transform","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Pixel Builder/pb_Box/Node_PB_Layer","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Pixel Builder/pb_Draw/Node_PB_Draw_Angle","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Pixel Builder/pb_Draw/Node_PB_Draw_Blob","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Pixel Builder/pb_Draw/Node_PB_Draw_Diamond","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Pixel Builder/pb_Draw/Node_PB_Draw_Diamond","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Pixel Builder/pb_Draw/Node_PB_Draw_Ellipse","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Pixel Builder/pb_Draw/Node_PB_Draw_Ellipse","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Pixel Builder/pb_Draw/Node_PB_Draw_Fill","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Pixel Builder/pb_Draw/Node_PB_Draw_Line","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Pixel Builder/pb_Draw/Node_PB_Draw_Line","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Pixel Builder/pb_Draw/Node_PB_Draw_Rectangle","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Pixel Builder/pb_Draw/Node_PB_Draw_Rectangle","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Pixel Builder/pb_Draw/Node_PB_Draw_Round_Rectangle","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Pixel Builder/pb_Draw/Node_PB_Draw_Round_Rectangle","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Pixel Builder/pb_Draw/Node_PB_Draw_Semi_Ellipse","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Pixel Builder/pb_Draw/Node_PB_Draw_Surface","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Pixel Builder/pb_Draw/Node_PB_Draw_Trapezoid","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Pixel Builder/pb_Draw/Node_PB_Draw_Trapezoid","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Pixel Builder/pb_Effects/Node_PB_Fx_Add","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Pixel Builder/pb_Modify/Node_PB_Crop_PBBOX","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Pixel Builder/pb_Effects/Node_PB_Fx_Brick","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Pixel Builder/pd_Main/Node_PB_Box_BBOX","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Pixel Builder/pb_Effects/Node_PB_Fx_Hash","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Pixel Builder/pd_Main/Node_PB_Box_Mirror","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Pixel Builder/pb_Effects/Node_PB_Fx_Highlight","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Pixel Builder/pd_Main/Node_PB_Box","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Pixel Builder/pb_Effects/Node_PB_Fx_Intersect","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Pixel Builder/pd_Main/Node_PB_Dimension","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Pixel Builder/pb_Effects/Node_PB_Fx_Outline","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Pixel Builder/pd_Main/Node_PB_Output","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Pixel Builder/pb_Effects/Node_PB_Fx_Radial","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Pixel Builder/pb_Effects/Node_PB_Fx_Shading","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Pixel Builder/pb_Effects/Node_PB_Fx_Stack","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Pixel Builder/pb_Effects/Node_PB_Fx_Strip","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Pixel Builder/pb_Effects/Node_PB_Fx_Subtract","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/RigidSim/Node_Rigid_Activate","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/RigidSim/Node_Rigid_Activate","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/RigidSim/Node_Rigid_Force_Apply","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/RigidSim/Node_Rigid_Force_Apply","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/RigidSim/Node_Rigid_Global","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/RigidSim/Node_Rigid_Global","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
@ -2274,39 +2258,20 @@
{"id":{"name":"node_path_wave","path":"scripts/node_path_wave/node_path_wave.yy",},}, {"id":{"name":"node_path_wave","path":"scripts/node_path_wave/node_path_wave.yy",},},
{"id":{"name":"node_path_weight_adjust","path":"scripts/node_path_weight_adjust/node_path_weight_adjust.yy",},}, {"id":{"name":"node_path_weight_adjust","path":"scripts/node_path_weight_adjust/node_path_weight_adjust.yy",},},
{"id":{"name":"node_path","path":"scripts/node_path/node_path.yy",},}, {"id":{"name":"node_path","path":"scripts/node_path/node_path.yy",},},
{"id":{"name":"node_pb_box_contract","path":"scripts/node_pb_box_contract/node_pb_box_contract.yy",},}, {"id":{"name":"node_pb_box_bbox","path":"scripts/node_pb_box_bbox/node_pb_box_bbox.yy",},},
{"id":{"name":"node_pb_box_divide_grid","path":"scripts/node_pb_box_divide_grid/node_pb_box_divide_grid.yy",},},
{"id":{"name":"node_pb_box_divide","path":"scripts/node_pb_box_divide/node_pb_box_divide.yy",},},
{"id":{"name":"node_pb_box_inset","path":"scripts/node_pb_box_inset/node_pb_box_inset.yy",},},
{"id":{"name":"node_pb_box_mirror","path":"scripts/node_pb_box_mirror/node_pb_box_mirror.yy",},}, {"id":{"name":"node_pb_box_mirror","path":"scripts/node_pb_box_mirror/node_pb_box_mirror.yy",},},
{"id":{"name":"node_pb_box_split","path":"scripts/node_pb_box_split/node_pb_box_split.yy",},},
{"id":{"name":"node_pb_box_transform","path":"scripts/node_pb_box_transform/node_pb_box_transform.yy",},},
{"id":{"name":"node_pb_box","path":"scripts/node_pb_box/node_pb_box.yy",},}, {"id":{"name":"node_pb_box","path":"scripts/node_pb_box/node_pb_box.yy",},},
{"id":{"name":"node_pb_draw_angle","path":"scripts/node_pb_draw_angle/node_pb_draw_angle.yy",},}, {"id":{"name":"node_pb_crop_pbbox","path":"scripts/node_pb_crop_pbbox/node_pb_crop_pbbox.yy",},},
{"id":{"name":"node_pb_draw_blob","path":"scripts/node_pb_draw_blob/node_pb_draw_blob.yy",},}, {"id":{"name":"node_pb_dimension","path":"scripts/node_pb_dimension/node_pb_dimension.yy",},},
{"id":{"name":"node_pb_draw_diamond","path":"scripts/node_pb_draw_diamond/node_pb_draw_diamond.yy",},}, {"id":{"name":"node_pb_draw_diamond","path":"scripts/node_pb_draw_diamond/node_pb_draw_diamond.yy",},},
{"id":{"name":"node_pb_draw_ellipse","path":"scripts/node_pb_draw_ellipse/node_pb_draw_ellipse.yy",},}, {"id":{"name":"node_pb_draw_ellipse","path":"scripts/node_pb_draw_ellipse/node_pb_draw_ellipse.yy",},},
{"id":{"name":"node_pb_draw_fill","path":"scripts/node_pb_draw_fill/node_pb_draw_fill.yy",},},
{"id":{"name":"node_pb_draw_line","path":"scripts/node_pb_draw_line/node_pb_draw_line.yy",},}, {"id":{"name":"node_pb_draw_line","path":"scripts/node_pb_draw_line/node_pb_draw_line.yy",},},
{"id":{"name":"node_pb_draw_rectangle","path":"scripts/node_pb_draw_rectangle/node_pb_draw_rectangle.yy",},}, {"id":{"name":"node_pb_draw_rectangle","path":"scripts/node_pb_draw_rectangle/node_pb_draw_rectangle.yy",},},
{"id":{"name":"node_pb_draw_round_rectangle","path":"scripts/node_pb_draw_round_rectangle/node_pb_draw_round_rectangle.yy",},}, {"id":{"name":"node_pb_draw_round_rectangle","path":"scripts/node_pb_draw_round_rectangle/node_pb_draw_round_rectangle.yy",},},
{"id":{"name":"node_pb_draw_semi_ellipse","path":"scripts/node_pb_draw_semi_ellipse/node_pb_draw_semi_ellipse.yy",},}, {"id":{"name":"node_pb_draw_surface","path":"scripts/node_pb_draw_surface/node_pb_draw_surface.yy",},},
{"id":{"name":"node_pb_draw_trapezoid","path":"scripts/node_pb_draw_trapezoid/node_pb_draw_trapezoid.yy",},}, {"id":{"name":"node_pb_draw_trapezoid","path":"scripts/node_pb_draw_trapezoid/node_pb_draw_trapezoid.yy",},},
{"id":{"name":"node_pb_draw","path":"scripts/node_pb_draw/node_pb_draw.yy",},}, {"id":{"name":"node_pb_draw","path":"scripts/node_pb_draw/node_pb_draw.yy",},},
{"id":{"name":"node_pb_fx_add","path":"scripts/node_pb_fx_add/node_pb_fx_add.yy",},}, {"id":{"name":"node_pb_output","path":"scripts/node_pb_output/node_pb_output.yy",},},
{"id":{"name":"node_pb_fx_brick","path":"scripts/node_pb_fx_brick/node_pb_fx_brick.yy",},},
{"id":{"name":"node_pb_fx_hash","path":"scripts/node_pb_fx_hash/node_pb_fx_hash.yy",},},
{"id":{"name":"node_pb_fx_highlight","path":"scripts/node_pb_fx_highlight/node_pb_fx_highlight.yy",},},
{"id":{"name":"node_pb_fx_intersect","path":"scripts/node_pb_fx_intersect/node_pb_fx_intersect.yy",},},
{"id":{"name":"node_pb_fx_outline","path":"scripts/node_pb_fx_outline/node_pb_fx_outline.yy",},},
{"id":{"name":"node_pb_fx_radial","path":"scripts/node_pb_fx_radial/node_pb_fx_radial.yy",},},
{"id":{"name":"node_pb_fx_shading","path":"scripts/node_pb_fx_shading/node_pb_fx_shading.yy",},},
{"id":{"name":"node_pb_fx_stack","path":"scripts/node_pb_fx_stack/node_pb_fx_stack.yy",},},
{"id":{"name":"node_pb_fx_strip","path":"scripts/node_pb_fx_strip/node_pb_fx_strip.yy",},},
{"id":{"name":"node_pb_fx_subtract","path":"scripts/node_pb_fx_subtract/node_pb_fx_subtract.yy",},},
{"id":{"name":"node_pb_fx","path":"scripts/node_pb_fx/node_pb_fx.yy",},},
{"id":{"name":"node_pb_layer","path":"scripts/node_pb_layer/node_pb_layer.yy",},},
{"id":{"name":"node_pb","path":"scripts/node_pb/node_pb.yy",},},
{"id":{"name":"node_PCX_array_get","path":"scripts/node_PCX_array_get/node_PCX_array_get.yy",},}, {"id":{"name":"node_PCX_array_get","path":"scripts/node_PCX_array_get/node_PCX_array_get.yy",},},
{"id":{"name":"node_PCX_array_set","path":"scripts/node_PCX_array_set/node_PCX_array_set.yy",},}, {"id":{"name":"node_PCX_array_set","path":"scripts/node_PCX_array_set/node_PCX_array_set.yy",},},
{"id":{"name":"node_PCX_condition","path":"scripts/node_PCX_condition/node_PCX_condition.yy",},}, {"id":{"name":"node_PCX_condition","path":"scripts/node_PCX_condition/node_PCX_condition.yy",},},
@ -2512,6 +2477,7 @@
{"id":{"name":"node_value_path_anchor","path":"scripts/node_value_path_anchor/node_value_path_anchor.yy",},}, {"id":{"name":"node_value_path_anchor","path":"scripts/node_value_path_anchor/node_value_path_anchor.yy",},},
{"id":{"name":"node_value_path","path":"scripts/node_value_path/node_value_path.yy",},}, {"id":{"name":"node_value_path","path":"scripts/node_value_path/node_value_path.yy",},},
{"id":{"name":"node_value_pathnode","path":"scripts/node_value_pathnode/node_value_pathnode.yy",},}, {"id":{"name":"node_value_pathnode","path":"scripts/node_value_pathnode/node_value_pathnode.yy",},},
{"id":{"name":"node_value_pbbox","path":"scripts/node_value_pbbox/node_value_pbbox.yy",},},
{"id":{"name":"node_value_quarterion","path":"scripts/node_value_quarterion/node_value_quarterion.yy",},}, {"id":{"name":"node_value_quarterion","path":"scripts/node_value_quarterion/node_value_quarterion.yy",},},
{"id":{"name":"node_value_range","path":"scripts/node_value_range/node_value_range.yy",},}, {"id":{"name":"node_value_range","path":"scripts/node_value_range/node_value_range.yy",},},
{"id":{"name":"node_value_rotation_random","path":"scripts/node_value_rotation_random/node_value_rotation_random.yy",},}, {"id":{"name":"node_value_rotation_random","path":"scripts/node_value_rotation_random/node_value_rotation_random.yy",},},
@ -2519,6 +2485,7 @@
{"id":{"name":"node_value_rotation","path":"scripts/node_value_rotation/node_value_rotation.yy",},}, {"id":{"name":"node_value_rotation","path":"scripts/node_value_rotation/node_value_rotation.yy",},},
{"id":{"name":"node_value_sdf","path":"scripts/node_value_sdf/node_value_sdf.yy",},}, {"id":{"name":"node_value_sdf","path":"scripts/node_value_sdf/node_value_sdf.yy",},},
{"id":{"name":"node_value_slider_range","path":"scripts/node_value_slider_range/node_value_slider_range.yy",},}, {"id":{"name":"node_value_slider_range","path":"scripts/node_value_slider_range/node_value_slider_range.yy",},},
{"id":{"name":"node_value_slider","path":"scripts/node_value_slider/node_value_slider.yy",},},
{"id":{"name":"node_value_struct","path":"scripts/node_value_struct/node_value_struct.yy",},}, {"id":{"name":"node_value_struct","path":"scripts/node_value_struct/node_value_struct.yy",},},
{"id":{"name":"node_value_surface","path":"scripts/node_value_surface/node_value_surface.yy",},}, {"id":{"name":"node_value_surface","path":"scripts/node_value_surface/node_value_surface.yy",},},
{"id":{"name":"node_value_text","path":"scripts/node_value_text/node_value_text.yy",},}, {"id":{"name":"node_value_text","path":"scripts/node_value_text/node_value_text.yy",},},
@ -2662,6 +2629,7 @@
{"id":{"name":"pathArrayBox","path":"scripts/pathArrayBox/pathArrayBox.yy",},}, {"id":{"name":"pathArrayBox","path":"scripts/pathArrayBox/pathArrayBox.yy",},},
{"id":{"name":"pathnodeBox","path":"scripts/pathnodeBox/pathnodeBox.yy",},}, {"id":{"name":"pathnodeBox","path":"scripts/pathnodeBox/pathnodeBox.yy",},},
{"id":{"name":"patreon_email_check","path":"scripts/patreon_email_check/patreon_email_check.yy",},}, {"id":{"name":"patreon_email_check","path":"scripts/patreon_email_check/patreon_email_check.yy",},},
{"id":{"name":"pbBoxBox","path":"scripts/pbBoxBox/pbBoxBox.yy",},},
{"id":{"name":"pcx_ast","path":"scripts/pcx_ast/pcx_ast.yy",},}, {"id":{"name":"pcx_ast","path":"scripts/pcx_ast/pcx_ast.yy",},},
{"id":{"name":"pcx_parse","path":"scripts/pcx_parse/pcx_parse.yy",},}, {"id":{"name":"pcx_parse","path":"scripts/pcx_parse/pcx_parse.yy",},},
{"id":{"name":"pcx_server","path":"scripts/pcx_server/pcx_server.yy",},}, {"id":{"name":"pcx_server","path":"scripts/pcx_server/pcx_server.yy",},},
@ -3088,17 +3056,8 @@
{"id":{"name":"sh_path_fill_profile","path":"shaders/sh_path_fill_profile/sh_path_fill_profile.yy",},}, {"id":{"name":"sh_path_fill_profile","path":"shaders/sh_path_fill_profile/sh_path_fill_profile.yy",},},
{"id":{"name":"sh_path_morph","path":"shaders/sh_path_morph/sh_path_morph.yy",},}, {"id":{"name":"sh_path_morph","path":"shaders/sh_path_morph/sh_path_morph.yy",},},
{"id":{"name":"sh_path_sdf","path":"shaders/sh_path_sdf/sh_path_sdf.yy",},}, {"id":{"name":"sh_path_sdf","path":"shaders/sh_path_sdf/sh_path_sdf.yy",},},
{"id":{"name":"sh_pb_blob","path":"shaders/sh_pb_blob/sh_pb_blob.yy",},}, {"id":{"name":"sh_pb_diamond","path":"shaders/sh_pb_diamond/sh_pb_diamond.yy",},},
{"id":{"name":"sh_pb_brick","path":"shaders/sh_pb_brick/sh_pb_brick.yy",},}, {"id":{"name":"sh_pb_draw","path":"shaders/sh_pb_draw/sh_pb_draw.yy",},},
{"id":{"name":"sh_pb_draw_mask","path":"shaders/sh_pb_draw_mask/sh_pb_draw_mask.yy",},},
{"id":{"name":"sh_pb_hash","path":"shaders/sh_pb_hash/sh_pb_hash.yy",},},
{"id":{"name":"sh_pb_highlight","path":"shaders/sh_pb_highlight/sh_pb_highlight.yy",},},
{"id":{"name":"sh_pb_mask_inset","path":"shaders/sh_pb_mask_inset/sh_pb_mask_inset.yy",},},
{"id":{"name":"sh_pb_outline","path":"shaders/sh_pb_outline/sh_pb_outline.yy",},},
{"id":{"name":"sh_pb_shade_half","path":"shaders/sh_pb_shade_half/sh_pb_shade_half.yy",},},
{"id":{"name":"sh_pb_shade","path":"shaders/sh_pb_shade/sh_pb_shade.yy",},},
{"id":{"name":"sh_pb_strip","path":"shaders/sh_pb_strip/sh_pb_strip.yy",},},
{"id":{"name":"sh_pb_to_mask","path":"shaders/sh_pb_to_mask/sh_pb_to_mask.yy",},},
{"id":{"name":"sh_perlin_extra","path":"shaders/sh_perlin_extra/sh_perlin_extra.yy",},}, {"id":{"name":"sh_perlin_extra","path":"shaders/sh_perlin_extra/sh_perlin_extra.yy",},},
{"id":{"name":"sh_perlin_smear","path":"shaders/sh_perlin_smear/sh_perlin_smear.yy",},}, {"id":{"name":"sh_perlin_smear","path":"shaders/sh_perlin_smear/sh_perlin_smear.yy",},},
{"id":{"name":"sh_perlin_tiled","path":"shaders/sh_perlin_tiled/sh_perlin_tiled.yy",},}, {"id":{"name":"sh_perlin_tiled","path":"shaders/sh_perlin_tiled/sh_perlin_tiled.yy",},},
@ -3658,35 +3617,19 @@
{"id":{"name":"s_node_path_wave","path":"sprites/s_node_path_wave/s_node_path_wave.yy",},}, {"id":{"name":"s_node_path_wave","path":"sprites/s_node_path_wave/s_node_path_wave.yy",},},
{"id":{"name":"s_node_path_weight_adjust","path":"sprites/s_node_path_weight_adjust/s_node_path_weight_adjust.yy",},}, {"id":{"name":"s_node_path_weight_adjust","path":"sprites/s_node_path_weight_adjust/s_node_path_weight_adjust.yy",},},
{"id":{"name":"s_node_path","path":"sprites/s_node_path/s_node_path.yy",},}, {"id":{"name":"s_node_path","path":"sprites/s_node_path/s_node_path.yy",},},
{"id":{"name":"s_node_pb_box_contract","path":"sprites/s_node_pb_box_contract/s_node_pb_box_contract.yy",},}, {"id":{"name":"s_node_pb_box_bbox","path":"sprites/s_node_pb_box_bbox/s_node_pb_box_bbox.yy",},},
{"id":{"name":"s_node_pb_box_divide_grid","path":"sprites/s_node_pb_box_divide_grid/s_node_pb_box_divide_grid.yy",},},
{"id":{"name":"s_node_pb_box_divide","path":"sprites/s_node_pb_box_divide/s_node_pb_box_divide.yy",},},
{"id":{"name":"s_node_pb_box_inset","path":"sprites/s_node_pb_box_inset/s_node_pb_box_inset.yy",},},
{"id":{"name":"s_node_pb_box_mirror","path":"sprites/s_node_pb_box_mirror/s_node_pb_box_mirror.yy",},}, {"id":{"name":"s_node_pb_box_mirror","path":"sprites/s_node_pb_box_mirror/s_node_pb_box_mirror.yy",},},
{"id":{"name":"s_node_pb_box_split","path":"sprites/s_node_pb_box_split/s_node_pb_box_split.yy",},}, {"id":{"name":"s_node_pb_box","path":"sprites/s_node_pb_box/s_node_pb_box.yy",},},
{"id":{"name":"s_node_pb_box_transform","path":"sprites/s_node_pb_box_transform/s_node_pb_box_transform.yy",},}, {"id":{"name":"s_node_pb_crop_box","path":"sprites/s_node_pb_crop_box/s_node_pb_crop_box.yy",},},
{"id":{"name":"s_node_pb_draw_angle","path":"sprites/s_node_pb_draw_angle/s_node_pb_draw_angle.yy",},}, {"id":{"name":"s_node_pb_dimension","path":"sprites/s_node_pb_dimension/s_node_pb_dimension.yy",},},
{"id":{"name":"s_node_pb_draw_blob","path":"sprites/s_node_pb_draw_blob/s_node_pb_draw_blob.yy",},},
{"id":{"name":"s_node_pb_draw_diamond","path":"sprites/s_node_pb_draw_diamond/s_node_pb_draw_diamond.yy",},}, {"id":{"name":"s_node_pb_draw_diamond","path":"sprites/s_node_pb_draw_diamond/s_node_pb_draw_diamond.yy",},},
{"id":{"name":"s_node_pb_draw_ellipse","path":"sprites/s_node_pb_draw_ellipse/s_node_pb_draw_ellipse.yy",},}, {"id":{"name":"s_node_pb_draw_ellipse","path":"sprites/s_node_pb_draw_ellipse/s_node_pb_draw_ellipse.yy",},},
{"id":{"name":"s_node_pb_draw_fill","path":"sprites/s_node_pb_draw_fill/s_node_pb_draw_fill.yy",},},
{"id":{"name":"s_node_pb_draw_line","path":"sprites/s_node_pb_draw_line/s_node_pb_draw_line.yy",},}, {"id":{"name":"s_node_pb_draw_line","path":"sprites/s_node_pb_draw_line/s_node_pb_draw_line.yy",},},
{"id":{"name":"s_node_pb_draw_rectangle","path":"sprites/s_node_pb_draw_rectangle/s_node_pb_draw_rectangle.yy",},}, {"id":{"name":"s_node_pb_draw_rectangle","path":"sprites/s_node_pb_draw_rectangle/s_node_pb_draw_rectangle.yy",},},
{"id":{"name":"s_node_pb_draw_round_rectangle","path":"sprites/s_node_pb_draw_round_rectangle/s_node_pb_draw_round_rectangle.yy",},}, {"id":{"name":"s_node_pb_draw_round_rectangle","path":"sprites/s_node_pb_draw_round_rectangle/s_node_pb_draw_round_rectangle.yy",},},
{"id":{"name":"s_node_pb_draw_semi_ellipse","path":"sprites/s_node_pb_draw_semi_ellipse/s_node_pb_draw_semi_ellipse.yy",},}, {"id":{"name":"s_node_pb_draw_surface","path":"sprites/s_node_pb_draw_surface/s_node_pb_draw_surface.yy",},},
{"id":{"name":"s_node_pb_draw_trapezoid","path":"sprites/s_node_pb_draw_trapezoid/s_node_pb_draw_trapezoid.yy",},}, {"id":{"name":"s_node_pb_draw_trapezoid","path":"sprites/s_node_pb_draw_trapezoid/s_node_pb_draw_trapezoid.yy",},},
{"id":{"name":"s_node_pb_fx_add","path":"sprites/s_node_pb_fx_add/s_node_pb_fx_add.yy",},}, {"id":{"name":"s_node_pb_output","path":"sprites/s_node_pb_output/s_node_pb_output.yy",},},
{"id":{"name":"s_node_pb_fx_brick","path":"sprites/s_node_pb_fx_brick/s_node_pb_fx_brick.yy",},},
{"id":{"name":"s_node_pb_fx_hash","path":"sprites/s_node_pb_fx_hash/s_node_pb_fx_hash.yy",},},
{"id":{"name":"s_node_pb_fx_highlight","path":"sprites/s_node_pb_fx_highlight/s_node_pb_fx_highlight.yy",},},
{"id":{"name":"s_node_pb_fx_intersect","path":"sprites/s_node_pb_fx_intersect/s_node_pb_fx_intersect.yy",},},
{"id":{"name":"s_node_pb_fx_outline","path":"sprites/s_node_pb_fx_outline/s_node_pb_fx_outline.yy",},},
{"id":{"name":"s_node_pb_fx_radial","path":"sprites/s_node_pb_fx_radial/s_node_pb_fx_radial.yy",},},
{"id":{"name":"s_node_pb_fx_shading","path":"sprites/s_node_pb_fx_shading/s_node_pb_fx_shading.yy",},},
{"id":{"name":"s_node_pb_fx_stack","path":"sprites/s_node_pb_fx_stack/s_node_pb_fx_stack.yy",},},
{"id":{"name":"s_node_pb_fx_strip","path":"sprites/s_node_pb_fx_strip/s_node_pb_fx_strip.yy",},},
{"id":{"name":"s_node_pb_fx_subtract","path":"sprites/s_node_pb_fx_subtract/s_node_pb_fx_subtract.yy",},},
{"id":{"name":"s_node_pb_layer","path":"sprites/s_node_pb_layer/s_node_pb_layer.yy",},},
{"id":{"name":"s_node_perlin_extra","path":"sprites/s_node_perlin_extra/s_node_perlin_extra.yy",},}, {"id":{"name":"s_node_perlin_extra","path":"sprites/s_node_perlin_extra/s_node_perlin_extra.yy",},},
{"id":{"name":"s_node_perlin","path":"sprites/s_node_perlin/s_node_perlin.yy",},}, {"id":{"name":"s_node_perlin","path":"sprites/s_node_perlin/s_node_perlin.yy",},},
{"id":{"name":"s_node_pin","path":"sprites/s_node_pin/s_node_pin.yy",},}, {"id":{"name":"s_node_pin","path":"sprites/s_node_pin/s_node_pin.yy",},},

Binary file not shown.

Binary file not shown.

View file

@ -1,9 +0,0 @@
{
"spr":"s_node_pb_box_contract",
"baseNode":"Node_PB_Box_Contract",
"io":[
"pbBox"
],
"name":"Contract",
"show_in_recent":false
}

View file

@ -1,9 +0,0 @@
{
"spr":"s_node_pb_box_divide",
"baseNode":"Node_PB_Box_Divide",
"io":[
"pbBox"
],
"name":"Divide",
"show_in_recent":false
}

View file

@ -1,9 +0,0 @@
{
"spr":"s_node_pb_box_divide_grid",
"baseNode":"Node_PB_Box_Divide_Grid",
"io":[
"pbBox"
],
"name":"Divide Grid",
"show_in_recent":false
}

View file

@ -1,9 +0,0 @@
{
"spr":"s_node_pb_box_inset",
"baseNode":"Node_PB_Box_Inset",
"io":[
"pbBox"
],
"name":"Inset",
"show_in_recent":false
}

View file

@ -1,9 +0,0 @@
{
"spr":"s_node_pb_box_mirror",
"baseNode":"Node_PB_Box_Mirror",
"io":[
"pbBox"
],
"name":"Mirror",
"show_in_recent":false
}

View file

@ -1,9 +0,0 @@
{
"spr":"s_node_pb_box_split",
"baseNode":"Node_PB_Box_Split",
"io":[
"pbBox"
],
"name":"Split",
"show_in_recent":false
}

View file

@ -1,9 +0,0 @@
{
"spr":"s_node_pb_box_transform",
"baseNode":"Node_PB_Box_Transform",
"io":[
"pbBox"
],
"name":"Transform",
"show_in_recent":false
}

View file

@ -1,9 +0,0 @@
{
"spr":"s_node_pb_layer",
"baseNode":"Node_PB_Layer",
"io":[
"pbBox"
],
"name":"Layer",
"show_in_recent":false
}

View file

@ -1,9 +0,0 @@
{
"spr":"s_node_pb_draw_angle",
"baseNode":"Node_PB_Draw_Angle",
"io":[
"pbBox"
],
"name":"Angle",
"show_in_recent":false
}

View file

@ -1,9 +0,0 @@
{
"spr":"s_node_pb_draw_blob",
"baseNode":"Node_PB_Draw_Blob",
"io":[
"pbBox"
],
"name":"Blob",
"show_in_recent":false
}

View file

@ -1,9 +1,8 @@
{ {
"spr":"s_node_pb_draw_diamond", "name": "Diamond",
"baseNode":"Node_PB_Draw_Diamond", "spr": "s_node_pb_draw_diamond",
"io":[ "baseNode": "Node_PB_Draw_Diamond",
"pbBox" "pxc_version": 118090,
], "io": ["pbBox"],
"name":"Diamond", "show_in_recent": false,
"show_in_recent":false }
}

View file

@ -1,9 +1,8 @@
{ {
"spr":"s_node_pb_draw_ellipse", "name": "Ellipse",
"baseNode":"Node_PB_Draw_Ellipse", "spr": "s_node_pb_draw_ellipse",
"io":[ "baseNode": "Node_PB_Draw_Ellipse",
"pbBox" "pxc_version": 118090,
], "io": ["pbBox"],
"name":"Ellipse", "show_in_recent": false,
"show_in_recent":false }
}

View file

@ -1,9 +0,0 @@
{
"spr":"s_node_pb_draw_fill",
"baseNode":"Node_PB_Draw_Fill",
"io":[
"pbBox"
],
"name":"Fill",
"show_in_recent":false
}

View file

@ -1,9 +1,8 @@
{ {
"spr":"s_node_pb_draw_line", "name": "Line",
"baseNode":"Node_PB_Draw_Line", "spr": "s_node_pb_draw_line",
"io":[ "baseNode": "Node_PB_Draw_Line",
"pbBox" "pxc_version": 118090,
], "io": ["pbBox"],
"name":"Line", "show_in_recent": false,
"show_in_recent":false }
}

View file

@ -1,9 +1,8 @@
{ {
"spr":"s_node_pb_draw_rectangle", "name": "Rectangle",
"baseNode":"Node_PB_Draw_Rectangle", "spr": "s_node_pb_draw_rectangle",
"io":[ "baseNode": "Node_PB_Draw_Rectangle",
"pbBox" "pxc_version": 118090,
], "io": ["pbBox"],
"name":"Rectangle", "show_in_recent": false,
"show_in_recent":false }
}

View file

@ -1,9 +1,8 @@
{ {
"spr":"s_node_pb_draw_round_rectangle", "name": "Round Rectangle",
"baseNode":"Node_PB_Draw_Round_Rectangle", "spr": "s_node_pb_draw_round_rectangle",
"io":[ "baseNode": "Node_PB_Draw_Round_Rectangle",
"pbBox" "pxc_version": 118090,
], "io": ["pbBox"],
"name":"Round Rectangle", "show_in_recent": false,
"show_in_recent":false }
}

View file

@ -1,9 +0,0 @@
{
"spr":"s_node_pb_draw_semi_ellipse",
"baseNode":"Node_PB_Draw_Semi_Ellipse",
"io":[
"pbBox"
],
"name":"Semi-Ellipse",
"show_in_recent":false
}

View file

@ -0,0 +1,8 @@
{
"name": "PB Draw Surface",
"spr": "s_node_pb_draw_surface",
"baseNode": "Node_PB_Draw_Surface",
"pxc_version": 118090,
"io": ["pbBox"],
"show_in_recent": false,
}

View file

@ -1,9 +1,8 @@
{ {
"spr":"s_node_pb_draw_trapezoid", "name": "Trapezoid",
"baseNode":"Node_PB_Draw_Trapezoid", "spr": "s_node_pb_draw_trapezoid",
"io":[ "baseNode": "Node_PB_Draw_Trapezoid",
"pbBox" "pxc_version": 118090,
], "io": ["pbBox"],
"name":"Trapezoid", "show_in_recent": false,
"show_in_recent":false }
}

View file

@ -1,9 +0,0 @@
{
"spr":"s_node_pb_fx_add",
"baseNode":"Node_PB_Fx_Add",
"io":[
"pbBox"
],
"name":"Add",
"show_in_recent":false
}

View file

@ -1,9 +0,0 @@
{
"spr":"s_node_pb_fx_brick",
"baseNode":"Node_PB_Fx_Brick",
"io":[
"pbBox"
],
"name":"Brick",
"show_in_recent":false
}

View file

@ -1,9 +0,0 @@
{
"spr":"s_node_pb_fx_hash",
"baseNode":"Node_PB_Fx_Hash",
"io":[
"pbBox"
],
"name":"Hashing",
"show_in_recent":false
}

View file

@ -1,9 +0,0 @@
{
"spr":"s_node_pb_fx_highlight",
"baseNode":"Node_PB_Fx_Highlight",
"io":[
"pbBox"
],
"name":"Highlight",
"show_in_recent":false
}

View file

@ -1,9 +0,0 @@
{
"spr":"s_node_pb_fx_intersect",
"baseNode":"Node_PB_Fx_Intersect",
"io":[
"pbBox"
],
"name":"Intersect",
"show_in_recent":false
}

View file

@ -1,9 +0,0 @@
{
"spr":"s_node_pb_fx_outline",
"baseNode":"Node_PB_Fx_Outline",
"io":[
"pbBox"
],
"name":"Outline",
"show_in_recent":false
}

View file

@ -1,9 +0,0 @@
{
"spr":"s_node_pb_fx_radial",
"baseNode":"Node_PB_Fx_Radial",
"io":[
"pbBox"
],
"name":"Radial",
"show_in_recent":false
}

View file

@ -1,9 +0,0 @@
{
"spr":"s_node_pb_fx_shading",
"baseNode":"Node_PB_Fx_Shading",
"io":[
"pbBox"
],
"name":"Shading",
"show_in_recent":false
}

View file

@ -1,9 +0,0 @@
{
"spr":"s_node_pb_fx_stack",
"baseNode":"Node_PB_Fx_Stack",
"io":[
"pbBox"
],
"name":"Stack",
"show_in_recent":false
}

View file

@ -1,9 +0,0 @@
{
"spr":"s_node_pb_fx_strip",
"baseNode":"Node_PB_Fx_Strip",
"io":[
"pbBox"
],
"name":"Strip",
"show_in_recent":false
}

View file

@ -1,9 +0,0 @@
{
"spr":"s_node_pb_fx_subtract",
"baseNode":"Node_PB_Fx_Subtract",
"io":[
"pbBox"
],
"name":"Subtract",
"show_in_recent":false
}

View file

@ -0,0 +1,8 @@
{
"name": "Crop PBBOX",
"spr": "s_node_pb_crop_box",
"baseNode": "Node_PB_Crop_PBBOX",
"pxc_version": 118090,
"io": ["pbBox","surface"],
"show_in_recent": false,
}

View file

@ -0,0 +1,8 @@
{
"name": "PB Box",
"spr": "s_node_pb_box",
"baseNode": "Node_PB_Box",
"pxc_version": 118090,
"io": ["pbBox"],
"show_in_recent": false,
}

View file

@ -0,0 +1,8 @@
{
"name": "PBBOX Convert",
"spr": "s_node_pb_box_bbox",
"baseNode": "Node_PB_Box_BBOX",
"pxc_version": 118090,
"io": ["pbBox"],
"show_in_recent": false,
}

View file

@ -0,0 +1,8 @@
{
"name": "PBBox Mirror",
"spr": "s_node_pb_box_mirror",
"baseNode": "Node_PB_Box_Mirror",
"pxc_version": 118090,
"io": ["pbBox"],
"show_in_recent": false,
}

View file

@ -0,0 +1,7 @@
{
"name": "Dimension",
"spr": "s_node_pb_dimension",
"baseNode": "Node_PB_Dimension",
"pxc_version": 118090,
"show_in_recent": false,
}

View file

@ -0,0 +1,8 @@
{
"name": "PB Output",
"spr": "s_node_pb_output",
"baseNode": "Node_PB_Output",
"pxc_version": 118090,
"io": ["surface"],
"show_in_recent": false,
}

View file

@ -225,6 +225,36 @@
"context": ["Node_Strand_Group", "Node_Strand_Group_Inline"], "context": ["Node_Strand_Group", "Node_Strand_Group_Inline"],
"color": "node_blend_strand" "color": "node_blend_strand"
}, },
{
"name": "Pixel Builder", "nodes": [
{ "label": "Group" },
"Node_Group_Input",
"Node_Group_Output",
"Node_PB_Output",
{ "label": "Main" },
"Node_PB_Dimension",
{ "label": "/PBBOX" },
"Node_PB_Box",
"Node_PB_Box_BBOX",
"Node_PB_Box_Mirror",
{ "label": "Draw" },
"Node_PB_Draw_Rectangle",
"Node_PB_Draw_Round_Rectangle",
"Node_PB_Draw_Trapezoid",
"Node_PB_Draw_Diamond",
"Node_PB_Draw_Ellipse",
"Node_PB_Draw_Line",
"Node_PB_Draw_Surface",
{ "label": "Surface" },
"Node_PB_Draw_Surface",
"Node_PB_Crop_PBBOX",
],
"context": ["Node_Pixel_Builder"],
"color": "node_blend_feedback"
},
{ {
"name": "IO", "nodes": [ "name": "IO", "nodes": [
@ -943,96 +973,15 @@
] ]
}, },
{ {
"name": "Group",
"iname": "pb_Group",
"globalContext": "pb", "nodes": [
"Node_Group_Input",
"Node_Group_Output"
]
},
{
"name": "Draw",
"iname": "pb_Draw",
"globalContext": "pb", "nodes": [
{ "label": "Fill" },
"Node_PB_Draw_Fill",
{ "label": "Shape" },
"Node_PB_Draw_Rectangle",
"Node_PB_Draw_Round_Rectangle",
"Node_PB_Draw_Trapezoid",
"Node_PB_Draw_Diamond",
"Node_PB_Draw_Ellipse",
"Node_PB_Draw_Semi_Ellipse",
"Node_PB_Draw_Line",
"Node_PB_Draw_Angle",
"Node_PB_Draw_Blob"
]
},
{
"name": "Box",
"iname": "pb_Box",
"globalContext": "pb", "nodes": [
{ "label": "Layer" },
"Node_PB_Layer",
{ "label": "Box" },
"Node_PB_Box_Transform",
"Node_PB_Box_Mirror",
"Node_PB_Box_Inset",
"Node_PB_Box_Split",
"Node_PB_Box_Divide",
"Node_PB_Box_Divide_Grid",
"Node_PB_Box_Contract"
]
},
{
"name": "Effects",
"iname": "pb_Effects",
"globalContext": "pb", "nodes": [
{ "label": "Effect" },
"Node_PB_Fx_Outline",
"Node_PB_Fx_Stack",
"Node_PB_Fx_Radial",
{ "label": "Lighting" },
"Node_PB_Fx_Highlight",
"Node_PB_Fx_Shading",
{ "label": "Texture" },
"Node_PB_Fx_Hash",
"Node_PB_Fx_Strip",
"Node_PB_Fx_Brick",
{ "label": "Blend" },
"Node_PB_Fx_Add",
"Node_PB_Fx_Subtract",
"Node_PB_Fx_Intersect"
]
},
{
"name": "Array",
"iname": "pb_Array",
"globalContext": "pb", "nodes": [
"Node_Array",
"Node_Array_Get",
"Node_Array_Set",
"Node_Array_Insert",
"Node_Array_Remove"
]
},
{
"name": "Variable",
"iname": "pcx_Variable", "iname": "pcx_Variable",
"globalContext": "pcx", "nodes": [ "globalContext": "pcx", "name": "Variable", "nodes": [
"Node_PCX_var", "Node_PCX_var",
"Node_PCX_fn_var" "Node_PCX_fn_var"
] ]
}, },
{ {
"name": "Functions",
"iname": "pcx_Functions", "iname": "pcx_Functions",
"globalContext": "pcx", "nodes": [ "globalContext": "pcx", "name": "Functions", "nodes": [
"Node_PCX_Equation", "Node_PCX_Equation",
{ "label": "Numbers" }, { "label": "Numbers" },
@ -1049,9 +998,8 @@
] ]
}, },
{ {
"name": "Flow Control",
"iname": "pcx_Flow_Control", "iname": "pcx_Flow_Control",
"globalContext": "pcx", "nodes": [ "globalContext": "pcx", "name": "Flow Control", "nodes": [
"Node_PCX_Condition" "Node_PCX_Condition"
] ]
} }

View file

@ -1 +1 @@
1740014677.4821365 1740805964.5858002

Binary file not shown.

View file

@ -61,11 +61,10 @@ event_inherited();
]); ]);
#region ---- category ---- #region ---- category ----
category = NODE_CATEGORY;
switch(instanceof(context)) { switch(instanceof(context)) {
case "Node_Pixel_Builder" : category = NODE_PB_CATEGORY; break;
case "Node_DynaSurf" : category = NODE_PCX_CATEGORY; break; case "Node_DynaSurf" : category = NODE_PCX_CATEGORY; break;
default : category = NODE_CATEGORY;
} }
draw_set_font(f_p0); draw_set_font(f_p0);

View file

@ -18,9 +18,9 @@ function __Panel_Linear_Setting_Item(name, editWidget, data, onEdit = noone, get
function __Panel_Linear_Setting_Item_Preference(name, key, editWidget, _data = noone) : __Panel_Linear_Setting_Item(name, editWidget, _data) constructor { function __Panel_Linear_Setting_Item_Preference(name, key, editWidget, _data = noone) : __Panel_Linear_Setting_Item(name, editWidget, _data) constructor {
self.key = key; self.key = key;
data = function( ) { return getPreference(key); } data = function( ) /*=>*/ {return getPreference(key)};
onEdit = function(v) { setPreference(key, v); } onEdit = function(v) /*=>*/ {return setPreference(key, v)};
getDefault = function( ) { return getPreference(key, PREFERENCES_DEF); } getDefault = function( ) /*=>*/ {return getPreference(key, PREFERENCES_DEF)};
} }
function __Panel_Linear_Setting_Label(name, sprite, _index = 0, _color = c_white) constructor { function __Panel_Linear_Setting_Label(name, sprite, _index = 0, _color = c_white) constructor {

View file

@ -1,79 +1,273 @@
enum PB_AXIS_ANCHOR {
center = 0b00,
minimum = 0b10,
maximum = 0b01,
bounded = 0b11,
}
enum PB_DIM_BOUND {
unbounded,
}
function __pbBox() constructor { function __pbBox() constructor {
layer = 0;
x = 0; base_bbox = [ 0, 0, 32, 32 ];
y = 0;
w = 32;
h = 32;
layer_w = 32; anchor_x_type = PB_AXIS_ANCHOR.minimum;
layer_h = 32; anchor_y_type = PB_AXIS_ANCHOR.minimum;
mask = noone; anchor_l = 0; anchor_l_fract = false;
content = noone; anchor_t = 0; anchor_t_fract = false;
mirror_h = false; anchor_r = 0; anchor_r_fract = false;
mirror_v = false; anchor_b = 0; anchor_b_fract = false;
rotation = 0; anchor_w = 1; anchor_w_fract = true;
anchor_h = 1; anchor_h_fract = true;
static drawOverlay = function(_x, _y, _s, color = COLORS._main_accent) { anchor_w_type = PB_DIM_BOUND.unbounded;
var _x0 = _x + x * _s; anchor_h_type = PB_DIM_BOUND.unbounded;
var _y0 = _y + y * _s;
anchor_w_min = 0; anchor_w_max = 0;
anchor_h_min = 0; anchor_h_max = 0;
function set_w(v) { anchor_w = anchor_w_fract? v / (base_bbox[2] - base_bbox[0]) : v; }
function set_h(v) { anchor_h = anchor_h_fract? v / (base_bbox[3] - base_bbox[1]) : v; }
function set_l(v) { v -= base_bbox[0]; anchor_l = anchor_l_fract? v / (base_bbox[2] - base_bbox[0]) : v; }
function set_t(v) { v -= base_bbox[1]; anchor_t = anchor_t_fract? v / (base_bbox[3] - base_bbox[1]) : v; }
function set_r(v) { anchor_r = anchor_r_fract? v / (base_bbox[2] - base_bbox[0]) : v; }
function set_b(v) { anchor_b = anchor_b_fract? v / (base_bbox[3] - base_bbox[1]) : v; }
////- Draw
drag_anchor = noone;
drag_anchor_sv = [ 0, 0, 0, 0 ];
drag_anchor_mx = 0;
drag_anchor_my = 0;
static drawOverlayBBOX = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny, _node) {
var _bbox = getBBOX();
var _x1 = _x0 + w * _s; var _x0 = _x + _bbox[0] * _s;
var _y1 = _y0 + h * _s; var _y0 = _y + _bbox[1] * _s;
var _x1 = _x + _bbox[2] * _s;
var _y1 = _y + _bbox[3] * _s;
var _msk = is_surface(mask);
draw_set_alpha(0.5 + 0.5 * !_msk);
draw_set_color(color);
draw_rectangle(_x0, _y0, _x1, _y1, true); draw_rectangle(_x0, _y0, _x1, _y1, true);
draw_set_alpha(1); }
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny, _node) {
var _bbox = getBBOX();
if(_msk) { var _x0 = _x + _bbox[0] * _s;
var _sr = surface_get_target(); var _y0 = _y + _bbox[1] * _s;
var _ms = surface_create_size(_sr); var _x1 = _x + _bbox[2] * _s;
var _y1 = _y + _bbox[3] * _s;
var _h0 = 0, _h1 = 0, _h2 = 0, _h3 = 0, _h9 = 0;
draw_set_color(COLORS._main_accent);
draw_rectangle(_x0, _y0, _x1, _y1, true);
if(drag_anchor == noone) {
if(hover && point_in_circle(_mx, _my, _x0, _y0, 12)) { _h0 = 1; if(mouse_press(mb_left, active)) drag_anchor = 0; }
else if(hover && point_in_circle(_mx, _my, _x1, _y0, 12)) { _h1 = 1; if(mouse_press(mb_left, active)) drag_anchor = 1; }
else if(hover && point_in_circle(_mx, _my, _x0, _y1, 12)) { _h2 = 1; if(mouse_press(mb_left, active)) drag_anchor = 2; }
else if(hover && point_in_circle(_mx, _my, _x1, _y1, 12)) { _h3 = 1; if(mouse_press(mb_left, active)) drag_anchor = 3; }
else if(hover && point_in_rectangle(_mx, _my, _x0, _y0, _x1, _y1)) { _h9 = 1; if(mouse_press(mb_left, active)) drag_anchor = 9; }
surface_set_target(_ms); draw_anchor(_h0, _x0, _y0, ui(10));
DRAW_CLEAR draw_anchor(_h1, _x1, _y0, ui(10));
draw_surface_ext_safe(mask, _x0, _y0, _s, _s, 0, color, 1); draw_anchor(_h2, _x0, _y1, ui(10));
surface_reset_target(); draw_anchor(_h3, _x1, _y1, ui(10));
draw_anchor(_h9, (_x0 + _x1) / 2, (_y0 + _y1) / 2, ui(8));
shader_set(sh_pb_draw_mask); if(drag_anchor != noone) {
shader_set_dim(, _ms); drag_anchor_sv = variable_clone(_bbox);
draw_surface_ext_safe(_ms, 0, 0, 1, 1, 0, color, 1); drag_anchor_mx = _mx;
shader_reset(); drag_anchor_my = _my;
}
surface_free(_ms); return;
} }
var _xx = base_bbox[0];
var _yy = base_bbox[1];
var _ww = base_bbox[2] - base_bbox[0];
var _hh = base_bbox[3] - base_bbox[1];
var _mdx = (_mx - drag_anchor_mx) / _s;
var _mdy = (_my - drag_anchor_my) / _s;
switch(drag_anchor) {
case 0 : draw_anchor(1, _x0, _y0, ui(10)); break;
case 1 : draw_anchor(1, _x1, _y0, ui(10)); break;
case 2 : draw_anchor(1, _x0, _y1, ui(10)); break;
case 3 : draw_anchor(1, _x1, _y1, ui(10)); break;
case 9 : draw_anchor(_h9, (_x0 + _x1) / 2, (_y0 + _y1) / 2, ui(8));
}
if(drag_anchor == 9) {
var _bl = round(drag_anchor_sv[0] + _mdx);
var _br = round(drag_anchor_sv[2] + _mdx);
var _bt = round(drag_anchor_sv[1] + _mdy);
var _bb = round(drag_anchor_sv[3] + _mdy);
setBBOX([ _bl, _bt, _br, _bb ]);
} else {
if(drag_anchor == 0 || drag_anchor == 2) {
var _bx = round(drag_anchor_sv[0] + _mdx);
var _bw = _bbox[2] - _bx;
switch(anchor_x_type) {
case PB_AXIS_ANCHOR.minimum : set_l(_bx); set_w(_bw); break;
case PB_AXIS_ANCHOR.maximum : set_w(_bw); break;
case PB_AXIS_ANCHOR.bounded : set_l(_bx); break;
}
}
if(drag_anchor == 0 || drag_anchor == 1) {
var _by = round(drag_anchor_sv[1] + _mdy);
var _bh = _bbox[3] - _by;
switch(anchor_y_type) {
case PB_AXIS_ANCHOR.minimum : set_t(_by); set_h(_bh); break;
case PB_AXIS_ANCHOR.maximum : set_h(_bh); break;
case PB_AXIS_ANCHOR.bounded : set_t(_by); break;
}
}
if(drag_anchor == 3 || drag_anchor == 1) {
var _bx = round(drag_anchor_sv[2] + _mdx);
var _bw = _bx - _bbox[0];
switch(anchor_x_type) {
case PB_AXIS_ANCHOR.minimum : set_w(_bw); break;
case PB_AXIS_ANCHOR.maximum : set_r(_ww - _bx); set_w(_bw); break;
case PB_AXIS_ANCHOR.bounded : set_r(_ww - _bx); break;
}
}
if(drag_anchor == 3 || drag_anchor == 2) {
var _by = round(drag_anchor_sv[3] + _mdy);
var _bh = _by - _bbox[1];
switch(anchor_y_type) {
case PB_AXIS_ANCHOR.minimum : set_h(_bh); break;
case PB_AXIS_ANCHOR.maximum : set_b(_hh - _by); set_h(_bh); break;
case PB_AXIS_ANCHOR.bounded : set_b(_hh - _by); break;
}
}
}
_node.triggerRender();
if(mouse_release(mb_left)) drag_anchor = noone;
} }
static clone = function() { ////- BBOX
var _pbbox = new __pbBox();
static setBBOX = function(_bbox) {
_pbbox.layer = layer; var _x0 = base_bbox[0];
_pbbox.x = x; var _y0 = base_bbox[1];
_pbbox.y = y; var _x1 = base_bbox[2];
_pbbox.w = w; var _y1 = base_bbox[3];
_pbbox.h = h;
_pbbox.layer_w = layer_w; var _bl = _bbox[0];
_pbbox.layer_h = layer_h; var _br = _x1 - _bbox[2];
var _bt = _bbox[1];
var _bb = _y1 - _bbox[3];
var _bw = _bbox[2] - _bbox[0];
var _bh = _bbox[3] - _bbox[1];
_pbbox.mirror_h = mirror_h; switch(anchor_x_type) {
_pbbox.mirror_v = mirror_v; case PB_AXIS_ANCHOR.minimum : set_l(_bl); set_w(_bw); break;
case PB_AXIS_ANCHOR.maximum : set_r(_br); set_w(_bw); break;
case PB_AXIS_ANCHOR.bounded : set_l(_bl); set_r(_br); break;
}
_pbbox.rotation = rotation; switch(anchor_y_type) {
case PB_AXIS_ANCHOR.minimum : set_t(_bt); set_h(_bh); break;
case PB_AXIS_ANCHOR.maximum : set_b(_bb); set_h(_bh); break;
case PB_AXIS_ANCHOR.bounded : set_t(_bt); set_b(_bb); break;
}
_pbbox.mask = surface_clone(mask);
_pbbox.content = surface_clone(content);
return _pbbox;
} }
static free = function() { static getBBOX = function() {
surface_free_safe(mask);
surface_free_safe(content); var _xx = base_bbox[0];
var _yy = base_bbox[1];
var _ww = base_bbox[2] - base_bbox[0];
var _hh = base_bbox[3] - base_bbox[1];
var _w = anchor_w_fract? _ww * anchor_w : anchor_w;
var _h = anchor_h_fract? _hh * anchor_h : anchor_h;
var _l = anchor_l_fract? _ww * anchor_l : anchor_l;
var _t = anchor_t_fract? _hh * anchor_t : anchor_t;
var _r = anchor_r_fract? _ww * anchor_r : anchor_r;
var _b = anchor_b_fract? _hh * anchor_b : anchor_b;
var _x0 = _xx, _y0 = _yy;
var _x1 = _xx + _ww, _y1 = _yy + _hh;
_x0 = _xx + _l;
_x1 = _xx + _ww - _r;
_y0 = _yy + _t;
_y1 = _yy + _hh - _b;
var _cx = (_x0 + _x1) / 2;
var _cy = (_y0 + _y1) / 2;
////////////////////////////////////////////
switch(anchor_x_type) {
case PB_AXIS_ANCHOR.minimum : _x1 = _x0 + _w; break;
case PB_AXIS_ANCHOR.maximum : _x0 = _x1 - _w; break;
case PB_AXIS_ANCHOR.center :
_w = min(_w, _x1 - _x0);
_x0 = _cx - _w / 2;
_x1 = _cx + _w / 2;
break;
}
switch(anchor_y_type) {
case PB_AXIS_ANCHOR.minimum : _y1 = _y0 + _h; break;
case PB_AXIS_ANCHOR.maximum : _y0 = _y1 - _h; break;
case PB_AXIS_ANCHOR.center :
_h = min(_h, _y1 - _y0);
_y0 = _cy - _h / 2;
_y1 = _cy + _h / 2;
break;
}
return [ floor(_x0), floor(_y0), ceil(_x1), ceil(_y1) ];
} }
////- Lerp
static lerpTo = function(target, amount) {
var nb = clone();
nb.anchor_l = lerp(nb.anchor_l, target.anchor_l, amount);
nb.anchor_t = lerp(nb.anchor_t, target.anchor_t, amount);
nb.anchor_r = lerp(nb.anchor_r, target.anchor_r, amount);
nb.anchor_b = lerp(nb.anchor_b, target.anchor_b, amount);
nb.anchor_w = lerp(nb.anchor_w, target.anchor_w, amount);
nb.anchor_h = lerp(nb.anchor_h, target.anchor_h, amount);
return nb;
}
////- Actions
static serialize = function( ) { return variable_clone(self); }
static deserialize = function(map) { struct_override(self, map); return self; }
static clone = function() /*=>*/ {return variable_clone(self)};
} }

View file

@ -5,8 +5,8 @@
"isDnD":false, "isDnD":false,
"name":"__pbBox", "name":"__pbBox",
"parent":{ "parent":{
"name":"pixel builder", "name":"main",
"path":"folders/nodes/data/pixel builder.yy", "path":"folders/nodes/data/PB/main.yy",
}, },
"resourceType":"GMScript", "resourceType":"GMScript",
"resourceVersion":"2.0", "resourceVersion":"2.0",

View file

@ -324,6 +324,13 @@
array_insert(arr, ind, val); array_insert(arr, ind, val);
} }
function array_insert_array(arr, _ind, values) {
INLINE
for( var i = 0, n = array_length(values); i < n; i++ )
array_insert(arr, _ind + i, values[i]);
}
function array_insert_after(arr, before, values) { function array_insert_after(arr, before, values) {
INLINE INLINE

View file

@ -4,8 +4,7 @@ function __initCollection() {
globalvar COLLECTIONS; globalvar COLLECTIONS;
COLLECTIONS = -1; COLLECTIONS = -1;
var root = DIRECTORY + "Collections"; directory_verify(root); var root = DIRECTORY + "Collections"; directory_verify(root);
var rootz = DIRECTORY + "Collections_cache"; directory_verify(rootz);
if(check_version($"{root}/version")) zip_unzip("data/Collections.zip", root); if(check_version($"{root}/version")) zip_unzip("data/Collections.zip", root);
@ -73,4 +72,34 @@ function saveCollection(_node, _path, _name, save_surface = true, metadata = noo
PANEL_COLLECTION.updated_path = _path; PANEL_COLLECTION.updated_path = _path;
PANEL_COLLECTION.updated_prog = 1; PANEL_COLLECTION.updated_prog = 1;
PANEL_COLLECTION.refreshContext(); PANEL_COLLECTION.refreshContext();
}
function clearDefaultCollection() {
var st = ds_stack_create();
ds_stack_push(st, COLLECTIONS);
while(!ds_stack_empty(st)) {
var _st = ds_stack_pop(st);
for( var i = 0; i < ds_list_size(_st.content); i++ ) {
var _file = _st.content[| i];
if(_file.type != FILE_TYPE.collection) continue;
var _meta = _file.getMetadata();
if(!_meta.isDefault) continue;
var _path = _file.path;
var _spth = array_safe_get(_file.spr_path, 0);
var _mpth = _file.meta_path;
file_delete_safe(_path);
file_delete_safe(_spth);
file_delete_safe(_mpth);
}
for( var i = 0; i < ds_list_size(_st.subDir); i++ )
ds_stack_push(st, _st.subDir[| i]);
}
ds_stack_destroy(st);
file_delete_safe(DIRECTORY + "Collections/version");
} }

View file

@ -1,6 +1,15 @@
function directory_verify(path) { function directory_verify(path) {
INLINE
if(directory_exists(path)) return; if(directory_exists(path)) return;
directory_create(path); directory_create(path);
}
function directory_clear(path) {
if(!directory_exists(path)) return;
directory_destroy(path);
directory_create(path);
}
function directory_size_mb(dir) {
if(!directory_exists(dir)) return 0;
return directory_size(dir) / (1024*1024);
} }

View file

@ -105,6 +105,7 @@ function FileObject(_path) constructor {
if(file_exists_empty(meta_path)) { if(file_exists_empty(meta_path)) {
meta.deserialize(json_load_struct(meta_path)); meta.deserialize(json_load_struct(meta_path));
} else { } else {
var m = json_load_struct(path); var m = json_load_struct(path);
@ -166,8 +167,7 @@ function DirectoryObject(_path) constructor {
ds_list_add(content, _ndir); ds_list_add(content, _ndir);
} else if(directory_exists(_path)) { } else if(directory_exists(_path)) {
var fol = new DirectoryObject(_path) var fol = new DirectoryObject(_path).scan(file_type);
.scan(file_type);
ds_list_add(subDir, fol); ds_list_add(subDir, fol);
} else if(array_exists(file_type, filename_ext(file))) { } else if(array_exists(file_type, filename_ext(file))) {

View file

@ -280,7 +280,7 @@ function draw_arc_forward(_x, _y, _r, _th, _angSt, _angEd) {
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function draw_circle_ui(_x, _y, _r, _th, _c = c_white, _a = 1) { function draw_circle_ui(_x, _y, _r, _th = 0, _c = c_white, _a = 1) {
shader_set(sh_node_circle); shader_set(sh_node_circle);
shader_set_color("color", _c, _a); shader_set_color("color", _c, _a);
shader_set_f("thickness", _th); shader_set_f("thickness", _th);

View file

@ -81,4 +81,15 @@ function draw_line_width2_angle_width(x0, y0, x1, y1, w0, w1, a0 = 0, a1 = 0, _o
draw_vertex_color( x1, y1, _nc, 1); draw_vertex_color( x1, y1, _nc, 1);
draw_vertex_color(_x0, _y0, c_black, 1); draw_vertex_color(_x0, _y0, c_black, 1);
draw_vertex_color(_x1, _y1, c_black, 1); draw_vertex_color(_x1, _y1, c_black, 1);
}
function draw_line_cap_T(x0, y0, x1, y1, cap = 4) {
draw_line(x0, y0, x1, y1);
var _dir = point_direction(x0, y0, x1, y1);
var _dx = lengthdir_x(cap, _dir + 90);
var _dy = lengthdir_y(cap, _dir + 90);
draw_line(x0 - _dx, y0 - _dy, x0 + _dx, y0 + _dy);
draw_line(x1 - _dx, y1 - _dy, x1 + _dx, y1 + _dy);
} }

View file

@ -6,15 +6,7 @@
function draw_set_color_alpha(col, alpha = 1) { draw_set_color(col); draw_set_alpha(alpha); } function draw_set_color_alpha(col, alpha = 1) { draw_set_color(col); draw_set_alpha(alpha); }
function draw_set_color_ext(col) { function draw_set_color_ext(col) { draw_set_color(col); draw_set_alpha(_color_get_alpha(col)); }
INLINE
__draw_set_color(col);
if(is_real(col)) return;
var a = _color_get_alpha(col);
draw_set_alpha(a);
}
function draw_clear_ext_override(col) { function draw_clear_ext_override(col) {
if(is_real(col)) { if(is_real(col)) {

View file

@ -85,4 +85,6 @@ function file_is_image(path) {
} }
return false; return false;
} }
function file_delete_safe(path) { if(!file_exists_empty(path)) return; file_delete(path); }

View file

@ -43,8 +43,8 @@
LATEST_VERSION = 1_18_00_0; LATEST_VERSION = 1_18_00_0;
VERSION = 1_18_09_0; VERSION = 1_18_09_0;
SAVE_VERSION = 1_18_09_1; SAVE_VERSION = 1_18_09_1;
VERSION_STRING = MAC? "1.18.003m" : "1.18.10.001"; VERSION_STRING = MAC? "1.18.003m" : "1.18.10.003";
BUILD_NUMBER = 118101.001; BUILD_NUMBER = 118101.003;
PREF_VERSION = 1_17_1; PREF_VERSION = 1_17_1;
var _vsp = string_split(VERSION_STRING, "."); var _vsp = string_split(VERSION_STRING, ".");

View file

@ -22,6 +22,7 @@ function MetaDataManager() constructor {
contact = ""; contact = "";
alias = ""; alias = "";
type = FILE_TYPE.collection; type = FILE_TYPE.collection;
isDefault = false;
author_steam_id = 0; author_steam_id = 0;
file_id = 0; file_id = 0;
@ -30,36 +31,40 @@ function MetaDataManager() constructor {
steam = FILE_STEAM_TYPE.local; steam = FILE_STEAM_TYPE.local;
static displays = [ static displays = [
[ "Description", function(meta) { return meta.description; } , 5], [ "Description", function(m) /*=>*/ {return m.description}, 5],
[ "Author", function(meta) { return meta.author; } , 1], [ "Author", function(m) /*=>*/ {return m.author}, 1],
[ "Contact info", function(meta) { return meta.contact; } , 1], [ "Contact info", function(m) /*=>*/ {return m.contact}, 1],
[ "Alias", function(meta) { return meta.alias; } , 1], [ "Alias", function(m) /*=>*/ {return m.alias}, 1],
[ "Tags", function(meta) { return meta.tags; } , 1], [ "Tags", function(m) /*=>*/ {return m.tags}, 1],
]; ];
static serialize = function() { static serialize = function() {
var m = {}; var m = {
m.description = description; description,
m.author = author; author,
m.contact = contact; contact,
m.alias = alias; alias,
m.aut_id = author_steam_id; file_id,
m.file_id = file_id; tags,
m.tags = tags; version,
m.version = version; isDefault,
};
m.aut_id = author_steam_id;
return m; return m;
} }
static deserialize = function(m, readonly = false) { static deserialize = function(m, readonly = false) {
description = struct_try_get(m, "description", description); description = m[$ "description"] ?? description;
author = struct_try_get(m, "author", author); author = m[$ "author"] ?? author;
contact = struct_try_get(m, "contact", contact); contact = m[$ "contact"] ?? contact;
alias = struct_try_get(m, "alias", alias); alias = m[$ "alias"] ?? alias;
author_steam_id = struct_try_get(m, "aut_id", author_steam_id); author_steam_id = m[$ "aut_id"] ?? author_steam_id;
file_id = struct_try_get(m, "file_id", file_id); file_id = m[$ "file_id"] ?? file_id;
tags = struct_try_get(m, "tags", tags); tags = m[$ "tags"] ?? tags;
version = struct_try_get(m, "version", version); version = m[$ "version"] ?? version;
isDefault = m[$ "isDefault"] ?? isDefault;
return self; return self;
} }
@ -104,7 +109,7 @@ function MetaDataManager() constructor {
draw_set_font(f_h5); draw_set_font(f_h5);
_h += string_height_ext(name, -1, ww) - ui(4); _h += string_height_ext(name, -1, ww) - ui(4);
_w = max(_w, string_width_ext(name, -1, ww)); _w = max(_w, string_width_ext(name, -1, ww) + isDefault * ui(6 + 56));
draw_set_font(f_p1); draw_set_font(f_p1);
_h += string_height_ext(_aut, -1, ww); _h += string_height_ext(_aut, -1, ww);
@ -116,10 +121,12 @@ function MetaDataManager() constructor {
_w = max(_w, string_width_ext(contact, -1, ww)); _w = max(_w, string_width_ext(contact, -1, ww));
} }
draw_set_font(f_p1); if(description != "") {
_h += ui(8); draw_set_font(f_p1);
_h += string_height_ext(description, -1, ww); _h += ui(8);
_w = max(_w, string_width_ext(description, -1, ww)); _h += string_height_ext(description, -1, ww);
_w = max(_w, string_width_ext(description, -1, ww));
}
if(alias != "") { if(alias != "") {
_h += ui(16); _h += ui(16);
@ -160,16 +167,29 @@ function MetaDataManager() constructor {
draw_sprite_stretched(THEME.textbox, 3, mx, my, _w + _pd * 2, _h + _pd * 2); draw_sprite_stretched(THEME.textbox, 3, mx, my, _w + _pd * 2, _h + _pd * 2);
draw_sprite_stretched(THEME.textbox, 0, mx, my, _w + _pd * 2, _h + _pd * 2); draw_sprite_stretched(THEME.textbox, 0, mx, my, _w + _pd * 2, _h + _pd * 2);
var tx = mx + _pd;
var ty = my + ui(8); var ty = my + ui(8);
draw_set_text(f_h5, fa_left, fa_top, COLORS._main_text); draw_set_text(f_h5, fa_left, fa_top, COLORS._main_text);
draw_text_line(mx + _pd, ty, name, -1, _w); draw_text_line(tx, ty, name, -1, _w);
if(isDefault) {
var _dx = tx + string_width(name) + ui(6);
var _dy = ty + ui(6);
draw_sprite_stretched_ext(THEME.box_r2, 0, _dx, _dy, ui(56), ui(20), COLORS._main_icon_dark, 1);
draw_set_text(f_p3, fa_left, fa_top, COLORS._main_text_accent);
draw_text(_dx + ui(4), _dy + ui(2), "Default");
draw_set_font(f_h5);
}
ty += string_height_ext(name, -1, _w) - ui(4); ty += string_height_ext(name, -1, _w) - ui(4);
draw_set_text(f_p1, fa_left, fa_top, COLORS._main_text_sub); draw_set_text(f_p1, fa_left, fa_top, COLORS._main_text_sub);
draw_text_line(mx + _pd, ty, _aut, -1, _w); draw_text_line(tx, ty, _aut, -1, _w);
if(_own) { if(_own) {
var _owX = mx + _pd + string_width_ext(_aut, -1, _w) + ui(12); var _owX = tx + string_width_ext(_aut, -1, _w) + ui(12);
draw_set_font(f_p2); draw_set_font(f_p2);
var _owW = string_width( _ont); var _owW = string_width( _ont);
@ -183,26 +203,28 @@ function MetaDataManager() constructor {
if(contact != "") { if(contact != "") {
draw_set_text(f_p2, fa_left, fa_top, COLORS._main_text_sub); draw_set_text(f_p2, fa_left, fa_top, COLORS._main_text_sub);
draw_text_line(mx + _pd, ty, contact, -1, _w); draw_text_line(tx, ty, contact, -1, _w);
ty += string_height_ext(contact, -1, _w); ty += string_height_ext(contact, -1, _w);
} }
ty += ui(8); if(description != "") {
draw_set_text(f_p1, fa_left, fa_top, COLORS._main_text); ty += ui(8);
draw_text_line(mx + _pd, ty, description, -1, _w); draw_set_text(f_p1, fa_left, fa_top, COLORS._main_text);
ty += string_height_ext(description, -1, _w); draw_text_line(tx, ty, description, -1, _w);
ty += string_height_ext(description, -1, _w);
}
if(alias != "") { if(alias != "") {
ty += ui(16); ty += ui(16);
draw_set_text(f_p2, fa_left, fa_top, COLORS._main_text_sub); draw_set_text(f_p2, fa_left, fa_top, COLORS._main_text_sub);
draw_text_line(mx + _pd, ty, alias, -1, _w); draw_text_line(tx, ty, alias, -1, _w);
ty += string_height_ext(alias, -1, _w); ty += string_height_ext(alias, -1, _w);
} }
if(floor(version) != floor(SAVE_VERSION)) { if(floor(version) != floor(SAVE_VERSION)) {
ty += ui(8); ty += ui(8);
draw_set_text(f_p2, fa_left, fa_top, COLORS._main_accent); draw_set_text(f_p2, fa_left, fa_top, COLORS._main_accent);
draw_text_line(mx + _pd, ty, _ver, -1, _w); draw_text_line(tx, ty, _ver, -1, _w);
ty += string_height_ext(_ver, -1, _w); ty += string_height_ext(_ver, -1, _w);
} }

View file

@ -42,6 +42,7 @@ function drawWidget(xx, yy, ww, _m, jun, global_var = true, _hover = false, _foc
case "textArea" : case "textArea" :
case "controlPointBox" : case "controlPointBox" :
case "transformBox" : case "transformBox" :
case "pbBoxBox" :
breakLine = true; breakLine = true;
break; break;

View file

@ -538,12 +538,9 @@ function Node_Collection(_x, _y, _group = noone) : Node(_x, _y, _group) construc
if(!draw_input_overlay) return; if(!draw_input_overlay) return;
for(var i = custom_input_index; i < array_length(inputs); i++) { for(var i = custom_input_index; i < array_length(inputs); i++) {
var _in = inputs[i]; var _in = inputs[i];
var _show = _in.from.getInputData(6); var _hv = _in.from.drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
if(_hv != undefined) active &= !_hv;
if(!_show) continue;
var _hov = _in.drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
if(_hov != undefined) active &= !_hov;
} }
} }

View file

@ -5,7 +5,7 @@ function Node_Crop(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) cons
newInput(0, nodeValue_Surface("Surface In", self)); newInput(0, nodeValue_Surface("Surface In", self));
newInput(1, nodeValue_Padding("Crop", self, [ 0, 0, 0, 0 ])) newInput(1, nodeValue_Padding("Crop", self, [ 0, 0, 0, 0 ]))
.setUnitRef(function(index) { return getDimension(index); }); .setUnitRef(function(i) /*=>*/ {return getDimension(i)});
newInput(2, nodeValue_Bool("Active", self, true)); newInput(2, nodeValue_Bool("Active", self, true));
active_index = 2; active_index = 2;
@ -15,7 +15,7 @@ function Node_Crop(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) cons
newInput(4, nodeValue_Vec2("Ratio", self, [ 1, 1 ])); newInput(4, nodeValue_Vec2("Ratio", self, [ 1, 1 ]));
newInput(5, nodeValue_Vec2("Center", self, [ .5, .5 ])) newInput(5, nodeValue_Vec2("Center", self, [ .5, .5 ]))
.setUnitRef(function(index) { return getDimension(index); }, VALUE_UNIT.reference); .setUnitRef(function(i) /*=>*/ {return getDimension(i)}, VALUE_UNIT.reference);
newInput(6, nodeValue_Float("Width", self, 8 )); newInput(6, nodeValue_Float("Width", self, 8 ));
@ -329,9 +329,6 @@ function Node_Crop(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) cons
} }
// draw_transforms = [];
// static drawOverlayTransform = function(_node) { return array_safe_get(draw_transforms, preview_index, noone); }
static onValueUpdate = function(index) { static onValueUpdate = function(index) {
if(index != 3) return; if(index != 3) return;

View file

@ -2141,7 +2141,7 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor {
drawNodeBase(xx, yy, _s); drawNodeBase(xx, yy, _s);
draggable = true; draggable = true;
if(previewable) { if(previewable && _panel != noone) {
if(preview_draw) drawPreview(xx, yy, _s); if(preview_draw) drawPreview(xx, yy, _s);
try { try {

View file

@ -117,8 +117,12 @@ function Node_Group_Input(_x, _y, _group = noone) : Node(_x, _y, _group) constru
newInput(13, nodeValue_Float("Gizmo Scale", self, 1)); newInput(13, nodeValue_Float("Gizmo Scale", self, 1));
inputs[10].setFrom_condition = function(_valueFrom) { newInput(14, nodeValue_Rotation("Gizmo Rotation", self, 0));
if(is_instanceof(_valueFrom.node, Node_Group_Input)) return true;
newInput(15, nodeValue_Bool("Gizmo Label", self, true));
inputs[10].setFrom_condition = function(v) {
if(is(v.node, Node_Group_Input)) return true;
noti_warning("Group IO visibility must be connected directly to another group input.",, self); noti_warning("Group IO visibility must be connected directly to another group input.",, self);
return false; return false;
} }
@ -129,7 +133,7 @@ function Node_Group_Input(_x, _y, _group = noone) : Node(_x, _y, _group) constru
input_display_list = [ input_display_list = [
["Junction", false], 9, 10, 11, ["Junction", false], 9, 10, 11,
["Data", false], 2, 0, 4, 1, 7, 3, 8, ["Data", false], 2, 0, 4, 1, 7, 3, 8,
["Gizmo", false, 6], 12, 13, ["Gizmo", false, 6], 12, 13, 14, 15,
]; ];
newOutput(0, nodeValue_Output("Value", self, VALUE_TYPE.any, 0)) newOutput(0, nodeValue_Output("Value", self, VALUE_TYPE.any, 0))
@ -510,16 +514,21 @@ function Node_Group_Input(_x, _y, _group = noone) : Node(_x, _y, _group) constru
static drawNodeDef = drawNode; static drawNodeDef = drawNode;
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
if(inParent.isArray()) return; if(inParent.isArray()) return false;
var _vis = inputs[ 6].getValue();
if(!_vis) return false;
var _pos = inputs[12].getValue(); var _pos = inputs[12].getValue();
var _sca = inputs[13].getValue();
var _rot = inputs[14].getValue();
var _px = _x + _pos[0] * _s; var _px = _x + _pos[0] * _s;
var _py = _y + _pos[1] * _s; var _py = _y + _pos[1] * _s;
var _sca = inputs[13].getValue();
_s *= _sca; _s *= _sca;
return inParent.drawOverlay(hover, active, _px, _py, _s, _mx, _my, _snx, _sny); inParent.overlay_draw_text = inputs[15].getValue();
return inParent.drawOverlay(hover, active, _px, _py, _s, _mx, _my, _snx, _sny, _rot);
} }
static drawNode = function(_draw, _x, _y, _mx, _my, _s, display_parameter = noone, _panel = noone) { static drawNode = function(_draw, _x, _y, _mx, _my, _s, display_parameter = noone, _panel = noone) {

View file

@ -682,6 +682,9 @@ function valueAnimator(_val, _prop, _sep_axis = false) constructor {
if(_typ == VALUE_TYPE.struct) { if(_typ == VALUE_TYPE.struct) {
_val = json_try_parse(value); _val = json_try_parse(value);
} else if(_typ == VALUE_TYPE.pbBox) {
_val = new __pbBox().deserialize(value);
} else if(prop.display_type == VALUE_DISPLAY.matrix) { } else if(prop.display_type == VALUE_DISPLAY.matrix) {
_val = new Matrix().deserialize(value); _val = new Matrix().deserialize(value);

View file

@ -273,7 +273,7 @@ function Node_Line(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) cons
var _rtStr = min(_rangeMin, _rangeMax); var _rtStr = min(_rangeMin, _rangeMax);
var _rtMax = max(_rangeMin, _rangeMax); var _rtMax = max(_rangeMin, _rangeMax);
var _useTex = is_surface(_text); var _useTex = !_1px && is_surface(_text);
if(_useTex) { _cap = false; _1px = false; } if(_useTex) { _cap = false; _1px = false; }
random_set_seed(_sed); random_set_seed(_sed);

View file

@ -18,7 +18,7 @@ function Node_MK_Delay_Machine(_x, _y, _group = noone) : Node(_x, _y, _group) co
newInput(6, nodeValueSeed(self)); newInput(6, nodeValueSeed(self));
newInput(7, nodeValue_Bool("Loop", self, false)); newInput(7, nodeValue_Enum_Scroll("Overflow", self, 0, [ "Empty", "Loop", "Hold" ]));
newInput(8, nodeValue_Enum_Scroll("Blend Mode", self, 0, [ "Normal", "Alpha", "Additive", "Maximum" ])); newInput(8, nodeValue_Enum_Scroll("Blend Mode", self, 0, [ "Normal", "Alpha", "Additive", "Maximum" ]));
@ -32,9 +32,11 @@ function Node_MK_Delay_Machine(_x, _y, _group = noone) : Node(_x, _y, _group) co
]; ];
setTrigger(2, "Clear cache", [ THEME.cache, 0, COLORS._main_icon ]); setTrigger(2, "Clear cache", [ THEME.cache, 0, COLORS._main_icon ]);
static onInspector2Update = function() { clearCache(); } static onInspector2Update = function() { clearCache(); }
surf_indexes = [];
static update = function() { static update = function() {
var _surf = getInputData(0); var _surf = getInputData(0);
var _amo = getInputData(1); var _amo = getInputData(1);
@ -43,13 +45,16 @@ function Node_MK_Delay_Machine(_x, _y, _group = noone) : Node(_x, _y, _group) co
var _alpC = getInputData(4); var _alpC = getInputData(4);
var _psel = getInputData(5); var _psel = getInputData(5);
var _seed = getInputData(6); var _seed = getInputData(6);
var _loop = getInputData(7); var _over = getInputData(7);
var _blnd = getInputData(8); var _blnd = getInputData(8);
var _invt = getInputData(9); var _invt = getInputData(9);
inputs[6].setVisible(_psel == 2); inputs[6].setVisible(_psel == 2);
cacheCurrentFrame(_surf); surf_indexes = array_verify(surf_indexes, TOTAL_FRAMES);
surface_free_safe(array_safe_get_fast(surf_indexes, CURRENT_FRAME));
surf_indexes[CURRENT_FRAME] = surface_clone(_surf);
random_set_seed(_seed); random_set_seed(_seed);
var _sw = surface_get_width_safe(_surf); var _sw = surface_get_width_safe(_surf);
@ -72,9 +77,13 @@ function Node_MK_Delay_Machine(_x, _y, _group = noone) : Node(_x, _y, _group) co
for( var i = _amo - 1; i >= 0; i-- ) { for( var i = _amo - 1; i >= 0; i-- ) {
var _i = _invt? _amo - 1 - i : i; var _i = _invt? _amo - 1 - i : i;
var _ff = CURRENT_FRAME - _i * _frm; var _ff = CURRENT_FRAME - _i * _frm;
if(_loop) _ff = (_ff + TOTAL_FRAMES) % TOTAL_FRAMES;
var _s = array_safe_get_fast(cached_output, _ff); switch(_over) {
case 1 : _ff = (_ff + TOTAL_FRAMES) % TOTAL_FRAMES; break;
case 2 : _ff = clamp(_ff, 0, TOTAL_FRAMES); break;
}
var _s = array_safe_get_fast(surf_indexes, _ff);
if(!is_surface(_s)) continue; if(!is_surface(_s)) continue;
switch(_psel) { switch(_psel) {

View file

@ -8,18 +8,64 @@ function Node_Path_Map_Area(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
newInput(1, nodeValue_Area("Area", self, DEF_AREA, { useShape : false })); newInput(1, nodeValue_Area("Area", self, DEF_AREA, { useShape : false }));
inputs[1].editWidget.adjust_shape = false; inputs[1].editWidget.adjust_shape = false;
newInput(2, nodeValue_Enum_Scroll("Map From", self, 0, [ "Path Boundary", "Fix Dimension", "BBOX" ]));
newInput(3, nodeValue_Vec2("Dimension From", self, [ 1, 1 ]))
newInput(4, nodeValue_Enum_Scroll("Map To", self, 0, [ "Area", "Fix Dimension", "BBOX" ]));
newInput(5, nodeValue_Vec2("Dimension To", self, [ 1, 1 ]))
newInput(6, nodeValue_Vec4("BBOX From", self, [ 0, 0, 1, 1 ]))
newInput(7, nodeValue_Vec4("BBOX To", self, [ 0, 0, 1, 1 ]))
newOutput(0, nodeValue_Output("Path", self, VALUE_TYPE.pathnode, self)); newOutput(0, nodeValue_Output("Path", self, VALUE_TYPE.pathnode, self));
input_display_list = [ 0,
["From", false], 2, 3, 6,
["To", false], 4, 1, 5, 7,
]
cached_pos = ds_map_create(); cached_pos = ds_map_create();
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
inputs[1].drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny); var _toType = getSingleValue(4);
switch(_toType) {
case 0 : inputs[1].drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny); break;
case 1 :
var _tdim = getSingleValue(5);
draw_set_color(COLORS._main_accent);
draw_rectangle(
_x + 0 * _s,
_y + 0 * _s,
_x + _tdim[0] * _s,
_y + _tdim[1] * _s,
true
);
break;
case 2 :
var _tbox = getSingleValue(7);
draw_set_color(COLORS._main_accent);
draw_rectangle(
_x + _tbox[0] * _s,
_y + _tbox[1] * _s,
_x + _tbox[2] * _s,
_y + _tbox[3] * _s,
true
);
break;
}
} }
function _areaMappedPath() constructor { function _areaMappedPath() constructor {
path = noone; path = noone;
area = noone;
areaFrom = [ 0, 0, 1, 1 ];
areaTo = [ 0, 0, 1, 1 ];
static getLineCount = function() /*=>*/ { return struct_has(path, "getLineCount")? path.getLineCount() : 1; } static getLineCount = function() /*=>*/ { return struct_has(path, "getLineCount")? path.getLineCount() : 1; }
static getSegmentCount = function(i=0) /*=>*/ { return struct_has(path, "getSegmentCount")? path.getSegmentCount(i) : 0; } static getSegmentCount = function(i=0) /*=>*/ { return struct_has(path, "getSegmentCount")? path.getSegmentCount(i) : 0; }
@ -40,8 +86,8 @@ function Node_Path_Map_Area(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
var _b = path.getBoundary(); var _b = path.getBoundary();
var _p = path.getPointRatio(_rat, ind); var _p = path.getPointRatio(_rat, ind);
out.x = (area[AREA_INDEX.center_x] - area[AREA_INDEX.half_w]) + (_p.x - _b.minx) / _b.width * area[AREA_INDEX.half_w] * 2; out.x = (areaTo[AREA_INDEX.center_x] - areaTo[AREA_INDEX.half_w]) + (_p.x - areaFrom[0]) / areaFrom[2] * areaTo[AREA_INDEX.half_w] * 2;
out.y = (area[AREA_INDEX.center_y] - area[AREA_INDEX.half_h]) + (_p.y - _b.miny) / _b.height * area[AREA_INDEX.half_h] * 2; out.y = (areaTo[AREA_INDEX.center_y] - areaTo[AREA_INDEX.half_h]) + (_p.y - areaFrom[1]) / areaFrom[3] * areaTo[AREA_INDEX.half_h] * 2;
out.weight = _p.weight; out.weight = _p.weight;
return out; return out;
@ -50,20 +96,55 @@ function Node_Path_Map_Area(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
static getPointDistance = function(_dist, ind = 0, out = undefined) { return getPointRatio(_dist / getLength(), ind, out); } static getPointDistance = function(_dist, ind = 0, out = undefined) { return getPointRatio(_dist / getLength(), ind, out); }
static getBoundary = function() { static getBoundary = function() {
return new BoundingBox( area[AREA_INDEX.center_x] - area[AREA_INDEX.half_w], return new BoundingBox( areaTo[AREA_INDEX.center_x] - areaTo[AREA_INDEX.half_w],
area[AREA_INDEX.center_y] - area[AREA_INDEX.half_h], areaTo[AREA_INDEX.center_y] - areaTo[AREA_INDEX.half_h],
area[AREA_INDEX.center_x] + area[AREA_INDEX.half_w], areaTo[AREA_INDEX.center_x] + areaTo[AREA_INDEX.half_w],
area[AREA_INDEX.center_y] + area[AREA_INDEX.half_h] ); areaTo[AREA_INDEX.center_y] + areaTo[AREA_INDEX.half_h] );
} }
} }
static processData = function(_outData, _data, _output_index, _array_index = 0) { static processData = function(_outData, _data, _output_index, _array_index = 0) {
var _path = _data[0];
var _from = _data[2];
var _fdim = _data[3];
var _fbox = _data[6];
var _to = _data[4];
var _area = _data[1];
var _tdim = _data[5];
var _tbox = _data[7];
inputs[3].setVisible(_from == 1);
inputs[6].setVisible(_from == 2);
inputs[1].setVisible(_to == 0);
inputs[5].setVisible(_to == 1);
inputs[7].setVisible(_to == 2);
if(!is(_outData, _areaMappedPath)) if(!is(_outData, _areaMappedPath))
_outData = new _areaMappedPath(); _outData = new _areaMappedPath();
_outData.path = _data[0]; if(!struct_has(_path, "getPointRatio"))
_outData.area = _data[1]; return _outData;
_outData.path = _path;
switch(_from) {
case 0 :
var _bb = _path.getBoundary();
_outData.areaFrom = [ _bb.minx, _bb.miny, _bb.width, _bb.height ];
break;
case 1 : _outData.areaFrom = [ 0, 0, _fdim[0], _fdim[1] ]; break;
case 2 : _outData.areaFrom = [ _fbox[0], _fbox[1], _fbox[2] - _fbox[0], _fbox[3] - _fbox[1] ]; break;
}
switch(_to) {
case 0 : _outData.areaTo = _area; break;
case 1 : _outData.areaTo = [ _tdim[0] / 2, _tdim[1] / 2, _tdim[0] / 2, _tdim[1] / 2, 0 ]; break;
case 2 : _outData.areaTo = [ (_tbox[0] + _tbox[2]) / 2, (_tbox[1] + _tbox[3]) / 2,
(_tbox[2] - _tbox[0]) / 2, (_tbox[3] - _tbox[1]) / 2, 0 ]; break;
}
return _outData; return _outData;
} }

View file

@ -1,12 +0,0 @@
{
"isDnD": false,
"isCompatibility": false,
"parent": {
"name": "generator",
"path": "folders/nodes/data/generator.yy",
},
"resourceVersion": "1.0",
"name": "node_checkerboard",
"tags": [],
"resourceType": "GMScript",
}

View file

@ -1,42 +0,0 @@
function Node_PB(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "PB Element";
icon = THEME.pixel_builder;
fullUpdate = true;
static getNextNodesRaw = getNextNodes;
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
if(drawOverlayPB != noone)
drawOverlayPB(active, _x, _y, _s, _mx, _my, _snx, _sny);
for( var i = 0; i < array_length(outputs); i++ ) {
if(outputs[i].type != VALUE_TYPE.pbBox) continue;
var _box = outputs[i].getValue();
if(!is_array(_box)) _box = [ _box ];
for( var j = 0; j < array_length(_box); j++ ) {
if(!is_instanceof(_box[j], __pbBox)) continue;
_box[j].drawOverlay(_x, _y, _s, c_red);
}
}
}
static drawOverlayPB = noone;
static getNextNodes = function(checkLoop = false) {
if(!struct_has(group, "checkComplete")) return [];
for( var i = 0; i < array_length(outputs); i++ ) {
var _ot = outputs[i];
var _tos = _ot.getJunctionTo();
if(array_length(_tos) > 0)
return getNextNodesRaw();
}
return group.checkComplete();
}
static getPreviewValues = function() { return group.outputs[0].getValue(); }
}

View file

@ -1,12 +0,0 @@
{
"isDnD": false,
"isCompatibility": false,
"parent": {
"name": "generator",
"path": "folders/nodes/data/generator.yy",
},
"resourceVersion": "1.0",
"name": "node_stripe",
"tags": [],
"resourceType": "GMScript",
}

View file

@ -1,5 +1,50 @@
function Node_PB_Box(_x, _y, _group = noone) : Node_PB(_x, _y, _group) constructor { function Node_PB_Box(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "PB Box"; name = "PBBox";
setDimension(96, 48);
newInput(0, nodeValue_Pbbox("Base PBBOX", self, new __pbBox()));
newInput(1, nodeValue_Pbbox("PBBOX", self, new __pbBox()));
newInput(2, nodeValue_Float("PBBOX Left", self, 0));
newInput(3, nodeValue_Float("PBBOX Top", self, 0));
newInput(4, nodeValue_Float("PBBOX Right", self, 0));
newInput(5, nodeValue_Float("PBBOX Bottom", self, 0));
newInput(6, nodeValue_Float("PBBOX Width", self, 0));
newInput(7, nodeValue_Float("PBBOX Height", self, 0));
newOutput(0, nodeValue_Output("PBBOX", self, VALUE_TYPE.pbBox, noone));
input_display_list = [
["Layout", false], 0, 1,
["Layout Override", true], 2, 3, 4, 5, 6, 7,
]
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
var _pbbox = getSingleValue(1);
if(is(_pbbox, __pbBox)) _pbbox.drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny, self);
}
static processData = function(_outSurf, _data, _output_index, _array_index) {
var _dim = group.dimension;
var _pbase = _data[0];
var _pbbox = _data[1];
if(inputs[0].value_from == noone) _pbase.base_bbox = [ 0, 0, _dim[0], _dim[1] ];
if(inputs[2].value_from != noone || inputs[2].is_anim) _pbbox.anchor_l = _data[2];
if(inputs[3].value_from != noone || inputs[3].is_anim) _pbbox.anchor_t = _data[3];
if(inputs[4].value_from != noone || inputs[4].is_anim) _pbbox.anchor_r = _data[4];
if(inputs[5].value_from != noone || inputs[5].is_anim) _pbbox.anchor_b = _data[5];
if(inputs[6].value_from != noone || inputs[6].is_anim) _pbbox.anchor_w = _data[6];
if(inputs[7].value_from != noone || inputs[7].is_anim) _pbbox.anchor_h = _data[7];
_pbbox.base_bbox = is(_pbase, __pbBox)? _pbase.getBBOX() : [ 0, 0, _dim[0], _dim[1] ];
return _pbbox;
}
static onDrawNode = function(xx, yy, _mx, _my, _s, _hover, _focus) {
var bbox = drawGetBbox(xx, yy, _s);
draw_sprite_fit(s_node_pb_box, 0, bbox.xc, bbox.yc, bbox.w, bbox.h);
}
newInput(0, nodeValue_Int("Layer Shift", self, 0 ))
} }

View file

@ -5,8 +5,8 @@
"isDnD":false, "isDnD":false,
"name":"node_pb_box", "name":"node_pb_box",
"parent":{ "parent":{
"name":"box", "name":"pbbox",
"path":"folders/nodes/data/pixel builder/box.yy", "path":"folders/nodes/data/PB/pbbox.yy",
}, },
"resourceType":"GMScript", "resourceType":"GMScript",
"resourceVersion":"2.0", "resourceVersion":"2.0",

View file

@ -0,0 +1,46 @@
function Node_PB_Box_BBOX(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "PBBOX Convert";
setDimension(96, 48);
newInput(0, nodeValue_Pbbox("PBBOX", self, new __pbBox()));
newOutput(0, nodeValue_Output("BBOX", self, VALUE_TYPE.float, [ 0, 0, 0, 0 ]))
.setDisplay(VALUE_DISPLAY.vector);
newOutput(1, nodeValue_Output("Area", self, VALUE_TYPE.float, [ 0, 0, 0, 0, 0 ]))
.setDisplay(VALUE_DISPLAY.area);
newOutput(2, nodeValue_Output("Width", self, VALUE_TYPE.float, 0))
.setVisible(false)
newOutput(3, nodeValue_Output("Height", self, VALUE_TYPE.float, 0))
.setVisible(false)
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
var _pbbox = getSingleValue(1);
if(is(_pbbox, __pbBox)) _pbbox.drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny, self);
}
static processData = function(_outSurf, _data, _output_index, _array_index) {
var _dim = group.dimension;
var _pbbox = _data[0];
var _bbox = _pbbox.getBBOX();
var _x0 = _bbox[0];
var _y0 = _bbox[1];
var _x1 = _bbox[2];
var _y1 = _bbox[3];
var _w = _x1 - _x0;
var _h = _y1 - _y0;
var _area = [ (_x0 + _x1) / 2, (_y0 + _y1) / 2, _w / 2, _h / 2, 0 ];
return [ _bbox, _area, _w, _h ];
}
static onDrawNode = function(xx, yy, _mx, _my, _s, _hover, _focus) {
var bbox = drawGetBbox(xx, yy, _s);
draw_sprite_fit(s_node_pb_box_bbox, 0, bbox.xc, bbox.yc, bbox.w, bbox.h);
}
}

View file

@ -1,12 +1,12 @@
{ {
"$GMScript":"v1", "$GMScript":"v1",
"%Name":"node_pb_fx", "%Name":"node_pb_box_bbox",
"isCompatibility":false, "isCompatibility":false,
"isDnD":false, "isDnD":false,
"name":"node_pb_fx", "name":"node_pb_box_bbox",
"parent":{ "parent":{
"name":"effect", "name":"pbbox",
"path":"folders/nodes/data/pixel builder/effect.yy", "path":"folders/nodes/data/PB/pbbox.yy",
}, },
"resourceType":"GMScript", "resourceType":"GMScript",
"resourceVersion":"2.0", "resourceVersion":"2.0",

View file

@ -1,134 +0,0 @@
function Node_PB_Box_Contract(_x, _y, _group = noone) : Node_PB_Box(_x, _y, _group) constructor {
name = "Split";
batch_output = false;
newInput(1, nodeValue("pBox", self, CONNECT_TYPE.input, VALUE_TYPE.pbBox, noone ))
.setVisible(true, true);
newInput(2, nodeValue_Enum_Scroll("Type", self, 0 , [ "Ratio", "Fix" ]));
newInput(3, nodeValue_Float("Ratio", self, 0.5 ))
.setDisplay(VALUE_DISPLAY.slider);
newInput(4, nodeValue_Int("Fix Width", self, 8 ))
newInput(5, nodeValue_Enum_Button("Axis", self, 0 , [ "X", "Y" ]));
newOutput(0, nodeValue_Output("pBox Center", self, VALUE_TYPE.pbBox, noone ));
newOutput(1, nodeValue_Output("pBox Side", self, VALUE_TYPE.pbBox, noone ));
input_display_list = [ 0, 1,
["Split", false], 5, 2, 3, 4,
]
static step = function() {
if(array_empty(current_data)) return;
var _typ = current_data[2];
var _axs = current_data[5];
inputs[3].setVisible(_typ == 0);
inputs[4].setVisible(_typ != 0);
if(_axs == 0) inputs[4].name = "Fix Width";
else inputs[4].name = "Fix Height";
}
static processData = function(_outSurf, _data, _output_index, _array_index) {
var _layr = _data[0];
var _pbox = _data[1];
var _type = _data[2];
var _rati = _data[3];
var _fixx = _data[4];
var _axis = _data[5];
if(_pbox == noone) return noone;
if(_axis == 0) {
var _w;
switch(_type) {
case 0 : _w = round(_pbox.w * _rati); break;
case 1 : _w = _fixx; break;
}
if(_output_index == 0) {
var _nbox = _pbox.clone();
_nbox.layer += _layr;
_nbox.x += (_nbox.w - _w) / 2;
_nbox.w = _w;
_nbox.content = surface_stretch(_nbox.content, _nbox.w, _nbox.h);
} else if(_output_index == 1) {
_pbox = [ _pbox.clone(), _pbox.clone() ];
_pbox[0].content = noone;
_pbox[1].content = noone;
_pbox[0].layer += _layr;
_pbox[1].layer += _layr;
_pbox[1].x += _w + (_pbox[0].w - _w) / 2;
_pbox[0].w = (_pbox[0].w - _w) / 2;
_pbox[1].w = (_pbox[1].w - _w) / 2;
_pbox[1].mirror_h = !_pbox[1].mirror_h;
}
} else {
var _h;
switch(_type) {
case 0 : _h = round(_pbox.h * _rati); break;
case 1 : _h = _fixx; break;
}
if(_output_index == 0) {
var _nbox = _pbox.clone();
_nbox.layer += _layr;
_nbox.y += (_nbox.h - _h) / 2;
_nbox.h = _h;
_nbox.content = surface_stretch(_nbox.content, _nbox.w, _nbox.h);
} else if(_output_index == 1) {
_pbox = [ _pbox.clone(), _pbox.clone() ];
_pbox[0].content = noone;
_pbox[1].content = noone;
_pbox[0].layer += _layr;
_pbox[1].layer += _layr;
_pbox[1].y += _h + (_pbox[0].h - _h) / 2;
_pbox[0].h = (_pbox[0].h - _h) / 2;
_pbox[1].h = (_pbox[1].h - _h) / 2;
_pbox[1].mirror_v = !_pbox[1].mirror_v;
}
}
return _pbox;
}
static onDrawNode = function(xx, yy, _mx, _my, _s, _hover, _focus) {
var _axs = current_data[5];
var bbox = drawGetBbox(xx, yy, _s)
.toSquare()
.pad(8);
draw_set_color(c_white);
draw_rectangle_border(bbox.x0, bbox.y0, bbox.x1, bbox.y1, 2);
if(_axs == 0) {
draw_line(bbox.x0 + 16, bbox.y0, bbox.x0 + 16, bbox.y1);
draw_line(bbox.x1 - 16, bbox.y0, bbox.x1 - 16, bbox.y1);
} else {
draw_line(bbox.x0, bbox.y0 + 16, bbox.x1, bbox.y0 + 16);
draw_line(bbox.x0, bbox.y1 - 16, bbox.x1, bbox.y1 - 16);
}
}
}

View file

@ -1,13 +0,0 @@
{
"$GMScript":"v1",
"%Name":"node_pb_box_contract",
"isCompatibility":false,
"isDnD":false,
"name":"node_pb_box_contract",
"parent":{
"name":"box",
"path":"folders/nodes/data/pixel builder/box.yy",
},
"resourceType":"GMScript",
"resourceVersion":"2.0",
}

View file

@ -1,155 +0,0 @@
function Node_PB_Box_Divide(_x, _y, _group = noone) : Node_PB_Box(_x, _y, _group) constructor {
name = "Divide";
batch_output = false;
newInput(1, nodeValue("pBox", self, CONNECT_TYPE.input, VALUE_TYPE.pbBox, noone ))
.setVisible(true, true);
newInput(2, nodeValue_Int("Amount", self, 2 ));
newInput(3, nodeValue_Int("Spacing", self, 1 ));
newInput(4, nodeValue_Enum_Button("Axis", self, 0 , [ "X", "Y" ]));
newInput(5, nodeValue_Bool("Mirror", self, 0 ))
newInput(6, nodeValue_Enum_Button("Spacing", self, 0 , [ "Space Between", "Space Around", "Begin", "End" ]));
newOutput(0, nodeValue_Output("pBox Content", self, VALUE_TYPE.pbBox, [ noone ] ));
newOutput(1, nodeValue_Output("pBox Space", self, VALUE_TYPE.pbBox, [ noone ] ));
input_display_list = [ 0, 1,
["Divide", false], 4, 2, 3, 6, 5,
]
static processData = function(_outSurf, _data, _output_index, _array_index) {
var _layr = _data[0];
var _pbox = _data[1];
var _amou = _data[2];
var _spac = _data[3];
var _axis = _data[4];
var _mirr = _data[5];
var _spacing = _data[6];
if(_pbox == noone) return noone;
if(_amou < 1) return noone;
var _res = noone;
if(_output_index == 0) _res = array_create(_amou);
else if(_output_index == 1) _res = array_create(_amou - 1);
var _spAmo = _amou;
switch(_spacing) {
case 0 : _spAmo = _amou - 1; break;
case 1 : _spAmo = _amou + 1; break;
case 2 : _spAmo = _amou; break;
case 3 : _spAmo = _amou; break;
}
if(_axis == 0) {
var _ww = (_pbox.w - _spac * _spAmo) / _amou;
if(_output_index == 0)
for( var i = 0; i < _amou; i++ ) {
_res[i] = _pbox.clone();
_res[i].layer += _layr;
var _sx = _pbox.x;
if(_spacing == 1 || _spacing == 2)
_sx += _spac;
_res[i].x = _sx + i * (_ww + _spac);
_res[i].w = _ww;
_res[i].mask = surface_stretch(_res[i].mask, _res[i].w, _res[i].h);
_res[i].content = surface_stretch(_res[i].content, _res[i].w, _res[i].h);
if(_mirr && i % 2) {
_res[i].mirror_h = !_res[i].mirror_h;
_res[i].mask = surface_mirror(_res[i].mask, true, false);
_res[i].content = surface_mirror(_res[i].content, true, false);
}
}
if(_output_index == 1)
for( var i = 0; i < _spAmo; i++ ) {
_res[i] = _pbox.clone();
_res[i].mask = noone;
_res[i].layer += _layr;
var _sx = 0;
if(_spacing == 0 || _spacing == 3)
_sx += _ww + _pbox.x;
_res[i].x = _sx + i * (_ww + _spac);
_res[i].w = _spac;
}
} else {
var _hh = (_pbox.h - _spac * _spAmo) / _amou;
if(_output_index == 0)
for( var i = 0; i < _amou; i++ ) {
_res[i] = _pbox.clone();
_res[i].layer += _layr;
var _sy = _pbox.y;
if(_spacing == 1 || _spacing == 2)
_sy += _spac;
_res[i].y = _sy + i * (_hh + _spac);
_res[i].h = _hh;
_res[i].mask = surface_stretch(_res[i].mask, _res[i].w, _res[i].h);
_res[i].content = surface_stretch(_res[i].content, _res[i].w, _res[i].h);
if(_mirr && i % 2) {
_res[i].mirror_v = !_res[i].mirror_v;
_res[i].mask = surface_mirror(_res[i].mask, false, true);
_res[i].content = surface_mirror(_res[i].content, false, true);
}
}
if(_output_index == 1)
for( var i = 0; i < _spAmo; i++ ) {
_res[i] = _pbox.clone();
_res[i].mask = noone;
_res[i].layer += _layr;
var _sy = 0;
if(_spacing == 0 || _spacing == 3)
_sy += _hh + _pbox.y;
_res[i].y = _sy + i * (_hh + _spac);
_res[i].h = _spac;
}
}
return _res;
}
static onDrawNode = function(xx, yy, _mx, _my, _s, _hover, _focus) {
var _axis = current_data[4];
var bbox = drawGetBbox(xx, yy, _s)
.toSquare()
.pad(8);
draw_set_color(c_white);
draw_rectangle_border(bbox.x0, bbox.y0, bbox.x1, bbox.y1, 2);
if(_axis == 0) {
draw_line(lerp(bbox.x0, bbox.x1, 1 / 3) - 2, bbox.y0, lerp(bbox.x0, bbox.x1, 1 / 3) - 2, bbox.y1);
draw_line(lerp(bbox.x0, bbox.x1, 1 / 3) + 2, bbox.y0, lerp(bbox.x0, bbox.x1, 1 / 3) + 2, bbox.y1);
draw_line(lerp(bbox.x0, bbox.x1, 2 / 3) - 2, bbox.y0, lerp(bbox.x0, bbox.x1, 2 / 3) - 2, bbox.y1);
draw_line(lerp(bbox.x0, bbox.x1, 2 / 3) + 2, bbox.y0, lerp(bbox.x0, bbox.x1, 2 / 3) + 2, bbox.y1);
} else {
draw_line(bbox.x0, lerp(bbox.y0, bbox.y1, 1 / 3) - 2, bbox.x1, lerp(bbox.y0, bbox.y1, 1 / 3) - 2);
draw_line(bbox.x0, lerp(bbox.y0, bbox.y1, 1 / 3) + 2, bbox.x1, lerp(bbox.y0, bbox.y1, 1 / 3) + 2);
draw_line(bbox.x0, lerp(bbox.y0, bbox.y1, 2 / 3) - 2, bbox.x1, lerp(bbox.y0, bbox.y1, 2 / 3) - 2);
draw_line(bbox.x0, lerp(bbox.y0, bbox.y1, 2 / 3) + 2, bbox.x1, lerp(bbox.y0, bbox.y1, 2 / 3) + 2);
}
}
}

View file

@ -1,13 +0,0 @@
{
"$GMScript":"v1",
"%Name":"node_pb_box_divide",
"isCompatibility":false,
"isDnD":false,
"name":"node_pb_box_divide",
"parent":{
"name":"box",
"path":"folders/nodes/data/pixel builder/box.yy",
},
"resourceType":"GMScript",
"resourceVersion":"2.0",
}

View file

@ -1,79 +0,0 @@
function Node_PB_Box_Divide_Grid(_x, _y, _group = noone) : Node_PB_Box(_x, _y, _group) constructor {
name = "Divide Grid";
newInput(1, nodeValue("pBox", self, CONNECT_TYPE.input, VALUE_TYPE.pbBox, noone ))
.setVisible(true, true);
newInput(2, nodeValue_Vec2("Amount", self, [ 2, 2 ] ));
newInput(3, nodeValue_Int("Spacing", self, 1 ));
newInput(4, nodeValue_Bool("Mirror", self, 0 ))
newOutput(0, nodeValue_Output("pBox", self, VALUE_TYPE.pbBox, [ noone ] ));
input_display_list = [ 0, 1,
["Divide", false], 2, 3, 4,
]
static processData = function(_outSurf, _data, _output_index, _array_index) {
var _layr = _data[0];
var _pbox = _data[1];
var _amou = _data[2];
var _spac = _data[3];
var _mirr = _data[4];
if(_pbox == noone) return noone;
var _amo = _amou[0] * _amou[1];
if(_amo < 1) return;
var _res = array_create(_amo);
var _ww = (_pbox.w - _spac * (_amou[0] - 1)) / _amou[0];
var _hh = (_pbox.h - _spac * (_amou[1] - 1)) / _amou[1];
for( var i = 0; i < _amou[1]; i++ )
for( var j = 0; j < _amou[0]; j++ ) {
var _ind = i * _amou[0] + j;
_res[_ind] = _pbox.clone();
_res[_ind].layer += _layr;
_res[_ind].x = _pbox.x + j * (_ww + _spac);
_res[_ind].w = _ww;
_res[_ind].y = _pbox.y + i * (_hh + _spac);
_res[_ind].h = _hh;
_res[_ind].mask = surface_stretch(_res[_ind].mask, _res[_ind].w, _res[_ind].h);
if(_mirr && j % 2) {
_res[_ind].mirror_h = !_res[_ind].mirror_h;
_res[_ind].mask = surface_mirror(_res[_ind].mask, true, false);
_res[_ind].content = surface_mirror(_res[_ind].content, true, false);
}
if(_mirr && i % 2) {
_res[_ind].mirror_v = !_res[_ind].mirror_v;
_res[_ind].mask = surface_mirror(_res[_ind].mask, false, true);
_res[_ind].content = surface_mirror(_res[_ind].content, false, true);
}
}
return _res;
}
static onDrawNode = function(xx, yy, _mx, _my, _s, _hover, _focus) {
var bbox = drawGetBbox(xx, yy, _s)
.toSquare()
.pad(4);
draw_set_color(c_white);
draw_rectangle_border(bbox.x0, bbox.y0, bbox.x1, bbox.y1, 2);
draw_rectangle_border(bbox.x0, bbox.y0, bbox.xc - 2, bbox.yc - 2, 1);
draw_rectangle_border(bbox.xc + 2, bbox.y0, bbox.x1, bbox.yc - 2, 1);
draw_rectangle_border(bbox.x0, bbox.yc + 2, bbox.xc - 2, bbox.y1, 1);
draw_rectangle_border(bbox.xc + 2, bbox.yc + 2, bbox.x1, bbox.y1, 1);
}
}

View file

@ -1,13 +0,0 @@
{
"$GMScript":"v1",
"%Name":"node_pb_box_divide_grid",
"isCompatibility":false,
"isDnD":false,
"name":"node_pb_box_divide_grid",
"parent":{
"name":"box",
"path":"folders/nodes/data/pixel builder/box.yy",
},
"resourceType":"GMScript",
"resourceVersion":"2.0",
}

View file

@ -1,153 +0,0 @@
function Node_PB_Box_Inset(_x, _y, _group = noone) : Node_PB_Box(_x, _y, _group) constructor {
name = "Inset";
batch_output = false;
newInput(1, nodeValue("pBox", self, CONNECT_TYPE.input, VALUE_TYPE.pbBox, noone ))
.setVisible(true, true);
newInput(2, nodeValue_Padding("Inset", self, [ 2, 2, 2, 2 ] ));
newInput(3, nodeValue_Enum_Scroll("Type", self, 0 , [ "Padding", "Ratio" ]));
newInput(4, nodeValue_Float("Width", self, 0.5 ))
.setDisplay(VALUE_DISPLAY.slider);
newInput(5, nodeValue_Float("Height", self, 0.5 ))
.setDisplay(VALUE_DISPLAY.slider);
newInput(6, nodeValue_Float("Horizontal alignment", self, 0.5 ))
.setDisplay(VALUE_DISPLAY.slider);
newInput(7, nodeValue_Float("Vertical alignment", self, 0.5 ))
.setDisplay(VALUE_DISPLAY.slider);
newOutput(0, nodeValue_Output("pBox Inset", self, VALUE_TYPE.pbBox, noone ));
newOutput(1, nodeValue_Output("pBox Frame", self, VALUE_TYPE.pbBox, noone ));
input_display_list = [ 0, 1,
["Inset", false], 3, 2, 4, 5, 6, 7,
]
static step = function() {
if(array_empty(current_data)) return;
var _type = current_data[3];
inputs[2].setVisible(_type == 0);
inputs[4].setVisible(_type == 1);
inputs[5].setVisible(_type == 1);
inputs[6].setVisible(_type == 1);
inputs[7].setVisible(_type == 1);
}
static processData = function(_outSurf, _data, _output_index, _array_index) {
var _layr = _data[0];
var _pbox = _data[1];
var _inst = _data[2];
var _type = _data[3];
var _widt = _data[4];
var _high = _data[5];
var _hali = _data[6];
var _vali = _data[7];
if(_pbox == noone) return noone;
var _nbox = _pbox.clone();
var x0, y0, w, h;
if(_type == 0) {
if(_nbox.mirror_h) x0 = _nbox.x + _inst[0];
else x0 = _nbox.x + _inst[2];
if(_nbox.mirror_v) y0 = _nbox.y + _inst[3];
else y0 = _nbox.y + _inst[1];
w = _nbox.w - (_inst[0] + _inst[2]);
h = _nbox.h - (_inst[1] + _inst[3]);
} else if(_type == 1) {
w = round(_nbox.w * _widt);
h = round(_nbox.h * _high);
x0 = round(_nbox.x + (_nbox.w - w) * (_nbox.mirror_h? 1. - _hali : _hali));
y0 = round(_nbox.y + (_nbox.h - h) * (_nbox.mirror_v? 1. - _vali : _vali));
}
if(_output_index == 0) {
_nbox.layer += _layr;
_nbox.x = x0;
_nbox.y = y0;
_nbox.w = w;
_nbox.h = h;
if(is_surface(_pbox.mask)) {
if(_type == 0) {
_nbox.mask = surface_verify(_nbox.mask, _nbox.w, _nbox.h);
surface_set_shader(_nbox.mask, sh_pb_mask_inset);
shader_set_dim(, _pbox.mask);
shader_set_f("inset", _inst);
draw_surface_safe(_pbox.mask, -_inst[2], -_inst[1]);
surface_reset_shader();
} else if(_type == 1)
_nbox.mask = surface_stretch(_pbox.mask, _nbox.w, _nbox.h);
}
if(is_surface(_pbox.content)) {
if(_type == 0) {
_nbox.content = surface_verify(_nbox.content, _nbox.w, _nbox.h);
surface_set_shader(_nbox.content, sh_pb_mask_inset);
shader_set_dim(, _pbox.content);
shader_set_f("inset", _inst);
draw_surface_safe(_pbox.content, -_inst[2], -_inst[1]);
surface_reset_shader();
} else if(_type == 1)
_nbox.content = surface_stretch(_pbox.content, _nbox.w, _nbox.h);
}
} else if(_output_index == 1) {
_nbox.mask = surface_create_valid(_nbox.w, _nbox.h);
_nbox.content = surface_create_valid(_nbox.w, _nbox.h);
var _x = x0 - _nbox.x;
var _y = y0 - _nbox.y;
var _w = w;
var _h = h;
surface_set_target(_nbox.mask);
if(is_surface(_pbox.mask)) {
draw_clear_alpha(0, 0);
draw_surface_safe(_pbox.mask);
} else
draw_clear(c_white);
var _msk = outputs[0].getValue();
if(is_array(_msk)) _msk = array_safe_get_fast(_msk, _array_index);
BLEND_SUBTRACT
if(is_surface(_msk.mask))
draw_surface_safe(_msk.mask, _x, _y);
else {
draw_set_color(c_white);
draw_rectangle(_x, _y, _x + _w - 1, _y + _h - 1, false);
}
BLEND_NORMAL
surface_reset_target();
}
return _nbox;
}
static onDrawNode = function(xx, yy, _mx, _my, _s, _hover, _focus) {
var bbox = drawGetBbox(xx, yy, _s)
.toSquare()
.pad(8);
draw_set_color(c_white);
draw_rectangle_border(bbox.x0, bbox.y0, bbox.x1, bbox.y1, 2);
bbox.pad(8);
draw_rectangle_border(bbox.x0, bbox.y0, bbox.x1, bbox.y1, 1);
}
}

View file

@ -1,13 +0,0 @@
{
"$GMScript":"v1",
"%Name":"node_pb_box_inset",
"isCompatibility":false,
"isDnD":false,
"name":"node_pb_box_inset",
"parent":{
"name":"box",
"path":"folders/nodes/data/pixel builder/box.yy",
},
"resourceType":"GMScript",
"resourceVersion":"2.0",
}

View file

@ -1,52 +1,95 @@
function Node_PB_Box_Mirror(_x, _y, _group = noone) : Node_PB_Box(_x, _y, _group) constructor { function Node_PB_Box_Mirror(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Mirror"; name = "PBBox Mirror";
setDimension(96, 48);
newInput(1, nodeValue("pBox", self, CONNECT_TYPE.input, VALUE_TYPE.pbBox, noone )) newInput(0, nodeValue_Pbbox("Mirror PBBOX", self, new __pbBox()));
.setVisible(true, true);
newInput(2, nodeValue_Bool("Horizontal", self, false ));
newInput(3, nodeValue_Bool("Vertical", self, false ));
newOutput(0, nodeValue_Output("pBox", self, VALUE_TYPE.pbBox, noone ));
input_display_list = [ 0, 1, newInput(1, nodeValue_Pbbox("PBBOX", self, new __pbBox()));
["Mirror", false], 2, 3,
newInput(2, nodeValue_Toggle("Axis", self, 0, { data: [ "X", "Y" ] }));
newOutput(0, nodeValue_Output("PBBOX", self, VALUE_TYPE.pbBox, noone));
input_display_list = [
["Layout", false], 0, 1,
["Mirror", false], 2,
] ]
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
var _pbase = getSingleValue(0);
var _pbbox = getSingleValue(1);
var _axis = getSingleValue(2);
if(is(_pbase, __pbBox)) {
draw_set_color(COLORS._main_icon);
_pbase.drawOverlayBBOX(hover, active, _x, _y, _s, _mx, _my, _snx, _sny, self);
var _basebox = _pbase.getBBOX();
if(_axis & 0b01) {
var _mr = (_basebox[0] + _basebox[2]) / 2;
draw_line_dashed(
_x + _s * _mr,
_y + _s * _basebox[1],
_x + _s * _mr,
_y + _s * _basebox[3],
);
}
if(_axis & 0b10) {
var _mr = (_basebox[1] + _basebox[3]) / 2;
draw_line_dashed(
_x + _s * _basebox[0],
_y + _s * _mr,
_x + _s * _basebox[2],
_y + _s * _mr,
);
}
}
if(is(_pbbox, __pbBox)) {
draw_set_color(COLORS._main_icon_light);
_pbbox.drawOverlayBBOX(hover, active, _x, _y, _s, _mx, _my, _snx, _sny, self);
}
var _pbres = getSingleValue(0,, true);
if(is(_pbres, __pbBox)) _pbres.drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny, self);
}
static processData = function(_outSurf, _data, _output_index, _array_index) { static processData = function(_outSurf, _data, _output_index, _array_index) {
var _layr = _data[0]; var _dim = group.dimension;
var _pbox = _data[1]; var _pbase = _data[0];
var _hori = _data[2]; var _pbbox = _data[1];
var _vert = _data[3]; var _axis = _data[2];
if(_pbox == noone) return noone; if(inputs[0].value_from == noone) _pbase.base_bbox = [ 0, 0, _dim[0], _dim[1] ];
var _basebox = _pbase.getBBOX();
var _forebox = _pbbox.getBBOX();
var _mirrbox = array_clone(_forebox);
_pbox = _pbox.clone(); if(_axis & 0b01) {
_pbox.layer += _layr; var _mr = (_basebox[0] + _basebox[2]) / 2;
if(_hori) { _mirrbox[0] = _forebox[2] + (_mr - _forebox[2]) * 2;
_pbox.mirror_h = !_pbox.mirror_h; _mirrbox[2] = _forebox[0] + (_mr - _forebox[0]) * 2;
_pbox.mask = surface_mirror(_pbox.mask, true, false);
_pbox.content = surface_mirror(_pbox.content, true, false);
} }
if(_vert) { if(_axis & 0b10) {
_pbox.mirror_v = !_pbox.mirror_v; var _mr = (_basebox[1] + _basebox[3]) / 2;
_pbox.mask = surface_mirror(_pbox.mask, false, true);
_pbox.content = surface_mirror(_pbox.content, false, true); _mirrbox[1] = _forebox[3] + (_mr - _forebox[3]) * 2;
_mirrbox[3] = _forebox[1] + (_mr - _forebox[1]) * 2;
} }
return _pbox; var _mbox = _pbbox.clone();
_mbox.setBBOX(_mirrbox);
return _mbox;
} }
static onDrawNode = function(xx, yy, _mx, _my, _s, _hover, _focus) { static onDrawNode = function(xx, yy, _mx, _my, _s, _hover, _focus) {
var bbox = drawGetBbox(xx, yy, _s) var bbox = drawGetBbox(xx, yy, _s);
.toSquare() draw_sprite_fit(s_node_pb_box_mirror, 0, bbox.xc, bbox.yc, bbox.w, bbox.h);
.pad(8);
draw_set_color(c_white);
draw_rectangle_border(bbox.x0, bbox.y0, bbox.x1, bbox.y1, 2);
} }
} }

View file

@ -5,9 +5,10 @@
"isDnD":false, "isDnD":false,
"name":"node_pb_box_mirror", "name":"node_pb_box_mirror",
"parent":{ "parent":{
"name":"box", "name":"pbbox",
"path":"folders/nodes/data/pixel builder/box.yy", "path":"folders/nodes/data/PB/pbbox.yy",
}, },
"resourceType":"GMScript", "resourceType":"GMScript",
"resourceVersion":"2.0", "resourceVersion":"2.0",
"tags":[],
} }

View file

@ -1,202 +0,0 @@
function Node_PB_Box_Split(_x, _y, _group = noone) : Node_PB_Box(_x, _y, _group) constructor {
name = "Split";
batch_output = false;
newInput(1, nodeValue("pBox", self, CONNECT_TYPE.input, VALUE_TYPE.pbBox, noone ))
.setVisible(true, true);
newInput(2, nodeValue_Enum_Scroll("Type", self, 0 , [ "Ratio", "Fix Left", "Fix Right" ]));
newInput(3, nodeValue_Float("Ratio", self, 0.5 ))
.setDisplay(VALUE_DISPLAY.slider);
newInput(4, nodeValue_Int("Fix width", self, 8 ))
newInput(5, nodeValue_Enum_Button("Axis", self, 0 , [ "X", "Y" ]));
newInput(6, nodeValue_Bool("Mirror", self, 0 ))
newOutput(0, nodeValue_Output("pBox Left", self, VALUE_TYPE.pbBox, noone ));
newOutput(1, nodeValue_Output("pBox Right", self, VALUE_TYPE.pbBox, noone ));
input_display_list = [ 0, 1,
["Split", false], 5, 2, 3, 4, 6,
]
static step = function() {
if(array_empty(current_data)) return noone;
var _typ = current_data[2];
var _axs = current_data[5];
inputs[3].setVisible(_typ == 0);
inputs[4].setVisible(_typ != 0);
if(_axs == 0) {
inputs[2].editWidget.data_list = [ "Ratio", "Fix Left", "Fix Right" ];
inputs[4].name = "Fix Width";
} else {
inputs[2].editWidget.data_list = [ "Ratio", "Fix Up", "Fix Down" ];
inputs[4].name = "Fix Height";
}
}
static processData = function(_outSurf, _data, _output_index, _array_index) {
var _layr = _data[0];
var _pbox = _data[1];
var _type = _data[2];
var _rati = _data[3];
var _fixx = _data[4];
var _axis = _data[5];
var _mirr = _data[6];
if(_pbox == noone) return noone;
var _nbox = _pbox.clone();
_nbox.layer += _layr;
if(_axis == 0) {
var _w;
switch(_type) {
case 0 : _w = _nbox.w * _rati; break;
case 1 : _w = _fixx; break;
case 2 : _w = _nbox.w - _fixx; break;
}
if(_nbox.mirror_h) {
_output_index = !_output_index;
_w = _nbox.w - _w;
}
if(_output_index == 0) {
_nbox.w = round(_w);
if(is_surface(_pbox.mask)) {
_nbox.mask = surface_verify(_nbox.mask, _nbox.w, _nbox.h);
surface_set_target(_nbox.mask);
DRAW_CLEAR
draw_surface_safe(_pbox.mask);
surface_reset_target();
}
if(is_surface(_pbox.content)) {
_nbox.content = surface_verify(_nbox.content, _nbox.w, _nbox.h);
surface_set_target(_nbox.content);
DRAW_CLEAR
draw_surface_safe(_pbox.content);
surface_reset_target();
}
} else if(_output_index == 1) {
_w = _nbox.w - _w;
var shf = _nbox.w - round(_w);
_nbox.x += shf;
_nbox.w = round(_w);
if(_mirr) _nbox.mirror_h = !_nbox.mirror_h;
if(is_surface(_pbox.mask)) {
_nbox.mask = surface_verify(_nbox.mask, _nbox.w, _nbox.h);
surface_set_target(_nbox.mask);
DRAW_CLEAR
if(_mirr)
draw_surface_ext_safe(_pbox.mask, _nbox.w + shf, 0, -1, 1, 0, c_white, 1);
else
draw_surface_safe(_pbox.mask, -shf, 0);
surface_reset_target();
}
if(is_surface(_pbox.content)) {
_nbox.content = surface_verify(_nbox.content, _nbox.w, _nbox.h);
surface_set_target(_nbox.content);
DRAW_CLEAR
if(_mirr)
draw_surface_ext_safe(_pbox.content, _nbox.w + shf, 0, -1, 1, 0, c_white, 1);
else
draw_surface_safe(_pbox.content, -shf, 0);
surface_reset_target();
}
}
} else {
var _h;
switch(_type) {
case 0 : _h = _nbox.h * _rati; break;
case 1 : _h = _fixx; break;
case 2 : _h = _nbox.h - _fixx; break;
}
if(_nbox.mirror_v) {
_output_index = !_output_index;
_h = _nbox.h - _h;
}
if(_output_index == 0) {
_nbox.h = round(_h);
if(is_surface(_pbox.mask)) {
_nbox.mask = surface_verify(_nbox.mask, _nbox.w, _nbox.h);
surface_set_target(_nbox.mask);
DRAW_CLEAR
draw_surface_safe(_pbox.mask);
surface_reset_target();
}
if(is_surface(_pbox.content)) {
_nbox.content = surface_verify(_nbox.content, _nbox.w, _nbox.h);
surface_set_target(_nbox.content);
DRAW_CLEAR
draw_surface_safe(_pbox.content);
surface_reset_target();
}
} else if(_output_index == 1) {
_h = _nbox.h - _h;
var shf = _nbox.h - round(_h);
_nbox.y += shf;
_nbox.h = round(_h);
if(_mirr) _nbox.mirror_v = !_nbox.mirror_v;
if(is_surface(_pbox.mask)) {
_nbox.mask = surface_verify(_nbox.mask, _nbox.w, _nbox.h);
surface_set_target(_nbox.mask);
DRAW_CLEAR
if(_mirr)
draw_surface_ext_safe(_pbox.mask, 0, _nbox.h + shf, 1, -1, 0, c_white, 1);
else
draw_surface_safe(_pbox.mask, 0, -shf);
surface_reset_target();
}
if(is_surface(_pbox.content)) {
_nbox.content = surface_verify(_nbox.content, _nbox.w, _nbox.h);
surface_set_target(_nbox.content);
DRAW_CLEAR
if(_mirr)
draw_surface_ext_safe(_pbox.content, 0, _nbox.h + shf, 1, -1, 0, c_white, 1);
else
draw_surface_safe(_pbox.content, 0, -shf);
surface_reset_target();
}
}
}
return _nbox;
}
static onDrawNode = function(xx, yy, _mx, _my, _s, _hover, _focus) {
var _axs = current_data[5];
var bbox = drawGetBbox(xx, yy, _s)
.toSquare()
.pad(8);
draw_set_color(c_white);
draw_rectangle_border(bbox.x0, bbox.y0, bbox.x1, bbox.y1, 2);
if(_axs == 0) draw_line(bbox.xc, bbox.y0, bbox.xc, bbox.y1);
else draw_line(bbox.x0, bbox.yc, bbox.x1, bbox.yc);
}
}

View file

@ -1,44 +0,0 @@
function Node_PB_Box_Transform(_x, _y, _group = noone) : Node_PB_Box(_x, _y, _group) constructor {
name = "Transform";
newInput(1, nodeValue("pBox", self, CONNECT_TYPE.input, VALUE_TYPE.pbBox, noone ))
.setVisible(true, true);
newInput(2, nodeValue_Vec2("Translate", self, [ 0, 0 ] ));
newOutput(0, nodeValue_Output("pBox", self, VALUE_TYPE.pbBox, noone ));
input_display_list = [ 0, 1,
["Translate", false], 2,
]
static drawOverlayPB = function(active, _x, _y, _s, _mx, _my, _snx, _sny) {
inputs[2].drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
}
static processData = function(_outSurf, _data, _output_index, _array_index) {
var _layr = _data[0];
var _pbox = _data[1];
var _tran = _data[2];
if(_pbox == noone) return noone;
_pbox = _pbox.clone();
_pbox.layer += _layr;
_pbox.x += _tran[0];
_pbox.y += _tran[1];
return _pbox;
}
static onDrawNode = function(xx, yy, _mx, _my, _s, _hover, _focus) {
var bbox = drawGetBbox(xx, yy, _s)
.toSquare()
.pad(8);
draw_set_color(c_white);
draw_rectangle_border(bbox.x0, bbox.y0, bbox.x1, bbox.y1, 2);
}
}

View file

@ -1,13 +0,0 @@
{
"$GMScript":"v1",
"%Name":"node_pb_box_transform",
"isCompatibility":false,
"isDnD":false,
"name":"node_pb_box_transform",
"parent":{
"name":"box",
"path":"folders/nodes/data/pixel builder/box.yy",
},
"resourceType":"GMScript",
"resourceVersion":"2.0",
}

View file

@ -0,0 +1,30 @@
function Node_PB_Crop_PBBOX(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Crop PBBOX";
newInput(0, nodeValue_Surface("Surface", self, noone));
newInput(1, nodeValue_Pbbox("PBBOX", self, new __pbBox()));
newOutput(0, nodeValue_Output("Surface", self, VALUE_TYPE.surface, noone));
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
var _pbbox = getSingleValue(1);
if(is(_pbbox, __pbBox)) _pbbox.drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny, self);
}
static processData = function(_outSurf, _data, _output_index, _array_index) {
var _surf = _data[0];
var _pbbox = _data[1];
var _bbox = _pbbox.getBBOX();
var _ww = _bbox[2] - _bbox[0];
var _hh = _bbox[3] - _bbox[1];
_outSurf = surface_verify(_outSurf, _ww, _hh);
surface_set_shader(_outSurf);
draw_surface_safe(_surf, -_bbox[0], -_bbox[1])
surface_reset_target();
return _outSurf;
}
}

View file

@ -0,0 +1,14 @@
{
"$GMScript":"v1",
"%Name":"node_pb_crop_pbbox",
"isCompatibility":false,
"isDnD":false,
"name":"node_pb_crop_pbbox",
"parent":{
"name":"modify",
"path":"folders/nodes/data/PB/modify.yy",
},
"resourceType":"GMScript",
"resourceVersion":"2.0",
"tags":[],
}

View file

@ -0,0 +1,11 @@
function Node_PB_Dimension(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
name = "Dimension";
setDimension(96, 48);
newOutput(0, nodeValue_Output("Dimension", self, VALUE_TYPE.float, [ 1, 1 ] ))
.setDisplay(VALUE_DISPLAY.vector);
static update = function() {
outputs[0].setValue(group.dimension);
}
}

View file

@ -1,12 +1,12 @@
{ {
"$GMScript":"v1", "$GMScript":"v1",
"%Name":"node_pb_layer", "%Name":"node_pb_dimension",
"isCompatibility":false, "isCompatibility":false,
"isDnD":false, "isDnD":false,
"name":"node_pb_layer", "name":"node_pb_dimension",
"parent":{ "parent":{
"name":"box", "name":"main",
"path":"folders/nodes/data/pixel builder/box.yy", "path":"folders/nodes/data/PB/main.yy",
}, },
"resourceType":"GMScript", "resourceType":"GMScript",
"resourceVersion":"2.0", "resourceVersion":"2.0",

View file

@ -1,35 +1,205 @@
function Node_PB_Draw(_x, _y, _group = noone) : Node_PB(_x, _y, _group) constructor { function Node_PB_Draw(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "PB Draw"; name = "PB Draw";
preview_channel = 1;
newInput(0, nodeValue("pBox", self, CONNECT_TYPE.input, VALUE_TYPE.pbBox, noone )) newInput(0, nodeValue_Pbbox("Base PBBOX", self, new __pbBox()));
.setVisible(true, true); inputs[0].editWidget = noone;
newInput(1, nodeValue_Color("Color", self, cola(c_white) )); newInput(1, nodeValue_Pbbox("PBBOX", self, new __pbBox()));
newInput(2, nodeValue_Bool("Apply Mask", self, true )); newInput(2, nodeValue_f("PBBOX Left", self, 0));
newInput(3, nodeValue_f("PBBOX Top", self, 0));
newInput(4, nodeValue_f("PBBOX Right", self, 0));
newInput(5, nodeValue_f("PBBOX Bottom", self, 0));
newInput(6, nodeValue_f("PBBOX Width", self, 0));
newInput(7, nodeValue_f("PBBOX Height", self, 0));
newOutput(0, nodeValue_Output("pBox", self, VALUE_TYPE.pbBox, noone)); newInput( 8, nodeValue_b( "Fill", self, true));
newInput( 9, nodeValue_c( "Color", self, cola(c_white))).setInternalName("Fill Color");
static getGraphPreviewSurface = function() { newInput(10, nodeValue_b( "Stroke", self, false));
var _nbox = outputs[0].getValue(); newInput(11, nodeValue_i( "Thickness", self, 1));
if(_nbox == noone) return noone; newInput(12, nodeValue_c( "Color", self, cola(c_white))).setInternalName("Stroke Color");
if(is_array(_nbox)) { newInput(13, nodeValue_eb( "Position", self, 0, array_create(3, THEME.stroke_position) ));
if(array_empty(_nbox)) return noone; newInput(14, nodeValue_eb( "Corner", self, 0, array_create(2, THEME.stroke_profile) ));
_nbox = _nbox[0];
newInput(15, nodeValue_es( "Pattern", self, 0, [ "Solid", "Stripe X", "Stripe Y", "Checker", "Dotted" ] )).setInternalName("Fill Pattern");
newInput(16, nodeValue_c( "Pattern Color", self, cola(c_white))).setInternalName("Fill Pattern Color");
newInput(17, nodeValue_s( "Pattern Intensity", self, 1)).setInternalName("Fill Pattern Intensity");
newInput(18, nodeValue_2( "Pattern Scale", self, [1,1])).setInternalName("Fill Pattern Scale");
newInput(19, nodeValue_es( "Pattern", self, 0, [ "Solid", "Stripe X", "Stripe Y", "Checker", "Layered" ] )).setInternalName("Stroke Pattern");
newInput(20, nodeValue_c( "Pattern Color", self, cola(c_white))).setInternalName("Stroke Pattern Color");
newInput(21, nodeValue_s( "Pattern Intensity", self, 1)).setInternalName("Stroke Pattern Intensity");
newInput(22, nodeValue_2( "Pattern Scale", self, [1,1])).setInternalName("Stroke Pattern Scale");
newInput(23, nodeValue_b( "Corner", self, false));
newInput(24, nodeValue_i( "Radius", self, 1));
newInput(25, nodeValue_c( "Color", self, cola(c_white))).setInternalName("Corner Color");
newInput(26, nodeValue_es( "Apply", self, 0, [ "Fill", "Stroke" ] )).setInternalName("Corner Effect");
newInput(27, nodeValue_b( "Highlight", self, false));
newInput(28, nodeValue_i( "Width", self, [ 0, 0, 0, 0 ])).setDisplay(VALUE_DISPLAY.padding).setInternalName("Highlight Width");
newInput(29, nodeValue_c( "Color Left", self, cola(c_white))).setInternalName("Corner Color");
newInput(30, nodeValue_c( "Color Right", self, cola(c_white))).setInternalName("Corner Color");
newInput(31, nodeValue_c( "Color Top", self, cola(c_white))).setInternalName("Corner Color");
newInput(32, nodeValue_c( "Color Bottom", self, cola(c_white))).setInternalName("Corner Color");
newInput(33, nodeValue_b( "Subtract", self, false));
////////////////////////////////////////////////////////////////////////////////
newOutput(0, nodeValue_Output("PBBOX", self, VALUE_TYPE.pbBox, noone));
newOutput(1, nodeValue_Output("Surface Out", self, VALUE_TYPE.surface, noone));
var _sep = new Inspector_Spacer(ui(4), true, true, ui(4));
pbi = array_length(inputs);
input_display_list = [
["Layout", false], 0, 1,
["Layout Override", true], 2, 3, 4, 5, 6, 7,
]
input_display_shape_index = array_length(input_display_list);
array_append(input_display_list, [
["Fill", false, 8], 9, _sep, 15, 18, 16, 17,
["Stroke", false, 10], 11, 13, 14, 12, _sep, 19, 22, 20, 21,
["Corner", true, 23], 24, 25, 26, 33,
["Highlight", true, 27], 28, 29, 30, 31, 32,
]);
temp_surfaces = [ 0 ];
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
var _pbase = getSingleValue(0);
var _pbbox = getSingleValue(1);
if(is(_pbase, __pbBox)) {
draw_set_color(COLORS._main_icon);
_pbase.drawOverlayBBOX(hover, active, _x, _y, _s, _mx, _my, _snx, _sny, self);
} }
return _nbox.content; if(is(_pbbox, __pbBox)) _pbbox.drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny, self);
} }
}
static getBBOX = function(_data) {
#macro PB_DRAW_CREATE_MASK _nbox.mask = surface_verify(_nbox.mask, _nbox.w, _nbox.h); \ var _dim = group.dimension;
surface_set_shader(_nbox.mask, sh_pb_to_mask); \ var _pbase = _data[0];
draw_surface_safe(_nbox.content); \ var _pbbox = _data[1];
if(inputs[0].value_from == noone) _pbase.base_bbox = [ 0, 0, _dim[0], _dim[1] ];
if(inputs[2].value_from != noone || inputs[2].is_anim) _pbbox.anchor_l = _data[2];
if(inputs[3].value_from != noone || inputs[3].is_anim) _pbbox.anchor_t = _data[3];
if(inputs[4].value_from != noone || inputs[4].is_anim) _pbbox.anchor_r = _data[4];
if(inputs[5].value_from != noone || inputs[5].is_anim) _pbbox.anchor_b = _data[5];
if(inputs[6].value_from != noone || inputs[6].is_anim) _pbbox.anchor_w = _data[6];
if(inputs[7].value_from != noone || inputs[7].is_anim) _pbbox.anchor_h = _data[7];
_pbbox.base_bbox = is(_pbase, __pbBox)? _pbase.getBBOX() : [ 0, 0, _dim[0], _dim[1] ];
return _pbbox.getBBOX();
}
static pbDrawSurface = function(_data, _bbox) {}
static processData = function(_outSurf, _data, _output_index, _array_index) {
var _dim = group.dimension;
_outSurf = surface_verify(_outSurf, _dim[0], _dim[1]);
temp_surfaces[0] = surface_verify(temp_surfaces[0], _dim[0], _dim[1]);
var _pbbox = _data[1];
var _bbox = getBBOX(_data);
var _fil = _data[8];
var _fil_col = _data[9];
var _fil_pat = _data[15];
var _fil_pat_col = _data[16]; inputs[16].setVisible(_fil_pat);
var _fil_pat_int = _data[17]; inputs[17].setVisible(_fil_pat);
var _fil_pat_sca = _data[18]; inputs[18].setVisible(_fil_pat);
var _stk = _data[10];
var _stk_thk = _data[11];
var _stk_col = _data[12];
var _stk_pos = _data[13];
var _stk_cor = _data[14];
var _stk_pat = _data[19];
var _stk_pat_col = _data[20]; inputs[20].setVisible(_stk_pat);
var _stk_pat_int = _data[21]; inputs[21].setVisible(_stk_pat);
var _stk_pat_sca = _data[22]; inputs[22].setVisible(_stk_pat);
var _crn = _data[23];
var _crn_rad = _data[24];
var _crn_col = _data[25];
var _crn_eff = _data[26];
var _crn_sub = _data[33];
var _hig = _data[27];
var _hig_wid = _data[28];
var _hig_l = _data[29];
var _hig_r = _data[30];
var _hig_t = _data[31];
var _hig_b = _data[32];
var _draws = temp_surfaces[0];
surface_set_shader(_draws, noone);
draw_set_color(c_white);
pbDrawSurface(_data, _bbox);
surface_reset_shader(); surface_reset_shader();
#macro PB_DRAW_APPLY_MASK if(_mask) { \ surface_set_shader(_outSurf, sh_pb_draw);
BLEND_MULTIPLY \ shader_set_2("dimension", _dim );
if(is_surface(_pbox.mask)) \
draw_surface_safe(_pbox.mask); \ shader_set_i("fill", _fil );
BLEND_NORMAL \ shader_set_c("fill_color", _fil_col );
} shader_set_i("fill_pattern", _fil_pat );
shader_set_2("fill_pattern_scale", _fil_pat_sca );
shader_set_c("fill_pattern_color", _fil_pat_col );
shader_set_f("fill_pattern_inten", _fil_pat_int );
shader_set_i("stroke", _stk );
shader_set_f("stroke_thickness", _stk_thk );
shader_set_c("stroke_color", _stk_col );
shader_set_i("stroke_position", _stk_pos );
shader_set_i("stroke_corner", _stk_cor );
shader_set_i("stroke_pattern", _stk_pat );
shader_set_2("stroke_pattern_scale", _stk_pat_sca );
shader_set_c("stroke_pattern_color", _stk_pat_col );
shader_set_f("stroke_pattern_inten", _stk_pat_int );
shader_set_i("corner", _crn );
shader_set_f("corner_radius", _crn_rad );
shader_set_c("corner_color", _crn_col );
shader_set_i("corner_effect", _crn_eff );
shader_set_i("corner_subtract", _crn_sub );
shader_set_i("highlight", _hig );
shader_set_4("highlight_width", _hig_wid );
shader_set_c("highlight_l", _hig_l );
shader_set_c("highlight_r", _hig_r );
shader_set_c("highlight_t", _hig_t );
shader_set_c("highlight_b", _hig_b );
draw_surface_safe(_draws);
surface_reset_shader();
return [ _pbbox, _outSurf ];
}
////- Serialize
static doSerialize = function(_map) {
_map.pbi_base_length = pbi;
}
static postDeserialize = function() {
var _tlen = struct_try_get(load_map, "pbi_base_length", pbi);
for( var i = _tlen; i < pbi; i++ )
array_insert(load_map.inputs, i, noone);
}
}

View file

@ -6,7 +6,7 @@
"name":"node_pb_draw", "name":"node_pb_draw",
"parent":{ "parent":{
"name":"draw", "name":"draw",
"path":"folders/nodes/data/pixel builder/draw.yy", "path":"folders/nodes/data/PB/draw.yy",
}, },
"resourceType":"GMScript", "resourceType":"GMScript",
"resourceVersion":"2.0", "resourceVersion":"2.0",

View file

@ -1,12 +0,0 @@
{
"isDnD": false,
"isCompatibility": false,
"parent": {
"name": "generator",
"path": "folders/nodes/data/generator.yy",
},
"resourceVersion": "1.0",
"name": "node_checkerboard",
"tags": [],
"resourceType": "GMScript",
}

View file

@ -1,138 +0,0 @@
function Node_PB_Draw_Angle(_x, _y, _group = noone) : Node_PB_Draw(_x, _y, _group) constructor {
name = "Angle";
newInput(3, nodeValue_Enum_Button("Side", self, 0 , array_create(4, THEME.obj_angle) ));
newInput(4, nodeValue_Bool("Round", self, false ))
input_display_list = [
["Draw", false], 0, 1, 2,
["Shape", false], 3, 4,
];
static processData = function(_outSurf, _data, _output_index, _array_index) {
var _pbox = _data[0];
var _fcol = _data[1];
var _mask = _data[2];
var _side = _data[3];
var _roun = _data[4];
if(_pbox == noone) return _pbox;
var _nbox = _pbox.clone();
_nbox.content = surface_verify(_nbox.content, _pbox.w, _pbox.h);
switch(_side) {
case 0 :
if( _pbox.mirror_h && _pbox.mirror_v) _side = 2;
if( _pbox.mirror_h && !_pbox.mirror_v) _side = 1;
if(!_pbox.mirror_h && _pbox.mirror_v) _side = 3;
break;
case 1 :
if( _pbox.mirror_h && _pbox.mirror_v) _side = 3;
if( _pbox.mirror_h && !_pbox.mirror_v) _side = 0;
if(!_pbox.mirror_h && _pbox.mirror_v) _side = 2;
break;
case 2 :
if( _pbox.mirror_h && _pbox.mirror_v) _side = 0;
if( _pbox.mirror_h && !_pbox.mirror_v) _side = 3;
if(!_pbox.mirror_h && _pbox.mirror_v) _side = 1;
break;
case 3 :
if( _pbox.mirror_h && _pbox.mirror_v) _side = 1;
if( _pbox.mirror_h && !_pbox.mirror_v) _side = 2;
if(!_pbox.mirror_h && _pbox.mirror_v) _side = 0;
break;
}
surface_set_target(_nbox.content);
DRAW_CLEAR
draw_set_color(_fcol);
draw_primitive_begin(pr_trianglelist);
var as, ae, rx, ry;
switch(_side) {
case 0 :
if(_roun) {
as = 0;
ae = -90;
rx = 0;
ry = 0;
} else {
draw_vertex(0, 0);
draw_vertex(_pbox.w, 0);
draw_vertex(0, _pbox.h);
}
break;
case 1 :
if(_roun) {
as = 180;
ae = 270;
rx = _pbox.w;
ry = 0;
} else {
draw_vertex(0, 0);
draw_vertex(_pbox.w, 0);
draw_vertex(_pbox.w, _pbox.h);
}
break;
case 2 :
if(_roun) {
as = 90;
ae = 180;
rx = _pbox.w;
ry = _pbox.h;
} else {
draw_vertex(_pbox.w, 0);
draw_vertex(_pbox.w, _pbox.h);
draw_vertex(0, _pbox.h);
}
break;
case 3 :
if(_roun) {
as = 0;
ae = 90;
rx = 0;
ry = _pbox.h;
} else {
draw_vertex(0, 0);
draw_vertex(_pbox.w, _pbox.h);
draw_vertex(0, _pbox.h);
}
break;
}
if(_roun) {
var ox, oy, nx, ny;
for( var i = 0; i <= 64; i++ ) {
var a = lerp(as, ae, i / 64);
nx = rx + lengthdir_x(_pbox.w, a);
ny = ry + lengthdir_y(_pbox.h, a);
if(i) {
draw_vertex(rx, ry);
draw_vertex(ox, oy);
draw_vertex(nx, ny);
}
ox = nx;
oy = ny;
}
}
draw_primitive_end();
PB_DRAW_APPLY_MASK
surface_reset_target();
PB_DRAW_CREATE_MASK
return _nbox;
}
}

View file

@ -1,12 +0,0 @@
{
"isDnD": false,
"isCompatibility": false,
"parent": {
"name": "generator",
"path": "folders/nodes/data/generator.yy",
},
"resourceVersion": "1.0",
"name": "node_stripe",
"tags": [],
"resourceType": "GMScript",
}

View file

@ -1,12 +0,0 @@
{
"isDnD": false,
"isCompatibility": false,
"parent": {
"name": "generator",
"path": "folders/nodes/data/generator.yy",
},
"resourceVersion": "1.0",
"name": "node_checkerboard",
"tags": [],
"resourceType": "GMScript",
}

View file

@ -1,95 +0,0 @@
function Node_PB_Draw_Blob(_x, _y, _group = noone) : Node_PB_Draw(_x, _y, _group) constructor {
name = "Blob";
newInput(3, nodeValue_Float("Top", self, 0.5 ))
.setDisplay(VALUE_DISPLAY.slider);
newInput(4, nodeValue_Float("Bottom", self, 1 ))
.setDisplay(VALUE_DISPLAY.slider);
input_display_list = [
["Draw", false], 0, 1, 2,
["Shape", false], 3, 4,
];
static drawOverlayPB = function(active, _x, _y, _s, _mx, _my, _snx, _sny) {
var _pbox = getInputData(0);
if(_pbox == noone) return;
var x0 = _pbox.x + _pbox.w / 2;
var y0 = _pbox.y;
x0 = _x + x0 * _s;
y0 = _y + y0 * _s;
//inputs[2].drawOverlay(hover, active, x0, y0, _s, _mx, _my, _snx, _sny);
var x0 = _pbox.x + _pbox.w / 2;
var y0 = _pbox.y + _pbox.h;
x0 = _x + x0 * _s;
y0 = _y + y0 * _s;
//inputs[3].drawOverlay(hover, active, x0, y0, _s, _mx, _my, _snx, _sny);
}
static processData = function(_outSurf, _data, _output_index, _array_index) {
var _pbox = _data[0];
var _fcol = _data[1];
var _mask = _data[2];
var _btop = _data[3];
var _bbot = _data[4];
if(_pbox == noone) return _pbox;
_btop *= _pbox.w / 2;
_bbot *= _pbox.w / 2;
var _nbox = _pbox.clone();
_nbox.content = surface_verify(_nbox.content, _pbox.w, _pbox.h);
surface_set_target(_nbox.content);
DRAW_CLEAR
draw_set_color(_fcol);
draw_primitive_begin(pr_trianglelist);
var xc = _pbox.w / 2;
var _samp = 64;
var _ox, _oy, _nx, _ny;
for( var i = 0; i <= _samp; i++ ) {
var t = i / _samp;
var _t = 1 - t;
_nx = 3 * _btop * t * _t * _t + 3 * _bbot * t * t * _t;
_ny = 3 * t * t - 2 * t * t * t;
if(_pbox.mirror_v)
_ny = 1 - _ny;
_ny = _ny * _pbox.h;
if(i) {
draw_vertex(xc, 0);
draw_vertex(xc + _ox, _oy);
draw_vertex(xc + _nx, _ny);
draw_vertex(xc, 0);
draw_vertex(xc - _ox, _oy);
draw_vertex(xc - _nx, _ny);
}
_ox = _nx;
_oy = _ny;
}
draw_primitive_end();
PB_DRAW_APPLY_MASK
surface_reset_target();
PB_DRAW_CREATE_MASK
return _nbox;
}
}

View file

@ -1,13 +0,0 @@
{
"$GMScript":"v1",
"%Name":"node_pb_draw_blob",
"isCompatibility":false,
"isDnD":false,
"name":"node_pb_draw_blob",
"parent":{
"name":"draw",
"path":"folders/nodes/data/pixel builder/draw.yy",
},
"resourceType":"GMScript",
"resourceVersion":"2.0",
}

View file

@ -1,12 +0,0 @@
{
"isDnD": false,
"isCompatibility": false,
"parent": {
"name": "generator",
"path": "folders/nodes/data/generator.yy",
},
"resourceVersion": "1.0",
"name": "node_stripe",
"tags": [],
"resourceType": "GMScript",
}

View file

@ -1,48 +1,28 @@
function Node_PB_Draw_Diamond(_x, _y, _group = noone) : Node_PB_Draw(_x, _y, _group) constructor { function Node_PB_Draw_Diamond(_x, _y, _group = noone) : Node_PB_Draw(_x, _y, _group) constructor {
name = "Diamond"; name = "Diamond";
input_display_list = [ newInput(pbi+0, nodeValue_Enum_Scroll("Corner", self, 0, [ "Scale", "Minimum" ]));
["Draw", false], 0, 1, 2,
];
static processData = function(_outSurf, _data, _output_index, _array_index) { array_insert_array(input_display_list, input_display_shape_index, [
var _pbox = _data[0]; ["Shape", false], pbi+0,
var _fcol = _data[1]; ]);
var _mask = _data[2];
static pbDrawSurface = function(_data, _bbox) {
var _x0 = _bbox[0];
var _y0 = _bbox[1];
var _x1 = _bbox[2];
var _y1 = _bbox[3];
if(_pbox == noone) return _pbox; var _ww = _x1 - _x0;
var _hh = _y1 - _y0;
var _nbox = _pbox.clone(); var _cor = _data[pbi+0];
_nbox.content = surface_verify(_nbox.content, _pbox.w, _pbox.h);
var x0 = 0; shader_set(sh_pb_diamond);
var y0 = 0; shader_set_2("dimension", [ _ww, _hh ]);
shader_set_i("cornerType", _cor);
var x1 = _pbox.w + !(_pbox.w % 2);
var y1 = _pbox.h + !(_pbox.h % 2);
var xc = _pbox.w / 2;
var yc = _pbox.h / 2;
surface_set_target(_nbox.content);
DRAW_CLEAR
draw_set_color(_fcol); draw_sprite_stretched(s_fx_pixel, 0, _x0, _y0, _ww, _hh);
draw_primitive_begin(pr_trianglelist); shader_reset();
draw_vertex(xc, y0);
draw_vertex(x0, yc);
draw_vertex(x1, yc);
draw_vertex(x0, yc);
draw_vertex(x1, yc);
draw_vertex(xc, y1);
draw_primitive_end();
PB_DRAW_APPLY_MASK
surface_reset_target();
PB_DRAW_CREATE_MASK
return _nbox;
} }
} }

Some files were not shown because too many files have changed in this diff Show more