gamemaker room

This commit is contained in:
Tanasart 2024-12-15 18:19:48 +07:00
parent efc09945a6
commit 62d96ff44e
29 changed files with 987 additions and 871 deletions

View file

@ -1,6 +1,6 @@
{
"FolderOrderSettings":[
{"name":"__extensions","order":338,"path":"folders/__extensions.yy",},
{"name":"__extensions","order":339,"path":"folders/__extensions.yy",},
{"name":"FireBase","order":2,"path":"folders/__extensions/FireBase.yy",},
{"name":"Extensions","order":2,"path":"folders/__extensions/FireBase/Extensions.yy",},
{"name":"Listeners_Firestore","order":1,"path":"folders/__extensions/FireBase/Extensions/Firebase_API/Listeners_Firestore.yy",},
@ -15,7 +15,7 @@
{"name":"Steamworks","order":8,"path":"folders/__extensions/Steamworks.yy",},
{"name":"VCT","order":1,"path":"folders/__extensions/VCT.yy",},
{"name":"WinMan","order":6,"path":"folders/__extensions/WinMan.yy",},
{"name":"addons","order":336,"path":"folders/addons.yy",},
{"name":"addons","order":337,"path":"folders/addons.yy",},
{"name":"dialog","order":332,"path":"folders/dialog.yy",},
{"name":"functions","order":329,"path":"folders/functions.yy",},
{"name":"camera","order":7,"path":"folders/functions/3d/camera.yy",},
@ -38,7 +38,6 @@
{"name":"dynaSurf","order":20,"path":"folders/functions/draw/dynaSurf.yy",},
{"name":"ds","order":14,"path":"folders/functions/ds.yy",},
{"name":"files","order":15,"path":"folders/functions/files.yy",},
{"name":"gamemaker","order":17,"path":"folders/functions/gamemaker.yy",},
{"name":"geometry","order":16,"path":"folders/functions/geometry.yy",},
{"name":"GLSL","order":18,"path":"folders/functions/GLSL.yy",},
{"name":"importers","order":19,"path":"folders/functions/importers.yy",},
@ -66,7 +65,7 @@
{"name":"window","order":39,"path":"folders/functions/window.yy",},
{"name":"main","order":328,"path":"folders/main.yy",},
{"name":"components","order":3,"path":"folders/main/components.yy",},
{"name":"misc","order":337,"path":"folders/misc.yy",},
{"name":"misc","order":338,"path":"folders/misc.yy",},
{"name":"animation_curve","order":1,"path":"folders/misc/animation_curve.yy",},
{"name":"nodes","order":330,"path":"folders/nodes.yy",},
{"name":"data","order":1,"path":"folders/nodes/data.yy",},
@ -78,14 +77,12 @@
{"name":"mesh","order":11,"path":"folders/nodes/data/3D/d3d_mesh/mesh.yy",},
{"name":"d3d_modifier","order":6,"path":"folders/nodes/data/3D/d3d_modifier.yy",},
{"name":"d3d_particle","order":7,"path":"folders/nodes/data/3D/d3d_particle.yy",},
{"name":"raymarching","order":13,"path":"folders/nodes/data/3D/raymarching.yy",},
{"name":"raymarching","order":8,"path":"folders/nodes/data/3D/raymarching.yy",},
{"name":"animation","order":1,"path":"folders/nodes/data/animation.yy",},
{"name":"fn","order":7,"path":"folders/nodes/data/animation/fn.yy",},
{"name":"canvas","order":18,"path":"folders/nodes/data/canvas.yy",},
{"name":"actions","order":8,"path":"folders/nodes/data/canvas/actions.yy",},
{"name":"shader","order":9,"path":"folders/nodes/data/canvas/shader.yy",},
{"name":"tools","order":5,"path":"folders/nodes/data/canvas/tools.yy",},
{"name":"util","order":7,"path":"folders/nodes/data/canvas/util.yy",},
{"name":"canvas","order":17,"path":"folders/nodes/data/canvas.yy",},
{"name":"actions","order":2,"path":"folders/nodes/data/canvas/actions.yy",},
{"name":"shader","order":3,"path":"folders/nodes/data/canvas/shader.yy",},
{"name":"util","order":1,"path":"folders/nodes/data/canvas/util.yy",},
{"name":"compose","order":2,"path":"folders/nodes/data/compose.yy",},
{"name":"dynasurf","order":3,"path":"folders/nodes/data/dynasurf.yy",},
{"name":"filter","order":4,"path":"folders/nodes/data/filter.yy",},
@ -95,42 +92,35 @@
{"name":"effects","order":4,"path":"folders/nodes/data/filter/effects.yy",},
{"name":"fixes","order":5,"path":"folders/nodes/data/filter/fixes.yy",},
{"name":"warps","order":6,"path":"folders/nodes/data/filter/warps.yy",},
{"name":"game engines","order":20,"path":"folders/nodes/data/game engines.yy",},
{"name":"gamemaker","order":1,"path":"folders/nodes/data/game engines/gamemaker.yy",},
{"name":"game engines","order":335,"path":"folders/game engines.yy",},
{"name":"generator","order":5,"path":"folders/nodes/data/generator.yy",},
{"name":"drawer","order":11,"path":"folders/nodes/data/generator/drawer.yy",},
{"name":"noise","order":14,"path":"folders/nodes/data/generator/noise.yy",},
{"name":"pattern","order":15,"path":"folders/nodes/data/generator/pattern.yy",},
{"name":"regions","order":19,"path":"folders/nodes/data/generator/regions.yy",},
{"name":"noise","order":1,"path":"folders/nodes/data/generator/noise.yy",},
{"name":"pattern","order":2,"path":"folders/nodes/data/generator/pattern.yy",},
{"name":"regions","order":3,"path":"folders/nodes/data/generator/regions.yy",},
{"name":"group","order":6,"path":"folders/nodes/data/group.yy",},
{"name":"io","order":7,"path":"folders/nodes/data/io.yy",},
{"name":"aseprite","order":27,"path":"folders/nodes/data/io/aseprite.yy",},
{"name":"image","order":26,"path":"folders/nodes/data/io/image.yy",},
{"name":"network","order":22,"path":"folders/nodes/data/io/network.yy",},
{"name":"aseprite","order":2,"path":"folders/nodes/data/io/aseprite.yy",},
{"name":"image","order":1,"path":"folders/nodes/data/io/image.yy",},
{"name":"iterate","order":8,"path":"folders/nodes/data/iterate.yy",},
{"name":"_legacy","order":4,"path":"folders/nodes/data/iterate/_legacy.yy",},
{"name":"feedback","order":5,"path":"folders/nodes/data/iterate/feedback.yy",},
{"name":"for_each","order":7,"path":"folders/nodes/data/iterate/for_each.yy",},
{"name":"for_filter","order":8,"path":"folders/nodes/data/iterate/for_filter.yy",},
{"name":"for_sort","order":9,"path":"folders/nodes/data/iterate/for_sort.yy",},
{"name":"for","order":6,"path":"folders/nodes/data/iterate/for.yy",},
{"name":"feedback","order":1,"path":"folders/nodes/data/iterate/feedback.yy",},
{"name":"for_each","order":3,"path":"folders/nodes/data/iterate/for_each.yy",},
{"name":"for_filter","order":4,"path":"folders/nodes/data/iterate/for_filter.yy",},
{"name":"for_sort","order":5,"path":"folders/nodes/data/iterate/for_sort.yy",},
{"name":"for","order":2,"path":"folders/nodes/data/iterate/for.yy",},
{"name":"lua","order":9,"path":"folders/nodes/data/lua.yy",},
{"name":"misc","order":10,"path":"folders/nodes/data/misc.yy",},
{"name":"lovify","order":24,"path":"folders/nodes/data/misc/lovify.yy",},
{"name":"tunnel","order":25,"path":"folders/nodes/data/misc/tunnel.yy",},
{"name":"MKFX","order":11,"path":"folders/nodes/data/MKFX.yy",},
{"name":"src","order":14,"path":"folders/nodes/data/MKFX/src.yy",},
{"name":"PCX","order":12,"path":"folders/nodes/data/PCX.yy",},
{"name":"array","order":3,"path":"folders/nodes/data/PCX/array.yy",},
{"name":"flow_control","order":4,"path":"folders/nodes/data/PCX/flow_control.yy",},
{"name":"fn","order":5,"path":"folders/nodes/data/PCX/fn.yy",},
{"name":"surface","order":6,"path":"folders/nodes/data/PCX/surface.yy",},
{"name":"value","order":7,"path":"folders/nodes/data/PCX/value.yy",},
{"name":"pixel_builder","order":13,"path":"folders/nodes/data/pixel_builder.yy",},
{"name":"misc","order":20,"path":"folders/nodes/data/misc.yy",},
{"name":"tunnel","order":1,"path":"folders/nodes/data/misc/tunnel.yy",},
{"name":"MKFX","order":10,"path":"folders/nodes/data/MKFX.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":"fn","order":2,"path":"folders/nodes/data/PCX/fn.yy",},
{"name":"surface","order":3,"path":"folders/nodes/data/PCX/surface.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":"render","order":14,"path":"folders/nodes/data/render.yy",},
{"name":"simulation","order":15,"path":"folders/nodes/data/simulation.yy",},
{"name":"render","order":13,"path":"folders/nodes/data/render.yy",},
{"name":"simulation","order":14,"path":"folders/nodes/data/simulation.yy",},
{"name":"FLIP","order":1,"path":"folders/nodes/data/simulation/FLIP.yy",},
{"name":"rigidSim","order":3,"path":"folders/nodes/data/simulation/rigidSim.yy",},
{"name":"smokeSim","order":4,"path":"folders/nodes/data/simulation/smokeSim.yy",},
@ -141,12 +131,11 @@
{"name":"VFX","order":6,"path":"folders/nodes/data/simulation/VFX.yy",},
{"name":"__legacy","order":12,"path":"folders/nodes/data/simulation/VFX/__legacy.yy",},
{"name":"generators","order":1,"path":"folders/nodes/data/simulation/VFX/generators.yy",},
{"name":"tiler","order":19,"path":"folders/nodes/data/tiler.yy",},
{"name":"shaders","order":2,"path":"folders/nodes/data/tiler/shaders.yy",},
{"name":"sprites","order":4,"path":"folders/nodes/data/tiler/sprites.yy",},
{"name":"tools","order":1,"path":"folders/nodes/data/tiler/tools.yy",},
{"name":"transform","order":16,"path":"folders/nodes/data/transform.yy",},
{"name":"value","order":17,"path":"folders/nodes/data/value.yy",},
{"name":"tiler","order":18,"path":"folders/nodes/data/tiler.yy",},
{"name":"shaders","order":1,"path":"folders/nodes/data/tiler/shaders.yy",},
{"name":"sprites","order":2,"path":"folders/nodes/data/tiler/sprites.yy",},
{"name":"transform","order":15,"path":"folders/nodes/data/transform.yy",},
{"name":"value","order":16,"path":"folders/nodes/data/value.yy",},
{"name":"atlas","order":1,"path":"folders/nodes/data/value/atlas.yy",},
{"name":"audio","order":2,"path":"folders/nodes/data/value/audio.yy",},
{"name":"bool","order":3,"path":"folders/nodes/data/value/bool.yy",},
@ -254,7 +243,7 @@
{"name":"histogram","order":3,"path":"folders/shader/UI/histogram.yy",},
{"name":"node","order":5,"path":"folders/shader/UI/node.yy",},
{"name":"palette mixer","order":2,"path":"folders/shader/UI/palette mixer.yy",},
{"name":"sprites","order":335,"path":"folders/sprites.yy",},
{"name":"sprites","order":336,"path":"folders/sprites.yy",},
{"name":"gameframe","order":1,"path":"folders/sprites/gameframe.yy",},
{"name":"misc","order":2,"path":"folders/sprites/misc.yy",},
{"name":"nodes","order":3,"path":"folders/sprites/nodes.yy",},
@ -419,7 +408,7 @@
{"name":"__node_3d_light","order":1,"path":"scripts/__node_3d_light/__node_3d_light.yy",},
{"name":"__node_3d_mesh","order":1,"path":"scripts/__node_3d_mesh/__node_3d_mesh.yy",},
{"name":"__node_3d_obj","order":5,"path":"scripts/__node_3d_obj/__node_3d_obj.yy",},
{"name":"__node_3d_object","order":9,"path":"scripts/__node_3d_object/__node_3d_object.yy",},
{"name":"__node_3d_object","order":10,"path":"scripts/__node_3d_object/__node_3d_object.yy",},
{"name":"__node_3d_plane","order":4,"path":"scripts/__node_3d_plane/__node_3d_plane.yy",},
{"name":"__node_3d_prim_cube","order":1,"path":"scripts/__node_3d_prim_cube/__node_3d_prim_cube.yy",},
{"name":"__node_3d_prim_cylinder","order":2,"path":"scripts/__node_3d_prim_cylinder/__node_3d_prim_cylinder.yy",},
@ -427,11 +416,13 @@
{"name":"__node_3d_render","order":6,"path":"scripts/__node_3d_render/__node_3d_render.yy",},
{"name":"__node_3d_repeat","order":7,"path":"scripts/__node_3d_repeat/__node_3d_repeat.yy",},
{"name":"__node_3d_transform","order":8,"path":"scripts/__node_3d_transform/__node_3d_transform.yy",},
{"name":"__node_3d","order":8,"path":"scripts/__node_3d/__node_3d.yy",},
{"name":"__node_3d","order":9,"path":"scripts/__node_3d/__node_3d.yy",},
{"name":"__node_controller","order":14,"path":"scripts/__node_controller/__node_controller.yy",},
{"name":"__node_custom","order":12,"path":"scripts/__node_custom/__node_custom.yy",},
{"name":"__node_iterator_inline","order":1,"path":"scripts/__node_iterator_inline/__node_iterator_inline.yy",},
{"name":"__node_custom","order":14,"path":"scripts/__node_custom/__node_custom.yy",},
{"name":"__node_iterator_inline","order":7,"path":"scripts/__node_iterator_inline/__node_iterator_inline.yy",},
{"name":"__node_iterator","order":6,"path":"scripts/__node_iterator/__node_iterator.yy",},
{"name":"__node_module","order":13,"path":"scripts/__node_module/__node_module.yy",},
{"name":"__node_PCX","order":5,"path":"scripts/__node_PCX/__node_PCX.yy",},
{"name":"__node_process_template","order":22,"path":"scripts/__node_process_template/__node_process_template.yy",},
{"name":"__node_shader_generator","order":25,"path":"scripts/__node_shader_generator/__node_shader_generator.yy",},
{"name":"__node_shader_processor","order":26,"path":"scripts/__node_shader_processor/__node_shader_processor.yy",},
@ -492,7 +483,8 @@
{"name":"BBMOD_Vec3","order":5,"path":"scripts/BBMOD_Vec3/BBMOD_Vec3.yy",},
{"name":"BBMOD_Vec4","order":6,"path":"scripts/BBMOD_Vec4/BBMOD_Vec4.yy",},
{"name":"bin_function","order":11,"path":"scripts/bin_function/bin_function.yy",},
{"name":"binder_gamemaker_room","order":2,"path":"scripts/binder_gamemaker_room/binder_gamemaker_room.yy",},
{"name":"binder_gamemaker_room","order":4,"path":"scripts/binder_gamemaker_room/binder_gamemaker_room.yy",},
{"name":"binder_gamemaker","order":3,"path":"scripts/binder_gamemaker/binder_gamemaker.yy",},
{"name":"biterator","order":1,"path":"scripts/biterator/biterator.yy",},
{"name":"buffer_object","order":1,"path":"scripts/buffer_object/buffer_object.yy",},
{"name":"buttonAnchor","order":5,"path":"scripts/buttonAnchor/buttonAnchor.yy",},
@ -642,7 +634,7 @@
{"name":"function_register","order":2,"path":"scripts/function_register/function_register.yy",},
{"name":"fx_controller","order":1,"path":"scripts/fx_controller/fx_controller.yy",},
{"name":"gameframe","order":3,"path":"scripts/gameframe/gameframe.yy",},
{"name":"gamemakerPathBox","order":1,"path":"scripts/gamemakerPathBox/gamemakerPathBox.yy",},
{"name":"gamemakerPathBox","order":5,"path":"scripts/gamemakerPathBox/gamemakerPathBox.yy",},
{"name":"getGradientData","order":1,"path":"scripts/getGradientData/getGradientData.yy",},
{"name":"gif_reader","order":4,"path":"scripts/gif_reader/gif_reader.yy",},
{"name":"globals","order":2,"path":"scripts/globals/globals.yy",},
@ -676,10 +668,11 @@
{"name":"mtl_reader","order":6,"path":"scripts/mtl_reader/mtl_reader.yy",},
{"name":"network_data","order":22,"path":"scripts/network_data/network_data.yy",},
{"name":"node_3d_camera_set","order":1,"path":"scripts/node_3d_camera_set/node_3d_camera_set.yy",},
{"name":"node_3d_depth","order":4,"path":"scripts/node_3d_depth/node_3d_depth.yy",},
{"name":"node_3d_displace","order":8,"path":"scripts/node_3d_displace/node_3d_displace.yy",},
{"name":"node_3d_instancer","order":3,"path":"scripts/node_3d_instancer/node_3d_instancer.yy",},
{"name":"node_3d_light_point","order":2,"path":"scripts/node_3d_light_point/node_3d_light_point.yy",},
{"name":"node_3d_material","order":10,"path":"scripts/node_3d_material/node_3d_material.yy",},
{"name":"node_3d_material","order":11,"path":"scripts/node_3d_material/node_3d_material.yy",},
{"name":"node_3d_mesh_cone","order":6,"path":"scripts/node_3d_mesh_cone/node_3d_mesh_cone.yy",},
{"name":"node_3d_mesh_cylinder","order":3,"path":"scripts/node_3d_mesh_cylinder/node_3d_mesh_cylinder.yy",},
{"name":"node_3d_mesh_export","order":14,"path":"scripts/node_3d_mesh_export/node_3d_mesh_export.yy",},
@ -693,12 +686,12 @@
{"name":"node_3d_mesh_terrain","order":9,"path":"scripts/node_3d_mesh_terrain/node_3d_mesh_terrain.yy",},
{"name":"node_3d_mesh_torus","order":12,"path":"scripts/node_3d_mesh_torus/node_3d_mesh_torus.yy",},
{"name":"node_3d_mesh_wall_builder","order":13,"path":"scripts/node_3d_mesh_wall_builder/node_3d_mesh_wall_builder.yy",},
{"name":"node_3d_point_affector","order":11,"path":"scripts/node_3d_point_affector/node_3d_point_affector.yy",},
{"name":"node_3d_point_affector","order":12,"path":"scripts/node_3d_point_affector/node_3d_point_affector.yy",},
{"name":"node_3d_repeat","order":1,"path":"scripts/node_3d_repeat/node_3d_repeat.yy",},
{"name":"node_3d_round_vertex","order":1,"path":"scripts/node_3d_round_vertex/node_3d_round_vertex.yy",},
{"name":"node_3d_set_material","order":2,"path":"scripts/node_3d_set_material/node_3d_set_material.yy",},
{"name":"node_3d_subdivide","order":9,"path":"scripts/node_3d_subdivide/node_3d_subdivide.yy",},
{"name":"node_3d_transform_image","order":12,"path":"scripts/node_3d_transform_image/node_3d_transform_image.yy",},
{"name":"node_3d_transform_image","order":13,"path":"scripts/node_3d_transform_image/node_3d_transform_image.yy",},
{"name":"node_3d_transform_scene","order":4,"path":"scripts/node_3d_transform_scene/node_3d_transform_scene.yy",},
{"name":"node_3d_transform","order":6,"path":"scripts/node_3d_transform/node_3d_transform.yy",},
{"name":"node_3d_uv_remap","order":5,"path":"scripts/node_3d_uv_remap/node_3d_uv_remap.yy",},
@ -710,12 +703,13 @@
{"name":"node_alpha_grey","order":3,"path":"scripts/node_alpha_grey/node_alpha_grey.yy",},
{"name":"node_alpha_hash","order":11,"path":"scripts/node_alpha_hash/node_alpha_hash.yy",},
{"name":"node_ambient_occlusion","order":4,"path":"scripts/node_ambient_occlusion/node_ambient_occlusion.yy",},
{"name":"node_anim_curve","order":1,"path":"scripts/node_anim_curve/node_anim_curve.yy",},
{"name":"node_anim_priority","order":2,"path":"scripts/node_anim_priority/node_anim_priority.yy",},
{"name":"node_animation_control","order":9,"path":"scripts/node_animation_control/node_animation_control.yy",},
{"name":"node_application_in","order":18,"path":"scripts/node_application_in/node_application_in.yy",},
{"name":"node_application_out","order":17,"path":"scripts/node_application_out/node_application_out.yy",},
{"name":"node_animation_control","order":11,"path":"scripts/node_animation_control/node_animation_control.yy",},
{"name":"node_application_in","order":20,"path":"scripts/node_application_in/node_application_in.yy",},
{"name":"node_application_out","order":19,"path":"scripts/node_application_out/node_application_out.yy",},
{"name":"node_area","order":15,"path":"scripts/node_area/node_area.yy",},
{"name":"node_argument","order":22,"path":"scripts/node_argument/node_argument.yy",},
{"name":"node_argument","order":24,"path":"scripts/node_argument/node_argument.yy",},
{"name":"node_armature_bind","order":10,"path":"scripts/node_armature_bind/node_armature_bind.yy",},
{"name":"node_armature_mesh_rig","order":14,"path":"scripts/node_armature_mesh_rig/node_armature_mesh_rig.yy",},
{"name":"node_armature_path","order":12,"path":"scripts/node_armature_path/node_armature_path.yy",},
@ -771,14 +765,15 @@
{"name":"node_boolean","order":17,"path":"scripts/node_boolean/node_boolean.yy",},
{"name":"node_box_pattern","order":11,"path":"scripts/node_box_pattern/node_box_pattern.yy",},
{"name":"node_brush_linear","order":24,"path":"scripts/node_brush_linear/node_brush_linear.yy",},
{"name":"node_byte_file_read","order":21,"path":"scripts/node_byte_file_read/node_byte_file_read.yy",},
{"name":"node_byte_file_write","order":20,"path":"scripts/node_byte_file_write/node_byte_file_write.yy",},
{"name":"node_cache_array","order":6,"path":"scripts/node_cache_array/node_cache_array.yy",},
{"name":"node_cache_base","order":16,"path":"scripts/node_cache_base/node_cache_base.yy",},
{"name":"node_cache","order":7,"path":"scripts/node_cache/node_cache.yy",},
{"name":"node_byte_file_read","order":16,"path":"scripts/node_byte_file_read/node_byte_file_read.yy",},
{"name":"node_byte_file_write","order":15,"path":"scripts/node_byte_file_write/node_byte_file_write.yy",},
{"name":"node_cache_array","order":8,"path":"scripts/node_cache_array/node_cache_array.yy",},
{"name":"node_cache_base","order":18,"path":"scripts/node_cache_base/node_cache_base.yy",},
{"name":"node_cache","order":9,"path":"scripts/node_cache/node_cache.yy",},
{"name":"node_camera","order":3,"path":"scripts/node_camera/node_camera.yy",},
{"name":"node_canvas_group","order":10,"path":"scripts/node_canvas_group/node_canvas_group.yy",},
{"name":"node_caustic","order":1,"path":"scripts/node_caustic/node_caustic.yy",},
{"name":"node_canvas_group","order":5,"path":"scripts/node_canvas_group/node_canvas_group.yy",},
{"name":"node_canvas","order":4,"path":"scripts/node_canvas/node_canvas.yy",},
{"name":"node_caustic","order":5,"path":"scripts/node_caustic/node_caustic.yy",},
{"name":"node_cellular","order":2,"path":"scripts/node_cellular/node_cellular.yy",},
{"name":"node_chromatic_aberration","order":3,"path":"scripts/node_chromatic_aberration/node_chromatic_aberration.yy",},
{"name":"node_collection_inline","order":1,"path":"scripts/node_collection_inline/node_collection_inline.yy",},
@ -796,24 +791,25 @@
{"name":"node_combine_rgb","order":1,"path":"scripts/node_combine_rgb/node_combine_rgb.yy",},
{"name":"node_compare","order":16,"path":"scripts/node_compare/node_compare.yy",},
{"name":"node_composite","order":2,"path":"scripts/node_composite/node_composite.yy",},
{"name":"node_condition","order":2,"path":"scripts/node_condition/node_condition.yy",},
{"name":"node_connection_path","order":1,"path":"scripts/node_connection_path/node_connection_path.yy",},
{"name":"node_convolution","order":4,"path":"scripts/node_convolution/node_convolution.yy",},
{"name":"node_corner","order":5,"path":"scripts/node_corner/node_corner.yy",},
{"name":"node_counter","order":1,"path":"scripts/node_counter/node_counter.yy",},
{"name":"node_counter","order":2,"path":"scripts/node_counter/node_counter.yy",},
{"name":"node_crop_content","order":14,"path":"scripts/node_crop_content/node_crop_content.yy",},
{"name":"node_crop","order":7,"path":"scripts/node_crop/node_crop.yy",},
{"name":"node_cross_section","order":20,"path":"scripts/node_cross_section/node_cross_section.yy",},
{"name":"node_csv_file_read","order":8,"path":"scripts/node_csv_file_read/node_csv_file_read.yy",},
{"name":"node_csv_file_write","order":12,"path":"scripts/node_csv_file_write/node_csv_file_write.yy",},
{"name":"node_cross_section","order":13,"path":"scripts/node_cross_section/node_cross_section.yy",},
{"name":"node_csv_file_read","order":6,"path":"scripts/node_csv_file_read/node_csv_file_read.yy",},
{"name":"node_csv_file_write","order":10,"path":"scripts/node_csv_file_write/node_csv_file_write.yy",},
{"name":"node_curve_hsv","order":18,"path":"scripts/node_curve_hsv/node_curve_hsv.yy",},
{"name":"node_data","order":1,"path":"scripts/node_data/node_data.yy",},
{"name":"node_de_stray","order":1,"path":"scripts/node_de_stray/node_de_stray.yy",},
{"name":"node_delay","order":5,"path":"scripts/node_delay/node_delay.yy",},
{"name":"node_diffuse","order":2,"path":"scripts/node_diffuse/node_diffuse.yy",},
{"name":"node_directory_search","order":23,"path":"scripts/node_directory_search/node_directory_search.yy",},
{"name":"node_diffuse","order":6,"path":"scripts/node_diffuse/node_diffuse.yy",},
{"name":"node_directory_search","order":17,"path":"scripts/node_directory_search/node_directory_search.yy",},
{"name":"node_displace","order":1,"path":"scripts/node_displace/node_displace.yy",},
{"name":"node_display_image","order":4,"path":"scripts/node_display_image/node_display_image.yy",},
{"name":"node_display_text","order":3,"path":"scripts/node_display_text/node_display_text.yy",},
{"name":"node_display_image","order":6,"path":"scripts/node_display_image/node_display_image.yy",},
{"name":"node_display_text","order":5,"path":"scripts/node_display_text/node_display_text.yy",},
{"name":"node_dither_diffuse","order":8,"path":"scripts/node_dither_diffuse/node_dither_diffuse.yy",},
{"name":"node_dither","order":7,"path":"scripts/node_dither/node_dither.yy",},
{"name":"node_dll","order":26,"path":"scripts/node_dll/node_dll.yy",},
@ -826,7 +822,7 @@
{"name":"node_edge_shade","order":19,"path":"scripts/node_edge_shade/node_edge_shade.yy",},
{"name":"node_equation","order":5,"path":"scripts/node_equation/node_equation.yy",},
{"name":"node_erode","order":10,"path":"scripts/node_erode/node_erode.yy",},
{"name":"node_export","order":9,"path":"scripts/node_export/node_export.yy",},
{"name":"node_export","order":7,"path":"scripts/node_export/node_export.yy",},
{"name":"node_feedback_inline","order":3,"path":"scripts/node_feedback_inline/node_feedback_inline.yy",},
{"name":"node_feedback_input","order":1,"path":"scripts/node_feedback_input/node_feedback_input.yy",},
{"name":"node_feedback_output","order":2,"path":"scripts/node_feedback_output/node_feedback_output.yy",},
@ -854,13 +850,14 @@
{"name":"node_fn_wave_table","order":1,"path":"scripts/node_fn_wave_table/node_fn_wave_table.yy",},
{"name":"node_fn","order":2,"path":"scripts/node_fn/node_fn.yy",},
{"name":"node_fold_noise","order":14,"path":"scripts/node_fold_noise/node_fold_noise.yy",},
{"name":"node_frame","order":1,"path":"scripts/node_frame/node_frame.yy",},
{"name":"node_frame","order":3,"path":"scripts/node_frame/node_frame.yy",},
{"name":"node_functions","order":2,"path":"scripts/node_functions/node_functions.yy",},
{"name":"node_FXAA","order":11,"path":"scripts/node_FXAA/node_FXAA.yy",},
{"name":"node_gabor_noise","order":11,"path":"scripts/node_gabor_noise/node_gabor_noise.yy",},
{"name":"node_gamma_map","order":15,"path":"scripts/node_gamma_map/node_gamma_map.yy",},
{"name":"node_global","order":3,"path":"scripts/node_global/node_global.yy",},
{"name":"node_glow","order":11,"path":"scripts/node_glow/node_glow.yy",},
{"name":"node_gm_room","order":1,"path":"scripts/node_gm_room/node_gm_room.yy",},
{"name":"node_gradient_extract","order":13,"path":"scripts/node_gradient_extract/node_gradient_extract.yy",},
{"name":"node_gradient_out","order":5,"path":"scripts/node_gradient_out/node_gradient_out.yy",},
{"name":"node_gradient_palette","order":11,"path":"scripts/node_gradient_palette/node_gradient_palette.yy",},
@ -869,7 +866,7 @@
{"name":"node_gradient_sample","order":16,"path":"scripts/node_gradient_sample/node_gradient_sample.yy",},
{"name":"node_gradient_shift","order":10,"path":"scripts/node_gradient_shift/node_gradient_shift.yy",},
{"name":"node_grain","order":19,"path":"scripts/node_grain/node_grain.yy",},
{"name":"node_graph_preview","order":20,"path":"scripts/node_graph_preview/node_graph_preview.yy",},
{"name":"node_graph_preview","order":22,"path":"scripts/node_graph_preview/node_graph_preview.yy",},
{"name":"node_grey_alpha","order":4,"path":"scripts/node_grey_alpha/node_grey_alpha.yy",},
{"name":"node_greyscale","order":5,"path":"scripts/node_greyscale/node_greyscale.yy",},
{"name":"node_grid_hex","order":2,"path":"scripts/node_grid_hex/node_grid_hex.yy",},
@ -884,7 +881,7 @@
{"name":"node_guide","order":9,"path":"scripts/node_guide/node_guide.yy",},
{"name":"node_herringbone_tile","order":7,"path":"scripts/node_herringbone_tile/node_herringbone_tile.yy",},
{"name":"node_high_pass","order":14,"path":"scripts/node_high_pass/node_high_pass.yy",},
{"name":"node_hlsl","order":11,"path":"scripts/node_hlsl/node_hlsl.yy",},
{"name":"node_hlsl","order":13,"path":"scripts/node_hlsl/node_hlsl.yy",},
{"name":"node_honey_noise","order":20,"path":"scripts/node_honey_noise/node_honey_noise.yy",},
{"name":"node_hsv_channel","order":1,"path":"scripts/node_hsv_channel/node_hsv_channel.yy",},
{"name":"node_http_request","order":27,"path":"scripts/node_http_request/node_http_request.yy",},
@ -893,8 +890,9 @@
{"name":"node_image_grid","order":3,"path":"scripts/node_image_grid/node_image_grid.yy",},
{"name":"node_image_sequence","order":3,"path":"scripts/node_image_sequence/node_image_sequence.yy",},
{"name":"node_image_sheet","order":4,"path":"scripts/node_image_sheet/node_image_sheet.yy",},
{"name":"node_image","order":3,"path":"scripts/node_image/node_image.yy",},
{"name":"node_interlaced","order":26,"path":"scripts/node_interlaced/node_interlaced.yy",},
{"name":"node_interpret_number","order":3,"path":"scripts/node_interpret_number/node_interpret_number.yy",},
{"name":"node_interpret_number","order":7,"path":"scripts/node_interpret_number/node_interpret_number.yy",},
{"name":"node_invert","order":6,"path":"scripts/node_invert/node_invert.yy",},
{"name":"node_isosurf","order":3,"path":"scripts/node_isosurf/node_isosurf.yy",},
{"name":"node_iterate_inline","order":3,"path":"scripts/node_iterate_inline/node_iterate_inline.yy",},
@ -907,17 +905,17 @@
{"name":"node_iterator_filter_inline_output","order":2,"path":"scripts/node_iterator_filter_inline_output/node_iterator_filter_inline_output.yy",},
{"name":"node_iterator_filter_input","order":1,"path":"scripts/node_iterator_filter_input/node_iterator_filter_input.yy",},
{"name":"node_iterator_filter_output","order":2,"path":"scripts/node_iterator_filter_output/node_iterator_filter_output.yy",},
{"name":"node_iterator_index","order":2,"path":"scripts/node_iterator_index/node_iterator_index.yy",},
{"name":"node_iterator_index","order":8,"path":"scripts/node_iterator_index/node_iterator_index.yy",},
{"name":"node_iterator_input","order":1,"path":"scripts/node_iterator_input/node_iterator_input.yy",},
{"name":"node_iterator_length","order":3,"path":"scripts/node_iterator_length/node_iterator_length.yy",},
{"name":"node_iterator_length","order":9,"path":"scripts/node_iterator_length/node_iterator_length.yy",},
{"name":"node_iterator_output","order":2,"path":"scripts/node_iterator_output/node_iterator_output.yy",},
{"name":"node_iterator_sort_inline_input","order":1,"path":"scripts/node_iterator_sort_inline_input/node_iterator_sort_inline_input.yy",},
{"name":"node_iterator_sort_inline_output","order":2,"path":"scripts/node_iterator_sort_inline_output/node_iterator_sort_inline_output.yy",},
{"name":"node_iterator_sort_input","order":1,"path":"scripts/node_iterator_sort_input/node_iterator_sort_input.yy",},
{"name":"node_iterator_sort_output","order":2,"path":"scripts/node_iterator_sort_output/node_iterator_sort_output.yy",},
{"name":"node_jpeg","order":24,"path":"scripts/node_jpeg/node_jpeg.yy",},
{"name":"node_json_file_read","order":7,"path":"scripts/node_json_file_read/node_json_file_read.yy",},
{"name":"node_json_file_write","order":11,"path":"scripts/node_json_file_write/node_json_file_write.yy",},
{"name":"node_json_file_read","order":5,"path":"scripts/node_json_file_read/node_json_file_read.yy",},
{"name":"node_json_file_write","order":9,"path":"scripts/node_json_file_write/node_json_file_write.yy",},
{"name":"node_keyframe","order":4,"path":"scripts/node_keyframe/node_keyframe.yy",},
{"name":"node_kuwahara","order":22,"path":"scripts/node_kuwahara/node_kuwahara.yy",},
{"name":"node_lerp","order":3,"path":"scripts/node_lerp/node_lerp.yy",},
@ -934,25 +932,26 @@
{"name":"node_mesh_to_path","order":3,"path":"scripts/node_mesh_to_path/node_mesh_to_path.yy",},
{"name":"node_mesh_transform","order":2,"path":"scripts/node_mesh_transform/node_mesh_transform.yy",},
{"name":"node_mesh_warp","order":8,"path":"scripts/node_mesh_warp/node_mesh_warp.yy",},
{"name":"node_midi_in","order":19,"path":"scripts/node_midi_in/node_midi_in.yy",},
{"name":"node_midi_in","order":14,"path":"scripts/node_midi_in/node_midi_in.yy",},
{"name":"node_mirror","order":3,"path":"scripts/node_mirror/node_mirror.yy",},
{"name":"node_mk_blinker","order":10,"path":"scripts/node_mk_blinker/node_mk_blinker.yy",},
{"name":"node_mk_brownian","order":8,"path":"scripts/node_mk_brownian/node_mk_brownian.yy",},
{"name":"node_mk_cable","order":4,"path":"scripts/node_mk_cable/node_mk_cable.yy",},
{"name":"node_mk_delay_machine","order":11,"path":"scripts/node_mk_delay_machine/node_mk_delay_machine.yy",},
{"name":"node_mk_fall","order":9,"path":"scripts/node_mk_fall/node_mk_fall.yy",},
{"name":"node_mk_flag","order":5,"path":"scripts/node_mk_flag/node_mk_flag.yy",},
{"name":"node_mk_flame","order":7,"path":"scripts/node_mk_flame/node_mk_flame.yy",},
{"name":"node_mk_flare","order":12,"path":"scripts/node_mk_flare/node_mk_flare.yy",},
{"name":"node_mk_blinker","order":11,"path":"scripts/node_mk_blinker/node_mk_blinker.yy",},
{"name":"node_mk_brownian","order":9,"path":"scripts/node_mk_brownian/node_mk_brownian.yy",},
{"name":"node_mk_cable","order":5,"path":"scripts/node_mk_cable/node_mk_cable.yy",},
{"name":"node_mk_delay_machine","order":12,"path":"scripts/node_mk_delay_machine/node_mk_delay_machine.yy",},
{"name":"node_mk_fall","order":10,"path":"scripts/node_mk_fall/node_mk_fall.yy",},
{"name":"node_mk_flag","order":6,"path":"scripts/node_mk_flag/node_mk_flag.yy",},
{"name":"node_mk_flame","order":8,"path":"scripts/node_mk_flame/node_mk_flame.yy",},
{"name":"node_mk_flare","order":13,"path":"scripts/node_mk_flare/node_mk_flare.yy",},
{"name":"node_mk_fracture","order":15,"path":"scripts/node_mk_fracture/node_mk_fracture.yy",},
{"name":"node_mk_gridflip","order":2,"path":"scripts/node_mk_gridflip/node_mk_gridflip.yy",},
{"name":"node_mk_rain","order":1,"path":"scripts/node_mk_rain/node_mk_rain.yy",},
{"name":"node_mk_saber","order":3,"path":"scripts/node_mk_saber/node_mk_saber.yy",},
{"name":"node_mk_sparkle","order":13,"path":"scripts/node_mk_sparkle/node_mk_sparkle.yy",},
{"name":"node_mk_gridballs","order":1,"path":"scripts/node_mk_gridballs/node_mk_gridballs.yy",},
{"name":"node_mk_gridflip","order":3,"path":"scripts/node_mk_gridflip/node_mk_gridflip.yy",},
{"name":"node_mk_rain","order":2,"path":"scripts/node_mk_rain/node_mk_rain.yy",},
{"name":"node_mk_saber","order":4,"path":"scripts/node_mk_saber/node_mk_saber.yy",},
{"name":"node_mk_sparkle","order":14,"path":"scripts/node_mk_sparkle/node_mk_sparkle.yy",},
{"name":"node_mk_subpixel","order":16,"path":"scripts/node_mk_subpixel/node_mk_subpixel.yy",},
{"name":"node_mk_tile","order":6,"path":"scripts/node_mk_tile/node_mk_tile.yy",},
{"name":"node_mk_tile","order":7,"path":"scripts/node_mk_tile/node_mk_tile.yy",},
{"name":"node_module_test","order":23,"path":"scripts/node_module_test/node_module_test.yy",},
{"name":"node_monitor_capture","order":19,"path":"scripts/node_monitor_capture/node_monitor_capture.yy",},
{"name":"node_monitor_capture","order":21,"path":"scripts/node_monitor_capture/node_monitor_capture.yy",},
{"name":"node_morph_surface","order":5,"path":"scripts/node_morph_surface/node_morph_surface.yy",},
{"name":"node_move_point","order":9,"path":"scripts/node_move_point/node_move_point.yy",},
{"name":"node_noise_aniso","order":1,"path":"scripts/node_noise_aniso/node_noise_aniso.yy",},
@ -966,10 +965,10 @@
{"name":"node_normal_light","order":2,"path":"scripts/node_normal_light/node_normal_light.yy",},
{"name":"node_normal","order":1,"path":"scripts/node_normal/node_normal.yy",},
{"name":"node_normalize","order":17,"path":"scripts/node_normalize/node_normalize.yy",},
{"name":"node_note","order":15,"path":"scripts/node_note/node_note.yy",},
{"name":"node_note","order":17,"path":"scripts/node_note/node_note.yy",},
{"name":"node_number","order":1,"path":"scripts/node_number/node_number.yy",},
{"name":"node_offset","order":17,"path":"scripts/node_offset/node_offset.yy",},
{"name":"node_onion_skin","order":10,"path":"scripts/node_onion_skin/node_onion_skin.yy",},
{"name":"node_onion_skin","order":12,"path":"scripts/node_onion_skin/node_onion_skin.yy",},
{"name":"node_outline","order":12,"path":"scripts/node_outline/node_outline.yy",},
{"name":"node_override_channel","order":2,"path":"scripts/node_override_channel/node_override_channel.yy",},
{"name":"node_pack_sprites","order":4,"path":"scripts/node_pack_sprites/node_pack_sprites.yy",},
@ -1034,27 +1033,27 @@
{"name":"node_pb_layer","order":1,"path":"scripts/node_pb_layer/node_pb_layer.yy",},
{"name":"node_pb","order":5,"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_equation","order":2,"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_surface_width","order":1,"path":"scripts/node_PCX_fn_surface_width/node_PCX_fn_surface_width.yy",},
{"name":"node_PCX_fn_var","order":1,"path":"scripts/node_PCX_fn_var/node_PCX_fn_var.yy",},
{"name":"node_PCX_var","order":1,"path":"scripts/node_PCX_var/node_PCX_var.yy",},
{"name":"node_PCX_var","order":6,"path":"scripts/node_PCX_var/node_PCX_var.yy",},
{"name":"node_perlin_extra","order":10,"path":"scripts/node_perlin_extra/node_perlin_extra.yy",},
{"name":"node_perlin_smear","order":9,"path":"scripts/node_perlin_smear/node_perlin_smear.yy",},
{"name":"node_perlin","order":8,"path":"scripts/node_perlin/node_perlin.yy",},
{"name":"node_pin","order":2,"path":"scripts/node_pin/node_pin.yy",},
{"name":"node_pin","order":4,"path":"scripts/node_pin/node_pin.yy",},
{"name":"node_pixel_builder","order":4,"path":"scripts/node_pixel_builder/node_pixel_builder.yy",},
{"name":"node_pixel_cloud","order":21,"path":"scripts/node_pixel_cloud/node_pixel_cloud.yy",},
{"name":"node_pixel_math","order":27,"path":"scripts/node_pixel_math/node_pixel_math.yy",},
{"name":"node_pixel_sampler","order":22,"path":"scripts/node_pixel_sampler/node_pixel_sampler.yy",},
{"name":"node_pixel_sampler","order":14,"path":"scripts/node_pixel_sampler/node_pixel_sampler.yy",},
{"name":"node_pixel_sort","order":12,"path":"scripts/node_pixel_sort/node_pixel_sort.yy",},
{"name":"node_plot_linear","order":5,"path":"scripts/node_plot_linear/node_plot_linear.yy",},
{"name":"node_point_in_area","order":1,"path":"scripts/node_point_in_area/node_point_in_area.yy",},
{"name":"node_polar","order":4,"path":"scripts/node_polar/node_polar.yy",},
{"name":"node_posterize","order":13,"path":"scripts/node_posterize/node_posterize.yy",},
{"name":"node_print","order":8,"path":"scripts/node_print/node_print.yy",},
{"name":"node_print","order":10,"path":"scripts/node_print/node_print.yy",},
{"name":"node_processor","order":6,"path":"scripts/node_processor/node_processor.yy",},
{"name":"node_project_data","order":21,"path":"scripts/node_project_data/node_project_data.yy",},
{"name":"node_project_data","order":23,"path":"scripts/node_project_data/node_project_data.yy",},
{"name":"node_pytagorean_tile","order":6,"path":"scripts/node_pytagorean_tile/node_pytagorean_tile.yy",},
{"name":"node_quasicrystal","order":9,"path":"scripts/node_quasicrystal/node_quasicrystal.yy",},
{"name":"node_random_shape","order":7,"path":"scripts/node_random_shape/node_random_shape.yy",},
@ -1062,11 +1061,11 @@
{"name":"node_random","order":6,"path":"scripts/node_random/node_random.yy",},
{"name":"node_rate_remap","order":3,"path":"scripts/node_rate_remap/node_rate_remap.yy",},
{"name":"node_raymarching","order":5,"path":"scripts/node_raymarching/node_raymarching.yy",},
{"name":"node_rd","order":4,"path":"scripts/node_rd/node_rd.yy",},
{"name":"node_rd","order":8,"path":"scripts/node_rd/node_rd.yy",},
{"name":"node_region_fill","order":1,"path":"scripts/node_region_fill/node_region_fill.yy",},
{"name":"node_registry","order":10,"path":"scripts/node_registry/node_registry.yy",},
{"name":"node_repeat_texture","order":23,"path":"scripts/node_repeat_texture/node_repeat_texture.yy",},
{"name":"node_repeat","order":5,"path":"scripts/node_repeat/node_repeat.yy",},
{"name":"node_repeat_texture","order":15,"path":"scripts/node_repeat_texture/node_repeat_texture.yy",},
{"name":"node_repeat","order":9,"path":"scripts/node_repeat/node_repeat.yy",},
{"name":"node_revert","order":29,"path":"scripts/node_revert/node_revert.yy",},
{"name":"node_rigid_activate","order":1,"path":"scripts/node_rigid_activate/node_rigid_activate.yy",},
{"name":"node_rigid_force_apply","order":2,"path":"scripts/node_rigid_force_apply/node_rigid_force_apply.yy",},
@ -1090,7 +1089,7 @@
{"name":"node_scale_algo","order":12,"path":"scripts/node_scale_algo/node_scale_algo.yy",},
{"name":"node_scale","order":8,"path":"scripts/node_scale/node_scale.yy",},
{"name":"node_scatter_points","order":7,"path":"scripts/node_scatter_points/node_scatter_points.yy",},
{"name":"node_scatter","order":6,"path":"scripts/node_scatter/node_scatter.yy",},
{"name":"node_scatter","order":10,"path":"scripts/node_scatter/node_scatter.yy",},
{"name":"node_segment_filter","order":21,"path":"scripts/node_segment_filter/node_segment_filter.yy",},
{"name":"node_sequence_anim","order":5,"path":"scripts/node_sequence_anim/node_sequence_anim.yy",},
{"name":"node_shadow_cast","order":15,"path":"scripts/node_shadow_cast/node_shadow_cast.yy",},
@ -1099,9 +1098,9 @@
{"name":"node_shape_polygon","order":6,"path":"scripts/node_shape_polygon/node_shape_polygon.yy",},
{"name":"node_shape","order":8,"path":"scripts/node_shape/node_shape.yy",},
{"name":"node_shard_noise","order":12,"path":"scripts/node_shard_noise/node_shard_noise.yy",},
{"name":"node_shell","order":13,"path":"scripts/node_shell/node_shell.yy",},
{"name":"node_shell","order":15,"path":"scripts/node_shell/node_shell.yy",},
{"name":"node_skew","order":11,"path":"scripts/node_skew/node_skew.yy",},
{"name":"node_sky","order":24,"path":"scripts/node_sky/node_sky.yy",},
{"name":"node_sky","order":16,"path":"scripts/node_sky/node_sky.yy",},
{"name":"node_slideshow","order":28,"path":"scripts/node_slideshow/node_slideshow.yy",},
{"name":"node_smear","order":12,"path":"scripts/node_smear/node_smear.yy",},
{"name":"node_smoke_add_collider","order":7,"path":"scripts/node_smoke_add_collider/node_smoke_add_collider.yy",},
@ -1116,9 +1115,9 @@
{"name":"node_smoke_turbulence","order":11,"path":"scripts/node_smoke_turbulence/node_smoke_turbulence.yy",},
{"name":"node_smoke_update","order":4,"path":"scripts/node_smoke_update/node_smoke_update.yy",},
{"name":"node_smoke_vortex","order":9,"path":"scripts/node_smoke_vortex/node_smoke_vortex.yy",},
{"name":"node_solid","order":7,"path":"scripts/node_solid/node_solid.yy",},
{"name":"node_solid","order":11,"path":"scripts/node_solid/node_solid.yy",},
{"name":"node_spherize","order":6,"path":"scripts/node_spherize/node_spherize.yy",},
{"name":"node_spout_send","order":18,"path":"scripts/node_spout_send/node_spout_send.yy",},
{"name":"node_spout_send","order":13,"path":"scripts/node_spout_send/node_spout_send.yy",},
{"name":"node_sprite_stack","order":3,"path":"scripts/node_sprite_stack/node_sprite_stack.yy",},
{"name":"node_stack","order":4,"path":"scripts/node_stack/node_stack.yy",},
{"name":"node_stagger","order":4,"path":"scripts/node_stagger/node_stagger.yy",},
@ -1148,13 +1147,13 @@
{"name":"node_struct_set","order":3,"path":"scripts/node_struct_set/node_struct_set.yy",},
{"name":"node_surface_data","order":5,"path":"scripts/node_surface_data/node_surface_data.yy",},
{"name":"node_surface_from_buffer","order":2,"path":"scripts/node_surface_from_buffer/node_surface_from_buffer.yy",},
{"name":"node_surface_replace","order":8,"path":"scripts/node_surface_replace/node_surface_replace.yy",},
{"name":"node_surface_replace","order":12,"path":"scripts/node_surface_replace/node_surface_replace.yy",},
{"name":"node_surface_to_color","order":1,"path":"scripts/node_surface_to_color/node_surface_to_color.yy",},
{"name":"node_svg","order":6,"path":"scripts/node_svg/node_svg.yy",},
{"name":"node_switch","order":5,"path":"scripts/node_switch/node_switch.yy",},
{"name":"node_terminal_trigger","order":23,"path":"scripts/node_terminal_trigger/node_terminal_trigger.yy",},
{"name":"node_text_file_read","order":6,"path":"scripts/node_text_file_read/node_text_file_read.yy",},
{"name":"node_text_file_write","order":10,"path":"scripts/node_text_file_write/node_text_file_write.yy",},
{"name":"node_switch","order":7,"path":"scripts/node_switch/node_switch.yy",},
{"name":"node_terminal_trigger","order":25,"path":"scripts/node_terminal_trigger/node_terminal_trigger.yy",},
{"name":"node_text_file_read","order":4,"path":"scripts/node_text_file_read/node_text_file_read.yy",},
{"name":"node_text_file_write","order":8,"path":"scripts/node_text_file_write/node_text_file_write.yy",},
{"name":"node_text","order":9,"path":"scripts/node_text/node_text.yy",},
{"name":"node_texture_remap","order":2,"path":"scripts/node_texture_remap/node_texture_remap.yy",},
{"name":"node_threshold","order":9,"path":"scripts/node_threshold/node_threshold.yy",},
@ -1164,7 +1163,8 @@
{"name":"node_tiler_export","order":5,"path":"scripts/node_tiler_export/node_tiler_export.yy",},
{"name":"node_tiler_render","order":7,"path":"scripts/node_tiler_render/node_tiler_render.yy",},
{"name":"node_tiler_rule","order":6,"path":"scripts/node_tiler_rule/node_tiler_rule.yy",},
{"name":"node_tiler_tileset","order":3,"path":"scripts/node_tiler_tileset/node_tiler_tileset.yy",},
{"name":"node_tiler_tileset","order":4,"path":"scripts/node_tiler_tileset/node_tiler_tileset.yy",},
{"name":"node_tiler","order":3,"path":"scripts/node_tiler/node_tiler.yy",},
{"name":"node_time_remap","order":3,"path":"scripts/node_time_remap/node_time_remap.yy",},
{"name":"node_timeline_preview","order":2,"path":"scripts/node_timeline_preview/node_timeline_preview.yy",},
{"name":"node_to_number","order":14,"path":"scripts/node_to_number/node_to_number.yy",},
@ -1251,15 +1251,15 @@
{"name":"node_vignette","order":18,"path":"scripts/node_vignette/node_vignette.yy",},
{"name":"node_voronoi_extra","order":16,"path":"scripts/node_voronoi_extra/node_voronoi_extra.yy",},
{"name":"node_warp","order":2,"path":"scripts/node_warp/node_warp.yy",},
{"name":"node_wav_file_read","order":15,"path":"scripts/node_wav_file_read/node_wav_file_read.yy",},
{"name":"node_wav_file_write","order":16,"path":"scripts/node_wav_file_write/node_wav_file_write.yy",},
{"name":"node_wav_file_read","order":11,"path":"scripts/node_wav_file_read/node_wav_file_read.yy",},
{"name":"node_wav_file_write","order":12,"path":"scripts/node_wav_file_write/node_wav_file_write.yy",},
{"name":"node_wavelet_noise","order":13,"path":"scripts/node_wavelet_noise/node_wavelet_noise.yy",},
{"name":"node_websocket_sender","order":1,"path":"scripts/node_websocket_sender/node_websocket_sender.yy",},
{"name":"node_widget_test","order":14,"path":"scripts/node_widget_test/node_widget_test.yy",},
{"name":"node_widget_test","order":16,"path":"scripts/node_widget_test/node_widget_test.yy",},
{"name":"node_wrap_area","order":10,"path":"scripts/node_wrap_area/node_wrap_area.yy",},
{"name":"node_wrap_perspective","order":15,"path":"scripts/node_wrap_perspective/node_wrap_perspective.yy",},
{"name":"node_xml_file_read","order":24,"path":"scripts/node_xml_file_read/node_xml_file_read.yy",},
{"name":"node_xml_file_write","order":25,"path":"scripts/node_xml_file_write/node_xml_file_write.yy",},
{"name":"node_xml_file_read","order":18,"path":"scripts/node_xml_file_read/node_xml_file_read.yy",},
{"name":"node_xml_file_write","order":19,"path":"scripts/node_xml_file_write/node_xml_file_write.yy",},
{"name":"node_zigzag","order":5,"path":"scripts/node_zigzag/node_zigzag.yy",},
{"name":"nodeValue_drawer","order":1,"path":"scripts/nodeValue_drawer/nodeValue_drawer.yy",},
{"name":"note_data","order":19,"path":"scripts/note_data/note_data.yy",},
@ -1287,7 +1287,7 @@
{"name":"panel_file_explorer","order":12,"path":"scripts/panel_file_explorer/panel_file_explorer.yy",},
{"name":"panel_function","order":1,"path":"scripts/panel_function/panel_function.yy",},
{"name":"panel_globalvar","order":1,"path":"scripts/panel_globalvar/panel_globalvar.yy",},
{"name":"panel_gm_explorer","order":13,"path":"scripts/panel_gm_explorer/panel_gm_explorer.yy",},
{"name":"panel_gm_explorer","order":2,"path":"scripts/panel_gm_explorer/panel_gm_explorer.yy",},
{"name":"panel_gradient","order":2,"path":"scripts/panel_gradient/panel_gradient.yy",},
{"name":"panel_graph_auto_organize","order":10,"path":"scripts/panel_graph_auto_organize/panel_graph_auto_organize.yy",},
{"name":"panel_graph_connection_settings","order":6,"path":"scripts/panel_graph_connection_settings/panel_graph_connection_settings.yy",},
@ -1970,7 +1970,6 @@
{"name":"s_folder_add","order":66,"path":"sprites/s_folder_add/s_folder_add.yy",},
{"name":"s_folder_content","order":67,"path":"sprites/s_folder_content/s_folder_content.yy",},
{"name":"s_frame_range","order":68,"path":"sprites/s_frame_range/s_frame_range.yy",},
{"name":"s_gamemaker","order":2,"path":"sprites/s_gamemaker/s_gamemaker.yy",},
{"name":"s_gear_16","order":230,"path":"sprites/s_gear_16/s_gear_16.yy",},
{"name":"s_gear_24","order":69,"path":"sprites/s_gear_24/s_gear_24.yy",},
{"name":"s_gizmo","order":4,"path":"sprites/s_gizmo/s_gizmo.yy",},

View file

@ -76,7 +76,6 @@
{"$GMFolder":"","%Name":"dynaSurf","folderPath":"folders/functions/draw/dynaSurf.yy","name":"dynaSurf","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"ds","folderPath":"folders/functions/ds.yy","name":"ds","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"files","folderPath":"folders/functions/files.yy","name":"files","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"gamemaker","folderPath":"folders/functions/gamemaker.yy","name":"gamemaker","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"geometry","folderPath":"folders/functions/geometry.yy","name":"geometry","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"GLSL","folderPath":"folders/functions/GLSL.yy","name":"GLSL","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"importers","folderPath":"folders/functions/importers.yy","name":"importers","resourceType":"GMFolder","resourceVersion":"2.0",},
@ -141,8 +140,8 @@
{"$GMFolder":"","%Name":"effects","folderPath":"folders/nodes/data/filter/effects.yy","name":"effects","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"fixes","folderPath":"folders/nodes/data/filter/fixes.yy","name":"fixes","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"warps","folderPath":"folders/nodes/data/filter/warps.yy","name":"warps","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"game engines","folderPath":"folders/nodes/data/game engines.yy","name":"game engines","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"gamemaker","folderPath":"folders/nodes/data/game engines/gamemaker.yy","name":"gamemaker","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"game engines","folderPath":"folders/game engines.yy","name":"game engines","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"gamemaker","folderPath":"folders/game engines/gamemaker.yy","name":"gamemaker","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"generator","folderPath":"folders/nodes/data/generator.yy","name":"generator","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"drawer","folderPath":"folders/nodes/data/generator/drawer.yy","name":"drawer","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"noise","folderPath":"folders/nodes/data/generator/noise.yy","name":"noise","resourceType":"GMFolder","resourceVersion":"2.0",},

View file

@ -15,4 +15,5 @@
.treeview .dir[data-rel-path="folders/widgets/"] > .header:before { background: url("file:///D:/Project/MakhamDev/LTS-PixelComposer/RESOURCE/data/ide/dir_widgets.png") center/contain no-repeat; }
.treeview .dir[data-rel-path="folders/nodes/data/"] > .header:before { background: url("file:///D:/Project/MakhamDev/LTS-PixelComposer/RESOURCE/data/ide/dir_nodes.png") center/contain no-repeat; }
.treeview .dir[data-rel-path="folders/nodes/__base__/"] > .header:before { background: url("file:///D:/Project/MakhamDev/LTS-PixelComposer/RESOURCE/data/ide/dir_empty.png") center/contain no-repeat; }
.treeview .dir[data-rel-path="folders/__extensions/"] > .header:before { background: url("file:///D:/Project/MakhamDev/LTS-PixelComposer/RESOURCE/data/ide/dir_empty.png") center/contain no-repeat; }
.treeview .dir[data-rel-path="folders/__extensions/"] > .header:before { background: url("file:///D:/Project/MakhamDev/LTS-PixelComposer/RESOURCE/data/ide/dir_empty.png") center/contain no-repeat; }
.treeview .dir[data-rel-path="folders/game engines/gamemaker/"] > .header:before { background: url("file:///D:/Project/MakhamDev/LTS-PixelComposer/RESOURCE/data/default/graphics/_unused/s_gamemaker.png") center/contain no-repeat; }

View file

@ -106,6 +106,7 @@ if(sFOCUS) {
content.in_dialog = false;
instance_destroy();
} else if(mouse_press(mb_right)) {
menuCall("panel_window_menu", [
menuItem(__txt("Move"), function() {

View file

@ -21,8 +21,10 @@ if(struct_has(content, "version")) {
printIf(log, $" > Load meta : {(get_timer() - t1) / 1000} ms"); t1 = get_timer();
load_process = 1;
load_delay = 50_000;
node_length = 0;
load_noti = new notification(NOTI_TYPE.log, noti_status($"Loading {path}..."));
load_noti = new notification(NOTI_TYPE.log, noti_status($"Loading {path}..."));
load_noti.progress = 0;
array_append(STATS_PROGRESS, load_noti);
node_length = 0;
PROJECT.deserialize(content);

View file

@ -37,7 +37,6 @@ switch(load_process) {
if(_skp) break;
array_resize(create_list, node_length);
PROJECT.deserialize(content);
printIf(log, $" > Load nodes : {(get_timer() - t1) / 1000} ms"); t1 = get_timer();
load_process = 2;

View file

@ -66,11 +66,11 @@ function tiler_brush_autoterrain(_type, _index) constructor {
}
switch(_type) {
case 0 : index = array_verify_ext(index, 9, function() /*=>*/ {return -1}); prevInd = 4; break;
case 1 : index = array_verify_ext(index, 25, function() /*=>*/ {return -1}); prevInd = 12; break;
case 2 : index = array_verify_ext(index, 15, function() /*=>*/ {return -1}); prevInd = 6; break;
case 3 : index = array_verify_ext(index, 48, function() /*=>*/ {return -1}); prevInd = 33; break;
case 4 : index = array_verify_ext(index, 55, function() /*=>*/ {return -1}); prevInd = 12; break;
case 0 : index = array_verify_ext(index, 9, function() /*=>*/ {return -1}); prevInd = 0; break;
case 1 : index = array_verify_ext(index, 25, function() /*=>*/ {return -1}); prevInd = 1; break;
case 2 : index = array_verify_ext(index, 15, function() /*=>*/ {return -1}); prevInd = 0; break;
case 3 : index = array_verify_ext(index, 48, function() /*=>*/ {return -1}); prevInd = 8; break;
case 4 : index = array_verify_ext(index, 55, function() /*=>*/ {return -1}); prevInd = 0; break;
}
if(type != -1) {

View file

@ -13,27 +13,22 @@ function Binder_Gamemaker(path) {
}
function GMObject(_gm, _rpth, _rawData) constructor {
serialize_keys = {};
static serialize_bool_keys = {};
gmBinder = _gm;
path = $"{_gm.dir}/{_rpth}";
key = _rpth;
raw = _rawData;
type = _rawData.resourceType;
name = raw.name;
type = raw.resourceType;
thumbnail = noone;
static formatPrimitive = function(key, val) {
if(is_undefined(val)) return "null";
var _type = key != "" && struct_has(serialize_keys, key)? serialize_keys[$ key] : (is_string(val)? __GM_FILE_DATATYPE.string : __GM_FILE_DATATYPE.float);
if(is_string(val)) return $"\"{val}\"";
switch(_type) {
case __GM_FILE_DATATYPE.float : return string(val);
case __GM_FILE_DATATYPE.integer : return string_format(val, -1, 0);
case __GM_FILE_DATATYPE.bool : return bool(val)? "true" : "false";
case __GM_FILE_DATATYPE.string : return $"\"{val}\"";
}
return val;
if(struct_has(serialize_bool_keys, key)) return bool(val)? "true" : "false";
return string(val);
}
static simple_serialize = function(s, _pad, _depth = 0, _nline = false) {
@ -115,8 +110,19 @@ function __Binder_Gamemaker(path) constructor {
{ name: "rooms", data : [], closed : false, },
];
nodeMap = {};
static getResourceFromPath = function(path) { return struct_try_get(resourcesMap, path, noone); }
static getNodeFromPath = function(path, _x, _y) {
if(struct_has(nodeMap, path)) return nodeMap[$ path];
var _n = nodeBuild("Node_Tile_Tileset", _x, _y).skipDefault();
nodeMap[$ path] = _n;
return _n;
}
static readYY = function(path) {
var _res = file_read_all(path);
var _map = json_try_parse(_res, noone);

View file

@ -6,7 +6,7 @@
"name":"binder_gamemaker",
"parent":{
"name":"gamemaker",
"path":"folders/functions/gamemaker.yy",
"path":"folders/game engines/gamemaker.yy",
},
"resourceType":"GMScript",
"resourceVersion":"2.0",

View file

@ -1,34 +1,33 @@
function GMRoom(_gm, _rpth, _rawData) : GMObject(_gm, _rpth, _rawData) constructor {
struct_append(serialize_keys, {
effectEnabled: __GM_FILE_DATATYPE.bool,
inheritSubLayers: __GM_FILE_DATATYPE.bool,
inheritVisibility: __GM_FILE_DATATYPE.bool,
visible: __GM_FILE_DATATYPE.bool,
clearDisplayBuffer: __GM_FILE_DATATYPE.bool,
inheritCode: __GM_FILE_DATATYPE.bool,
inheritCreationOrder: __GM_FILE_DATATYPE.bool,
inheritLayers: __GM_FILE_DATATYPE.bool,
isDnd: __GM_FILE_DATATYPE.bool,
hierarchyFrozen: __GM_FILE_DATATYPE.bool,
inheritLayerDepth: __GM_FILE_DATATYPE.bool,
inheritLayerSettings: __GM_FILE_DATATYPE.bool,
userdefinedDepth: __GM_FILE_DATATYPE.bool,
htiled: __GM_FILE_DATATYPE.bool,
stretch: __GM_FILE_DATATYPE.bool,
userdefinedAnimFPS: __GM_FILE_DATATYPE.bool,
vtiled: __GM_FILE_DATATYPE.bool,
inheritPhysicsSettings: __GM_FILE_DATATYPE.bool,
PhysicsWorld: __GM_FILE_DATATYPE.bool,
inheritRoomSettings: __GM_FILE_DATATYPE.bool,
persistent: __GM_FILE_DATATYPE.bool,
inherit: __GM_FILE_DATATYPE.bool,
clearViewBackground: __GM_FILE_DATATYPE.bool,
enableViews: __GM_FILE_DATATYPE.bool,
inheritViewSettings: __GM_FILE_DATATYPE.bool,
})
static serialize_bool_keys = {
clearDisplayBuffer: 1,
clearViewBackground: 1,
effectEnabled: 1,
enableViews: 1,
hierarchyFrozen: 1,
htiled: 1,
inherit: 1,
inheritCode: 1,
inheritCreationOrder: 1,
inheritLayerDepth: 1,
inheritLayers: 1,
inheritLayerSettings: 1,
inheritPhysicsSettings: 1,
inheritRoomSettings: 1,
inheritSubLayers: 1,
inheritViewSettings: 1,
inheritVisibility: 1,
isDnd: 1,
persistent: 1,
PhysicsWorld: 1,
stretch: 1,
userdefinedAnimFPS: 1,
userdefinedDepth: 1,
visible: 1,
vtiled: 1,
};
layers = GMRoom_create_layers(self, gmBinder, raw.layers);
roomSettings = raw.roomSettings;
static link = function() { array_foreach(layers, function(l) /*=>*/ {return l.link()}); }
@ -96,14 +95,14 @@ function GMRoom_create_layers(_room, _gm, layers) {
}
function GMRoom_Layer(_room, _gm, _raw) constructor {
gmBinder = _gm;
room = _room;
raw = _raw;
name = _raw.name;
visible = _raw.visible;
depth = _raw.depth;
gmBinder = _gm;
roomObject = _room;
raw = _raw;
name = _raw.name;
visible = _raw.visible;
depth = _raw.depth;
layers = GMRoom_create_layers(_gm, _raw.layers);
layers = GMRoom_create_layers(roomObject, _gm, _raw.layers);
index = 6;
static link = function() { array_foreach(layers, function(l) /*=>*/ {return l.link()}); }
@ -121,25 +120,16 @@ function GMRoom_Layer(_room, _gm, _raw) constructor {
function GMRoom_Background(_room, _gm, _raw) : GMRoom_Layer(_room, _gm, _raw) constructor {
index = 0;
x = raw.x;
y = raw.y;
colour = raw.colour;
}
function GMRoom_Tile(_room, _gm, _raw) : GMRoom_Layer(_room, _gm, _raw) constructor {
index = 1;
x = raw.x;
y = raw.y;
tiles = raw.tiles;
tilesetId = raw.tilesetId;
tileset = noone;
amount_w = tiles.SerialiseWidth;
amount_h = tiles.SerialiseHeight;
static link = function() {
tileset = gmBinder.getResourceFromPath(struct_try_get(tilesetId, "path", ""));
array_foreach(layers, function(l) /*=>*/ {return l.link()});

View file

@ -6,7 +6,7 @@
"name":"binder_gamemaker_room",
"parent":{
"name":"gamemaker",
"path":"folders/functions/gamemaker.yy",
"path":"folders/game engines/gamemaker.yy",
},
"resourceType":"GMScript",
"resourceVersion":"2.0",

View file

@ -15,16 +15,16 @@ function buffer_get_color(buffer, _x, _y, w, h) {
return c;
}
function buffer_get_string(buffer, text = true, limit = 400) {
function buffer_get_string(buffer, text = true, limit = 400, btype = buffer_u8) {
if(is_array(buffer)) return "[buffer array]";
if(!buffer_exists(buffer)) return "";
buffer_seek(buffer, buffer_seek_start, 0);
var len = min(limit, buffer_get_size(buffer));
var len = min(limit, buffer_get_size(buffer) / buffer_sizeof(btype));
var ss = "";
for (var i = 0; i < len; i++) {
var _r = buffer_read(buffer, buffer_u8);
var _r = buffer_read(buffer, btype);
var _s = text? chr(_r) : dec_to_hex(_r, 2);
ss += _s;
if(!text && i % 2) ss += " ";

View file

@ -17,9 +17,10 @@ function buttonGroup(_data, _onClick) : widget() constructor {
sb_small = new scrollBox(data, _onClick);
static setFont = function(ff) { font = ff; return self; }
static setTooltips = function(tt) { tooltips = tt; return self; }
static setCollape = function(cc) { collapsable = cc; return self; }
static setButton = function(sp) { buttonSpr = sp; return self; }
static setFont = function(ff, fc = fColor) { font = ff; fColor = fc; return self; }
static setTooltips = function(tt) { tooltips = tt; return self; }
static setCollape = function(cc) { collapsable = cc; return self; }
static trigger = function() {
if(current_selecting + 1 >= array_length(data))

View file

@ -1,6 +1,9 @@
#region counter
globalvar DEBUG_COUNTER;
DEBUG_COUNTER = ds_map_create();
var _p = $"D:/Project/MakhamDev/LTS-PixelComposer/MISC/temp/";
if(directory_exists(_p)) directory_destroy(_p);
#endregion
#macro printlog if(log) show_debug_message
@ -13,6 +16,17 @@ function print(str) {
noti_status(_s);
}
function printSurface(name, surface) {
if(!is_surface(surface)) {
noti_status($"{name}|Error: Not a valid surface {surface}");
return;
}
var _p = $"D:/Project/MakhamDev/LTS-PixelComposer/MISC/temp/{UUID_generate()}.png";
surface_save_safe(surface, _p);
noti_status($"{name}|texture|{_p}");
}
function printIf(cond, log) { if(cond) print(log); }
function __debug_counter(key) {

View file

@ -21,8 +21,6 @@ function gamemakerPathBox(project) : widget() constructor {
project.attributes.bind_gamemaker_path = path;
project.bind_gamemaker = Binder_Gamemaker(project.attributes.bind_gamemaker_path);
if(project.bind_gamemaker == noone) project.attributes.bind_gamemaker_path = "";
else dialogPanelCall(new Panel_GM_Explore(project.bind_gamemaker));
}
draw_sprite_uniform(s_gamemaker, 0, _x + ui(16), _y + _h / 2, 1, COLORS._main_icon, 1);
@ -38,8 +36,8 @@ function gamemakerPathBox(project) : widget() constructor {
if(buttonInstant(THEME.button_def, _x, _y, ui(32), _h, _m, active, hover, "Explore project", s_gamemaker, 0, COLORS._main_icon) == 2)
dialogPanelCall(new Panel_GM_Explore(_gm));
draw_set_text(f_p2, fa_left, fa_center, COLORS._main_text);
draw_text_add(_x + ui(40), _y + _h / 2, _gm.projectName);
draw_set_text(f_p2, fa_center, fa_center, COLORS._main_text);
draw_text_add(_x + _w / 2, _y + _h / 2, _gm.projectName);
if(buttonInstant(THEME.button_def, _x + _w - ui(32), _y, ui(32), _h, _m, active, hover, "Disconnect", THEME.cross_12, 0, [ COLORS._main_icon, COLORS._main_value_negative ]) == 2) {
project.attributes.bind_gamemaker_path = "";

View file

@ -6,7 +6,7 @@
"name":"gamemakerPathBox",
"parent":{
"name":"gamemaker",
"path":"folders/functions/gamemaker.yy",
"path":"folders/game engines/gamemaker.yy",
},
"resourceType":"GMScript",
"resourceVersion":"2.0",

View file

@ -167,6 +167,7 @@
#macro returnNull_mf2 ; if(is_undefined(
#macro returnNull_mf3 ) ||
#macro returnNull_mf4 == noone) return;
#endregion
#region presets

View file

@ -19,7 +19,7 @@ function Node_GMRoom(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
tb_depth.label = "Depth";
tb_depth.font = f_p3;
layers_renderer = new Inspector_Custom_Renderer(function(_x, _y, _w, _m, _hover, _focus) {
layers_renderer = new Inspector_Custom_Renderer(function(_x, _y, _w, _m, _hover, _focus) {
if(gmRoom == noone) {
draw_sprite_stretched_ext(THEME.ui_panel_bg, 1, _x, _y, _w, ui(28), COLORS.node_composite_bg_blend, 1);
@ -34,29 +34,31 @@ function Node_GMRoom(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
draw_sprite_stretched_ext(THEME.ui_panel_bg, 1, _x, _y, _w, _h, COLORS.node_composite_bg_blend, 1);
for( var i = 0, n = array_length(gmRoom.layers); i < n; i++ ) {
var _bx = _x + ui(24);
var _yy = _y + ui(8) + i * hh;
var _layer = gmRoom.layers[i];
var _yy = _y + ui(8) + i * hh;
var _l = gmRoom.layers[i];
var _exposed = struct_has(inputMap, _l.name);
var cc = layer_selecting == _layer? COLORS._main_text_accent : COLORS._main_text_sub;
var cc = layer_selecting == _l? COLORS._main_text_accent : COLORS._main_text_sub;
if(_hover && point_in_rectangle(_m[0], _m[1], _x, _yy, _x + _w, _yy + hh - 1)) {
cc = COLORS._main_text;
if(mouse_press(mb_left, _focus))
layer_selecting = layer_selecting == _layer? noone : _layer;
layer_selecting = layer_selecting == _l? noone : _l;
}
draw_sprite_ui_uniform(s_gmlayer, _layer.index, _bx, _yy + hh / 2, 1, cc);
if(_exposed) draw_sprite_ui_uniform(THEME.animate_clock, 2, _x + ui(20),_yy + hh / 2, 1, COLORS._main_accent);
draw_sprite_ui_uniform(s_gmlayer, _l.index, _x + ui(44), _yy + hh / 2, 1, cc);
draw_set_text(f_p2, fa_left, fa_center, cc);
draw_text_add(_bx + ui(20), _yy + hh / 2, _layer.name);
draw_text_add(_x + ui(64), _yy + hh / 2, _l.name);
}
return _h;
});
layer_renderer_h = 0;
layer_renderer = new Inspector_Custom_Renderer(function(_x, _y, _w, _m, _hover, _focus) {
layer_renderer = new Inspector_Custom_Renderer(function(_x, _y, _w, _m, _hover, _focus) {
if(layer_selecting == noone) {
draw_sprite_stretched_ext(THEME.ui_panel_bg, 1, _x, _y, _w, ui(28), COLORS.node_composite_bg_blend, 1);
draw_set_text(f_p2, fa_center, fa_center, COLORS._main_text_sub);
@ -66,6 +68,7 @@ function Node_GMRoom(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
var _h = ui(40);
var _l = layer_selecting;
var _exposed = struct_has(inputMap, _l.name);
draw_sprite_stretched_ext(THEME.ui_panel_bg, 1, _x, _y, _w, layer_renderer_h, COLORS.node_composite_bg_blend, 1);
draw_sprite_ui_uniform(s_gmlayer, _l.index, _x + ui(8 + 16), _y + ui(8 + 16), 1, COLORS._main_icon);
@ -116,8 +119,8 @@ function Node_GMRoom(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
draw_sprite_stretched_ext(THEME.textbox, 3, _wdx, _wdy, _wdw / 2, _wdh, COLORS._main_icon_light);
draw_sprite_stretched_ext(THEME.textbox, 3, _wdx + _wdw / 2, _wdy, _wdw / 2, _wdh, COLORS._main_icon_light);
var _tw = _l.amount_w;
var _th = _l.amount_h;
var _tw = _l.tiles.SerialiseWidth;
var _th = _l.tiles.SerialiseHeight;
draw_set_text(f_p2, fa_center, fa_center, COLORS._main_text);
draw_text_add(_wdx + _wdw / 4, _wdy + _wdh / 2, _tw);
@ -130,7 +133,6 @@ function Node_GMRoom(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
_wdy = _yy;
_wdw = _w - ui(16);
var _exposed = struct_has(inputMap, _l.name);
if(_exposed) {
_wdh = ui(24);
draw_sprite_stretched_ext(THEME.textbox, 3, _wdx, _wdy, _wdw, _wdh, COLORS._main_icon_light);
@ -158,7 +160,7 @@ function Node_GMRoom(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
}
layer_renderer_h = _h + ui(8);
return _h;
return _h + ui(8);
});
input_display_list = [
@ -172,25 +174,6 @@ function Node_GMRoom(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
["Data", true],
];
static exposeData = function(_layer) {
var _inp = createNewInput();
_inp.name = _layer.name;
if(is(_layer, GMRoom_Tile)) {
_inp.setType(VALUE_TYPE.integer);
var _tileset = nodeBuild("Node_Tile_Tileset", x - ui(320), y).skipDefault();
_tileset.bindTile(_layer.tileset);
var _tiler = nodeBuild("Node_Tile_Drawer", x - ui(160), y).skipDefault();
_tiler.bindTile(_layer);
_tiler.inputs[0].setFrom(_tileset.outputs[0]);
_inp.setFrom(_tiler.outputs[3]);
}
}
static createNewInput = function() {
var index = array_length(inputs);
var _jun = newInput(index, nodeValue("Data", self, CONNECT_TYPE.input, VALUE_TYPE.any, 0 ));
@ -199,7 +182,6 @@ function Node_GMRoom(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
return _jun;
}
setDynamicInput(1, false);
////- GM
@ -210,11 +192,13 @@ function Node_GMRoom(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
layerMap = {};
if(_gmRoom == noone) return;
gmRoom.gmBinder.nodeMap[$ gmRoom.key] = self;
layers = gmRoom.layers;
for( var i = 0, n = array_length(layers); i < n; i++ )
layerMap[$ layers[i].name] = layers[i];
var _settings = gmRoom.roomSettings;
var _settings = gmRoom.raw.roomSettings;
var _width = _settings.Width;
var _height = _settings.Height;
var _persistance = _settings.persistent;
@ -223,6 +207,26 @@ function Node_GMRoom(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
inputs[1].setValue(_persistance);
}
static exposeData = function(_layer) {
var _in = createNewInput();
_in.name = _layer.name;
_in.attributes.layerName = _layer.name;
if(is(_layer, GMRoom_Tile)) {
_in.setType(VALUE_TYPE.integer);
var _tileset = gmRoom.gmBinder.getNodeFromPath(_layer.tileset.key, x - ui(320), y);
_tileset.bindTile(_layer.tileset);
var _tiler = nodeBuild("Node_Tile_Drawer", x - ui(160), y).skipDefault();
_tiler.bindTile(_layer);
_tiler.inputs[0].setFrom(_tileset.outputs[0]);
_in.setFrom(_tiler.outputs[3]);
}
}
////- Update
static step = function() {
@ -235,12 +239,15 @@ function Node_GMRoom(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
for( var i = input_fix_len, n = array_length(inputs); i < n; i++ ) {
var _in = inputs[i];
var _val = _in.getValue();
var _lay = layerMap[$ _in.name];
inputMap[$ _in.name] = _in;
var _key = _in.attributes.layerName;
var _lay = layerMap[$ _key];
inputMap[$ _key] = _in;
if(is(_lay, GMRoom_Tile)) {
var _tw = _lay.amount_w;
var _th = _lay.amount_h;
_in.setType(VALUE_TYPE.integer);
var _tw = _lay.tiles.SerialiseWidth;
var _th = _lay.tiles.SerialiseHeight;
var _tile = array_verify(_val, _tw * _th);
var _ctil = [];
@ -268,7 +275,7 @@ function Node_GMRoom(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
}
}
gmRoom.sync();
// gmRoom.sync();
}
////- Serialize
@ -284,8 +291,12 @@ function Node_GMRoom(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
static attributeDeserialize = function(attr) {
if(struct_has(attr, "gm_key") && project.bind_gamemaker)
bindRoom(project.bind_gamemaker.getResourceFromPath(attr.gm_key));
for( var i = input_fix_len, n = array_length(inputs); i < n; i++ )
inputMap[$ _in.name] = _in;
}
static postApplyDeserialize = function() {
for( var i = input_fix_len, n = array_length(inputs); i < n; i++ ) {
var _in = inputs[i];
inputMap[$ _in.attributes.layerName] = _in;
}
}
}

View file

@ -6,7 +6,7 @@
"name":"node_gm_room",
"parent":{
"name":"gamemaker",
"path":"folders/nodes/data/game engines/gamemaker.yy",
"path":"folders/game engines/gamemaker.yy",
},
"resourceType":"GMScript",
"resourceVersion":"2.0",

View file

@ -265,7 +265,7 @@ function Node_Tile_Drawer(_x, _y, _group = noone) : Node_Processor(_x, _y, _grou
static preGetInputs = function() {
if(gmTileLayer == noone) return;
inputs[1].setValue([ gmTileLayer.amount_w, gmTileLayer.amount_h ]);
inputs[1].setValue([ gmTileLayer.tiles.SerialiseWidth, gmTileLayer.tiles.SerialiseHeight ]);
}
static processData = function(_outData, _data, _output_index, _array_index) {
@ -380,18 +380,61 @@ function Node_Tile_Drawer(_x, _y, _group = noone) : Node_Processor(_x, _y, _grou
static bindTile = function(_gmTile) {
gmTileLayer = _gmTile;
if(gmTileLayer == noone) {
inputs[0].editable = true;
inputs[1].editable = true;
inputs[2].editable = true;
return;
}
inputs[0].editable = false;
inputs[1].editable = false;
inputs[2].editable = false;
inputs[0].editable = gmTileLayer == noone;
inputs[1].editable = gmTileLayer == noone;
inputs[2].editable = gmTileLayer == noone;
inputs[1].setValue([ gmTileLayer.amount_w, gmTileLayer.amount_h ]);
outputs[0].setVisible(gmTileLayer == noone);
outputs[1].setVisible(gmTileLayer == noone);
outputs[2].setVisible(gmTileLayer == noone);
outputs[3].setVisible(gmTileLayer != noone);
if(gmTileLayer == noone) return;
var _w = gmTileLayer.tiles.SerialiseWidth;
var _h = gmTileLayer.tiles.SerialiseHeight;
inputs[1].setValue([ _w, _h ]);
var _form = struct_try_get(gmTileLayer.tiles, "TileDataFormat", 0), _data = [];
var _b = buffer_create(_w * _h * 8, buffer_grow, 1);
buffer_to_start(_b);
if(_form == 0) {
_data = gmTileLayer.tiles.TileSerialiseData;
for( var i = 0, n = array_length(_data); i < n; i++ ) {
buffer_write(_b, buffer_f16, _data[i]);
buffer_write(_b, buffer_f16, 0);
buffer_write(_b, buffer_f16, 0);
buffer_write(_b, buffer_f16, 0);
}
} else if(_form == 1) {
_data = gmTileLayer.tiles.TileCompressedData;
var _amo, _til;
for( var i = 0, n = array_length(_data); i < n; i += 2 ) {
_amo = -_data[i + 0];
_til = _data[i + 1];
_til = max(0, _til + bool(_til));
repeat(_amo) {
buffer_write(_b, buffer_f16, _til);
buffer_write(_b, buffer_f16, 0);
buffer_write(_b, buffer_f16, 0);
buffer_write(_b, buffer_f16, bool(_til));
}
}
}
buffer_delete_safe(canvas_buffer);
canvas_buffer = _b;
canvas_surface = surface_verify(canvas_surface, _w, _h, surface_rgba16float);
buffer_set_surface(canvas_buffer, canvas_surface, 0);
triggerRender();
}
////- Serialzie
@ -399,7 +442,7 @@ function Node_Tile_Drawer(_x, _y, _group = noone) : Node_Processor(_x, _y, _grou
static attributeSerialize = function() {
var _attr = {
canvas : surface_encode(canvas_surface),
gm_key: gmTileLayer == noone? noone : gmTileLayer.room.key,
gm_key: gmTileLayer == noone? noone : gmTileLayer.roomObject.key,
gm_name: gmTileLayer == noone? noone : gmTileLayer.name,
}
@ -407,16 +450,6 @@ function Node_Tile_Drawer(_x, _y, _group = noone) : Node_Processor(_x, _y, _grou
}
static attributeDeserialize = function(attr) {
var _canv = struct_try_get(attr, "canvas", noone);
if(_canv != noone) {
surface_free_safe(canvas_surface);
canvas_surface = surface_decode(_canv);
var _dim = surface_get_dimension(canvas_surface);
buffer_delete_safe(canvas_buffer);
canvas_buffer = buffer_from_surface(canvas_surface, false, buffer_grow);
}
if(struct_has(attr, "gm_key") && project.bind_gamemaker) {
var _room = project.bind_gamemaker.getResourceFromPath(attr.gm_key);
@ -425,5 +458,16 @@ function Node_Tile_Drawer(_x, _y, _group = noone) : Node_Processor(_x, _y, _grou
bindTile(_room.getLayerFromName(_name));
}
if(struct_has(attr, "canvas")) {
var _canv = attr.canvas;
surface_free_safe(canvas_surface);
canvas_surface = surface_decode(_canv);
var _dim = surface_get_dimension(canvas_surface);
buffer_delete_safe(canvas_buffer);
canvas_buffer = buffer_from_surface(canvas_surface, false, buffer_grow);
}
}
}

View file

@ -592,10 +592,8 @@ function Node_Tile_Tileset(_x, _y, _group = noone) : Node(_x, _y, _group) constr
var _prin = array_safe_get(_at.index, _at.prevInd, undefined);
if(_prin == undefined)
draw_sprite_stretched_ext(THEME.ui_panel, 1, _px, _py, _pw, _ph, COLORS._main_icon);
else
drawTile(_prin, _px, _py, _pw, _ph);
if(_prin == undefined) draw_sprite_stretched_ext(THEME.ui_panel, 1, _px, _py, _pw, _ph, COLORS._main_icon);
else drawTile(_prin, _px, _py, _pw, _ph);
var _tx = _px + _pw + ui(8);
var _hov = _hover && point_in_rectangle(_m[0], _m[1], _x, _yy, _x + _w, _yy + _hg - 1);
@ -1535,9 +1533,6 @@ function Node_Tile_Tileset(_x, _y, _group = noone) : Node(_x, _y, _group) constr
texture = inputs[0].getValue();
tileSize = inputs[1].getValue();
var _tdim = surface_get_dimension(texture);
tileAmount = [ floor(_tdim[0] / tileSize[0]), floor(_tdim[1] / tileSize[1]) ];
if(gmTile != noone) {
inputs[0].setVisible(false, false);
@ -1560,6 +1555,9 @@ function Node_Tile_Tileset(_x, _y, _group = noone) : Node(_x, _y, _group) constr
tileSize = [ gmTile.raw.tileWidth, gmTile.raw.tileHeight ];
}
var _tdim = surface_get_dimension(texture);
tileAmount = [ floor(_tdim[0] / tileSize[0]), floor(_tdim[1] / tileSize[1]) ];
outputs[0].setValue(self);
}

View file

@ -439,7 +439,9 @@ function Panel(_parent, _x, _y, _w, _h) constructor {
}
for(var i = 0, n = array_length(childs); i < n; i++) {
var _panel = childs[i];
var _panel = array_safe_get(childs, i, 0);
if(_panel == 0) continue;
_panel.draw();
if!(HOVER == noone || is_struct(HOVER))

View file

@ -7,8 +7,7 @@ function Panel_GM_Explore(gmBinder) : PanelContent() constructor {
w = ui(400);
h = ui(480);
grid_size = ui(64);
grid_size_to = grid_size;
GM_Explore_draw_init();
search_string = "";
keyboard_lastchar = "";
@ -24,102 +23,13 @@ function Panel_GM_Explore(gmBinder) : PanelContent() constructor {
function searchResource() {
search_res = [];
}
function onResize() {
sc_content.resize(w - ui(padding + padding), h - ui(padding + padding + 40));
}
function onResize() { sc_content.resize(w - ui(padding + padding), h - ui(padding + padding + 40)); }
sc_content = new scrollPane(w - ui(padding + padding), h - ui(padding + padding + 40), function(_y, _m) {
draw_clear_alpha(COLORS.panel_bg_clear_inner, 1);
var _res = gmBinder.resources;
var _ww = sc_content.surface_w;
var _yy = _y;
var _hh = 0;
var lbh = ui(26);
var _hover = sc_content.hover;
var _focus = sc_content.active;
var _ths = grid_size;
var _pad = ui(8);
var _lnh = line_get_height(f_p3, 8);
var _col = floor((_ww - _pad) / (_ths + _pad));
for( var i = 0, n = array_length(_res); i < n; i++ ) {
var _name = _res[i].name;
if(_hover && point_in_rectangle(_m[0], _m[1], 0, _yy, _ww, _yy + lbh)) {
draw_sprite_stretched_ext(THEME.s_box_r5_clr, 0, 0, _yy, _ww, lbh, COLORS.panel_inspector_group_hover, 1);
if(mouse_press(mb_left, _focus)) _res[i].closed = !_res[i].closed;
} else
draw_sprite_stretched_ext(THEME.s_box_r5_clr, 0, 0, _yy, _ww, lbh, COLORS.panel_inspector_group_bg, 1);
draw_sprite_ui(THEME.arrow, _res[i].closed? 0 : 3, ui(16), _yy + lbh / 2, 1, 1, 0, COLORS.panel_inspector_group_bg, 1);
draw_set_text(f_p1, fa_left, fa_center, COLORS._main_text_inner);
draw_text_add(ui(32), _yy + lbh / 2, _name);
_yy += lbh + ui(6);
_hh += lbh + ui(6);
if(_res[i].closed) continue;
var _data = _res[i].data;
var _xx = _pad;
for( var j = 0, m = array_length(_data); j < m; j++ ) {
var _cc = j % _col;
var _rr = floor(j / _col);
var _asx = _xx + _cc * (_ths + _pad);
var _asy = _yy + _rr * (_ths + _pad + _lnh);
var _ass = _data[j];
var _raw = _ass.raw;
var _thm = noone;
switch(_ass.type) {
case "GMSprite" : _thm = _ass.thumbnail; break;
case "GMRoom" : _thm = s_gmroom; break;
case "GMTileSet" :
var _spm = struct_try_get(gmBinder.resourcesMap, _ass.sprite, noone);
_thm = _spm == noone? noone : _spm.thumbnail;
break;
}
if(sprite_exists(_thm)) draw_sprite_bbox_uniform(_thm, 0, BBOX().fromWH(_asx + ui(2), _asy + ui(2), _ths - ui(4), _ths - ui(4)));
draw_set_text(f_p3, fa_center, fa_top, COLORS._main_text);
draw_text_add(_asx + _ths / 2, _asy + _ths + ui(4), _raw.name);
if(_hover && point_in_rectangle(_m[0], _m[1], _asx, _asy, _asx + _ths, _asy + _ths)) {
draw_sprite_stretched_ext(THEME.ui_panel, 1, _asx, _asy, _ths, _ths, COLORS._main_icon);
if(_thm && _ass.type != "GMRoom") TOOLTIP = [ _thm, "sprite" ];
if(mouse_press(mb_left, _focus))
DRAGGING = { type : _ass.type, data : _ass };
}
}
var _rrow = ceil(array_length(_data) / _col);
_yy += (_ths + _pad + _lnh) * _rrow + ui(6);
_hh += (_ths + _pad + _lnh) * _rrow + ui(6);
}
if(pHOVER && key_mod_press(CTRL) && point_in_rectangle(_m[0], _m[1], 0, 0, sc_content.surface_w, sc_content.surface_h)) {
if(mouse_wheel_down()) grid_size_to = clamp(grid_size_to - ui(4), ui(32), ui(160));
if(mouse_wheel_up()) grid_size_to = clamp(grid_size_to + ui(4), ui(32), ui(160));
}
grid_size = lerp_float(grid_size, grid_size_to, 5);
return _hh;
return GM_Explore_draw(gmBinder, 0, _y, sc_content.surface_w, sc_content.surface_h, _m, sc_content.hover, sc_content.active);
});
function drawContent(panel) {
@ -149,4 +59,99 @@ function Panel_GM_Explore(gmBinder) : PanelContent() constructor {
sc_content.draw(px, py + ui(40), mx - px, my - (py + ui(40)));
}
}
function GM_Explore_draw_init() {
grid_size = ui(64);
grid_size_to = grid_size;
}
function GM_Explore_draw(gmBinder, _x, _y, _w, _h, _m, _hover, _focus) {
var _res = gmBinder.resources;
var _ww = _w;
var _yy = _y;
var _hh = 0;
var lbh = ui(26);
var _ths = grid_size;
var _pad = ui(8);
var _lnh = line_get_height(f_p3, 8);
var _col = floor((_ww - _pad) / (_ths + _pad));
for( var i = 0, n = array_length(_res); i < n; i++ ) {
var _name = _res[i].name;
if(_hover && point_in_rectangle(_m[0], _m[1], 0, _yy, _ww, _yy + lbh)) {
draw_sprite_stretched_ext(THEME.s_box_r5_clr, 0, 0, _yy, _ww, lbh, COLORS.panel_inspector_group_hover, 1);
if(mouse_press(mb_left, _focus)) _res[i].closed = !_res[i].closed;
} else
draw_sprite_stretched_ext(THEME.s_box_r5_clr, 0, 0, _yy, _ww, lbh, COLORS.panel_inspector_group_bg, 1);
draw_sprite_ui(THEME.arrow, _res[i].closed? 0 : 3, ui(16), _yy + lbh / 2, 1, 1, 0, COLORS.panel_inspector_group_bg, 1);
draw_set_text(f_p1, fa_left, fa_center, COLORS._main_text_inner);
draw_text_add(ui(32), _yy + lbh / 2, _name);
_yy += lbh + ui(6);
_hh += lbh + ui(6);
if(_res[i].closed) continue;
var _data = _res[i].data;
var _xx = _pad;
for( var j = 0, m = array_length(_data); j < m; j++ ) {
var _cc = j % _col;
var _rr = floor(j / _col);
var _asx = _xx + _cc * (_ths + _pad);
var _asy = _yy + _rr * (_ths + _pad + _lnh);
var _ass = _data[j];
var _raw = _ass.raw;
var _thm = noone;
var _nod = struct_try_get(gmBinder.nodeMap, _ass.key, noone);
switch(_ass.type) {
case "GMSprite" : _thm = _ass.thumbnail; break;
case "GMRoom" : _thm = s_gmroom; break;
case "GMTileSet" :
var _spm = struct_try_get(gmBinder.resourcesMap, _ass.sprite, noone);
_thm = _spm == noone? noone : _spm.thumbnail;
break;
}
if(sprite_exists(_thm)) draw_sprite_bbox_uniform(_thm, 0, BBOX().fromWH(_asx + ui(2), _asy + ui(2), _ths - ui(4), _ths - ui(4)));
draw_set_text(f_p3, fa_center, fa_top, COLORS._main_text);
draw_text_add(_asx + _ths / 2, _asy + _ths + ui(4), _raw.name);
if(_hover && point_in_rectangle(_m[0], _m[1], _asx, _asy, _asx + _ths, _asy + _ths)) {
draw_sprite_stretched_ext(THEME.ui_panel, 1, _asx, _asy, _ths, _ths, COLORS._main_icon);
if(_thm && _ass.type != "GMRoom") TOOLTIP = [ _thm, "sprite" ];
if(_nod == noone) {
if(mouse_press(mb_left, _focus))
DRAGGING = { type : _ass.type, data : _ass };
} else
TOOLTIP = "Assets is already binded to a node.";
}
}
var _rrow = ceil(array_length(_data) / _col);
_yy += (_ths + _pad + _lnh) * _rrow + ui(6);
_hh += (_ths + _pad + _lnh) * _rrow + ui(6);
}
if(_hover && key_mod_press(CTRL) && point_in_rectangle(_m[0], _m[1], 0, 0, _w, _h)) {
if(mouse_wheel_down()) grid_size_to = clamp(grid_size_to - ui(4), ui(32), ui(160));
if(mouse_wheel_up()) grid_size_to = clamp(grid_size_to + ui(4), ui(32), ui(160));
}
grid_size = lerp_float(grid_size, grid_size_to, 5);
return _hh;
}

View file

@ -5,8 +5,8 @@
"isDnD":false,
"name":"panel_gm_explorer",
"parent":{
"name":"_others",
"path":"folders/panels/_others.yy",
"name":"gamemaker",
"path":"folders/game engines/gamemaker.yy",
},
"resourceType":"GMScript",
"resourceVersion":"2.0",

View file

@ -195,12 +195,16 @@ function Panel_Inspector() : PanelContent() constructor {
tb_prop_filter.align = fa_center;
tb_prop_filter.hide = true;
filter_text = "";
prop_page_button = new buttonGroup([ "Properties", "Settings", THEME.message_16 ], function(val) /*=>*/ { prop_page = val; });
prop_page_button.buttonSpr = [ THEME.button_hide_left, THEME.button_hide_middle, THEME.button_hide_right ];
prop_page_button.font = f_p2;
prop_page_button.fColor = COLORS._main_text_sub;
prop_page = 0;
prop_page = 0;
prop_page_b = new buttonGroup([ "Properties", "Settings", THEME.message_16 ], function(val) /*=>*/ { prop_page = val; })
.setButton([ THEME.button_hide_left, THEME.button_hide_middle, THEME.button_hide_right ])
.setFont(f_p2, COLORS._main_text_sub)
proj_prop_page = 0;
proj_prop_page_b = new buttonGroup([ "PXC", "GM" ], function(val) /*=>*/ { proj_prop_page = val; })
.setButton([ THEME.button_hide_left, THEME.button_hide_middle, THEME.button_hide_right ])
.setFont(f_p2, COLORS._main_text_sub)
#endregion
#region ---- metadata ----
@ -214,19 +218,20 @@ function Panel_Inspector() : PanelContent() constructor {
meta_tb[i].hide = true;
meta_display = [
[ __txt("Project Settings"), false ],
[ __txt("Metadata"), true ],
[ __txtx("panel_globalvar", "Global variables"), true ],
[ __txt("Group Properties"), true ],
[ __txt("Project Settings"), false, "setting" ],
[ __txt("Metadata"), true , "metadata" ],
[ __txt("Global variables"), true , "globalvar" ],
[ __txt("Group Properties"), true , "group prop" ],
];
meta_steam_avatar = new checkBox(function() { STEAM_UGC_ITEM_AVATAR = !STEAM_UGC_ITEM_AVATAR; });
global_buttons = [
// button(() => { panelAdd("Panel_Globalvar", true); } ).setIcon(THEME.node_goto, 0, COLORS._main_icon_light),
button(function() /*=>*/ { meta_display[2][1] = false; var_editing = !var_editing; } ).setIcon(THEME.gear_16, 0, COLORS._main_icon_light),
button(function() /*=>*/ { meta_display[2][1] = false; PROJECT.globalNode.createValue(); } ).setIcon(THEME.add_16, 0, COLORS._main_value_positive),
];
GM_Explore_draw_init();
#endregion
#region ---- workshop ----
@ -339,22 +344,87 @@ function Panel_Inspector() : PanelContent() constructor {
contentPane.resize(content_w, content_h);
}
static drawMeta = function(_y, _m) {
////- Property actions
static highlightProp = function(prop) {
prop_highlight = prop;
prop_highlight_time = 60;
}
function propSelectCopy() { if(!prop_selecting) return; clipboard_set_text(prop_selecting.getString()); }
function propSelectPaste() { if(!prop_selecting) return; prop_selecting.setString(clipboard_get_text()); }
////- DRAW
contentPane = new scrollPane(content_w, content_h, function(_y, _m) {
draw_clear_alpha(COLORS.panel_bg_clear_inner, 1);
if(inspecting == noone)
return drawContentMeta(_y, _m);
return drawContentNode(_y, _m);
});
static drawContentGM = function(_y, _m) {
var ww = contentPane.surface_w;
var hh = ui(40);
var yy = _y + hh;
var rx = x + ui(16);
var ry = y + top_bar_h;
var _hover = pHOVER && contentPane.hover;
var spac = viewMode == INSP_VIEW_MODE.spacious;
var _font = spac? f_p1 : f_p2;
#region properties
var _wdx = 0;
var _wdy = yy;
var _wdw = ww;
var _wdh = TEXTBOX_HEIGHT;
var _data = PROJECT.attributes.bind_gamemaker_path;
var _param = new widgetParam(_wdx, _wdy, _wdw, _wdh, _data, {}, _m, rx, ry)
.setFont(_font)
.setFocusHover(pFOCUS, _hover)
.setScrollpane(contentPane);
var wh = PROJECT.gamemaker_editWidget.drawParam(_param);
var _wdhh = wh + ui(8);
yy += _wdhh;
hh += _wdhh;
#endregion
var gmBinder = PROJECT.bind_gamemaker;
if(gmBinder == noone) return hh;
var _wdh = GM_Explore_draw(gmBinder, 0, yy, contentPane.surface_w, contentPane.surface_h, _m, _hover, pFOCUS);
hh += _wdh;
return hh;
}
static drawContentMeta = function(_y, _m) {
proj_prop_page_b.setFocusHover(pFOCUS, pHOVER);
proj_prop_page_b.draw(ui(32), _y + ui(4), contentPane.w - ui(76), ui(24), proj_prop_page, _m, x + contentPane.x, y + contentPane.y);
if(proj_prop_page == 1) return drawContentGM(_y, _m);
var con_w = contentPane.surface_w - ui(4);
var _hover = pHOVER && contentPane.hover;
var context = PANEL_GRAPH.getCurrentContext();
var meta = context == noone? PROJECT.meta : context.metadata;
var meta = context == noone? PROJECT.meta : context.metadata;
if(meta == noone) return 0;
current_meta = meta;
var hh = ui(8);
var yy = _y + ui(8);
var con_w = contentPane.surface_w - ui(4);
var _hover = pHOVER && contentPane.hover;
var spac = viewMode == INSP_VIEW_MODE.spacious;
var hh = ui(40);
var yy = _y + hh;
var rx = x + ui(16);
var ry = y + top_bar_h;
var lbh = viewMode? ui(32) : ui(26);
var _cAll = 0;
var _font = spac? f_p1 : f_p2;
attribute_hovering = noone;
@ -363,9 +433,10 @@ function Panel_Inspector() : PanelContent() constructor {
var _meta = meta_display[i];
var _txt = array_safe_get_fast(_meta, 0);
var _tag = array_safe_get_fast(_meta, 2);
switch(i) {
case 2 :
switch(_tag) { // header
case "globalvar" :
var _bw = ui(28);
var _bh = lbh - ui(4);
@ -389,32 +460,36 @@ function Panel_Inspector() : PanelContent() constructor {
}
_x1 -= ui(4);
var cc = COLORS.panel_inspector_group_bg;
if(_hover && point_in_rectangle(_m[0], _m[1], 0, yy, _x1, yy + lbh)) {
draw_sprite_stretched_ext(THEME.s_box_r5_clr, 0, 0, yy, _x1, lbh, COLORS.panel_inspector_group_hover, 1);
cc = COLORS.panel_inspector_group_hover;
if(pFOCUS) {
if(DOUBLE_CLICK) _cAll = _meta[1]? -1 : 1;
else if(mouse_press(mb_left)) _meta[1] = !_meta[1];
}
} else
draw_sprite_stretched_ext(THEME.s_box_r5_clr, 0, 0, yy, _x1, lbh, COLORS.panel_inspector_group_bg, 1);
}
draw_sprite_stretched_ext(THEME.s_box_r5_clr, 0, 0, yy, _x1, lbh, cc, 1);
break;
default :
var _x1 = con_w;
var _x1 = con_w;
var cc = COLORS.panel_inspector_group_bg;
if(_hover && point_in_rectangle(_m[0], _m[1], 0, yy, _x1, yy + lbh)) {
draw_sprite_stretched_ext(THEME.s_box_r5_clr, 0, 0, yy, con_w, lbh, COLORS.panel_inspector_group_hover, 1);
cc = COLORS.panel_inspector_group_hover;
if(pFOCUS) {
if(DOUBLE_CLICK) _cAll = _meta[1]? -1 : 1;
else if(mouse_press(mb_left)) _meta[1] = !_meta[1];
}
} else
draw_sprite_stretched_ext(THEME.s_box_r5_clr, 0, 0, yy, con_w, lbh, COLORS.panel_inspector_group_bg, 1);
}
draw_sprite_stretched_ext(THEME.s_box_r5_clr, 0, 0, yy, con_w, lbh, cc, 1);
}
draw_sprite_ui(THEME.arrow, _meta[1]? 0 : 3, ui(16), yy + lbh / 2, 1, 1, 0, COLORS.panel_inspector_group_bg, 1);
@ -427,10 +502,8 @@ function Panel_Inspector() : PanelContent() constructor {
if(_meta[1]) continue;
var _font = viewMode == INSP_VIEW_MODE.spacious? f_p1 : f_p2;
switch(i) {
case 0 :
switch(_tag) {
case "setting" :
var _edt = PROJECT.attributeEditor;
var _lh, wh;
@ -444,9 +517,9 @@ function Panel_Inspector() : PanelContent() constructor {
var widy = yy;
draw_set_text(_font, fa_left, fa_top, COLORS._main_text_inner);
draw_text_add(ui(16), viewMode == INSP_VIEW_MODE.spacious? yy : yy + ui(3), __txt(title));
draw_text_add(ui(16), spac? yy : yy + ui(3), __txt(title));
if(viewMode == INSP_VIEW_MODE.spacious) {
if(spac) {
_lh = line_get_height();
yy += _lh + ui(6);
hh += _lh + ui(6);
@ -455,45 +528,38 @@ function Panel_Inspector() : PanelContent() constructor {
_lh = line_get_height() + ui(6);
}
editW.setFocusHover(pFOCUS, _hover);
if(pFOCUS) editW.register(contentPane);
var wh = 0;
var _data = PROJECT.attributes[$ param];
var _wdx = viewMode == INSP_VIEW_MODE.spacious? ui(16) : ui(140);
var _wdx = spac? ui(16) : ui(140);
var _wdy = yy;
var _wdw = w - ui(48) - _wdx;
var _wdh = viewMode == INSP_VIEW_MODE.spacious? TEXTBOX_HEIGHT : _lh;
var _wdh = spac? TEXTBOX_HEIGHT : _lh;
var _param = new widgetParam(_wdx, _wdy, _wdw, _wdh, _data, {}, _m, rx, ry);
_param.font = _font;
var _param = new widgetParam(_wdx, _wdy, _wdw, _wdh, _data, {}, _m, rx, ry)
.setFont(_font)
.setFocusHover(pFOCUS, _hover)
.setScrollpane(contentPane);
wh = editW.drawParam(_param);
if(editW.inBBOX(_m)) contentPane.hover_content = true;
var jun = PANEL_GRAPH.value_dragging;
var widw = con_w - ui(16);
var widh = viewMode == INSP_VIEW_MODE.spacious? _lh + ui(6) + wh + ui(4) : max(wh, _lh);
var widh = spac? _lh + ui(6) + wh + ui(4) : max(wh, _lh);
if(jun != noone && drpFn != noone && _hover && point_in_rectangle(_m[0], _m[1], widx, widy, widx + widw, widy + widh)) {
draw_sprite_stretched_ext(THEME.ui_panel, 1, widx, widy, widw, widh, COLORS._main_value_positive, 1);
attribute_hovering = drpFn;
}
if(viewMode == INSP_VIEW_MODE.spacious) {
yy += wh + ui(8);
hh += wh + ui(8);
} else if(viewMode == INSP_VIEW_MODE.compact) {
yy += max(wh, _lh) + ui(6);
hh += max(wh, _lh) + ui(6);
}
var _wdhh = spac? wh + ui(8) : max(wh, _lh) + ui(6);
yy += _wdhh;
hh += _wdhh;
}
break;
case 1 :
var _wdx = viewMode == INSP_VIEW_MODE.spacious? ui(16) : ui(140);
case "metadata" :
var _wdx = spac? ui(16) : ui(140);
var _wdw = w - ui(48) - _wdx;
var _whh = line_get_height(_font);
var _edt = PROJECT.meta.steam == FILE_STEAM_TYPE.local || PROJECT.meta.author_steam_id == STEAM_USER_ID;
@ -503,9 +569,9 @@ function Panel_Inspector() : PanelContent() constructor {
var _wdgt = meta_tb[j];
draw_set_text(_font, fa_left, fa_top, COLORS._main_text_inner);
draw_text_add(ui(16), viewMode == INSP_VIEW_MODE.spacious? yy : yy + ui(3), __txt(display[0]));
draw_text_add(ui(16), spac? yy : yy + ui(3), __txt(display[0]));
if(viewMode == INSP_VIEW_MODE.spacious) {
if(spac) {
_lh = line_get_height();
yy += _lh + ui(6);
hh += _lh + ui(6);
@ -514,61 +580,49 @@ function Panel_Inspector() : PanelContent() constructor {
_lh = line_get_height() + ui(6);
}
_wdgt.setFocusHover(pFOCUS, _hover);
_wdgt.setInteract(_edt);
if(pFOCUS) _wdgt.register(contentPane);
var _dataFunc = display[1];
var _data = _dataFunc(meta);
var _wdy = yy;
var _wdh = _whh * display[2];
var _param = new widgetParam(_wdx, _wdy, _wdw, _wdh, _data, {}, _m, rx, ry);
_param.font = _font;
switch(instanceof(_wdgt)) {
case "textArrayBox" : _wdgt.arraySet = current_meta.tags; break;
}
var _param = new widgetParam(_wdx, _wdy, _wdw, _wdh, _data, {}, _m, rx, ry)
.setFont(_font)
.setFocusHover(pFOCUS, _hover, _edt)
.setScrollpane(contentPane);
if(is(_wdgt, textArrayBox)) _wdgt.arraySet = current_meta.tags;
wh = _wdgt.drawParam(_param);
if(_wdgt.inBBOX(_m)) contentPane.hover_content = true;
if(viewMode == INSP_VIEW_MODE.spacious) {
yy += wh + ui(8);
hh += wh + ui(8);
} else if(viewMode == INSP_VIEW_MODE.compact) {
yy += max(wh, _lh) + ui(6);
hh += max(wh, _lh) + ui(6);
}
var _wdhh = spac? wh + ui(8) : max(wh, _lh) + ui(6);
yy += _wdhh;
hh += _wdhh;
}
if(STEAM_ENABLED && _edt) {
meta_steam_avatar.setFocusHover(pFOCUS, _hover);
if(pFOCUS) meta_steam_avatar.register(contentPane);
draw_set_text(_font, fa_left, fa_top, COLORS._main_text_inner);
draw_text_over(ui(16), viewMode == INSP_VIEW_MODE.spacious? yy : yy + ui(3), __txt("Show Avatar"));
draw_text_over(ui(16), spac? yy : yy + ui(3), __txt("Show Avatar"));
if(viewMode == INSP_VIEW_MODE.spacious) {
if(spac) {
_lh = line_get_height();
yy += _lh + ui(6);
hh += _lh + ui(6);
}
var _param = new widgetParam(_wdx, yy, _wdw, TEXTBOX_HEIGHT, STEAM_UGC_ITEM_AVATAR, {}, _m, rx, ry);
_param.font = _font;
var _param = new widgetParam(_wdx, yy, _wdw, TEXTBOX_HEIGHT, STEAM_UGC_ITEM_AVATAR, {}, _m, rx, ry)
.setFont(_font)
.setFocusHover(pFOCUS, _hover)
.setScrollpane(contentPane);
wh = meta_steam_avatar.drawParam(_param);
if(meta_steam_avatar.inBBOX(_m)) contentPane.hover_content = true;
yy += wh + ui(6); hh += wh + ui(6);
if(viewMode == INSP_VIEW_MODE.spacious) { yy += ui(2); hh += ui(2); }
var _wdhh = spac? wh + ui(8) : wh + ui(6);
yy += _wdhh;
hh += _wdhh;
}
break;
case 2 :
case "globalvar" :
if(findPanel("Panel_Globalvar")) {
yy += ui(4);
hh += ui(4);
@ -584,7 +638,7 @@ function Panel_Inspector() : PanelContent() constructor {
hh += gvh + ui(8);
break;
case 3 :
case "group prop" :
var context = PANEL_GRAPH.getCurrentContext();
var _h = drawNodeProperties(yy, _m, context);
@ -603,9 +657,47 @@ function Panel_Inspector() : PanelContent() constructor {
return hh;
}
static highlightProp = function(prop) {
prop_highlight = prop;
prop_highlight_time = 60;
static drawContentNode = function(_y, _m) {
var con_w = contentPane.surface_w - ui(4);
if(point_in_rectangle(_m[0], _m[1], 0, 0, con_w, content_h) && mouse_press(mb_left, pFOCUS))
prop_selecting = noone;
prop_page_b.data[2] = inspecting.messages_bub? THEME.message_16_grey_bubble : THEME.message_16_grey;
prop_page_b.setFocusHover(pFOCUS, pHOVER);
prop_page_b.draw(ui(32), _y + ui(4), contentPane.w - ui(76), ui(24), prop_page, _m, x + contentPane.x, y + contentPane.y);
var _hh = ui(40);
_y += _hh;
if(is(inspecting, Node_Canvas) && inspecting.nodeTool != noone && is(inspecting.nodeTool.nodeObject, Node))
return _hh + drawNodeProperties(_y, _m, inspecting.nodeTool.nodeObject);
if(inspectGroup >= 0) return _hh + drawNodeProperties(_y, _m, inspecting);
if(is(inspecting, Node_Frame)) return _hh + drawNodeProperties(_y, _m, inspecting);
for( var i = 0, n = min(10, array_length(inspectings)); i < n; i++ ) {
if(i) {
_y += ui(8);
_hh += ui(8);
}
if(n > 1) {
draw_sprite_stretched_ext(THEME.s_box_r5_clr, 0, 0, _y, con_w, ui(32), COLORS.panel_inspector_output_label, 0.9);
draw_set_text(f_p0b, fa_center, fa_center, COLORS._main_text_sub);
var _tx = inspectings[i].getFullName();
draw_text_add(con_w / 2, _y + ui(16), _tx);
_y += ui(32 + 8);
_hh += ui(32 + 8);
}
var _h = drawNodeProperties(_y, _m, inspectings[i]);
_y += _h;
_hh += _h;
}
return _hh + ui(64);
}
static drawNodeProperties = function(_y, _m, _inspecting = inspecting) {
@ -1093,61 +1185,7 @@ function Panel_Inspector() : PanelContent() constructor {
return hh;
}
contentPane = new scrollPane(content_w, content_h, function(_y, _m) {
var con_w = contentPane.surface_w - ui(4);
draw_clear_alpha(COLORS.panel_bg_clear_inner, 1);
if(point_in_rectangle(_m[0], _m[1], 0, 0, con_w, content_h) && mouse_press(mb_left, pFOCUS))
prop_selecting = noone;
if(inspecting == noone) return drawMeta(_y, _m);
prop_page_button.data[2] = inspecting.messages_bub? THEME.message_16_grey_bubble : THEME.message_16_grey;
prop_page_button.setFocusHover(pFOCUS, pHOVER);
prop_page_button.draw(ui(32), _y + ui(4), contentPane.w - ui(76), ui(24), prop_page, _m, x + contentPane.x, y + contentPane.y);
var _hh = ui(40);
_y += _hh;
if(is_instanceof(inspecting, Node_Canvas) && inspecting.nodeTool != noone && is_instanceof(inspecting.nodeTool.nodeObject, Node))
return _hh + drawNodeProperties(_y, _m, inspecting.nodeTool.nodeObject);
if(inspectGroup >= 0)
return _hh + drawNodeProperties(_y, _m, inspecting);
if(is_instanceof(inspecting, Node_Frame))
return _hh + drawNodeProperties(_y, _m, inspecting);
for( var i = 0, n = min(10, array_length(inspectings)); i < n; i++ ) {
if(i) {
_y += ui(8);
_hh += ui(8);
}
if(n > 1) {
draw_sprite_stretched_ext(THEME.s_box_r5_clr, 0, 0, _y, con_w, ui(32), COLORS.panel_inspector_output_label, 0.9);
draw_set_text(f_p0b, fa_center, fa_center, COLORS._main_text_sub);
var _tx = inspectings[i].getFullName();
draw_text_add(con_w / 2, _y + ui(16), _tx);
_y += ui(32 + 8);
_hh += ui(32 + 8);
}
var _h = drawNodeProperties(_y, _m, inspectings[i]);
_y += _h;
_hh += _h;
}
return _hh + ui(64);
});
function propSelectCopy() { if(!prop_selecting) return; clipboard_set_text(prop_selecting.getString()); }
function propSelectPaste() { if(!prop_selecting) return; prop_selecting.setString(clipboard_get_text()); }
function drawInspectingNode() {
static drawInspectingNode = function() {
tb_node_name.font = f_h5;
tb_node_name.hide = true;
tb_node_name.align = fa_center;
@ -1185,27 +1223,13 @@ function Panel_Inspector() : PanelContent() constructor {
if(buttonInstant(THEME.button_hide, lx, ly, ui(16), ui(16), [mx, my], pFOCUS, pHOVER, __txt("Lock"), THEME.lock_12, !locked, locked? COLORS._main_icon_light : COLORS._main_icon) == 2)
locked = !locked;
// draw_set_font(f_p3);
// var lw = string_width(inspecting.internalName);
// var lx = w / 2 - lw / 2 - ui(4 + 16);
// var ly = ui(76 - 8);
// if(buttonInstant(noone, lx, ly, ui(16), ui(16), [mx, my], pFOCUS, pHOVER, __txt("Previous"), THEME.arrow_wire_16, 2, COLORS._main_icon, 0.6) == 2) {
// }
// var lx = w / 2 + lw / 2 + ui(4);
// var ly = ui(76 - 8);
// if(buttonInstant(noone, lx, ly, ui(16), ui(16), [mx, my], pFOCUS, pHOVER, __txt("Next"), THEME.arrow_wire_16, 0, COLORS._main_icon, 0.6) == 2) {
// }
// --------------------------------------- //
if(buttonInstant(THEME.button_hide, bx, by, ui(32), ui(32), [mx, my], pFOCUS, pHOVER, __txt("Presets"), THEME.preset, 1) == 2)
dialogPanelCall(new Panel_Presets(inspecting), x + bx, y + by + ui(36));
} else {
draw_sprite_ui_uniform(THEME.preset, 1, bx + ui(32) / 2, by + ui(32) / 2, 1, COLORS._main_icon_dark);
}
//////////////////////////////////////////////////////////////////// INSPECTOR ACTIONS ////////////////////////////////////////////////////////////////////
////- INSPECTOR ACTIONS
var bx = w - ui(44);
var by = ui(12);
@ -1243,9 +1267,8 @@ function Panel_Inspector() : PanelContent() constructor {
}
}
function drawContent(panel) { // >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> MAIN DRAW <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
function drawContent(panel) {
draw_clear_alpha(COLORS.panel_bg_clear, 1);
draw_sprite_stretched(THEME.ui_panel_bg, 1, ui(8), top_bar_h - ui(8), w - ui(16), h - top_bar_h);
if(inspecting && !inspecting.active) inspecting = noone;
@ -1350,7 +1373,7 @@ function Panel_Inspector() : PanelContent() constructor {
}
//// =========== Serialize ===========
////- Serialize
static serialize = function() {
return {
@ -1371,6 +1394,8 @@ function Panel_Inspector() : PanelContent() constructor {
return self;
}
////- Actions
}
function New_Inspect_Node_Panel(node, pin = true) {

View file

@ -3,352 +3,346 @@
PROJECT = noone;
#endregion
#region layer
function Layer() constructor {
name = "New Layer";
nodes = [];
}
#endregion
function Layer() constructor {
name = "New Layer";
nodes = [];
}
#region project
function Project() constructor {
active = true;
function Project() constructor {
active = true;
seed = irandom_range(100000, 999999);
meta = __getdefaultMetaData();
path = "";
thumbnail = "";
version = SAVE_VERSION;
is_nightly = NIGHTLY;
freeze = false;
modified = false;
readonly = false;
safeMode = false;
allNodes = [];
nodes = [];
nodeTopo = [];
nodeMap = ds_map_create();
nodeNameMap = ds_map_create();
useRenderList = false;
renderList = [];
pathInputs = [];
composer = noone;
animator = new AnimationManager();
globalNode = new Node_Global();
nodeController = new __Node_Controller(self);
load_layout = false;
previewNode = "";
inspectingNode = "";
previewGrid = {
show : false,
snap : false,
size : [ 16, 16 ],
opacity : 0.5,
color : cola(COLORS.panel_preview_grid),
seed = irandom_range(100000, 999999);
meta = __getdefaultMetaData();
path = "";
thumbnail = "";
version = SAVE_VERSION;
is_nightly = NIGHTLY;
freeze = false;
pixel : false,
}
graphGrid = {
show : true,
show_origin : false,
snap : true,
size : 16,
color : cola(c_white),
opacity : 0.05,
highlight : 12,
}
graph_display_parameter = {
show_grid : true,
show_dimension : true,
show_compute : true,
avoid_label : false,
preview_scale : 100,
highlight : false,
modified = false;
readonly = false;
safeMode = false;
show_control : false,
show_tooltip : true,
}
addons = {};
onion_skin = {
enabled : false,
range : [ -1, 1 ],
step : 1,
color : [ cola(c_red), cola(c_blue) ],
alpha : 0.5,
on_top : true,
};
tunnels_in = ds_map_create();
tunnels_in_map = ds_map_create();
tunnels_out = ds_map_create();
#region ===================== BINDERS ====================
bind_gamemaker = noone;
bind_godot = noone;
allNodes = [];
nodes = [];
nodeTopo = [];
nodeMap = ds_map_create();
nodeNameMap = ds_map_create();
useRenderList = false;
renderList = [];
pathInputs = [];
composer = noone;
animator = new AnimationManager();
globalNode = new Node_Global();
nodeController = new __Node_Controller(self);
load_layout = false;
previewNode = "";
inspectingNode = "";
previewGrid = {
show : false,
snap : false,
size : [ 16, 16 ],
opacity : 0.5,
color : cola(COLORS.panel_preview_grid),
gamemaker_editWidget = new gamemakerPathBox(self);
#endregion
#region =================== ATTRIBUTES ===================
attributes = variable_clone(PROJECT_ATTRIBUTES);
attributes.bind_gamemaker_path = "";
attributes.bind_godot_path = "";
pixel : false,
}
attributeEditor = [
[ "Default Surface", "surface_dimension", new vectorBox(2,
function(val, index) {
attributes.surface_dimension[index] = val;
PROJECT_ATTRIBUTES.surface_dimension = array_clone(attributes.surface_dimension);
RENDER_ALL
return true;
}),
function(junc) {
if(!is_struct(junc)) return;
if(!is_instanceof(junc, NodeValue)) return;
var attr = attributes.surface_dimension;
var _val = junc.getValue();
var _res = [ attr[0], attr[1] ];
switch(junc.type) {
case VALUE_TYPE.float :
case VALUE_TYPE.integer :
if(is_real(_val))
_res = [ _val, _val ];
else if(is_array(_val) && array_length(_val) >= 2) {
_res[0] = is_real(_val[0])? _val[0] : 1;
_res[1] = is_real(_val[1])? _val[1] : 1;
}
break;
case VALUE_TYPE.surface :
if(is_array(_val)) _val = array_safe_get_fast(_val, 0);
if(is_surface(_val))
_res = surface_get_dimension(_val);
break;
}
attr[0] = _res[0];
attr[1] = _res[1];
} ],
[ "Palette", "palette", new buttonPalette(function(pal) { setPalette(pal); RENDER_ALL return true; }),
function(junc) {
if(!is_struct(junc)) return;
if(!is_instanceof(junc, NodeValue)) return;
if(junc.type != VALUE_TYPE.color) return;
if(junc.display_type != VALUE_DISPLAY.palette) return;
setPalette(junc.getValue());
}
],
];
graphGrid = {
show : true,
show_origin : false,
snap : true,
size : 16,
color : cola(c_white),
opacity : 0.05,
highlight : 12,
}
graph_display_parameter = {
show_grid : true,
show_dimension : true,
show_compute : true,
avoid_label : false,
preview_scale : 100,
highlight : false,
static setPalette = function(pal = noone) {
if(pal != noone) {
for (var i = 0, n = array_length(pal); i < n; i++)
pal[i] = cola(pal[i], _color_get_alpha(pal[i]));
attributes.palette = pal;
PROJECT_ATTRIBUTES.palette = array_clone(pal);
}
show_control : false,
show_tooltip : true,
palettes = paletteToArray(attributes.palette);
} setPalette();
#endregion
timelines = new timelineItemGroup();
notes = [];
static step = function() {
slideShowPreStep();
animator.step();
globalNode.step();
}
static postStep = function() {
slideShowPostStep();
}
useSlideShow = false;
slideShow = {};
slideShow_keys = [];
slideShow_index = 0;
slideShow_amount = 0;
slideShow_current = noone;
static slideShowPreStep = function() { slideShow = {}; }
static slideShowPostStep = function() {
slideShow_keys = variable_struct_get_names(slideShow);
array_sort(slideShow_keys, true);
slideShow_amount = array_length(slideShow_keys);
useSlideShow = slideShow_amount > 0;
slideShow_current = struct_try_get(slideShow, array_safe_get(slideShow_keys, slideShow_index, 0), noone);
}
static slideShowSet = function(index) {
slideShow_index = index;
slideShow_current = struct_try_get(slideShow, array_safe_get(slideShow_keys, slideShow_index, 0), noone);
return slideShow_current;
}
static cleanup = function() {
array_foreach(allNodes, function(_node) {
_node.active = false;
_node.cleanUp();
delete _node;
});
ds_map_destroy(nodeMap);
ds_map_destroy(nodeNameMap);
run_in_s(1, function() /*=>*/ { gc_collect(); gc_enable(true); });
ds_stack_clear(UNDO_STACK);
}
static toString = function() { return $"ProjectObject [{path}]"; }
static serialize = function() {
var _map = {};
_map.version = SAVE_VERSION;
_map.is_nightly = NIGHTLY;
_map.freeze = freeze;
var _anim_map = {};
_anim_map.frames_total = animator.frames_total;
_anim_map.framerate = animator.framerate;
_anim_map.frame_range = animator.frame_range;
_anim_map.playback = animator.playback;
_map.animator = _anim_map;
_map.metadata = meta.serialize();
_map.global_node = globalNode.serialize();
_map.onion_skin = onion_skin;
var _prev_node = PANEL_PREVIEW? PANEL_PREVIEW.getNodePreview() : noone;
_map.previewNode = _prev_node? _prev_node.node_id : noone;
var _insp_node = PANEL_INSPECTOR? PANEL_INSPECTOR.getInspecting() : noone;
_map.inspectingNode = _insp_node? _insp_node.node_id : noone;
_map.previewGrid = previewGrid;
_map.graphGrid = graphGrid;
_map.attributes = attributes;
_map.timelines = timelines.serialize();
_map.notes = array_map(notes, function(note) { return note.serialize(); } );
_map.composer = composer;
_map.load_layout = load_layout;
if(load_layout) _map.layout = panelSerialize(true);
_map.graph_display_parameter = graph_display_parameter;
__node_list = [];
array_foreach(allNodes, function(node) { if(node.active) array_push(__node_list, node.serialize()); })
_map.nodes = __node_list;
var prev = PANEL_PREVIEW.getNodePreviewSurface();
if(!is_surface(prev)) _map.preview = "";
else _map.preview = surface_encode(surface_size_lim(prev, 128, 128));
var _addon = {};
with(_addon_custom) {
var _ser = lua_call(thread, "serialize");
_addon[$ name] = PREFERENCES.save_file_minify? json_stringify_minify(_ser) : json_stringify(_ser);
}
_map.addon = _addon;
return _map;
}
static deserialize = function(_map) {
if(struct_has(_map, "animator")) {
var _anim_map = _map.animator;
animator.frames_total = struct_try_get(_anim_map, "frames_total", 30);
animator.framerate = struct_try_get(_anim_map, "framerate", 30);
animator.frame_range = struct_try_get(_anim_map, "frame_range", noone);
animator.playback = struct_try_get(_anim_map, "playback", ANIMATOR_END.loop);
}
if(struct_has(_map, "onion_skin")) struct_override(onion_skin, _map.onion_skin);
if(struct_has(_map, "previewGrid")) struct_override(previewGrid, _map.previewGrid);
if(struct_has(_map, "graphGrid")) struct_override(graphGrid, _map.graphGrid);
if(struct_has(_map, "attributes")) struct_override(attributes, _map.attributes);
if(struct_has(_map, "metadata")) meta.deserialize(_map.metadata);
if(struct_has(_map, "composer")) composer = _map.composer;
if(struct_has(_map, "freeze")) freeze = _map.freeze;
if(struct_has(_map, "graph_display_parameter")) struct_override(graph_display_parameter, _map.graph_display_parameter);
is_nightly = struct_try_get(_map, "is_nightly", is_nightly);
load_layout = struct_try_get(_map, "load_layout", load_layout);
setPalette();
if(struct_has(_map, "notes")) {
notes = array_create(array_length(_map.notes));
for( var i = 0, n = array_length(_map.notes); i < n; i++ )
notes[i] = new Note.deserialize(_map.notes[i]);
}
globalNode = new Node_Global();
if(struct_has(_map, "global")) globalNode.deserialize(_map.global);
else if(struct_has(_map, "global_node")) globalNode.deserialize(_map.global_node);
addons = {};
onion_skin = {
enabled : false,
range : [ -1, 1 ],
step : 1,
color : [ cola(c_red), cola(c_blue) ],
alpha : 0.5,
on_top : true,
};
tunnels_in = ds_map_create();
tunnels_in_map = ds_map_create();
tunnels_out = ds_map_create();
#region ===================== BINDERS ====================
bind_gamemaker = noone;
bind_godot = noone;
gamemaker_editWidget = new gamemakerPathBox(self);
#endregion
#region =================== ATTRIBUTES ===================
attributes = variable_clone(PROJECT_ATTRIBUTES);
attributes.bind_gamemaker_path = "";
attributes.bind_godot_path = "";
attributeEditor = [
[ "Default Surface", "surface_dimension", new vectorBox(2,
function(val, index) {
attributes.surface_dimension[index] = val;
PROJECT_ATTRIBUTES.surface_dimension = array_clone(attributes.surface_dimension);
RENDER_ALL
return true;
}),
function(junc) {
if(!is_struct(junc)) return;
if(!is_instanceof(junc, NodeValue)) return;
var attr = attributes.surface_dimension;
var _val = junc.getValue();
var _res = [ attr[0], attr[1] ];
switch(junc.type) {
case VALUE_TYPE.float :
case VALUE_TYPE.integer :
if(is_real(_val))
_res = [ _val, _val ];
else if(is_array(_val) && array_length(_val) >= 2) {
_res[0] = is_real(_val[0])? _val[0] : 1;
_res[1] = is_real(_val[1])? _val[1] : 1;
}
break;
case VALUE_TYPE.surface :
if(is_array(_val)) _val = array_safe_get_fast(_val, 0);
if(is_surface(_val))
_res = surface_get_dimension(_val);
break;
}
attr[0] = _res[0];
attr[1] = _res[1];
} ],
[ "Palette", "palette", new buttonPalette(function(pal) { setPalette(pal); RENDER_ALL return true; }),
function(junc) {
if(!is_struct(junc)) return;
if(!is_instanceof(junc, NodeValue)) return;
if(junc.type != VALUE_TYPE.color) return;
if(junc.display_type != VALUE_DISPLAY.palette) return;
setPalette(junc.getValue());
}
],
[ "Gamemaker Link", "bind_gamemaker_path", gamemaker_editWidget, noone ],
];
static setPalette = function(pal = noone) {
if(pal != noone) {
for (var i = 0, n = array_length(pal); i < n; i++)
pal[i] = cola(pal[i], _color_get_alpha(pal[i]));
attributes.palette = pal;
PROJECT_ATTRIBUTES.palette = array_clone(pal);
}
palettes = paletteToArray(attributes.palette);
} setPalette();
#endregion
timelines = new timelineItemGroup();
notes = [];
static step = function() {
slideShowPreStep();
animator.step();
globalNode.step();
if(struct_has(_map, "addon")) {
var _addon = _map.addon;
addons = _addon;
struct_foreach(_addon, function(_name, _value) { addonLoad(_name, false); });
}
static postStep = function() {
slideShowPostStep();
previewNode = struct_try_get(_map, "previewNode", noone);
if(PANEL_PREVIEW && previewNode != "") {
var _node = nodeMap[? previewNode];
if(_node) PANEL_PREVIEW.setNodePreview(_node);
}
useSlideShow = false;
slideShow = {};
slideShow_keys = [];
slideShow_index = 0;
slideShow_amount = 0;
slideShow_current = noone;
static slideShowPreStep = function() { slideShow = {}; }
static slideShowPostStep = function() {
slideShow_keys = variable_struct_get_names(slideShow);
array_sort(slideShow_keys, true);
slideShow_amount = array_length(slideShow_keys);
useSlideShow = slideShow_amount > 0;
slideShow_current = struct_try_get(slideShow, array_safe_get(slideShow_keys, slideShow_index, 0), noone);
inspectingNode = struct_try_get(_map, "inspectingNode", noone);
if(PANEL_INSPECTOR && inspectingNode != "") {
var _node = nodeMap[? inspectingNode];
if(_node) PANEL_INSPECTOR.setInspecting(_node);
}
static slideShowSet = function(index) {
slideShow_index = index;
slideShow_current = struct_try_get(slideShow, array_safe_get(slideShow_keys, slideShow_index, 0), noone);
return slideShow_current;
}
static cleanup = function() {
array_foreach(allNodes, function(_node) {
_node.active = false;
_node.cleanUp();
delete _node;
});
ds_map_destroy(nodeMap);
ds_map_destroy(nodeNameMap);
run_in_s(1, function() /*=>*/ { gc_collect(); gc_enable(true); });
ds_stack_clear(UNDO_STACK);
}
static toString = function() { return $"ProjectObject [{path}]"; }
static serialize = function() {
var _map = {};
_map.version = SAVE_VERSION;
_map.is_nightly = NIGHTLY;
_map.freeze = freeze;
var _anim_map = {};
_anim_map.frames_total = animator.frames_total;
_anim_map.framerate = animator.framerate;
_anim_map.frame_range = animator.frame_range;
_anim_map.playback = animator.playback;
_map.animator = _anim_map;
_map.metadata = meta.serialize();
_map.global_node = globalNode.serialize();
_map.onion_skin = onion_skin;
var _prev_node = PANEL_PREVIEW? PANEL_PREVIEW.getNodePreview() : noone;
_map.previewNode = _prev_node? _prev_node.node_id : noone;
var _insp_node = PANEL_INSPECTOR? PANEL_INSPECTOR.getInspecting() : noone;
_map.inspectingNode = _insp_node? _insp_node.node_id : noone;
_map.previewGrid = previewGrid;
_map.graphGrid = graphGrid;
_map.attributes = attributes;
_map.timelines = timelines.serialize();
_map.notes = array_map(notes, function(note) { return note.serialize(); } );
_map.composer = composer;
_map.load_layout = load_layout;
if(load_layout) _map.layout = panelSerialize(true);
_map.graph_display_parameter = graph_display_parameter;
__node_list = [];
array_foreach(allNodes, function(node) { if(node.active) array_push(__node_list, node.serialize()); })
_map.nodes = __node_list;
var prev = PANEL_PREVIEW.getNodePreviewSurface();
if(!is_surface(prev)) _map.preview = "";
else _map.preview = surface_encode(surface_size_lim(prev, 128, 128));
var _addon = {};
with(_addon_custom) {
var _ser = lua_call(thread, "serialize");
_addon[$ name] = PREFERENCES.save_file_minify? json_stringify_minify(_ser) : json_stringify(_ser);
}
_map.addon = _addon;
return _map;
}
static deserialize = function(_map) {
if(struct_has(_map, "animator")) {
var _anim_map = _map.animator;
animator.frames_total = struct_try_get(_anim_map, "frames_total", 30);
animator.framerate = struct_try_get(_anim_map, "framerate", 30);
animator.frame_range = struct_try_get(_anim_map, "frame_range", noone);
animator.playback = struct_try_get(_anim_map, "playback", ANIMATOR_END.loop);
}
if(struct_has(_map, "onion_skin")) struct_override(onion_skin, _map.onion_skin);
if(struct_has(_map, "previewGrid")) struct_override(previewGrid, _map.previewGrid);
if(struct_has(_map, "graphGrid")) struct_override(graphGrid, _map.graphGrid);
if(struct_has(_map, "attributes")) struct_override(attributes, _map.attributes);
if(struct_has(_map, "metadata")) meta.deserialize(_map.metadata);
if(struct_has(_map, "composer")) composer = _map.composer;
if(struct_has(_map, "freeze")) freeze = _map.freeze;
if(struct_has(_map, "graph_display_parameter")) struct_override(graph_display_parameter, _map.graph_display_parameter);
is_nightly = struct_try_get(_map, "is_nightly", is_nightly);
load_layout = struct_try_get(_map, "load_layout", load_layout);
setPalette();
if(struct_has(_map, "notes")) {
notes = array_create(array_length(_map.notes));
for( var i = 0, n = array_length(_map.notes); i < n; i++ )
notes[i] = new Note.deserialize(_map.notes[i]);
}
globalNode = new Node_Global();
if(struct_has(_map, "global")) globalNode.deserialize(_map.global);
else if(struct_has(_map, "global_node")) globalNode.deserialize(_map.global_node);
addons = {};
if(struct_has(_map, "addon")) {
var _addon = _map.addon;
addons = _addon;
struct_foreach(_addon, function(_name, _value) { addonLoad(_name, false); });
}
previewNode = struct_try_get(_map, "previewNode", noone);
if(PANEL_PREVIEW && previewNode != "") {
var _node = nodeMap[? previewNode];
if(_node) PANEL_PREVIEW.setNodePreview(_node);
}
inspectingNode = struct_try_get(_map, "inspectingNode", noone);
if(PANEL_INSPECTOR && inspectingNode != "") {
var _node = nodeMap[? inspectingNode];
if(_node) PANEL_INSPECTOR.setInspecting(_node);
}
bind_gamemaker = Binder_Gamemaker(attributes.bind_gamemaker_path);
if(bind_gamemaker == noone) attributes.bind_gamemaker_path = "";
}
static postDeserialize = function() {
}
bind_gamemaker = Binder_Gamemaker(attributes.bind_gamemaker_path);
if(bind_gamemaker == noone) attributes.bind_gamemaker_path = "";
}
function __initProject() {
PROJECT = new Project();
PROJECTS = [ PROJECT ];
static postDeserialize = function() {
}
#endregion
}
function __initProject() {
PROJECT = new Project();
PROJECTS = [ PROJECT ];
}

View file

@ -593,6 +593,7 @@ function surface_reset_target_override() { __surface_reset_target(); winwin_draw
surface_reset_shader();
surface_save(s, path);
return;
case surface_r8unorm : s = surface_create(w, h, surface_rgba8unorm); break;
case surface_r16float : s = surface_create(w, h, surface_rgba16float); break;
case surface_r32float : s = surface_create(w, h, surface_rgba32float); break;

View file

@ -61,8 +61,18 @@ function widget() constructor {
ry = params.ry;
sep_axis = params.sep_axis;
boxColor = params.color;
if(!is_undefined(params.interact))
setInteract(params.interact);
if(!is_undefined(params.focus))
setFocusHover(params.focus, params.hover);
if(!is_undefined(params.scrollpane) && inBBOX(params.m)) {
register(params.scrollpane);
params.scrollpane.hover_content = true;
}
}
static trigger = function() { }
@ -134,4 +144,19 @@ function widgetParam(x, y, w, h, data, display_data = {}, m = mouse_ui, rx = 0,
color = c_white;
sep_axis = false;
focus = undefined;
hover = undefined;
interact = undefined;
scrollpane = undefined;
static setFont = function(f) { font = f; return self; }
static setScrollpane = function(s) { scrollpane = s; return self; }
static setFocusHover = function(f, h, i = undefined) {
focus = f;
hover = h;
interact = i;
return self;
}
}

View file

@ -25,8 +25,8 @@
"nineSlice":null,
"origin":4,
"parent":{
"name":"misc",
"path":"folders/sprites/misc.yy",
"name":"gamemaker",
"path":"folders/game engines/gamemaker.yy",
},
"preMultiplyAlpha":false,
"resourceType":"GMSprite",