diff --git a/PixelComposer.resource_order b/PixelComposer.resource_order index 7bd185e61..d47deb387 100644 --- a/PixelComposer.resource_order +++ b/PixelComposer.resource_order @@ -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",}, diff --git a/PixelComposer.yyp b/PixelComposer.yyp index 83d756c81..05da81670 100644 --- a/PixelComposer.yyp +++ b/PixelComposer.yyp @@ -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",}, diff --git a/PixelComposer.yyp.css b/PixelComposer.yyp.css index 1ca54c84b..c1cc6a022 100644 --- a/PixelComposer.yyp.css +++ b/PixelComposer.yyp.css @@ -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; } \ No newline at end of file +.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; } \ No newline at end of file diff --git a/objects/o_dialog_panel/Draw_64.gml b/objects/o_dialog_panel/Draw_64.gml index 72fd8feda..9d6bb93f0 100644 --- a/objects/o_dialog_panel/Draw_64.gml +++ b/objects/o_dialog_panel/Draw_64.gml @@ -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() { diff --git a/objects/project_loader/Create_0.gml b/objects/project_loader/Create_0.gml index 2bc43053d..7b40d59e3 100644 --- a/objects/project_loader/Create_0.gml +++ b/objects/project_loader/Create_0.gml @@ -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; \ No newline at end of file + +PROJECT.deserialize(content); \ No newline at end of file diff --git a/objects/project_loader/Step_0.gml b/objects/project_loader/Step_0.gml index 9dfc4e2d6..36a0fd09d 100644 --- a/objects/project_loader/Step_0.gml +++ b/objects/project_loader/Step_0.gml @@ -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; diff --git a/scripts/__tiler_autoterrain/__tiler_autoterrain.gml b/scripts/__tiler_autoterrain/__tiler_autoterrain.gml index e21fb8fd0..7f428d165 100644 --- a/scripts/__tiler_autoterrain/__tiler_autoterrain.gml +++ b/scripts/__tiler_autoterrain/__tiler_autoterrain.gml @@ -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) { diff --git a/scripts/binder_gamemaker/binder_gamemaker.gml b/scripts/binder_gamemaker/binder_gamemaker.gml index 300a26aee..8e8fcde09 100644 --- a/scripts/binder_gamemaker/binder_gamemaker.gml +++ b/scripts/binder_gamemaker/binder_gamemaker.gml @@ -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); diff --git a/scripts/binder_gamemaker/binder_gamemaker.yy b/scripts/binder_gamemaker/binder_gamemaker.yy index 2c4db03fb..cbf801f5f 100644 --- a/scripts/binder_gamemaker/binder_gamemaker.yy +++ b/scripts/binder_gamemaker/binder_gamemaker.yy @@ -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", diff --git a/scripts/binder_gamemaker_room/binder_gamemaker_room.gml b/scripts/binder_gamemaker_room/binder_gamemaker_room.gml index 0033bb702..843a5ca31 100644 --- a/scripts/binder_gamemaker_room/binder_gamemaker_room.gml +++ b/scripts/binder_gamemaker_room/binder_gamemaker_room.gml @@ -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()}); diff --git a/scripts/binder_gamemaker_room/binder_gamemaker_room.yy b/scripts/binder_gamemaker_room/binder_gamemaker_room.yy index 137349f68..9afd23372 100644 --- a/scripts/binder_gamemaker_room/binder_gamemaker_room.yy +++ b/scripts/binder_gamemaker_room/binder_gamemaker_room.yy @@ -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", diff --git a/scripts/buffer_functions/buffer_functions.gml b/scripts/buffer_functions/buffer_functions.gml index 65a9c157f..31af2d9c7 100644 --- a/scripts/buffer_functions/buffer_functions.gml +++ b/scripts/buffer_functions/buffer_functions.gml @@ -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 += " "; diff --git a/scripts/buttonGroup/buttonGroup.gml b/scripts/buttonGroup/buttonGroup.gml index 704119cff..d7d6e4510 100644 --- a/scripts/buttonGroup/buttonGroup.gml +++ b/scripts/buttonGroup/buttonGroup.gml @@ -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)) diff --git a/scripts/debug/debug.gml b/scripts/debug/debug.gml index de4663c6d..46e626415 100644 --- a/scripts/debug/debug.gml +++ b/scripts/debug/debug.gml @@ -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) { diff --git a/scripts/gamemakerPathBox/gamemakerPathBox.gml b/scripts/gamemakerPathBox/gamemakerPathBox.gml index 158173a03..9d9001791 100644 --- a/scripts/gamemakerPathBox/gamemakerPathBox.gml +++ b/scripts/gamemakerPathBox/gamemakerPathBox.gml @@ -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 = ""; diff --git a/scripts/gamemakerPathBox/gamemakerPathBox.yy b/scripts/gamemakerPathBox/gamemakerPathBox.yy index 5ee05c57c..12a94f1fe 100644 --- a/scripts/gamemakerPathBox/gamemakerPathBox.yy +++ b/scripts/gamemakerPathBox/gamemakerPathBox.yy @@ -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", diff --git a/scripts/globals/globals.gml b/scripts/globals/globals.gml index 653b91195..1cb24b13e 100644 --- a/scripts/globals/globals.gml +++ b/scripts/globals/globals.gml @@ -167,6 +167,7 @@ #macro returnNull_mf2 ; if(is_undefined( #macro returnNull_mf3 ) || #macro returnNull_mf4 == noone) return; + #endregion #region presets diff --git a/scripts/node_gm_room/node_gm_room.gml b/scripts/node_gm_room/node_gm_room.gml index 206c350f3..f42f07af9 100644 --- a/scripts/node_gm_room/node_gm_room.gml +++ b/scripts/node_gm_room/node_gm_room.gml @@ -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; + } } } diff --git a/scripts/node_gm_room/node_gm_room.yy b/scripts/node_gm_room/node_gm_room.yy index 3eae076c8..86584282e 100644 --- a/scripts/node_gm_room/node_gm_room.yy +++ b/scripts/node_gm_room/node_gm_room.yy @@ -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", diff --git a/scripts/node_tiler/node_tiler.gml b/scripts/node_tiler/node_tiler.gml index d3ec8a853..6255f7ea4 100644 --- a/scripts/node_tiler/node_tiler.gml +++ b/scripts/node_tiler/node_tiler.gml @@ -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); + } + } } \ No newline at end of file diff --git a/scripts/node_tiler_tileset/node_tiler_tileset.gml b/scripts/node_tiler_tileset/node_tiler_tileset.gml index 87ca1564f..323d1d4a8 100644 --- a/scripts/node_tiler_tileset/node_tiler_tileset.gml +++ b/scripts/node_tiler_tileset/node_tiler_tileset.gml @@ -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); } diff --git a/scripts/panel_data/panel_data.gml b/scripts/panel_data/panel_data.gml index b37d7061e..992666875 100644 --- a/scripts/panel_data/panel_data.gml +++ b/scripts/panel_data/panel_data.gml @@ -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)) diff --git a/scripts/panel_gm_explorer/panel_gm_explorer.gml b/scripts/panel_gm_explorer/panel_gm_explorer.gml index 8642e695c..703ca81c1 100644 --- a/scripts/panel_gm_explorer/panel_gm_explorer.gml +++ b/scripts/panel_gm_explorer/panel_gm_explorer.gml @@ -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; } \ No newline at end of file diff --git a/scripts/panel_gm_explorer/panel_gm_explorer.yy b/scripts/panel_gm_explorer/panel_gm_explorer.yy index c13592bed..d1812f060 100644 --- a/scripts/panel_gm_explorer/panel_gm_explorer.yy +++ b/scripts/panel_gm_explorer/panel_gm_explorer.yy @@ -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", diff --git a/scripts/panel_inspector/panel_inspector.gml b/scripts/panel_inspector/panel_inspector.gml index 46337bdb1..2437978ec 100644 --- a/scripts/panel_inspector/panel_inspector.gml +++ b/scripts/panel_inspector/panel_inspector.gml @@ -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) { diff --git a/scripts/project_data/project_data.gml b/scripts/project_data/project_data.gml index d50452209..e5134abf0 100644 --- a/scripts/project_data/project_data.gml +++ b/scripts/project_data/project_data.gml @@ -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 \ No newline at end of file +} + +function __initProject() { + PROJECT = new Project(); + PROJECTS = [ PROJECT ]; +} diff --git a/scripts/surface_functions/surface_functions.gml b/scripts/surface_functions/surface_functions.gml index a4263ec65..5ef648734 100644 --- a/scripts/surface_functions/surface_functions.gml +++ b/scripts/surface_functions/surface_functions.gml @@ -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; diff --git a/scripts/widget/widget.gml b/scripts/widget/widget.gml index d306bac81..8531d7d26 100644 --- a/scripts/widget/widget.gml +++ b/scripts/widget/widget.gml @@ -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; + } } \ No newline at end of file diff --git a/sprites/s_gamemaker/s_gamemaker.yy b/sprites/s_gamemaker/s_gamemaker.yy index 961d6010d..8c9971d21 100644 --- a/sprites/s_gamemaker/s_gamemaker.yy +++ b/sprites/s_gamemaker/s_gamemaker.yy @@ -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",