This commit is contained in:
Tanasart 2023-01-04 08:30:04 +07:00
parent 976a7e6ec9
commit 2b1edf0457
176 changed files with 6213 additions and 1080 deletions

View file

@ -17,6 +17,7 @@
{"id":{"name":"sh_dither","path":"shaders/sh_dither/sh_dither.yy",},"order":30,},
{"id":{"name":"control_function","path":"scripts/control_function/control_function.yy",},"order":0,},
{"id":{"name":"panel_data","path":"scripts/panel_data/panel_data.yy",},"order":0,},
{"id":{"name":"s_node_text_file_read","path":"sprites/s_node_text_file_read/s_node_text_file_read.yy",},"order":16,},
{"id":{"name":"s_node_text_trim","path":"sprites/s_node_text_trim/s_node_text_trim.yy",},"order":18,},
{"id":{"name":"node_3d_obj","path":"scripts/node_3d_obj/node_3d_obj.yy",},"order":8,},
{"id":{"name":"o_dialog_menubox","path":"objects/o_dialog_menubox/o_dialog_menubox.yy",},"order":1,},
@ -34,6 +35,7 @@
{"id":{"name":"sh_color_picker_value","path":"shaders/sh_color_picker_value/sh_color_picker_value.yy",},"order":34,},
{"id":{"name":"node_dither","path":"scripts/node_dither/node_dither.yy",},"order":11,},
{"id":{"name":"sh_perlin_smear","path":"shaders/sh_perlin_smear/sh_perlin_smear.yy",},"order":7,},
{"id":{"name":"node_switch","path":"scripts/node_switch/node_switch.yy",},"order":8,},
{"id":{"name":"sh_corner","path":"shaders/sh_corner/sh_corner.yy",},"order":21,},
{"id":{"name":"node_array","path":"scripts/node_array/node_array.yy",},"order":8,},
{"id":{"name":"sh_colorize","path":"shaders/sh_colorize/sh_colorize.yy",},"order":5,},
@ -71,6 +73,7 @@
{"id":{"name":"o_dialog_exit","path":"objects/o_dialog_exit/o_dialog_exit.yy",},"order":27,},
{"id":{"name":"node_flip","path":"scripts/node_flip/node_flip.yy",},"order":14,},
{"id":{"name":"node_gradient_points","path":"scripts/node_gradient_points/node_gradient_points.yy",},"order":20,},
{"id":{"name":"_f_code","path":"fonts/_f_code/_f_code.yy",},"order":9,},
{"id":{"name":"sh_combine_rgb","path":"shaders/sh_combine_rgb/sh_combine_rgb.yy",},"order":46,},
{"id":{"name":"colToVec4","path":"scripts/colToVec4/colToVec4.yy",},"order":0,},
{"id":{"name":"s_node_vfx","path":"sprites/s_node_vfx/s_node_vfx.yy",},"order":9,},
@ -101,6 +104,7 @@
{"id":{"name":"globals","path":"scripts/globals/globals.yy",},"order":1,},
{"id":{"name":"s_node_noise_perlin","path":"sprites/s_node_noise_perlin/s_node_noise_perlin.yy",},"order":11,},
{"id":{"name":"s_node_dithering","path":"sprites/s_node_dithering/s_node_dithering.yy",},"order":19,},
{"id":{"name":"node_compare","path":"scripts/node_compare/node_compare.yy",},"order":16,},
{"id":{"name":"s_node_HSV_combine","path":"sprites/s_node_HSV_combine/s_node_HSV_combine.yy",},"order":42,},
{"id":{"name":"node_normal_light","path":"scripts/node_normal_light/node_normal_light.yy",},"order":0,},
{"id":{"name":"o_dialog_release_note","path":"objects/o_dialog_release_note/o_dialog_release_note.yy",},"order":16,},
@ -112,6 +116,7 @@
{"id":{"name":"node_noise_grid","path":"scripts/node_noise_grid/node_noise_grid.yy",},"order":8,},
{"id":{"name":"s_node_HSV","path":"sprites/s_node_HSV/s_node_HSV.yy",},"order":44,},
{"id":{"name":"s_node_compose","path":"sprites/s_node_compose/s_node_compose.yy",},"order":1,},
{"id":{"name":"s_node_switch","path":"sprites/s_node_switch/s_node_switch.yy",},"order":20,},
{"id":{"name":"s_node_crop","path":"sprites/s_node_crop/s_node_crop.yy",},"order":2,},
{"id":{"name":"__VFX","path":"scripts/__VFX/__VFX.yy",},"order":3,},
{"id":{"name":"s_menu_black","path":"sprites/s_menu_black/s_menu_black.yy",},"order":2,},
@ -134,6 +139,7 @@
{"id":{"name":"node_transform","path":"scripts/node_transform/node_transform.yy",},"order":0,},
{"id":{"name":"curveBox","path":"scripts/curveBox/curveBox.yy",},"order":8,},
{"id":{"name":"sh_gradient_display","path":"shaders/sh_gradient_display/sh_gradient_display.yy",},"order":18,},
{"id":{"name":"node_json_file_write","path":"scripts/node_json_file_write/node_json_file_write.yy",},"order":12,},
{"id":{"name":"s_node_chromatic_abarration","path":"sprites/s_node_chromatic_abarration/s_node_chromatic_abarration.yy",},"order":12,},
{"id":{"name":"node_blur_directional","path":"scripts/node_blur_directional/node_blur_directional.yy",},"order":26,},
{"id":{"name":"s_node_group","path":"sprites/s_node_group/s_node_group.yy",},"order":4,},
@ -148,6 +154,7 @@
{"id":{"name":"s_node_curve","path":"sprites/s_node_curve/s_node_curve.yy",},"order":1,},
{"id":{"name":"sh_blend_normal","path":"shaders/sh_blend_normal/sh_blend_normal.yy",},"order":1,},
{"id":{"name":"node_feedback_output","path":"scripts/node_feedback_output/node_feedback_output.yy",},"order":2,},
{"id":{"name":"node_lua_surface","path":"scripts/node_lua_surface/node_lua_surface.yy",},"order":5,},
{"id":{"name":"sh_blur_directional","path":"shaders/sh_blur_directional/sh_blur_directional.yy",},"order":4,},
{"id":{"name":"node_processor","path":"scripts/node_processor/node_processor.yy",},"order":8,},
{"id":{"name":"animation_controller","path":"scripts/animation_controller/animation_controller.yy",},"order":1,},
@ -164,6 +171,7 @@
{"id":{"name":"node_VFX_renderer","path":"scripts/node_VFX_renderer/node_VFX_renderer.yy",},"order":5,},
{"id":{"name":"s_node_invert","path":"sprites/s_node_invert/s_node_invert.yy",},"order":25,},
{"id":{"name":"node_array_get","path":"scripts/node_array_get/node_array_get.yy",},"order":10,},
{"id":{"name":"node_lua_compute","path":"scripts/node_lua_compute/node_lua_compute.yy",},"order":7,},
{"id":{"name":"sh_grid","path":"shaders/sh_grid/sh_grid.yy",},"order":14,},
{"id":{"name":"sh_twirl","path":"shaders/sh_twirl/sh_twirl.yy",},"order":3,},
{"id":{"name":"s_node_shape","path":"sprites/s_node_shape/s_node_shape.yy",},"order":14,},
@ -183,6 +191,7 @@
{"id":{"name":"node_surface_data","path":"scripts/node_surface_data/node_surface_data.yy",},"order":4,},
{"id":{"name":"load_palette","path":"scripts/load_palette/load_palette.yy",},"order":3,},
{"id":{"name":"sh_alpha_cutoff","path":"shaders/sh_alpha_cutoff/sh_alpha_cutoff.yy",},"order":23,},
{"id":{"name":"luaHighlight","path":"scripts/luaHighlight/luaHighlight.yy",},"order":1,},
{"id":{"name":"node_combine_rgb","path":"scripts/node_combine_rgb/node_combine_rgb.yy",},"order":49,},
{"id":{"name":"checkbox","path":"scripts/checkbox/checkbox.yy",},"order":7,},
{"id":{"name":"s_node_particle","path":"sprites/s_node_particle/s_node_particle.yy",},"order":12,},
@ -217,10 +226,12 @@
{"id":{"name":"sh_bw","path":"shaders/sh_bw/sh_bw.yy",},"order":1,},
{"id":{"name":"real_comparison","path":"scripts/real_comparison/real_comparison.yy",},"order":1,},
{"id":{"name":"s_node_stripe","path":"sprites/s_node_stripe/s_node_stripe.yy",},"order":16,},
{"id":{"name":"s_node_lua_global","path":"sprites/s_node_lua_global/s_node_lua_global.yy",},"order":19,},
{"id":{"name":"sh_grey_alpha","path":"shaders/sh_grey_alpha/sh_grey_alpha.yy",},"order":10,},
{"id":{"name":"sh_normal","path":"shaders/sh_normal/sh_normal.yy",},"order":1,},
{"id":{"name":"s_node_time_map","path":"sprites/s_node_time_map/s_node_time_map.yy",},"order":37,},
{"id":{"name":"node_crop","path":"scripts/node_crop/node_crop.yy",},"order":8,},
{"id":{"name":"s_node_lua_compute","path":"sprites/s_node_lua_compute/s_node_lua_compute.yy",},"order":17,},
{"id":{"name":"buttonPalette","path":"scripts/buttonPalette/buttonPalette.yy",},"order":6,},
{"id":{"name":"s_node_wiggler","path":"sprites/s_node_wiggler/s_node_wiggler.yy",},"order":2,},
{"id":{"name":"sh_edge_detect","path":"shaders/sh_edge_detect/sh_edge_detect.yy",},"order":32,},
@ -254,8 +265,10 @@
{"id":{"name":"node_grid_tri","path":"scripts/node_grid_tri/node_grid_tri.yy",},"order":21,},
{"id":{"name":"window_command_hook","path":"extensions/window_command_hook/window_command_hook.yy",},"order":6,},
{"id":{"name":"slider","path":"scripts/slider/slider.yy",},"order":15,},
{"id":{"name":"s_node_convolution","path":"sprites/s_node_convolution/s_node_convolution.yy",},"order":46,},
{"id":{"name":"node_9slice","path":"scripts/node_9slice/node_9slice.yy",},"order":6,},
{"id":{"name":"sh_grid_hex","path":"shaders/sh_grid_hex/sh_grid_hex.yy",},"order":21,},
{"id":{"name":"s_node_lua_surface","path":"sprites/s_node_lua_surface/s_node_lua_surface.yy",},"order":18,},
{"id":{"name":"node_data","path":"scripts/node_data/node_data.yy",},"order":1,},
{"id":{"name":"node_wiggler","path":"scripts/node_wiggler/node_wiggler.yy",},"order":2,},
{"id":{"name":"s_node_checker","path":"sprites/s_node_checker/s_node_checker.yy",},"order":0,},
@ -286,6 +299,7 @@
{"id":{"name":"sh_gradient","path":"shaders/sh_gradient/sh_gradient.yy",},"order":17,},
{"id":{"name":"node_json_file_read","path":"scripts/node_json_file_read/node_json_file_read.yy",},"order":8,},
{"id":{"name":"s_node_zigzag","path":"sprites/s_node_zigzag/s_node_zigzag.yy",},"order":18,},
{"id":{"name":"s_node_csv_file_write","path":"sprites/s_node_csv_file_write/s_node_csv_file_write.yy",},"order":11,},
{"id":{"name":"sh_glow","path":"shaders/sh_glow/sh_glow.yy",},"order":36,},
{"id":{"name":"sh_clean_shape","path":"shaders/sh_clean_shape/sh_clean_shape.yy",},"order":39,},
{"id":{"name":"sh_posterize","path":"shaders/sh_posterize/sh_posterize.yy",},"order":20,},
@ -294,19 +308,24 @@
{"id":{"name":"node_VFX_spawner","path":"scripts/node_VFX_spawner/node_VFX_spawner.yy",},"order":2,},
{"id":{"name":"libfilesystem","path":"extensions/libfilesystem/libfilesystem.yy",},"order":3,},
{"id":{"name":"sh_color_replace","path":"shaders/sh_color_replace/sh_color_replace.yy",},"order":4,},
{"id":{"name":"Apollo","path":"extensions/Apollo/Apollo.yy",},"order":8,},
{"id":{"name":"rotator","path":"scripts/rotator/rotator.yy",},"order":11,},
{"id":{"name":"s_node_edge_detect","path":"sprites/s_node_edge_detect/s_node_edge_detect.yy",},"order":20,},
{"id":{"name":"node_grid_hex","path":"scripts/node_grid_hex/node_grid_hex.yy",},"order":22,},
{"id":{"name":"s_node_text_display","path":"sprites/s_node_text_display/s_node_text_display.yy",},"order":19,},
{"id":{"name":"luaRenderer","path":"scripts/luaRenderer/luaRenderer.yy",},"order":2,},
{"id":{"name":"node_blur_radial","path":"scripts/node_blur_radial/node_blur_radial.yy",},"order":29,},
{"id":{"name":"node_bloom","path":"scripts/node_bloom/node_bloom.yy",},"order":15,},
{"id":{"name":"sh_bevel","path":"shaders/sh_bevel/sh_bevel.yy",},"order":3,},
{"id":{"name":"sh_blend_overlay","path":"shaders/sh_blend_overlay/sh_blend_overlay.yy",},"order":15,},
{"id":{"name":"node_sprite_stack","path":"scripts/node_sprite_stack/node_sprite_stack.yy",},"order":4,},
{"id":{"name":"s_node_json_file_read","path":"sprites/s_node_json_file_read/s_node_json_file_read.yy",},"order":14,},
{"id":{"name":"sh_shape","path":"shaders/sh_shape/sh_shape.yy",},"order":3,},
{"id":{"name":"draw_line_width2","path":"scripts/draw_line_width2/draw_line_width2.yy",},"order":2,},
{"id":{"name":"matrixGrid","path":"scripts/matrixGrid/matrixGrid.yy",},"order":23,},
{"id":{"name":"_node_VFX_effector","path":"scripts/_node_VFX_effector/_node_VFX_effector.yy",},"order":1,},
{"id":{"name":"areaBox","path":"scripts/areaBox/areaBox.yy",},"order":1,},
{"id":{"name":"node_lua_global","path":"scripts/node_lua_global/node_lua_global.yy",},"order":6,},
{"id":{"name":"o_dialog_preset","path":"objects/o_dialog_preset/o_dialog_preset.yy",},"order":1,},
{"id":{"name":"s_node_erode","path":"sprites/s_node_erode/s_node_erode.yy",},"order":21,},
{"id":{"name":"node_particle","path":"scripts/node_particle/node_particle.yy",},"order":19,},
@ -321,6 +340,7 @@
{"id":{"name":"node_alpha_cutoff","path":"scripts/node_alpha_cutoff/node_alpha_cutoff.yy",},"order":37,},
{"id":{"name":"sh_channel_R","path":"shaders/sh_channel_R/sh_channel_R.yy",},"order":4,},
{"id":{"name":"draw_circle_border","path":"scripts/draw_circle_border/draw_circle_border.yy",},"order":3,},
{"id":{"name":"s_node_text_file_write","path":"sprites/s_node_text_file_write/s_node_text_file_write.yy",},"order":15,},
{"id":{"name":"sliderRange","path":"scripts/sliderRange/sliderRange.yy",},"order":16,},
{"id":{"name":"point_rect_overlap","path":"scripts/point_rect_overlap/point_rect_overlap.yy",},"order":2,},
{"id":{"name":"s_node_bevel","path":"sprites/s_node_bevel/s_node_bevel.yy",},"order":4,},
@ -348,6 +368,7 @@
{"id":{"name":"safe_operation","path":"scripts/safe_operation/safe_operation.yy",},"order":6,},
{"id":{"name":"s_node_array_get","path":"sprites/s_node_array_get/s_node_array_get.yy",},"order":11,},
{"id":{"name":"s_node_BW","path":"sprites/s_node_BW/s_node_BW.yy",},"order":11,},
{"id":{"name":"s_node_compare","path":"sprites/s_node_compare/s_node_compare.yy",},"order":20,},
{"id":{"name":"s_node_vfx_spawn","path":"sprites/s_node_vfx_spawn/s_node_vfx_spawn.yy",},"order":2,},
{"id":{"name":"node_shadow","path":"scripts/node_shadow/node_shadow.yy",},"order":17,},
{"id":{"name":"s_node_color_data","path":"sprites/s_node_color_data/s_node_color_data.yy",},"order":2,},
@ -368,13 +389,14 @@
{"id":{"name":"s_node_camera","path":"sprites/s_node_camera/s_node_camera.yy",},"order":3,},
{"id":{"name":"sh_vertex_pnt_light","path":"shaders/sh_vertex_pnt_light/sh_vertex_pnt_light.yy",},"order":4,},
{"id":{"name":"surfaceBox","path":"scripts/surfaceBox/surfaceBox.yy",},"order":22,},
{"id":{"name":"s_node_csv_file_read","path":"sprites/s_node_csv_file_read/s_node_csv_file_read.yy",},"order":12,},
{"id":{"name":"s_node_array_length","path":"sprites/s_node_array_length/s_node_array_length.yy",},"order":12,},
{"id":{"name":"string_splice","path":"scripts/string_splice/string_splice.yy",},"order":5,},
{"id":{"name":"s_node_vfx_input","path":"sprites/s_node_vfx_input/s_node_vfx_input.yy",},"order":12,},
{"id":{"name":"sh_seperate_shape_ite","path":"shaders/sh_seperate_shape_ite/sh_seperate_shape_ite.yy",},"order":2,},
{"id":{"name":"o_main","path":"objects/o_main/o_main.yy",},"order":1,},
{"id":{"name":"area_function","path":"scripts/area_function/area_function.yy",},"order":2,},
{"id":{"name":"sh_sharpen","path":"shaders/sh_sharpen/sh_sharpen.yy",},"order":50,},
{"id":{"name":"sh_convolution","path":"shaders/sh_convolution/sh_convolution.yy",},"order":50,},
{"id":{"name":"s_node_statistic","path":"sprites/s_node_statistic/s_node_statistic.yy",},"order":4,},
{"id":{"name":"sh_blend_alpha_addition","path":"shaders/sh_blend_alpha_addition/sh_blend_alpha_addition.yy",},"order":13,},
{"id":{"name":"node_VFX_effect_vortex","path":"scripts/node_VFX_effect_vortex/node_VFX_effect_vortex.yy",},"order":12,},
@ -402,7 +424,7 @@
{"id":{"name":"lerp_float","path":"scripts/lerp_float/lerp_float.yy",},"order":1,},
{"id":{"name":"vectorRangeBox","path":"scripts/vectorRangeBox/vectorRangeBox.yy",},"order":19,},
{"id":{"name":"sh_draw_vertex_aa","path":"shaders/sh_draw_vertex_aa/sh_draw_vertex_aa.yy",},"order":0,},
{"id":{"name":"node_sharpen","path":"scripts/node_sharpen/node_sharpen.yy",},"order":53,},
{"id":{"name":"node_convolution","path":"scripts/node_convolution/node_convolution.yy",},"order":53,},
{"id":{"name":"sh_outline_only","path":"shaders/sh_outline_only/sh_outline_only.yy",},"order":37,},
{"id":{"name":"s_node_destray","path":"sprites/s_node_destray/s_node_destray.yy",},"order":16,},
{"id":{"name":"node_color_sampler","path":"scripts/node_color_sampler/node_color_sampler.yy",},"order":1,},
@ -457,7 +479,7 @@
{"id":{"name":"node_sprite_sheet","path":"scripts/node_sprite_sheet/node_sprite_sheet.yy",},"order":0,},
{"id":{"name":"value_snap","path":"scripts/value_snap/value_snap.yy",},"order":10,},
{"id":{"name":"compat_path_array","path":"scripts/compat_path_array/compat_path_array.yy",},"order":0,},
{"id":{"name":"node_export","path":"scripts/node_export/node_export.yy",},"order":1,},
{"id":{"name":"node_export","path":"scripts/node_export/node_export.yy",},"order":10,},
{"id":{"name":"controlPointBox","path":"scripts/controlPointBox/controlPointBox.yy",},"order":21,},
{"id":{"name":"sh_vertex_pt","path":"shaders/sh_vertex_pt/sh_vertex_pt.yy",},"order":2,},
{"id":{"name":"node_color_replacement","path":"scripts/node_color_replacement/node_color_replacement.yy",},"order":4,},
@ -480,6 +502,7 @@
{"id":{"name":"node_3d_prim_cylinder","path":"scripts/node_3d_prim_cylinder/node_3d_prim_cylinder.yy",},"order":7,},
{"id":{"name":"sh_gradient_points","path":"shaders/sh_gradient_points/sh_gradient_points.yy",},"order":19,},
{"id":{"name":"s_node_vfx_turb","path":"sprites/s_node_vfx_turb/s_node_vfx_turb.yy",},"order":5,},
{"id":{"name":"GmlLua","path":"scripts/GmlLua/GmlLua.yy",},"order":0,},
{"id":{"name":"node_grid","path":"scripts/node_grid/node_grid.yy",},"order":16,},
{"id":{"name":"node_edge_detect","path":"scripts/node_edge_detect/node_edge_detect.yy",},"order":44,},
{"id":{"name":"node_anim_priority","path":"scripts/node_anim_priority/node_anim_priority.yy",},"order":2,},
@ -502,6 +525,7 @@
{"id":{"name":"node_counter","path":"scripts/node_counter/node_counter.yy",},"order":1,},
{"id":{"name":"sh_color_picker_hue","path":"shaders/sh_color_picker_hue/sh_color_picker_hue.yy",},"order":3,},
{"id":{"name":"s_node_timeline_preview","path":"sprites/s_node_timeline_preview/s_node_timeline_preview.yy",},"order":2,},
{"id":{"name":"node_csv_file_read","path":"scripts/node_csv_file_read/node_csv_file_read.yy",},"order":9,},
{"id":{"name":"scrollPane","path":"scripts/scrollPane/scrollPane.yy",},"order":14,},
{"id":{"name":"s_node_normal_light","path":"sprites/s_node_normal_light/s_node_normal_light.yy",},"order":29,},
{"id":{"name":"node_transform_single","path":"scripts/node_transform_single/node_transform_single.yy",},"order":1,},
@ -551,7 +575,6 @@
{"id":{"name":"node_de_stray","path":"scripts/node_de_stray/node_de_stray.yy",},"order":27,},
{"id":{"name":"sh_channel_G","path":"shaders/sh_channel_G/sh_channel_G.yy",},"order":2,},
{"id":{"name":"s_node_dilate","path":"sprites/s_node_dilate/s_node_dilate.yy",},"order":17,},
{"id":{"name":"s_node_text_file_read","path":"sprites/s_node_text_file_read/s_node_text_file_read.yy",},"order":11,},
{"id":{"name":"node_collection","path":"scripts/node_collection/node_collection.yy",},"order":0,},
{"id":{"name":"node_value","path":"scripts/node_value/node_value.yy",},"order":6,},
{"id":{"name":"draw_line_curve","path":"scripts/draw_line_curve/draw_line_curve.yy",},"order":5,},
@ -559,6 +582,7 @@
{"id":{"name":"node_group_output","path":"scripts/node_group_output/node_group_output.yy",},"order":2,},
{"id":{"name":"s_node_scatter","path":"sprites/s_node_scatter/s_node_scatter.yy",},"order":19,},
{"id":{"name":"_f_p2","path":"fonts/_f_p2/_f_p2.yy",},"order":4,},
{"id":{"name":"node_text_file_write","path":"scripts/node_text_file_write/node_text_file_write.yy",},"order":11,},
{"id":{"name":"sh_lum2alpha","path":"shaders/sh_lum2alpha/sh_lum2alpha.yy",},"order":43,},
{"id":{"name":"button","path":"scripts/button/button.yy",},"order":2,},
{"id":{"name":"node_VFX_effector","path":"scripts/node_VFX_effector/node_VFX_effector.yy",},"order":8,},
@ -586,6 +610,7 @@
{"id":{"name":"s_node_group_input","path":"sprites/s_node_group_input/s_node_group_input.yy",},"order":16,},
{"id":{"name":"sample_projects","path":"scripts/sample_projects/sample_projects.yy",},"order":5,},
{"id":{"name":"load_function","path":"scripts/load_function/load_function.yy",},"order":2,},
{"id":{"name":"draw_sprite_fit","path":"scripts/draw_sprite_fit/draw_sprite_fit.yy",},"order":12,},
{"id":{"name":"ds_map","path":"scripts/ds_map/ds_map.yy",},"order":0,},
{"id":{"name":"s_node_3d_transform","path":"sprites/s_node_3d_transform/s_node_3d_transform.yy",},"order":4,},
{"id":{"name":"s_node_output","path":"sprites/s_node_output/s_node_output.yy",},"order":7,},
@ -606,6 +631,7 @@
{"id":{"name":"node_de_corner","path":"scripts/node_de_corner/node_de_corner.yy",},"order":25,},
{"id":{"name":"preferences","path":"scripts/preferences/preferences.yy",},"order":4,},
{"id":{"name":"sh_solid","path":"shaders/sh_solid/sh_solid.yy",},"order":15,},
{"id":{"name":"s_node_json_file_write","path":"sprites/s_node_json_file_write/s_node_json_file_write.yy",},"order":13,},
{"id":{"name":"timer_function","path":"scripts/timer_function/timer_function.yy",},"order":0,},
{"id":{"name":"font_data","path":"scripts/font_data/font_data.yy",},"order":9,},
{"id":{"name":"animation_curve","path":"scripts/animation_curve/animation_curve.yy",},"order":0,},
@ -684,6 +710,7 @@
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"files","folderPath":"folders/functions/files.yy","order":15,},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"importers","folderPath":"folders/functions/importers.yy","order":6,},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"inputs","folderPath":"folders/functions/inputs.yy","order":7,},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"lua","folderPath":"folders/functions/lua.yy","order":24,},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"physics","folderPath":"folders/functions/physics.yy","order":21,},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"regex","folderPath":"folders/functions/regex.yy","order":11,},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"shader","folderPath":"folders/functions/shader.yy","order":16,},
@ -705,7 +732,7 @@
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"filter","folderPath":"folders/nodes/data/filter.yy","order":1,},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"generator","folderPath":"folders/nodes/data/generator.yy","order":4,},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"group","folderPath":"folders/nodes/data/group.yy","order":6,},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"input","folderPath":"folders/nodes/data/input.yy","order":0,},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"IO","folderPath":"folders/nodes/data/IO.yy","order":0,},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"iterate","folderPath":"folders/nodes/data/iterate.yy","order":10,},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"node","folderPath":"folders/nodes/data/node.yy","order":11,},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"render","folderPath":"folders/nodes/data/render.yy","order":2,},
@ -910,7 +937,6 @@
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_anchor_scale_hori_strip2.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/preview",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_preview_crosshair.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/preview",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_button_hide_fill_strip3.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/widget",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_textbox_strip4.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/widget",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_button_lime_strip3.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/widget",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_button_left_strip3.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/widget",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_button_hide_strip3.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/widget",},
@ -963,7 +989,6 @@
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_ui_panel_bg_strip2.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/UI",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_menu_button.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/UI",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"A9Rwvus4g_1fk5bwb_iqs.tmp","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/widget",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"graphic.ai","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/widget",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_checkbox_strip4.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/widget",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_node_bg_name.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/node",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"graphics x2.ai","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/inspector",},
@ -1010,9 +1035,13 @@
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"graphic x2.ai","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/node",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"graphics x2.ai","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_node_glow.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/node",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"default.zip","CopyToMask":-1,"filePath":"datafiles/data/themes",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"graphic.ai","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/node",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"Collections.zip","CopyToMask":-1,"filePath":"datafiles/data",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"FiraCode-Medium.ttf","CopyToMask":-1,"filePath":"datafiles/data/themes/default/fonts",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_textbox_strip4.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/widget",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"graphic.ai","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/widget",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_textbox_code_line.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/widget",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"default.zip","CopyToMask":-1,"filePath":"datafiles/data/themes",},
],
"MetaData": {
"IDEVersion": "2022.11.1.56",

Binary file not shown.

View file

@ -8,6 +8,7 @@
"blue_ltgrey": "7e7e8f",
"blue_white": "d6d6e8",
"blue": "27aae1",
"cyan": "88ffe9",
"yellow": "ffe478",
"orange": "ff9166",
@ -30,6 +31,12 @@
"_main_icon_dark": "blue_mdblack",
"_main_value_positive": "lime",
"_main_value_negative": "red",
"lua_highlight_keyword": "orange",
"lua_highlight_bracklet": "cyan",
"lua_highlight_function": "lime",
"lua_highlight_number": "yellow",
"lua_highlight_string": "blue",
"collection_folder_empty": "blue_dkgrey",
"collection_folder_nonempty": "blue_ltgrey",

View file

@ -33,5 +33,10 @@
"path": "./NotoSans-SemiBold.ttf",
"size": 9,
"range": [32, 127]
},
"code": {
"path": "./FiraCode-Medium.ttf",
"size": 12,
"range": [32, 127]
}
}

View file

@ -1229,5 +1229,18 @@
"top": 5,
"bottom": 5
}
},
"textbox_code": {
"path": "./widget/s_textbox_code_line.png",
"subimages": 1,
"xorigin": 0,
"yorigin": 0,
"slice": {
"enabled": true,
"left": 5,
"right": 5,
"top": 5,
"bottom": 5
}
}
}

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 282 B

After

Width:  |  Height:  |  Size: 247 B

1016
extensions/Apollo/Apollo.cpp Normal file

File diff suppressed because it is too large Load diff

Binary file not shown.

Binary file not shown.

BIN
extensions/Apollo/Apollo.so Normal file

Binary file not shown.

418
extensions/Apollo/Apollo.yy Normal file
View file

@ -0,0 +1,418 @@
{
"resourceType": "GMExtension",
"resourceVersion": "1.2",
"name": "Apollo",
"optionsFile": "options.json",
"options": [],
"exportToGame": true,
"supportedTargets": 105554172285166,
"extensionVersion": "1.0.0",
"packageId": "",
"productId": "F3D00DAD3DDB83EFFDD568E8093FC7AA",
"author": "",
"date": "2020-12-20T01:47:30",
"license": "Proprietary",
"description": "",
"helpfile": "",
"iosProps": true,
"tvosProps": false,
"androidProps": true,
"installdir": "",
"files": [
{"resourceType":"GMExtensionFile","resourceVersion":"1.0","name":"","filename":"Apollo.dll","origname":"extensions\\Apollo.dll","init":"","final":"","kind":1,"uncompress":false,"functions":[
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_show_error","externalName":"lua_show_error","kind":1,"help":"lua_show_error(text)","hidden":false,"returnType":2,"argCount":1,"args":[
1,
],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_reset","externalName":"lua_reset","kind":1,"help":"lua_reset() : Destroys every single state at once","hidden":false,"returnType":2,"argCount":0,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_get_cwd","externalName":"lua_get_cwd","kind":11,"help":"","hidden":true,"returnType":1,"argCount":0,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_set_cwd","externalName":"lua_set_cwd","kind":1,"help":"nullpath","hidden":false,"returnType":2,"argCount":1,"args":[
1,
],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_state_create","externalName":"lua_state_create","kind":1,"help":"lua_state_create()","hidden":false,"returnType":2,"argCount":0,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_state_destroy","externalName":"lua_state_destroy","kind":1,"help":"lua_state_destroy(state_id)","hidden":false,"returnType":2,"argCount":1,"args":[
2,
],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_thread_create","externalName":"lua_thread_create","kind":1,"help":"lua_thread_create(state_id)","hidden":false,"returnType":2,"argCount":1,"args":[
2,
],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_thread_destroy","externalName":"lua_thread_destroy","kind":1,"help":"lua_thread_destroy(state_id)","hidden":false,"returnType":2,"argCount":1,"args":[
2,
],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_state_exists","externalName":"lua_state_exists","kind":1,"help":"lua_state_exists(state_id)","hidden":false,"returnType":2,"argCount":1,"args":[
2,
],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_state_reuse_indexes","externalName":"lua_state_reuse_indexes","kind":1,"help":"lua_state_reuse_indexes() : Allows the indexes of all currently destroyed states/threads to be reused for new ones","hidden":false,"returnType":2,"argCount":0,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_add_function_raw","externalName":"lua_add_function_raw","kind":1,"help":"nullstate_idnamescript_id","hidden":false,"returnType":2,"argCount":3,"args":[
2,
1,
2,
],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_state_get_interop_depth","externalName":"lua_state_get_interop_depth","kind":1,"help":"lua_state_get_interop_depth(state_id) : Returns how many layers of interop (GML->Lua->GML->...) a state is deep (debug info)","hidden":false,"returnType":2,"argCount":1,"args":[
2,
],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_state_exec_raw","externalName":"lua_state_exec_raw","kind":1,"help":"nulldata","hidden":false,"returnType":2,"argCount":1,"args":[
1,
],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_call_raw","externalName":"lua_call_raw","kind":1,"help":"nullstate_idnamedata","hidden":false,"returnType":2,"argCount":3,"args":[
2,
1,
1,
],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_add_code_raw","externalName":"lua_add_code_raw","kind":1,"help":"nullstate_idcodedata","hidden":false,"returnType":2,"argCount":3,"args":[
2,
1,
1,
],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_add_file_raw","externalName":"lua_add_file_raw","kind":1,"help":"nullstate_idfull_pathdata","hidden":false,"returnType":2,"argCount":3,"args":[
2,
1,
1,
],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_global_get_raw","externalName":"lua_global_get_raw","kind":1,"help":"nullstate_idnamedata","hidden":false,"returnType":2,"argCount":3,"args":[
2,
1,
1,
],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_global_set_raw","externalName":"lua_global_set_raw","kind":1,"help":"nullstate_idnamedata","hidden":false,"returnType":2,"argCount":3,"args":[
2,
1,
1,
],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_global_type_raw","externalName":"lua_global_type_raw","kind":1,"help":"nullstate_idname","hidden":false,"returnType":2,"argCount":2,"args":[
2,
1,
],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_call_start_raw","externalName":"lua_call_start_raw","kind":1,"help":"nullstate_idnamedata","hidden":false,"returnType":2,"argCount":3,"args":[
2,
1,
1,
],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_call_next_raw","externalName":"lua_call_next_raw","kind":1,"help":"nullstate_iddata","hidden":false,"returnType":2,"argCount":2,"args":[
2,
1,
],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_init_raw","externalName":"lua_init_raw","kind":1,"help":"nullinit","hidden":false,"returnType":2,"argCount":1,"args":[
1,
],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_update_method_gc","externalName":"lua_update_method_gc","kind":1,"help":"nullout_max","hidden":false,"returnType":2,"argCount":2,"args":[
1,
2,
],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_update_ref_gc","externalName":"lua_update_ref_gc","kind":1,"help":"nullout_max","hidden":false,"returnType":2,"argCount":2,"args":[
1,
2,
],"documentation":"",},
],"constants":[
{"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"lua_btype_nil","value":"0","hidden":true,},
{"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"lua_btype_bool","value":"1","hidden":true,},
{"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"lua_btype_int32","value":"2","hidden":true,},
{"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"lua_btype_int64","value":"3","hidden":true,},
{"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"lua_btype_real","value":"4","hidden":true,},
{"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"lua_btype_string","value":"5","hidden":true,},
{"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"lua_btype_array","value":"6","hidden":true,},
{"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"lua_btype_struct","value":"7","hidden":true,},
{"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"lua_btype_script","value":"8","hidden":true,},
{"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"lua_btype_method","value":"9","hidden":true,},
{"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"lua_btype_ref","value":"10","hidden":true,},
{"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"lua_status_amiss","value":"0","hidden":true,},
{"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"lua_status_no_state","value":"1","hidden":true,},
{"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"lua_status_no_func","value":"2","hidden":true,},
{"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"lua_status_done","value":"3","hidden":true,},
{"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"lua_status_error","value":"4","hidden":true,},
{"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"lua_status_call","value":"5","hidden":true,},
{"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"lua_status_yield","value":"6","hidden":true,},
{"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"lua_status_callmethod","value":"7","hidden":true,},
{"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"lua_type_none","value":"0","hidden":false,},
{"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"lua_type_nil","value":"1","hidden":false,},
{"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"lua_type_bool","value":"2","hidden":false,},
{"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"lua_type_number","value":"3","hidden":false,},
{"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"lua_type_string","value":"4","hidden":false,},
{"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"lua_type_table","value":"5","hidden":false,},
{"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"lua_type_function","value":"6","hidden":false,},
{"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"lua_type_thread","value":"7","hidden":false,},
{"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"lua_type_userdata","value":"8","hidden":false,},
{"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"lua_type_lightuserdata","value":"9","hidden":false,},
{"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"lua_type_unknown","value":"10","hidden":false,},
],"ProxyFiles":[
{"resourceType":"GMProxyFile","resourceVersion":"1.0","name":"Apollo_x64.dll","TargetMask":6,},
{"resourceType":"GMProxyFile","resourceVersion":"1.0","name":"Apollo.so","TargetMask":7,},
{"resourceType":"GMProxyFile","resourceVersion":"1.0","name":"Apollo.dylib","TargetMask":1,},
],"copyToTargets":105553658380352,"usesRunnerInterface":false,"order":[
{"name":"lua_show_error","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_reset","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_get_cwd","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_set_cwd","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_state_create","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_state_destroy","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_thread_create","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_thread_destroy","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_state_exists","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_state_reuse_indexes","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_add_function_raw","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_state_get_interop_depth","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_state_exec_raw","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_call_raw","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_add_code_raw","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_add_file_raw","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_global_get_raw","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_global_set_raw","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_global_type_raw","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_call_start_raw","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_call_next_raw","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_init_raw","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_update_method_gc","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_update_ref_gc","path":"extensions/Apollo/Apollo.yy",},
],},
{"resourceType":"GMExtensionFile","resourceVersion":"1.0","name":"","filename":"apollo_buffer.gml","origname":"","init":"","final":"","kind":2,"uncompress":false,"functions":[
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_buffer_write","externalName":"lua_buffer_write","kind":11,"help":"","hidden":true,"returnType":2,"argCount":2,"args":[
2,
2,
],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_buffer_read","externalName":"lua_buffer_read","kind":11,"help":"","hidden":true,"returnType":2,"argCount":1,"args":[
2,
],"documentation":"",},
],"constants":[],"ProxyFiles":[],"copyToTargets":-1,"usesRunnerInterface":false,"order":[
{"name":"lua_buffer_write","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_buffer_read","path":"extensions/Apollo/Apollo.yy",},
],},
{"resourceType":"GMExtensionFile","resourceVersion":"1.0","name":"","filename":"apollo_call.gml","origname":"","init":"","final":"","kind":2,"uncompress":false,"functions":[
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_call","externalName":"lua_call","kind":2,"help":"lua_call(state_id, func_name, ...args)->result","hidden":false,"returnType":2,"argCount":-1,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_call_w","externalName":"lua_call_w","kind":2,"help":"lua_call_w(state_id, func_name, args_array)->result","hidden":false,"returnType":2,"argCount":3,"args":[
2,
2,
2,
],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_call_m","externalName":"lua_call_m","kind":2,"help":"lua_call_m(state_id, func_name, ...args)->results_array","hidden":false,"returnType":2,"argCount":-1,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_call_xm","externalName":"lua_call_xm","kind":2,"help":"lua_call_xm(state_id, func_name, results_array, ...args)->results_count","hidden":false,"returnType":2,"argCount":-1,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_call_wm","externalName":"lua_call_wm","kind":2,"help":"lua_call_wm(state_id, func_name, args_array)->results_array","hidden":false,"returnType":2,"argCount":3,"args":[
2,
2,
2,
],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_call_wxm","externalName":"lua_call_wxm","kind":2,"help":"lua_call_wxm(state_id, func_name, args_array, results_array)->result_count","hidden":false,"returnType":2,"argCount":4,"args":[
2,
2,
2,
2,
],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_return","externalName":"lua_return","kind":2,"help":"lua_return(...values): Returns one or more values back to Lua code.","hidden":false,"returnType":2,"argCount":-1,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_return_w","externalName":"lua_return_w","kind":2,"help":"lua_return_w(values:array)->values[0] : Returns the contents of an array as a multi-value return.","hidden":false,"returnType":2,"argCount":1,"args":[
2,
],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_return_add","externalName":"lua_return_add","kind":2,"help":"lua_return_add(...values)->values[0] : Adds one or more values to the list of returned values.","hidden":false,"returnType":2,"argCount":-1,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_call_start","externalName":"lua_call_start","kind":2,"help":"lua_call_start(state_id, func, ...args)->ok?","hidden":false,"returnType":2,"argCount":-1,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_call_next","externalName":"lua_call_next","kind":2,"help":"lua_call_next(state_id, ...values)->continue?","hidden":false,"returnType":2,"argCount":-1,"args":[],"documentation":"",},
],"constants":[],"ProxyFiles":[],"copyToTargets":-1,"usesRunnerInterface":false,"order":[
{"name":"lua_call","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_call_w","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_call_m","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_call_xm","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_call_wm","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_call_wxm","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_return","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_return_w","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_return_add","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_call_start","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_call_next","path":"extensions/Apollo/Apollo.yy",},
],},
{"resourceType":"GMExtensionFile","resourceVersion":"1.0","name":"","filename":"apollo_script_execute.gml","origname":"","init":"","final":"","kind":2,"uncompress":false,"functions":[
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_script_execute","externalName":"lua_script_execute","kind":11,"help":"","hidden":true,"returnType":2,"argCount":3,"args":[
2,
2,
2,
],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_script_execute_0","externalName":"lua_script_execute_0","kind":11,"help":"","hidden":true,"returnType":2,"argCount":1,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_script_execute_1","externalName":"lua_script_execute_1","kind":11,"help":"","hidden":true,"returnType":2,"argCount":2,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_script_execute_2","externalName":"lua_script_execute_2","kind":11,"help":"","hidden":true,"returnType":2,"argCount":2,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_script_execute_3","externalName":"lua_script_execute_3","kind":11,"help":"","hidden":true,"returnType":2,"argCount":2,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_script_execute_4","externalName":"lua_script_execute_4","kind":11,"help":"","hidden":true,"returnType":2,"argCount":2,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_script_execute_5","externalName":"lua_script_execute_5","kind":11,"help":"","hidden":true,"returnType":2,"argCount":2,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_script_execute_6","externalName":"lua_script_execute_6","kind":11,"help":"","hidden":true,"returnType":2,"argCount":2,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_script_execute_7","externalName":"lua_script_execute_7","kind":11,"help":"","hidden":true,"returnType":2,"argCount":2,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_script_execute_8","externalName":"lua_script_execute_8","kind":11,"help":"","hidden":true,"returnType":2,"argCount":2,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_script_execute_9","externalName":"lua_script_execute_9","kind":11,"help":"","hidden":true,"returnType":2,"argCount":2,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_script_execute_10","externalName":"lua_script_execute_10","kind":11,"help":"","hidden":true,"returnType":2,"argCount":2,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_script_execute_11","externalName":"lua_script_execute_11","kind":11,"help":"","hidden":true,"returnType":2,"argCount":2,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_script_execute_12","externalName":"lua_script_execute_12","kind":11,"help":"","hidden":true,"returnType":2,"argCount":2,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_script_execute_13","externalName":"lua_script_execute_13","kind":11,"help":"","hidden":true,"returnType":2,"argCount":2,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_script_execute_14","externalName":"lua_script_execute_14","kind":11,"help":"","hidden":true,"returnType":2,"argCount":2,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_script_execute_15","externalName":"lua_script_execute_15","kind":11,"help":"","hidden":true,"returnType":2,"argCount":2,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_script_execute_16","externalName":"lua_script_execute_16","kind":11,"help":"","hidden":true,"returnType":2,"argCount":2,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_script_execute_17","externalName":"lua_script_execute_17","kind":11,"help":"","hidden":true,"returnType":2,"argCount":2,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_script_execute_18","externalName":"lua_script_execute_18","kind":11,"help":"","hidden":true,"returnType":2,"argCount":2,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_script_execute_19","externalName":"lua_script_execute_19","kind":11,"help":"","hidden":true,"returnType":2,"argCount":2,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_script_execute_20","externalName":"lua_script_execute_20","kind":11,"help":"","hidden":true,"returnType":2,"argCount":2,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_script_execute_21","externalName":"lua_script_execute_21","kind":11,"help":"","hidden":true,"returnType":2,"argCount":2,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_script_execute_22","externalName":"lua_script_execute_22","kind":11,"help":"","hidden":true,"returnType":2,"argCount":2,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_script_execute_23","externalName":"lua_script_execute_23","kind":11,"help":"","hidden":true,"returnType":2,"argCount":2,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_script_execute_24","externalName":"lua_script_execute_24","kind":11,"help":"","hidden":true,"returnType":2,"argCount":2,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_script_execute_25","externalName":"lua_script_execute_25","kind":11,"help":"","hidden":true,"returnType":2,"argCount":2,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_script_execute_26","externalName":"lua_script_execute_26","kind":11,"help":"","hidden":true,"returnType":2,"argCount":2,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_script_execute_27","externalName":"lua_script_execute_27","kind":11,"help":"","hidden":true,"returnType":2,"argCount":2,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_script_execute_28","externalName":"lua_script_execute_28","kind":11,"help":"","hidden":true,"returnType":2,"argCount":2,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_script_execute_29","externalName":"lua_script_execute_29","kind":11,"help":"","hidden":true,"returnType":2,"argCount":2,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_script_execute_30","externalName":"lua_script_execute_30","kind":11,"help":"","hidden":true,"returnType":2,"argCount":2,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_script_execute_31","externalName":"lua_script_execute_31","kind":11,"help":"","hidden":true,"returnType":2,"argCount":2,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_script_execute_32","externalName":"lua_script_execute_32","kind":11,"help":"","hidden":true,"returnType":2,"argCount":2,"args":[],"documentation":"",},
],"constants":[],"ProxyFiles":[],"copyToTargets":-1,"usesRunnerInterface":false,"order":[
{"name":"lua_script_execute","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_script_execute_0","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_script_execute_1","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_script_execute_2","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_script_execute_3","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_script_execute_4","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_script_execute_5","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_script_execute_6","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_script_execute_7","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_script_execute_8","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_script_execute_9","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_script_execute_10","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_script_execute_11","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_script_execute_12","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_script_execute_13","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_script_execute_14","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_script_execute_15","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_script_execute_16","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_script_execute_17","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_script_execute_18","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_script_execute_19","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_script_execute_20","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_script_execute_21","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_script_execute_22","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_script_execute_23","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_script_execute_24","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_script_execute_25","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_script_execute_26","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_script_execute_27","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_script_execute_28","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_script_execute_29","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_script_execute_30","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_script_execute_31","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_script_execute_32","path":"extensions/Apollo/Apollo.yy",},
],},
{"resourceType":"GMExtensionFile","resourceVersion":"1.0","name":"","filename":"apollo_core.gml","origname":"","init":"lua_init","final":"","kind":2,"uncompress":false,"functions":[
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_init","externalName":"lua_init","kind":11,"help":"","hidden":true,"returnType":2,"argCount":0,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_update","externalName":"lua_update","kind":11,"help":"","hidden":true,"returnType":2,"argCount":0,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_bool","externalName":"lua_bool","kind":2,"help":"lua_bool(value)","hidden":false,"returnType":2,"argCount":1,"args":[
2,
],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_print_value","externalName":"lua_print_value","kind":2,"help":"lua_print_value(value)->string : Prints a value as expression (e.g. for errors)","hidden":false,"returnType":2,"argCount":1,"args":[
2,
],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_state_exec","externalName":"lua_state_exec","kind":11,"help":"","hidden":true,"returnType":2,"argCount":2,"args":[
2,
2,
],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_add_code","externalName":"lua_add_code","kind":2,"help":"lua_add_code(state_id, code)","hidden":false,"returnType":2,"argCount":2,"args":[
2,
2,
],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_add_file","externalName":"lua_add_file","kind":2,"help":"lua_add_file(state_id, path, chdir = true)","hidden":false,"returnType":2,"argCount":-1,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_add_function","externalName":"lua_add_function","kind":2,"help":"lua_add_function(state_id, func_name, script_id)","hidden":false,"returnType":2,"argCount":3,"args":[
2,
2,
2,
],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_global_get","externalName":"lua_global_get","kind":2,"help":"lua_global_get(state_id, name)->value","hidden":false,"returnType":2,"argCount":2,"args":[
2,
2,
],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_global_set","externalName":"lua_global_set","kind":2,"help":"lua_global_set(state_id, name, value)","hidden":false,"returnType":2,"argCount":3,"args":[
2,
2,
2,
],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_global_typeof","externalName":"lua_global_typeof","kind":2,"help":"lua_global_typeof(state_id, name)->type_name","hidden":false,"returnType":2,"argCount":2,"args":[
2,
2,
],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_global_type","externalName":"lua_global_type","kind":2,"help":"lua_global_type(state_id, name)->lua_type","hidden":false,"returnType":2,"argCount":2,"args":[
2,
2,
],"documentation":"",},
],"constants":[
{"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"lua_buffer","value":"global.g_lua_buffer","hidden":true,},
{"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"lua_true","value":"global.g_lua_true","hidden":false,},
{"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"lua_false","value":"global.g_lua_false","hidden":false,},
{"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"lua_current","value":"global.g_lua_current","hidden":false,},
{"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"lua_error_handler","value":"global.g_lua_error_handler","hidden":false,},
{"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"lua_call_result","value":"global.g_lua_call_result","hidden":false,},
],"ProxyFiles":[],"copyToTargets":-1,"usesRunnerInterface":false,"order":[
{"name":"lua_init","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_update","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_bool","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_print_value","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_state_exec","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_add_code","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_add_file","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_add_function","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_global_get","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_global_set","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_global_typeof","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_global_type","path":"extensions/Apollo/Apollo.yy",},
],},
{"resourceType":"GMExtensionFile","resourceVersion":"1.0","name":"","filename":"apollo_ref.gml","origname":"","init":"","final":"","kind":2,"uncompress":false,"functions":[
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_byref","externalName":"lua_byref","kind":2,"help":"lua_byref(value, recursive = false)->marked_value","hidden":false,"returnType":2,"argCount":-1,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_script","externalName":"lua_script","kind":2,"help":"lua_script(script_id)->marked_script","hidden":false,"returnType":2,"argCount":1,"args":[
2,
],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_internal_array_get","externalName":"lua_internal_array_get","kind":11,"help":"","hidden":true,"returnType":2,"argCount":3,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_internal_array_set","externalName":"lua_internal_array_set","kind":11,"help":"","hidden":true,"returnType":2,"argCount":3,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_internal_array_len","externalName":"lua_internal_array_len","kind":11,"help":"","hidden":true,"returnType":2,"argCount":1,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_internal_struct_get","externalName":"lua_internal_struct_get","kind":11,"help":"","hidden":true,"returnType":2,"argCount":3,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_internal_struct_set","externalName":"lua_internal_struct_set","kind":11,"help":"","hidden":true,"returnType":2,"argCount":3,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_internal_struct_len","externalName":"lua_internal_struct_len","kind":11,"help":"","hidden":true,"returnType":2,"argCount":1,"args":[],"documentation":"",},
{"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"lua_internal_struct_keys","externalName":"lua_internal_struct_keys","kind":11,"help":"","hidden":true,"returnType":2,"argCount":1,"args":[],"documentation":"",},
],"constants":[],"ProxyFiles":[],"copyToTargets":-1,"usesRunnerInterface":false,"order":[
{"name":"lua_byref","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_script","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_internal_array_get","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_internal_array_set","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_internal_array_len","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_internal_struct_get","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_internal_struct_set","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_internal_struct_len","path":"extensions/Apollo/Apollo.yy",},
{"name":"lua_internal_struct_keys","path":"extensions/Apollo/Apollo.yy",},
],},
],
"classname": "",
"tvosclassname": "",
"tvosdelegatename": "",
"iosdelegatename": "",
"androidclassname": "",
"sourcedir": "",
"androidsourcedir": "",
"macsourcedir": "",
"maccompilerflags": "",
"tvosmaccompilerflags": "",
"maclinkerflags": "",
"tvosmaclinkerflags": "",
"iosplistinject": "",
"tvosplistinject": "",
"androidinject": "",
"androidmanifestinject": "",
"androidactivityinject": "",
"gradleinject": "",
"androidcodeinjection": "",
"hasConvertedCodeInjection": true,
"ioscodeinjection": "",
"tvoscodeinjection": "",
"iosSystemFrameworkEntries": [],
"tvosSystemFrameworkEntries": [],
"iosThirdPartyFrameworkEntries": [],
"tvosThirdPartyFrameworkEntries": [],
"IncludedResources": [
"Included Files\\ApolloHelp.html",
"Included Files\\LuaLicense.txt",
],
"androidPermissions": [],
"copyToTargets": 105554172285166,
"iosCocoaPods": "",
"tvosCocoaPods": "",
"iosCocoaPodDependencies": "",
"tvosCocoaPodDependencies": "",
"parent": {
"name": "Extensions",
"path": "folders/Extensions.yy",
},
}

Binary file not shown.

View file

@ -0,0 +1,6 @@
Copyright © 19942017 Lua.org, PUC-Rio.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,141 @@
#define lua_buffer_write
/// (buf, value)~
var b/*:Buffer*/ = argument0, v = argument1;
// GMS >= 2.3:
if (is_numeric(v)) {
if (is_real(v)) {
buffer_write(b, buffer_u8, lua_btype_real);
buffer_write(b, buffer_f64, v);
} else if (is_bool(v)) {
// http://bugs.yoyogames.com/view.php?id=26211
buffer_write(b, buffer_u8, lua_btype_bool);
buffer_write(b, buffer_bool, v);
} else {
buffer_write(b, buffer_u8, lua_btype_int64);
buffer_write(b, buffer_u64, v);
}
}
/*/
if (is_real(v)) {
buffer_write(b, buffer_u8, lua_btype_real);
buffer_write(b, buffer_f64, v);
} else if (is_bool(v)) {
// http://bugs.yoyogames.com/view.php?id=26211
buffer_write(b, buffer_u8, lua_btype_bool);
buffer_write(b, buffer_bool, v);
} else if (is_int64(v) || is_int32(v)) {
buffer_write(b, buffer_u8, lua_btype_int64);
buffer_write(b, buffer_u64, v);
}
//*/
else if (is_string(v)) {
buffer_write(b, buffer_u8, lua_btype_string);
buffer_write(b, buffer_string, v);
} else if (is_array(v)) {
/* GMS < 2.3:
if (array_height_2d(v) >= 2) { // [[v1, v2], [k1, k2]]
var n = array_length_2d(v, 0);
buffer_write(b, buffer_u8, lua_btype_struct);
buffer_write(b, buffer_u32, n);
for (var i = 0; i < n; i++) {
var k = v[1, i];
if (!is_string(k)) k = string(k);
buffer_write(b, buffer_string, k);
lua_buffer_write(b, v[0, i]);
}
} else
//*/
{
var n = array_length_1d(v);
if (n == 2 && v[0] == global.g_lua_script_marker) {
buffer_write(b, buffer_u8, lua_btype_script);
buffer_write(b, buffer_s32, v[1]);
exit;
}
if (n == 4 && v[0] == global.g_lua_ref_marker) { // byref!
buffer_write(b, buffer_u8, lua_btype_ref);
var _val = v[1];
var i = global.g_lua_ref_index[?_val];
if (i == undefined) {
i = ++global.g_lua_ref_next;
global.g_lua_ref_index[?_val] = i;
global.g_lua_ref_value[?i] = _val;
global.g_lua_ref_count[?i] = 1;
} else global.g_lua_ref_count[?i]++;
buffer_write(b, buffer_u64, i);
buffer_write(b, buffer_u8, v[2]);
buffer_write(b, buffer_bool, v[3]);
exit;
}
buffer_write(b, buffer_u8, lua_btype_array);
buffer_write(b, buffer_u32, n);
for (var i = 0; i < n; i++) {
lua_buffer_write(b, v[i]);
}
}
}
// GMS >= 2.3:
else if (is_method(v)) {
buffer_write(b, buffer_u8, lua_btype_method);
var i = ++global.g_lua_method_next;
global.g_lua_method_map[?i] = v;
buffer_write(b, buffer_u64, i);
buffer_write(b, buffer_string, "gml_method: " + script_get_name(method_get_index(v)));
}
else if (is_struct(v)) {
var _keys = variable_struct_get_names(v);
var n = array_length(_keys);
buffer_write(b, buffer_u8, lua_btype_struct);
buffer_write(b, buffer_u32, n);
for (var i = 0; i < n; i++) {
var k = _keys[i];
buffer_write(b, buffer_string, k);
lua_buffer_write(b, variable_struct_get(v, k));
}
}
//*/
else buffer_write(b, buffer_u8, lua_btype_nil);
#define lua_buffer_read
/// (buf)~
var b/*:Buffer*/ = argument0;
switch (buffer_read(b, buffer_u8)) {
case lua_btype_bool: return buffer_read(b, buffer_bool) != 0;
case lua_btype_int32: case lua_btype_script:
return buffer_read(b, buffer_s32);
case lua_btype_int64: return buffer_read(b, buffer_u64);
case lua_btype_real: return buffer_read(b, buffer_f64);
case lua_btype_string: return buffer_read(b, buffer_string);
case lua_btype_array:
var n = buffer_read(b, buffer_u32);
var a = array_create(n);
for (var i = 0; i < n; i++) {
a[i] = lua_buffer_read(b);
}
return a;
case lua_btype_struct:
var n = buffer_read(b, buffer_u32);
// GMS >= 2.3:
var q = {};
for (var i = 0; i < n; i++) {
var k = buffer_read(b, buffer_string);
variable_struct_set(q, k, lua_buffer_read(b));
}
return q;
/*/
var q = array_create(0);
q[2, 0] = undefined;
if (n > 0) {
q[1, n - 1] = 0;
q[0, n - 1] = 0;
for (var i = 0; i < n; i++) {
q[1, i] = buffer_read(b, buffer_string);
q[0, i] = lua_buffer_read(b);
}
}
return q;
//*/
case lua_btype_method: return global.g_lua_method_map[?buffer_read(b, buffer_u64)];
case lua_btype_ref: return global.g_lua_ref_value[?buffer_read(b, buffer_u64)];
default: return undefined;
}

View file

@ -0,0 +1,141 @@
#define lua_call
/// (state_id, func_name, ...args)->result
var q = argument[0];
var b/*:Buffer*/ = lua_buffer;
var n = argument_count, r;
buffer_seek(b, buffer_seek_start, 0);
buffer_write(b, buffer_s32, n - 2);
for (var i = 2; i < n; i++) lua_buffer_write(b, argument[i]);
lua_state_exec(q, lua_call_raw(q, argument[1], buffer_get_address(b)));
buffer_seek(b, buffer_seek_start, 0);
if (buffer_read(b, buffer_s32) > 0) r = lua_buffer_read(b); else r = undefined;
return r;
#define lua_call_w
/// (state_id, func_name, args_array)->result
var q = argument0, s = argument1, w = argument2;
var b/*:Buffer*/ = lua_buffer;
var r, n = array_length_1d(w);
buffer_seek(b, buffer_seek_start, 0);
buffer_write(b, buffer_s32, n);
for (var i = 0; i < n; i++) lua_buffer_write(b, w[i]);
lua_state_exec(q, lua_call_raw(q, s, buffer_get_address(b)));
buffer_seek(b, buffer_seek_start, 0);
if (buffer_read(b, buffer_s32) > 0) r = lua_buffer_read(b); else r = undefined;
return r;
#define lua_call_m
/// (state_id, func_name, ...args)->results_array
var q = argument[0];
var b/*:Buffer*/ = lua_buffer;
var n = argument_count, r, i;
buffer_seek(b, buffer_seek_start, 0);
buffer_write(b, buffer_s32, n - 2);
for (i = 2; i < n; i++) lua_buffer_write(b, argument[i]);
lua_state_exec(q, lua_call_raw(q, argument[1], buffer_get_address(b)));
buffer_seek(b, buffer_seek_start, 0);
n = buffer_read(b, buffer_s32);
r = array_create(n);
for (i = 0; i < n; i++) r[i] = lua_buffer_read(b);
return r;
#define lua_call_xm
/// (state_id, func_name, results_array, ...args)->results_count
var q = argument[0], s = argument[1], r = argument[2];
var b/*:Buffer*/ = lua_buffer;
var n = argument_count, i;
buffer_seek(b, buffer_seek_start, 0);
buffer_write(b, buffer_s32, n - 3);
for (i = 3; i < n; i++) lua_buffer_write(b, argument[i]);
lua_state_exec(q, lua_call_raw(q, s, buffer_get_address(b)));
buffer_seek(b, buffer_seek_start, 0);
n = buffer_read(b, buffer_s32);
for (i = 0; i < n; i++) r[@i] = lua_buffer_read(b);
return n;
#define lua_call_wm
/// (state_id, func_name, args_array)->results_array
var q = argument0, s = argument1, w = argument2;
var i, n = array_length_1d(w);
var b/*:Buffer*/ = lua_buffer;
buffer_seek(b, buffer_seek_start, 0);
buffer_write(b, buffer_s32, n);
for (i = 0; i < n; i++) lua_buffer_write(b, w[i]);
lua_state_exec(q, lua_call_raw(q, s, buffer_get_address(b)));
buffer_seek(b, buffer_seek_start, 0);
n = buffer_read(b, buffer_s32);
var r = array_create(n);
for (i = 0; i < n; i++) r[i] = lua_buffer_read(b);
return r;
#define lua_call_wxm
/// (state_id, func_name, args_array, results_array)->result_count
var q = argument0, s = argument1, w = argument2, r = argument3;
var b/*:Buffer*/ = lua_buffer;
var i, n = array_length_1d(w);
buffer_seek(b, buffer_seek_start, 0);
buffer_write(b, buffer_s32, n);
for (i = 0; i < n; i++) lua_buffer_write(b, w[i]);
lua_state_exec(q, lua_call_raw(q, s, buffer_get_address(b)));
buffer_seek(b, buffer_seek_start, 0);
n = buffer_read(b, buffer_s32);
for (i = 0; i < n; i++) r[@i] = lua_buffer_read(b);
return n;
#define lua_return
/// (...values): Returns one or more values back to Lua code.
var b/*:Buffer*/ = lua_buffer;
buffer_seek(b, buffer_seek_start, 0);
var n = argument_count;
buffer_write(b, buffer_s32, n);
for (var i = 0; i < n; i++) lua_buffer_write(b, argument[i]);
if (n > 0) return argument[0]; else return undefined;
#define lua_return_w
/// (values:array)->values[0] : Returns the contents of an array as a multi-value return.
var b/*:Buffer*/ = lua_buffer;
var w = argument0;
buffer_seek(b, buffer_seek_start, 0);
var n = array_length_1d(w);
buffer_write(b, buffer_s32, n);
for (var i = 0; i < n; i++) lua_buffer_write(b, w[i]);
if (n > 0) return w[0]; else return undefined;
#define lua_return_add
/// (...values)->values[0] : Adds one or more values to the list of returned values.
var b/*:Buffer*/ = lua_buffer, r;
var n = argument_count;
if (buffer_tell(b) != 0) {
buffer_poke(b, 0, buffer_s32, buffer_peek(b, 0, buffer_s32) + n);
} else buffer_write(b, buffer_s32, n);
for (var i = 0; i < n; i++) lua_buffer_write(b, argument[i]);
if (n > 0) return argument[0]; else return undefined;
#define lua_call_start
/// (state_id, func, ...args)->ok?
var b/*:Buffer*/ = lua_buffer;
var n = argument_count, r;
buffer_seek(b, buffer_seek_start, 0);
buffer_write(b, buffer_s32, n - 2);
for (var i = 2; i < n; i++) lua_buffer_write(b, argument[i]);
//
switch (lua_call_start_raw(argument[0], argument[1], buffer_get_address(b))) {
case lua_status_no_state: show_error(global.g_lua_error_no_state, 1); break;
case lua_status_no_func: show_error(global.g_lua_error_no_func, 1); break;
default: return true;
}
return false;
#define lua_call_next
/// (state_id, ...values)->continue?
var b/*:Buffer*/ = lua_buffer;
var n = argument_count;
buffer_seek(b, buffer_seek_start, 0);
buffer_write(b, buffer_s32, n - 1);
for (var i = 1; i < n; i++) lua_buffer_write(b, argument[i]);
var status = lua_state_exec(argument[0], lua_call_next_raw(argument[0], buffer_get_address(b)));
buffer_seek(b, buffer_seek_start, 0);
if (buffer_read(b, buffer_s32) > 0) {
lua_call_result = lua_buffer_read(b);
} else lua_call_result = undefined;
return status == lua_status_yield;

View file

@ -0,0 +1,264 @@
#define lua_init
//#import "global"
/// ()~
//#global lua_buffer~
//#global lua_true
//#global lua_false
//#global lua_current
//#global lua_error_handler
//#global lua_call_result
// GMS >= 2.3:
global.g_lua_method_map = ds_map_create();
global.g_lua_method_next = 0;
//*/
var b/*:Buffer*/ = buffer_create(1024*64, buffer_grow, 1);
buffer_write(b, buffer_s32, asset_get_index("lua_internal_array_get"));
buffer_write(b, buffer_s32, asset_get_index("lua_internal_array_set"));
buffer_write(b, buffer_s32, asset_get_index("lua_internal_array_len"));
buffer_write(b, buffer_s32, asset_get_index("lua_internal_struct_get"));
buffer_write(b, buffer_s32, asset_get_index("lua_internal_struct_set"));
buffer_write(b, buffer_s32, asset_get_index("lua_internal_struct_len"));
buffer_write(b, buffer_s32, asset_get_index("lua_internal_struct_keys"));
if (!lua_init_raw(buffer_get_address(b))) {
show_debug_message("Apollo extension couldn't load!");
}
lua_buffer = b;
lua_current = -1;
global.lua_script_args = array_create(0);
lua_error_handler = -1;
var z = 1;
lua_true = z == 1;
lua_false = z != 1;
lua_call_result = undefined;
//
global.g_lua_type_names = array_create(lua_type_unknown + 1);
global.g_lua_type_names[lua_type_none] = "no value";
global.g_lua_type_names[lua_type_nil] = "nil";
global.g_lua_type_names[lua_type_bool] = "boolean";
global.g_lua_type_names[lua_type_number] = "number";
global.g_lua_type_names[lua_type_string] = "string";
global.g_lua_type_names[lua_type_table] = "table";
global.g_lua_type_names[lua_type_function] = "function";
global.g_lua_type_names[lua_type_thread] = "thread";
global.g_lua_type_names[lua_type_userdata] = "userdata";
global.g_lua_type_names[lua_type_lightuserdata] = "userdata";
global.g_lua_type_names[lua_type_unknown] = "unknown";
//
global.g_lua_error_no_state = "Attempting to use a non-existent Lua state!";
global.g_lua_error_no_func = "Attempting to call a non-existent Lua function!";
//
global.g_lua_script_execute = 0;
for (var i = 0; i < 512; i++) {
var q = asset_get_index("lua_script_execute_" + string(i));
if (q < 0) break;
global.g_lua_script_execute[i] = q;
}
global.g_lua_script_execute_max = array_length_1d(global.g_lua_script_execute);
//
global.g_lua_ref_value = ds_map_create(); // index -> value
global.g_lua_ref_index = ds_map_create(); // value -> index
global.g_lua_ref_count = ds_map_create(); // index -> refcount
global.g_lua_ref_next = 0;
global.g_lua_ref_marker = [];
global.g_lua_script_marker = [];
#define lua_update
var b = lua_buffer;
var _ptr = buffer_get_address(b);
var _size = buffer_get_size(b);
var _max = (_size div 8);
var n;
// GMS >= 2.3:
do {
n = lua_update_method_gc(_ptr, _max);
buffer_seek(b, buffer_seek_start, 0);
for (var i = 0; i < n; i++) {
ds_map_delete(global.g_lua_method_map, buffer_read(b, buffer_u64));
}
} until (n == 0);
//*/
do {
n = lua_update_ref_gc(_ptr, _max);
buffer_seek(b, buffer_seek_start, 0);
for (var i = 0; i < n; i++) {
var u = buffer_read(b, buffer_u64);
if (--global.g_lua_ref_count[?u] <= 0) {
var v = global.g_lua_ref_value[?u];
ds_map_delete(global.g_lua_ref_value, u);
ds_map_delete(global.g_lua_ref_index, v);
ds_map_delete(global.g_lua_ref_count, u);
}
}
} until (n == 0);
#define lua_bool
/// (value)
return bool(argument0);
#define lua_print_value
/// (value)->string : Prints a value as expression (e.g. for errors)
var v = argument0;
if (is_string(v)) {
if (string_pos(chr(34), v)) {
if (string_pos("'", v)) {
return "`" + v + "`";
} else return "'" + v + "'";
} else return chr(34) + v + chr(34);
} else if (is_undefined(v)) {
return "nil";
} else return string(v);
#define lua_state_exec
/// (state, status)~
var q = argument0, status = argument1;
if (status == lua_status_done) exit;
//
var _lua_current = lua_current;
lua_current = q;
//
var b/*:Buffer*/ = lua_buffer;
var loop = true;
while (loop) {
switch (status) {
case lua_status_call:
buffer_seek(b, buffer_seek_start, 0);
var script_id = buffer_read(b, buffer_s32);
//
var argc = buffer_read(b, buffer_s32);
var args = global.lua_script_args;
for (var i = 0; i < argc; i++) args[@i] = lua_buffer_read(b);
//
buffer_seek(b, buffer_seek_start, 0);
var ret = lua_script_execute(script_id, args, argc);
if (buffer_tell(b) == 0) {
buffer_write(b, buffer_s32, 1);
lua_buffer_write(b, ret);
}
status = lua_state_exec_raw(buffer_get_address(b));
continue;
// GMS >= 2.3:
case lua_status_callmethod:
buffer_seek(b, buffer_seek_start, 0);
var ref = global.g_lua_method_map[?buffer_read(b, buffer_u64)];
var argc = buffer_read(b, buffer_s32);
var args = global.lua_script_args;
for (var i = 0; i < argc; i++) args[@i] = lua_buffer_read(b);
//
buffer_seek(b, buffer_seek_start, 0);
var _self = method_get_self(ref);
var ret = undefined; with (method_get_self(ref)) {
ret = script_execute_ext(method_get_index(ref), args, 0, argc)
}
if (buffer_tell(b) == 0) {
buffer_write(b, buffer_s32, 1);
lua_buffer_write(b, ret);
}
status = lua_state_exec_raw(buffer_get_address(b));
continue;
//*/
case lua_status_error:
buffer_seek(b, buffer_seek_start, 0);
var error_text = buffer_read(b, buffer_string);
if (lua_error_handler >= 0) {
script_execute(lua_error_handler, lua_current, error_text);
} else show_debug_message("Lua error: " + error_text);
break;
case lua_status_no_state: show_error(global.g_lua_error_no_state, 1); break;
case lua_status_no_func: show_error(global.g_lua_error_no_func, 1); break;
default: loop = false; break;
}; break;
}
lua_current = _lua_current;
return status;
#define lua_add_code
/// (state_id, code)
var q = argument0, s = argument1;
var b/*:Buffer*/ = lua_buffer;
buffer_poke(b, 0, buffer_s32, 0);
lua_state_exec(q, lua_add_code_raw(q, s, buffer_get_address(b)));
#define lua_add_file
/// (state_id, path, chdir = true)
var q = argument[0], s = argument[1];
var chdir = argument_count > 2 ? argument[2] : true;
if !(string_ord_at(s, 1) == ord("/")
|| string_ord_at(s, 2) == ord(":")
|| string_copy(s, 1, 2) == (chr(92) + chr(92))
) for (var iter = 0; iter < 3; iter++) {
var dir;
switch (iter) {
case 0: dir = game_save_id; break;
case 1: dir = working_directory; break;
default: dir = "";
}
switch (string_ord_at(dir, string_length(dir))) {
case ord("/"): case 92/* \ */: break;
default: if (os_type == os_windows) dir += chr(92); else dir += "/";
}
var fp = dir + s;
if (file_exists(fp)) {
if (chdir) {
var _dir = lua_get_cwd();
lua_set_cwd(dir);
//
var b/*:Buffer*/ = lua_buffer;
buffer_poke(b, 0, buffer_s32, 0);
lua_state_exec(q, lua_add_file_raw(q, s, buffer_get_address(b)));
// if the path is what we've set it to, set it back to what it was
if (lua_get_cwd() == dir) lua_set_cwd(_dir);
exit;
} else s = fp;
break;
}
}
var b/*:Buffer*/ = lua_buffer;
buffer_poke(b, 0, buffer_s32, 0);
lua_state_exec(q, lua_add_file_raw(q, s, buffer_get_address(b)));
#define lua_add_function
/// (state_id, func_name, script_id)
var q = argument0, s = argument1, i = argument2;
// GMS >= 2.3:
if (is_method(i)) {
var b/*:Buffer*/ = lua_buffer;
buffer_seek(b, buffer_seek_start, 0);
lua_buffer_write(b, i);
if (lua_global_set_raw(argument0, argument1, buffer_get_address(b))) {
// ok!
} else show_error(global.g_lua_error_no_state, 1);
} else //*/
lua_state_exec(q, lua_add_function_raw(q, s, i));
#define lua_global_get
/// (state_id, name)->value
var b/*:Buffer*/ = lua_buffer;
if (lua_global_get_raw(argument0, argument1, buffer_get_address(b))) {
buffer_seek(b, buffer_seek_start, 0);
return lua_buffer_read(b);
} else show_error(global.g_lua_error_no_state, 1);
#define lua_global_set
/// (state_id, name, value)
var b/*:Buffer*/ = lua_buffer;
buffer_seek(b, buffer_seek_start, 0);
lua_buffer_write(b, argument2);
if (lua_global_set_raw(argument0, argument1, buffer_get_address(b))) {
// ok!
} else show_error(global.g_lua_error_no_state, 1);
#define lua_global_typeof
/// (state_id, name)->type_name
var t = lua_global_type_raw(argument0, argument1);
if (t < 0) {
show_error(global.g_lua_error_no_state, 1);
return global.g_lua_type_names[lua_type_unknown];
} else return global.g_lua_type_names[t];
#define lua_global_type
/// (state_id, name)->lua_type
var t = lua_global_type_raw(argument0, argument1);
if (t < 0) {
show_error(global.g_lua_error_no_state, 1);
return lua_type_unknown;
} else return t;

View file

@ -0,0 +1,81 @@
#define lua_byref
/// (value, recursive = false)->marked_value
var _val = argument[0];
var _rec = argument_count > 1 ? argument[1] : false;
var _kind;
if (is_array(_val)) _kind = 0;
// GMS >= 2.3:
else if (is_struct(_val) && !is_method(_val)) _kind = 1;
//*/
else return _val;
return [global.g_lua_ref_marker, _val, _kind, _rec];
#define lua_script
/// (script_id)->marked_script
return [global.g_lua_script_marker, argument0];
#define lua_internal_array_get
var _uid = argument0, _index = argument1, _rec = argument2;
if !(
// GMS >= 2.3:
is_numeric(_index)
/*/
is_real(_index) || is_int64(_index)
//*/
) {
lua_show_error("Index must be numeric, got " + typeof(_index));
return undefined;
}
var _arr = global.g_lua_ref_value[?_uid];
if (--_index >= 0 && _index < array_length_1d(_arr)) {
var _val = _arr[_index];
if (_rec) return lua_byref(_val, true); else return _val;
} else return undefined;
#define lua_internal_array_set
var _uid = argument0, _index = argument1, _val = argument2;
if !(
// GMS >= 2.3:
is_numeric(_index)
/*/
is_real(_index) || is_int64(_index)
//*/
) {
lua_show_error("Index must be numeric, got " + typeof(_index));
return undefined;
}
var _arr = global.g_lua_ref_value[?_uid];
if (--_index >= 0) {
_arr[@_index] = _val;
return true;
} else lua_show_error("Index (" + string(_index + 1) + ") is out of bounds.");
#define lua_internal_array_len
return array_length_1d(global.g_lua_ref_value[?argument0]);
#define lua_internal_struct_get
// GMS >= 2.3:
var _uid = argument0, _key = argument1, _rec = argument2;
var _obj = global.g_lua_ref_value[?_uid];
if (_rec) {
return lua_byref(variable_struct_get(_obj, _key), true);
} else return variable_struct_get(_obj, _key);
//*/
#define lua_internal_struct_set
// GMS >= 2.3:
var _uid = argument0, _key = argument1, _val = argument2;
var _obj = global.g_lua_ref_value[?_uid];
variable_struct_set(_obj, _key, _val);
//*/
#define lua_internal_struct_len
// GMS >= 2.3:
return variable_struct_names_count(global.g_lua_ref_value[?argument0]);
//*/
#define lua_internal_struct_keys
// GMS >= 2.3:
return variable_struct_get_names(global.g_lua_ref_value[?argument0]);
//*/

View file

@ -0,0 +1,82 @@
#define lua_script_execute
/// (script:index, args:array, argc:int)~
if (argument2 < global.g_lua_script_execute_max) {
return script_execute(global.g_lua_script_execute[argument2], argument0, argument1);
} else show_error("lua_script_execute: Too many arguments (got " + string(argument2) + ", max " + string(global.g_lua_script_execute_max) + ")!", false);
/* // generator:
var r = ``;
for (var i = 0; i <= 32; i++) {
r += `#define lua_script_execute_${i}
return script_execute(argument0`;
for (var k = 0; k < i; k++) r += `, argument1[${k}]`;
r += `);\n`;
}; r;
*/
#define lua_script_execute_0
return script_execute(argument0);
#define lua_script_execute_1
return script_execute(argument0, argument1[0]);
#define lua_script_execute_2
return script_execute(argument0, argument1[0], argument1[1]);
#define lua_script_execute_3
return script_execute(argument0, argument1[0], argument1[1], argument1[2]);
#define lua_script_execute_4
return script_execute(argument0, argument1[0], argument1[1], argument1[2], argument1[3]);
#define lua_script_execute_5
return script_execute(argument0, argument1[0], argument1[1], argument1[2], argument1[3], argument1[4]);
#define lua_script_execute_6
return script_execute(argument0, argument1[0], argument1[1], argument1[2], argument1[3], argument1[4], argument1[5]);
#define lua_script_execute_7
return script_execute(argument0, argument1[0], argument1[1], argument1[2], argument1[3], argument1[4], argument1[5], argument1[6]);
#define lua_script_execute_8
return script_execute(argument0, argument1[0], argument1[1], argument1[2], argument1[3], argument1[4], argument1[5], argument1[6], argument1[7]);
#define lua_script_execute_9
return script_execute(argument0, argument1[0], argument1[1], argument1[2], argument1[3], argument1[4], argument1[5], argument1[6], argument1[7], argument1[8]);
#define lua_script_execute_10
return script_execute(argument0, argument1[0], argument1[1], argument1[2], argument1[3], argument1[4], argument1[5], argument1[6], argument1[7], argument1[8], argument1[9]);
#define lua_script_execute_11
return script_execute(argument0, argument1[0], argument1[1], argument1[2], argument1[3], argument1[4], argument1[5], argument1[6], argument1[7], argument1[8], argument1[9], argument1[10]);
#define lua_script_execute_12
return script_execute(argument0, argument1[0], argument1[1], argument1[2], argument1[3], argument1[4], argument1[5], argument1[6], argument1[7], argument1[8], argument1[9], argument1[10], argument1[11]);
#define lua_script_execute_13
return script_execute(argument0, argument1[0], argument1[1], argument1[2], argument1[3], argument1[4], argument1[5], argument1[6], argument1[7], argument1[8], argument1[9], argument1[10], argument1[11], argument1[12]);
#define lua_script_execute_14
return script_execute(argument0, argument1[0], argument1[1], argument1[2], argument1[3], argument1[4], argument1[5], argument1[6], argument1[7], argument1[8], argument1[9], argument1[10], argument1[11], argument1[12], argument1[13]);
#define lua_script_execute_15
return script_execute(argument0, argument1[0], argument1[1], argument1[2], argument1[3], argument1[4], argument1[5], argument1[6], argument1[7], argument1[8], argument1[9], argument1[10], argument1[11], argument1[12], argument1[13], argument1[14]);
#define lua_script_execute_16
return script_execute(argument0, argument1[0], argument1[1], argument1[2], argument1[3], argument1[4], argument1[5], argument1[6], argument1[7], argument1[8], argument1[9], argument1[10], argument1[11], argument1[12], argument1[13], argument1[14], argument1[15]);
#define lua_script_execute_17
return script_execute(argument0, argument1[0], argument1[1], argument1[2], argument1[3], argument1[4], argument1[5], argument1[6], argument1[7], argument1[8], argument1[9], argument1[10], argument1[11], argument1[12], argument1[13], argument1[14], argument1[15], argument1[16]);
#define lua_script_execute_18
return script_execute(argument0, argument1[0], argument1[1], argument1[2], argument1[3], argument1[4], argument1[5], argument1[6], argument1[7], argument1[8], argument1[9], argument1[10], argument1[11], argument1[12], argument1[13], argument1[14], argument1[15], argument1[16], argument1[17]);
#define lua_script_execute_19
return script_execute(argument0, argument1[0], argument1[1], argument1[2], argument1[3], argument1[4], argument1[5], argument1[6], argument1[7], argument1[8], argument1[9], argument1[10], argument1[11], argument1[12], argument1[13], argument1[14], argument1[15], argument1[16], argument1[17], argument1[18]);
#define lua_script_execute_20
return script_execute(argument0, argument1[0], argument1[1], argument1[2], argument1[3], argument1[4], argument1[5], argument1[6], argument1[7], argument1[8], argument1[9], argument1[10], argument1[11], argument1[12], argument1[13], argument1[14], argument1[15], argument1[16], argument1[17], argument1[18], argument1[19]);
#define lua_script_execute_21
return script_execute(argument0, argument1[0], argument1[1], argument1[2], argument1[3], argument1[4], argument1[5], argument1[6], argument1[7], argument1[8], argument1[9], argument1[10], argument1[11], argument1[12], argument1[13], argument1[14], argument1[15], argument1[16], argument1[17], argument1[18], argument1[19], argument1[20]);
#define lua_script_execute_22
return script_execute(argument0, argument1[0], argument1[1], argument1[2], argument1[3], argument1[4], argument1[5], argument1[6], argument1[7], argument1[8], argument1[9], argument1[10], argument1[11], argument1[12], argument1[13], argument1[14], argument1[15], argument1[16], argument1[17], argument1[18], argument1[19], argument1[20], argument1[21]);
#define lua_script_execute_23
return script_execute(argument0, argument1[0], argument1[1], argument1[2], argument1[3], argument1[4], argument1[5], argument1[6], argument1[7], argument1[8], argument1[9], argument1[10], argument1[11], argument1[12], argument1[13], argument1[14], argument1[15], argument1[16], argument1[17], argument1[18], argument1[19], argument1[20], argument1[21], argument1[22]);
#define lua_script_execute_24
return script_execute(argument0, argument1[0], argument1[1], argument1[2], argument1[3], argument1[4], argument1[5], argument1[6], argument1[7], argument1[8], argument1[9], argument1[10], argument1[11], argument1[12], argument1[13], argument1[14], argument1[15], argument1[16], argument1[17], argument1[18], argument1[19], argument1[20], argument1[21], argument1[22], argument1[23]);
#define lua_script_execute_25
return script_execute(argument0, argument1[0], argument1[1], argument1[2], argument1[3], argument1[4], argument1[5], argument1[6], argument1[7], argument1[8], argument1[9], argument1[10], argument1[11], argument1[12], argument1[13], argument1[14], argument1[15], argument1[16], argument1[17], argument1[18], argument1[19], argument1[20], argument1[21], argument1[22], argument1[23], argument1[24]);
#define lua_script_execute_26
return script_execute(argument0, argument1[0], argument1[1], argument1[2], argument1[3], argument1[4], argument1[5], argument1[6], argument1[7], argument1[8], argument1[9], argument1[10], argument1[11], argument1[12], argument1[13], argument1[14], argument1[15], argument1[16], argument1[17], argument1[18], argument1[19], argument1[20], argument1[21], argument1[22], argument1[23], argument1[24], argument1[25]);
#define lua_script_execute_27
return script_execute(argument0, argument1[0], argument1[1], argument1[2], argument1[3], argument1[4], argument1[5], argument1[6], argument1[7], argument1[8], argument1[9], argument1[10], argument1[11], argument1[12], argument1[13], argument1[14], argument1[15], argument1[16], argument1[17], argument1[18], argument1[19], argument1[20], argument1[21], argument1[22], argument1[23], argument1[24], argument1[25], argument1[26]);
#define lua_script_execute_28
return script_execute(argument0, argument1[0], argument1[1], argument1[2], argument1[3], argument1[4], argument1[5], argument1[6], argument1[7], argument1[8], argument1[9], argument1[10], argument1[11], argument1[12], argument1[13], argument1[14], argument1[15], argument1[16], argument1[17], argument1[18], argument1[19], argument1[20], argument1[21], argument1[22], argument1[23], argument1[24], argument1[25], argument1[26], argument1[27]);
#define lua_script_execute_29
return script_execute(argument0, argument1[0], argument1[1], argument1[2], argument1[3], argument1[4], argument1[5], argument1[6], argument1[7], argument1[8], argument1[9], argument1[10], argument1[11], argument1[12], argument1[13], argument1[14], argument1[15], argument1[16], argument1[17], argument1[18], argument1[19], argument1[20], argument1[21], argument1[22], argument1[23], argument1[24], argument1[25], argument1[26], argument1[27], argument1[28]);
#define lua_script_execute_30
return script_execute(argument0, argument1[0], argument1[1], argument1[2], argument1[3], argument1[4], argument1[5], argument1[6], argument1[7], argument1[8], argument1[9], argument1[10], argument1[11], argument1[12], argument1[13], argument1[14], argument1[15], argument1[16], argument1[17], argument1[18], argument1[19], argument1[20], argument1[21], argument1[22], argument1[23], argument1[24], argument1[25], argument1[26], argument1[27], argument1[28], argument1[29]);
#define lua_script_execute_31
return script_execute(argument0, argument1[0], argument1[1], argument1[2], argument1[3], argument1[4], argument1[5], argument1[6], argument1[7], argument1[8], argument1[9], argument1[10], argument1[11], argument1[12], argument1[13], argument1[14], argument1[15], argument1[16], argument1[17], argument1[18], argument1[19], argument1[20], argument1[21], argument1[22], argument1[23], argument1[24], argument1[25], argument1[26], argument1[27], argument1[28], argument1[29], argument1[30]);
#define lua_script_execute_32
return script_execute(argument0, argument1[0], argument1[1], argument1[2], argument1[3], argument1[4], argument1[5], argument1[6], argument1[7], argument1[8], argument1[9], argument1[10], argument1[11], argument1[12], argument1[13], argument1[14], argument1[15], argument1[16], argument1[17], argument1[18], argument1[19], argument1[20], argument1[21], argument1[22], argument1[23], argument1[24], argument1[25], argument1[26], argument1[27], argument1[28], argument1[29], argument1[30], argument1[31]);

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

View file

@ -0,0 +1,210 @@
{
"resourceType": "GMFont",
"resourceVersion": "1.0",
"name": "_f_code",
"hinting": 0,
"glyphOperations": 0,
"interpreter": 0,
"pointRounding": 0,
"applyKerning": 0,
"fontName": "Arial",
"styleName": "Regular",
"size": 12.0,
"bold": false,
"italic": false,
"charset": 0,
"AntiAlias": 1,
"first": 0,
"last": 0,
"sampleText": "abcdef ABCDEF\n0123456789 .,<>\"'&!?\nthe quick brown fox jumps over the lazy dog\nTHE QUICK BROWN FOX JUMPS OVER THE LAZY DOG\nDefault character: ▯ (9647)",
"includeTTF": false,
"TTFName": "",
"textureGroupId": {
"name": "Default",
"path": "texturegroups/Default",
},
"ascenderOffset": 0,
"ascender": 14,
"glyphs": {
"32": {"x":2,"y":2,"w":4,"h":18,"character":32,"shift":4,"offset":0,},
"33": {"x":165,"y":42,"w":3,"h":18,"character":33,"shift":4,"offset":1,},
"34": {"x":158,"y":42,"w":5,"h":18,"character":34,"shift":6,"offset":0,},
"35": {"x":147,"y":42,"w":9,"h":18,"character":35,"shift":9,"offset":0,},
"36": {"x":136,"y":42,"w":9,"h":18,"character":36,"shift":9,"offset":0,},
"37": {"x":120,"y":42,"w":14,"h":18,"character":37,"shift":14,"offset":0,},
"38": {"x":107,"y":42,"w":11,"h":18,"character":38,"shift":11,"offset":0,},
"39": {"x":102,"y":42,"w":3,"h":18,"character":39,"shift":3,"offset":0,},
"40": {"x":95,"y":42,"w":5,"h":18,"character":40,"shift":5,"offset":0,},
"41": {"x":88,"y":42,"w":5,"h":18,"character":41,"shift":5,"offset":0,},
"42": {"x":170,"y":42,"w":6,"h":18,"character":42,"shift":6,"offset":0,},
"43": {"x":77,"y":42,"w":9,"h":18,"character":43,"shift":9,"offset":0,},
"44": {"x":61,"y":42,"w":3,"h":18,"character":44,"shift":4,"offset":1,},
"45": {"x":54,"y":42,"w":5,"h":18,"character":45,"shift":5,"offset":0,},
"46": {"x":49,"y":42,"w":3,"h":18,"character":46,"shift":4,"offset":1,},
"47": {"x":42,"y":42,"w":5,"h":18,"character":47,"shift":4,"offset":0,},
"48": {"x":31,"y":42,"w":9,"h":18,"character":48,"shift":9,"offset":0,},
"49": {"x":24,"y":42,"w":5,"h":18,"character":49,"shift":9,"offset":1,},
"50": {"x":13,"y":42,"w":9,"h":18,"character":50,"shift":9,"offset":0,},
"51": {"x":2,"y":42,"w":9,"h":18,"character":51,"shift":9,"offset":0,},
"52": {"x":240,"y":22,"w":9,"h":18,"character":52,"shift":9,"offset":0,},
"53": {"x":66,"y":42,"w":9,"h":18,"character":53,"shift":9,"offset":0,},
"54": {"x":178,"y":42,"w":9,"h":18,"character":54,"shift":9,"offset":0,},
"55": {"x":189,"y":42,"w":9,"h":18,"character":55,"shift":9,"offset":0,},
"56": {"x":200,"y":42,"w":9,"h":18,"character":56,"shift":9,"offset":0,},
"57": {"x":186,"y":62,"w":9,"h":18,"character":57,"shift":9,"offset":0,},
"58": {"x":181,"y":62,"w":3,"h":18,"character":58,"shift":4,"offset":1,},
"59": {"x":176,"y":62,"w":3,"h":18,"character":59,"shift":4,"offset":1,},
"60": {"x":165,"y":62,"w":9,"h":18,"character":60,"shift":9,"offset":0,},
"61": {"x":154,"y":62,"w":9,"h":18,"character":61,"shift":9,"offset":0,},
"62": {"x":143,"y":62,"w":9,"h":18,"character":62,"shift":9,"offset":0,},
"63": {"x":132,"y":62,"w":9,"h":18,"character":63,"shift":9,"offset":0,},
"64": {"x":114,"y":62,"w":16,"h":18,"character":64,"shift":16,"offset":0,},
"65": {"x":100,"y":62,"w":12,"h":18,"character":65,"shift":11,"offset":-1,},
"66": {"x":89,"y":62,"w":9,"h":18,"character":66,"shift":11,"offset":1,},
"67": {"x":76,"y":62,"w":11,"h":18,"character":67,"shift":12,"offset":0,},
"68": {"x":64,"y":62,"w":10,"h":18,"character":68,"shift":12,"offset":1,},
"69": {"x":53,"y":62,"w":9,"h":18,"character":69,"shift":11,"offset":1,},
"70": {"x":42,"y":62,"w":9,"h":18,"character":70,"shift":10,"offset":1,},
"71": {"x":28,"y":62,"w":12,"h":18,"character":71,"shift":12,"offset":0,},
"72": {"x":16,"y":62,"w":10,"h":18,"character":72,"shift":12,"offset":1,},
"73": {"x":11,"y":62,"w":3,"h":18,"character":73,"shift":4,"offset":1,},
"74": {"x":2,"y":62,"w":7,"h":18,"character":74,"shift":8,"offset":0,},
"75": {"x":235,"y":42,"w":10,"h":18,"character":75,"shift":11,"offset":1,},
"76": {"x":225,"y":42,"w":8,"h":18,"character":76,"shift":9,"offset":1,},
"77": {"x":211,"y":42,"w":12,"h":18,"character":77,"shift":13,"offset":1,},
"78": {"x":228,"y":22,"w":10,"h":18,"character":78,"shift":12,"offset":1,},
"79": {"x":214,"y":22,"w":12,"h":18,"character":79,"shift":12,"offset":0,},
"80": {"x":203,"y":22,"w":9,"h":18,"character":80,"shift":11,"offset":1,},
"81": {"x":232,"y":2,"w":12,"h":18,"character":81,"shift":12,"offset":0,},
"82": {"x":213,"y":2,"w":11,"h":18,"character":82,"shift":12,"offset":1,},
"83": {"x":201,"y":2,"w":10,"h":18,"character":83,"shift":11,"offset":0,},
"84": {"x":189,"y":2,"w":10,"h":18,"character":84,"shift":10,"offset":0,},
"85": {"x":177,"y":2,"w":10,"h":18,"character":85,"shift":12,"offset":1,},
"86": {"x":164,"y":2,"w":11,"h":18,"character":86,"shift":11,"offset":0,},
"87": {"x":147,"y":2,"w":15,"h":18,"character":87,"shift":15,"offset":0,},
"88": {"x":134,"y":2,"w":11,"h":18,"character":88,"shift":11,"offset":0,},
"89": {"x":121,"y":2,"w":11,"h":18,"character":89,"shift":11,"offset":0,},
"90": {"x":109,"y":2,"w":10,"h":18,"character":90,"shift":10,"offset":0,},
"91": {"x":226,"y":2,"w":4,"h":18,"character":91,"shift":4,"offset":1,},
"92": {"x":102,"y":2,"w":5,"h":18,"character":92,"shift":4,"offset":0,},
"93": {"x":89,"y":2,"w":4,"h":18,"character":93,"shift":4,"offset":0,},
"94": {"x":79,"y":2,"w":8,"h":18,"character":94,"shift":8,"offset":0,},
"95": {"x":66,"y":2,"w":11,"h":18,"character":95,"shift":9,"offset":-1,},
"96": {"x":60,"y":2,"w":4,"h":18,"character":96,"shift":5,"offset":0,},
"97": {"x":49,"y":2,"w":9,"h":18,"character":97,"shift":9,"offset":0,},
"98": {"x":39,"y":2,"w":8,"h":18,"character":98,"shift":9,"offset":1,},
"99": {"x":29,"y":2,"w":8,"h":18,"character":99,"shift":8,"offset":0,},
"100": {"x":19,"y":2,"w":8,"h":18,"character":100,"shift":9,"offset":0,},
"101": {"x":8,"y":2,"w":9,"h":18,"character":101,"shift":9,"offset":0,},
"102": {"x":95,"y":2,"w":5,"h":18,"character":102,"shift":4,"offset":0,},
"103": {"x":2,"y":22,"w":8,"h":18,"character":103,"shift":9,"offset":0,},
"104": {"x":97,"y":22,"w":7,"h":18,"character":104,"shift":9,"offset":1,},
"105": {"x":12,"y":22,"w":2,"h":18,"character":105,"shift":4,"offset":1,},
"106": {"x":187,"y":22,"w":4,"h":18,"character":106,"shift":4,"offset":-1,},
"107": {"x":178,"y":22,"w":7,"h":18,"character":107,"shift":8,"offset":1,},
"108": {"x":174,"y":22,"w":2,"h":18,"character":108,"shift":4,"offset":1,},
"109": {"x":160,"y":22,"w":12,"h":18,"character":109,"shift":13,"offset":1,},
"110": {"x":151,"y":22,"w":7,"h":18,"character":110,"shift":9,"offset":1,},
"111": {"x":140,"y":22,"w":9,"h":18,"character":111,"shift":9,"offset":0,},
"112": {"x":130,"y":22,"w":8,"h":18,"character":112,"shift":9,"offset":1,},
"113": {"x":120,"y":22,"w":8,"h":18,"character":113,"shift":9,"offset":0,},
"114": {"x":113,"y":22,"w":5,"h":18,"character":114,"shift":5,"offset":1,},
"115": {"x":193,"y":22,"w":8,"h":18,"character":115,"shift":8,"offset":0,},
"116": {"x":106,"y":22,"w":5,"h":18,"character":116,"shift":4,"offset":0,},
"117": {"x":88,"y":22,"w":7,"h":18,"character":117,"shift":9,"offset":1,},
"118": {"x":78,"y":22,"w":8,"h":18,"character":118,"shift":8,"offset":0,},
"119": {"x":64,"y":22,"w":12,"h":18,"character":119,"shift":12,"offset":0,},
"120": {"x":54,"y":22,"w":8,"h":18,"character":120,"shift":8,"offset":0,},
"121": {"x":44,"y":22,"w":8,"h":18,"character":121,"shift":8,"offset":0,},
"122": {"x":34,"y":22,"w":8,"h":18,"character":122,"shift":8,"offset":0,},
"123": {"x":27,"y":22,"w":5,"h":18,"character":123,"shift":5,"offset":0,},
"124": {"x":23,"y":22,"w":2,"h":18,"character":124,"shift":4,"offset":1,},
"125": {"x":16,"y":22,"w":5,"h":18,"character":125,"shift":5,"offset":0,},
"126": {"x":197,"y":62,"w":9,"h":18,"character":126,"shift":9,"offset":0,},
"9647": {"x":208,"y":62,"w":10,"h":18,"character":9647,"shift":16,"offset":3,},
},
"kerningPairs": [
{"first":32,"second":65,"amount":-1,},
{"first":32,"second":902,"amount":-1,},
{"first":32,"second":913,"amount":-1,},
{"first":32,"second":916,"amount":-1,},
{"first":32,"second":923,"amount":-1,},
{"first":49,"second":49,"amount":-1,},
{"first":65,"second":32,"amount":-1,},
{"first":65,"second":84,"amount":-1,},
{"first":65,"second":86,"amount":-1,},
{"first":65,"second":89,"amount":-1,},
{"first":65,"second":160,"amount":-1,},
{"first":65,"second":8217,"amount":-1,},
{"first":70,"second":44,"amount":-1,},
{"first":70,"second":46,"amount":-1,},
{"first":70,"second":65,"amount":-1,},
{"first":76,"second":84,"amount":-1,},
{"first":76,"second":86,"amount":-1,},
{"first":76,"second":87,"amount":-1,},
{"first":76,"second":89,"amount":-1,},
{"first":76,"second":8217,"amount":-1,},
{"first":80,"second":44,"amount":-1,},
{"first":80,"second":46,"amount":-1,},
{"first":80,"second":65,"amount":-1,},
{"first":84,"second":44,"amount":-1,},
{"first":84,"second":45,"amount":-1,},
{"first":84,"second":46,"amount":-1,},
{"first":84,"second":58,"amount":-1,},
{"first":84,"second":59,"amount":-1,},
{"first":84,"second":65,"amount":-1,},
{"first":84,"second":97,"amount":-1,},
{"first":84,"second":99,"amount":-1,},
{"first":84,"second":101,"amount":-1,},
{"first":84,"second":111,"amount":-1,},
{"first":84,"second":115,"amount":-1,},
{"first":84,"second":119,"amount":-1,},
{"first":84,"second":121,"amount":-1,},
{"first":84,"second":173,"amount":-1,},
{"first":84,"second":894,"amount":-1,},
{"first":86,"second":44,"amount":-1,},
{"first":86,"second":45,"amount":-1,},
{"first":86,"second":46,"amount":-1,},
{"first":86,"second":65,"amount":-1,},
{"first":86,"second":97,"amount":-1,},
{"first":86,"second":101,"amount":-1,},
{"first":86,"second":111,"amount":-1,},
{"first":86,"second":173,"amount":-1,},
{"first":87,"second":44,"amount":-1,},
{"first":87,"second":46,"amount":-1,},
{"first":89,"second":44,"amount":-1,},
{"first":89,"second":45,"amount":-1,},
{"first":89,"second":46,"amount":-1,},
{"first":89,"second":58,"amount":-1,},
{"first":89,"second":59,"amount":-1,},
{"first":89,"second":65,"amount":-1,},
{"first":89,"second":97,"amount":-1,},
{"first":89,"second":101,"amount":-1,},
{"first":89,"second":111,"amount":-1,},
{"first":89,"second":112,"amount":-1,},
{"first":89,"second":113,"amount":-1,},
{"first":89,"second":117,"amount":-1,},
{"first":89,"second":118,"amount":-1,},
{"first":89,"second":173,"amount":-1,},
{"first":89,"second":894,"amount":-1,},
{"first":114,"second":44,"amount":-1,},
{"first":114,"second":46,"amount":-1,},
{"first":118,"second":44,"amount":-1,},
{"first":118,"second":46,"amount":-1,},
{"first":119,"second":44,"amount":-1,},
{"first":119,"second":46,"amount":-1,},
{"first":121,"second":44,"amount":-1,},
{"first":121,"second":46,"amount":-1,},
],
"ranges": [
{"lower":32,"upper":127,},
{"lower":9647,"upper":9647,},
],
"regenerateBitmap": false,
"canGenerateBitmap": true,
"maintainGms1Font": false,
"parent": {
"name": "font",
"path": "folders/font.yy",
},
}

BIN
fonts/_f_code/_f_code.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

138
fonts/_f_code/_f_code.yy Normal file
View file

@ -0,0 +1,138 @@
{
"resourceType": "GMFont",
"resourceVersion": "1.0",
"name": "_f_code",
"hinting": 0,
"glyphOperations": 0,
"interpreter": 0,
"pointRounding": 0,
"applyKerning": 0,
"fontName": "Fira Code Medium",
"styleName": "Light",
"size": 12.0,
"bold": false,
"italic": false,
"charset": 0,
"AntiAlias": 1,
"first": 0,
"last": 0,
"sampleText": "abcdef ABCDEF\n0123456789 .,<>\"'&!?\nthe quick brown fox jumps over the lazy dog\nTHE QUICK BROWN FOX JUMPS OVER THE LAZY DOG\nDefault character: ▯ (9647)",
"includeTTF": false,
"TTFName": "",
"textureGroupId": {
"name": "Default",
"path": "texturegroups/Default",
},
"ascenderOffset": 0,
"ascender": 15,
"glyphs": {
"32": {"x":2,"y":2,"w":10,"h":21,"character":32,"shift":10,"offset":0,},
"33": {"x":205,"y":48,"w":4,"h":21,"character":33,"shift":19,"offset":3,},
"34": {"x":197,"y":48,"w":6,"h":21,"character":34,"shift":19,"offset":2,},
"35": {"x":186,"y":48,"w":9,"h":21,"character":35,"shift":19,"offset":0,},
"36": {"x":175,"y":48,"w":9,"h":21,"character":36,"shift":19,"offset":0,},
"37": {"x":163,"y":48,"w":10,"h":21,"character":37,"shift":19,"offset":0,},
"38": {"x":151,"y":48,"w":10,"h":21,"character":38,"shift":19,"offset":0,},
"39": {"x":146,"y":48,"w":3,"h":21,"character":39,"shift":19,"offset":3,},
"40": {"x":138,"y":48,"w":6,"h":21,"character":40,"shift":19,"offset":1,},
"41": {"x":130,"y":48,"w":6,"h":21,"character":41,"shift":19,"offset":2,},
"42": {"x":211,"y":48,"w":9,"h":21,"character":42,"shift":19,"offset":0,},
"43": {"x":119,"y":48,"w":9,"h":21,"character":43,"shift":19,"offset":0,},
"44": {"x":103,"y":48,"w":4,"h":21,"character":44,"shift":19,"offset":3,},
"45": {"x":93,"y":48,"w":8,"h":21,"character":45,"shift":19,"offset":1,},
"46": {"x":87,"y":48,"w":4,"h":21,"character":46,"shift":19,"offset":3,},
"47": {"x":76,"y":48,"w":9,"h":21,"character":47,"shift":19,"offset":0,},
"48": {"x":66,"y":48,"w":8,"h":21,"character":48,"shift":19,"offset":1,},
"49": {"x":56,"y":48,"w":8,"h":21,"character":49,"shift":19,"offset":1,},
"50": {"x":45,"y":48,"w":9,"h":21,"character":50,"shift":19,"offset":0,},
"51": {"x":34,"y":48,"w":9,"h":21,"character":51,"shift":19,"offset":0,},
"52": {"x":23,"y":48,"w":9,"h":21,"character":52,"shift":19,"offset":0,},
"53": {"x":109,"y":48,"w":8,"h":21,"character":53,"shift":19,"offset":1,},
"54": {"x":222,"y":48,"w":8,"h":21,"character":54,"shift":19,"offset":1,},
"55": {"x":232,"y":48,"w":8,"h":21,"character":55,"shift":19,"offset":1,},
"56": {"x":242,"y":48,"w":9,"h":21,"character":56,"shift":19,"offset":0,},
"57": {"x":204,"y":71,"w":9,"h":21,"character":57,"shift":19,"offset":0,},
"58": {"x":198,"y":71,"w":4,"h":21,"character":58,"shift":19,"offset":3,},
"59": {"x":192,"y":71,"w":4,"h":21,"character":59,"shift":19,"offset":3,},
"60": {"x":182,"y":71,"w":8,"h":21,"character":60,"shift":19,"offset":1,},
"61": {"x":172,"y":71,"w":8,"h":21,"character":61,"shift":19,"offset":1,},
"62": {"x":162,"y":71,"w":8,"h":21,"character":62,"shift":19,"offset":1,},
"63": {"x":152,"y":71,"w":8,"h":21,"character":63,"shift":19,"offset":1,},
"64": {"x":140,"y":71,"w":10,"h":21,"character":64,"shift":19,"offset":0,},
"65": {"x":128,"y":71,"w":10,"h":21,"character":65,"shift":19,"offset":0,},
"66": {"x":118,"y":71,"w":8,"h":21,"character":66,"shift":19,"offset":1,},
"67": {"x":106,"y":71,"w":10,"h":21,"character":67,"shift":19,"offset":0,},
"68": {"x":96,"y":71,"w":8,"h":21,"character":68,"shift":19,"offset":1,},
"69": {"x":86,"y":71,"w":8,"h":21,"character":69,"shift":19,"offset":1,},
"70": {"x":77,"y":71,"w":7,"h":21,"character":70,"shift":19,"offset":2,},
"71": {"x":66,"y":71,"w":9,"h":21,"character":71,"shift":19,"offset":0,},
"72": {"x":56,"y":71,"w":8,"h":21,"character":72,"shift":19,"offset":1,},
"73": {"x":46,"y":71,"w":8,"h":21,"character":73,"shift":19,"offset":1,},
"74": {"x":35,"y":71,"w":9,"h":21,"character":74,"shift":19,"offset":0,},
"75": {"x":24,"y":71,"w":9,"h":21,"character":75,"shift":19,"offset":1,},
"76": {"x":14,"y":71,"w":8,"h":21,"character":76,"shift":19,"offset":1,},
"77": {"x":2,"y":71,"w":10,"h":21,"character":77,"shift":19,"offset":0,},
"78": {"x":13,"y":48,"w":8,"h":21,"character":78,"shift":19,"offset":1,},
"79": {"x":2,"y":48,"w":9,"h":21,"character":79,"shift":19,"offset":0,},
"80": {"x":235,"y":25,"w":9,"h":21,"character":80,"shift":19,"offset":1,},
"81": {"x":236,"y":2,"w":10,"h":21,"character":81,"shift":19,"offset":0,},
"82": {"x":217,"y":2,"w":9,"h":21,"character":82,"shift":19,"offset":1,},
"83": {"x":206,"y":2,"w":9,"h":21,"character":83,"shift":19,"offset":0,},
"84": {"x":194,"y":2,"w":10,"h":21,"character":84,"shift":19,"offset":0,},
"85": {"x":183,"y":2,"w":9,"h":21,"character":85,"shift":19,"offset":0,},
"86": {"x":171,"y":2,"w":10,"h":21,"character":86,"shift":19,"offset":0,},
"87": {"x":159,"y":2,"w":10,"h":21,"character":87,"shift":19,"offset":0,},
"88": {"x":147,"y":2,"w":10,"h":21,"character":88,"shift":19,"offset":0,},
"89": {"x":135,"y":2,"w":10,"h":21,"character":89,"shift":19,"offset":0,},
"90": {"x":124,"y":2,"w":9,"h":21,"character":90,"shift":19,"offset":0,},
"91": {"x":228,"y":2,"w":6,"h":21,"character":91,"shift":19,"offset":2,},
"92": {"x":113,"y":2,"w":9,"h":21,"character":92,"shift":19,"offset":0,},
"93": {"x":95,"y":2,"w":5,"h":21,"character":93,"shift":19,"offset":2,},
"94": {"x":84,"y":2,"w":9,"h":21,"character":94,"shift":19,"offset":0,},
"95": {"x":73,"y":2,"w":9,"h":21,"character":95,"shift":19,"offset":0,},
"96": {"x":66,"y":2,"w":5,"h":21,"character":96,"shift":19,"offset":2,},
"97": {"x":55,"y":2,"w":9,"h":21,"character":97,"shift":19,"offset":0,},
"98": {"x":45,"y":2,"w":8,"h":21,"character":98,"shift":19,"offset":1,},
"99": {"x":35,"y":2,"w":8,"h":21,"character":99,"shift":19,"offset":1,},
"100": {"x":24,"y":2,"w":9,"h":21,"character":100,"shift":19,"offset":0,},
"101": {"x":14,"y":2,"w":8,"h":21,"character":101,"shift":19,"offset":1,},
"102": {"x":102,"y":2,"w":9,"h":21,"character":102,"shift":19,"offset":1,},
"103": {"x":2,"y":25,"w":10,"h":21,"character":103,"shift":19,"offset":0,},
"104": {"x":111,"y":25,"w":8,"h":21,"character":104,"shift":19,"offset":1,},
"105": {"x":14,"y":25,"w":8,"h":21,"character":105,"shift":19,"offset":1,},
"106": {"x":216,"y":25,"w":7,"h":21,"character":106,"shift":19,"offset":1,},
"107": {"x":205,"y":25,"w":9,"h":21,"character":107,"shift":19,"offset":1,},
"108": {"x":194,"y":25,"w":9,"h":21,"character":108,"shift":19,"offset":0,},
"109": {"x":183,"y":25,"w":9,"h":21,"character":109,"shift":19,"offset":0,},
"110": {"x":173,"y":25,"w":8,"h":21,"character":110,"shift":19,"offset":1,},
"111": {"x":162,"y":25,"w":9,"h":21,"character":111,"shift":19,"offset":0,},
"112": {"x":152,"y":25,"w":8,"h":21,"character":112,"shift":19,"offset":1,},
"113": {"x":141,"y":25,"w":9,"h":21,"character":113,"shift":19,"offset":0,},
"114": {"x":131,"y":25,"w":8,"h":21,"character":114,"shift":19,"offset":1,},
"115": {"x":225,"y":25,"w":8,"h":21,"character":115,"shift":19,"offset":1,},
"116": {"x":121,"y":25,"w":8,"h":21,"character":116,"shift":19,"offset":1,},
"117": {"x":101,"y":25,"w":8,"h":21,"character":117,"shift":19,"offset":1,},
"118": {"x":90,"y":25,"w":9,"h":21,"character":118,"shift":19,"offset":0,},
"119": {"x":78,"y":25,"w":10,"h":21,"character":119,"shift":19,"offset":0,},
"120": {"x":67,"y":25,"w":9,"h":21,"character":120,"shift":19,"offset":0,},
"121": {"x":56,"y":25,"w":9,"h":21,"character":121,"shift":19,"offset":0,},
"122": {"x":46,"y":25,"w":8,"h":21,"character":122,"shift":19,"offset":1,},
"123": {"x":37,"y":25,"w":7,"h":21,"character":123,"shift":19,"offset":1,},
"124": {"x":32,"y":25,"w":3,"h":21,"character":124,"shift":19,"offset":3,},
"125": {"x":24,"y":25,"w":6,"h":21,"character":125,"shift":19,"offset":2,},
"126": {"x":215,"y":71,"w":10,"h":21,"character":126,"shift":19,"offset":0,},
"9647": {"x":227,"y":71,"w":5,"h":21,"character":9647,"shift":19,"offset":2,},
},
"kerningPairs": [],
"ranges": [
{"lower":32,"upper":127,},
{"lower":9647,"upper":9647,},
],
"regenerateBitmap": false,
"canGenerateBitmap": true,
"maintainGms1Font": false,
"parent": {
"name": "font",
"path": "folders/font.yy",
},
}

View file

@ -1,5 +1,6 @@
/// @description init
#region base UI
draw_sprite_stretched(THEME.textbox, 3, dialog_x, dialog_y, dialog_w, dialog_h);
draw_sprite_stretched(THEME.textbox, 1, dialog_x, dialog_y, dialog_w, dialog_h);
#endregion

View file

@ -93,6 +93,7 @@ if !ready exit;
bx -= ui(32);
#endregion
draw_sprite_stretched(THEME.textbox, 3, gr_x - ui(6), gr_y - ui(6), gr_w + ui(12), gr_h + ui(12));
draw_sprite_stretched(THEME.textbox, 0, gr_x - ui(6), gr_y - ui(6), gr_w + ui(12), gr_h + ui(12));
draw_gradient(gr_x, gr_y, gr_w, gr_h, gradient, grad_data[| 0]);

View file

@ -2,7 +2,7 @@
#region draw
var yy = dialog_y;
draw_sprite_stretched(THEME.textbox, 1, dialog_x, dialog_y, dialog_w, dialog_h);
draw_sprite_stretched(THEME.textbox, 3, dialog_x, dialog_y, dialog_w, dialog_h);
for(var i = 0; i < array_length(menu); i++) {
if(!is_array(menu[i])) {
@ -56,6 +56,7 @@
}
if(sHOVER && point_in_rectangle(mouse_mx, mouse_my, _bx - ui(14), _by - ui(14), _bx + ui(14), _by + ui(14))) {
draw_sprite_stretched_ext(THEME.textbox, 3, _bx - ui(14), _by - ui(14), ui(28), ui(28), COLORS.dialog_menubox_highlight, 1);
draw_sprite_stretched_ext(THEME.textbox, 1, _bx - ui(14), _by - ui(14), ui(28), ui(28), COLORS.dialog_menubox_highlight, 1);
if(mouse_press(mb_left, sFOCUS)) {
@ -87,4 +88,6 @@
yy += _h;
}
draw_sprite_stretched(THEME.textbox, 1, dialog_x, dialog_y, dialog_w, dialog_h);
#endregion

View file

@ -16,7 +16,9 @@ event_inherited();
if(index_selecting == -1 || palette == 0) return;
palette[index_selecting] = color;
if(onApply != noone) onApply(palette);
if(onApply == noone) return;
onApply(palette);
}
onApply = noone;

View file

@ -84,6 +84,7 @@ if palette == 0 exit;
var hh = (pl_h + ui(6)) * row;
dialog_h = ui(408) + hh;
draw_sprite_stretched(THEME.textbox, 3, pl_x - ui(6), pl_y - ui(6), pl_w + ui(12), hh + ui(6));
draw_sprite_stretched(THEME.textbox, 0, pl_x - ui(6), pl_y - ui(6), pl_w + ui(12), hh + ui(6));
#region tools

View file

@ -26,10 +26,10 @@ event_inherited();
page[0] = "General";
page[1] = "Node settings";
page[2] = "Appearances";
page[3] = "Hotkeys";
page[3] = "Colors";
page[4] = "Hotkeys";
pref_global = ds_list_create();
pref_node = ds_list_create();
ds_list_add(pref_global, [
"Show welcome screen",
@ -169,8 +169,11 @@ event_inherited();
PREF_SAVE();
})
]);
//NODE
#endregion
#region //NODE
pref_node = ds_list_create();
ds_list_add(pref_node, "Particle");
ds_list_add(pref_node, [
@ -222,6 +225,29 @@ event_inherited();
]);
#endregion
#region appearance
pref_appr = ds_list_create();
ds_list_add(pref_appr, "Graph");
ds_list_add(pref_appr, [
"Connection thickness",
"connection_line_width",
new textBox(TEXTBOX_INPUT.float, function(str) {
PREF_MAP[? "connection_line_width"] = real(str);
PREF_SAVE();
})
]);
ds_list_add(pref_appr, [
"Connection curve smoothness",
"connection_line_sample",
new textBox(TEXTBOX_INPUT.float, function(str) {
PREF_MAP[? "connection_line_sample"] = real(str);
PREF_SAVE();
})
]);
#endregion
#region theme
themes = [];
var f = file_find_first(DIRECTORY + "themes/*", fa_directory);

View file

@ -52,6 +52,10 @@ if !ready exit;
sp_pref.active = sHOVER;
sp_pref.draw(dialog_x + ui(168), yy);
} else if(page_current == 2) {
current_list = pref_appr;
sp_pref.active = sHOVER;
sp_pref.draw(dialog_x + ui(168), yy);
} else if(page_current == 3) {
var _w = ui(200);
var _h = TEXTBOX_HEIGHT;
@ -75,7 +79,7 @@ if !ready exit;
sp_colors.active = sHOVER;
sp_colors.draw(dialog_x + ui(168), yy + ui(40));
} else if(page_current == 3) {
} else if(page_current == 2) {
if(mouse_press(mb_left, sFOCUS))
hk_editing = noone;

View file

@ -1,6 +1,9 @@
/// @description init
#region draw
draw_sprite_stretched(THEME.textbox, 1, dialog_x, dialog_y, dialog_w, dialog_h);
draw_sprite_stretched(THEME.textbox, 3, dialog_x, dialog_y, dialog_w, dialog_h);
sc_content.active = sHOVER;
sc_content.draw(dialog_x, dialog_y);
draw_sprite_stretched(THEME.textbox, 1, dialog_x, dialog_y, dialog_w, dialog_h);
#endregion

View file

@ -78,6 +78,9 @@
case ".txt" :
node = Node_create_Text_File_Read_path(PANEL_GRAPH.mouse_grid_x, PANEL_GRAPH.mouse_grid_y, path);
break;
case ".csv" :
node = Node_create_CSV_File_Read_path(PANEL_GRAPH.mouse_grid_x, PANEL_GRAPH.mouse_grid_y, path);
break;
case ".json" :
node = Node_create_Json_File_Read_path(PANEL_GRAPH.mouse_grid_x, PANEL_GRAPH.mouse_grid_y, path);
break;

View file

@ -9,6 +9,7 @@
var mx = min(mouse_mx + ui(16), WIN_W - (tw + ui(16)));
var my = min(mouse_my + ui(16), WIN_H - (th + ui(16)));
draw_sprite_stretched(THEME.textbox, 3, mx, my, tw + ui(16), th + ui(16));
draw_sprite_stretched(THEME.textbox, 0, mx, my, tw + ui(16), th + ui(16));
draw_text(mx + ui(8), my + ui(8), TOOLTIP);
}

View file

@ -16,6 +16,7 @@
__initAssets();
__initPresets();
__initFontFolder();
__initLua();
PREF_LOAD();
loadFonts();

View file

@ -9,6 +9,8 @@
#endregion
#region animation
ANIMATOR.frame_progress = false;
if(ANIMATOR.is_playing) {
ANIMATOR.time_since_last_frame += ANIMATOR.framerate * (delta_time / 1000000);
@ -24,16 +26,16 @@
ANIMATOR.rendering = false;
} else
ANIMATOR.setFrame(0);
} else {
var _c = ANIMATOR.current_frame;
ANIMATOR.current_frame = round(ANIMATOR.real_frame);
ANIMATOR.frame_progress = _c != ANIMATOR.current_frame;
}
} else {
ANIMATOR.setFrame(ANIMATOR.real_frame);
ANIMATOR.time_since_last_frame = 0;
}
var _c = ANIMATOR.current_frame;
ANIMATOR.current_frame = round(ANIMATOR.real_frame);
ANIMATOR.frame_progress = _c != ANIMATOR.current_frame;
//if(ANIMATOR.frame_progress)
// UPDATE = RENDER_TYPE.full;
#endregion

View file

@ -34,7 +34,7 @@
_k = ds_map_find_next(NODE_MAP, _k);
}
if(UPDATE & RENDER_TYPE.full)
if(UPDATE & RENDER_TYPE.full || ANIMATOR.rendering)
Render();
if(UPDATE & RENDER_TYPE.partial)
Render(true);

View file

@ -0,0 +1,9 @@
{
"extensionId": {
"name": "Apollo",
"path": "extensions/Apollo/Apollo.yy"
},
"resourceVersion": "1.0",
"resourceType": "GMExtensionConfigSet",
"configurables": null
}

View file

@ -18,8 +18,8 @@
"layers": [
{"resourceType":"GMRInstanceLayer","resourceVersion":"1.0","name":"Instances","instances":[
{"resourceType":"GMRInstance","resourceVersion":"1.0","name":"inst_5E4E5D1","properties":[],"isDnd":false,"objectId":{"name":"o_main","path":"objects/o_main/o_main.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":1.0,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":976.0,"y":224.0,},
],"visible":true,"depth":0,"userdefinedDepth":false,"inheritLayerDepth":false,"inheritLayerSettings":false,"gridX":16,"gridY":16,"layers":[],"hierarchyFrozen":false,"effectEnabled":true,"effectType":null,"properties":[],},
{"resourceType":"GMRBackgroundLayer","resourceVersion":"1.0","name":"Background","spriteId":null,"colour":4280491036,"x":0,"y":0,"htiled":false,"vtiled":false,"hspeed":0.0,"vspeed":0.0,"stretch":false,"animationFPS":15.0,"animationSpeedType":0,"userdefinedAnimFPS":false,"visible":true,"depth":100,"userdefinedDepth":false,"inheritLayerDepth":false,"inheritLayerSettings":false,"gridX":16,"gridY":16,"layers":[],"hierarchyFrozen":false,"effectEnabled":true,"effectType":null,"properties":[],},
],"visible":true,"depth":0,"userdefinedDepth":false,"inheritLayerDepth":false,"inheritLayerSettings":false,"inheritVisibility":true,"inheritSubLayers":true,"gridX":16,"gridY":16,"layers":[],"hierarchyFrozen":false,"effectEnabled":true,"effectType":null,"properties":[],},
{"resourceType":"GMRBackgroundLayer","resourceVersion":"1.0","name":"Background","spriteId":null,"colour":4280491036,"x":0,"y":0,"htiled":false,"vtiled":false,"hspeed":0.0,"vspeed":0.0,"stretch":false,"animationFPS":15.0,"animationSpeedType":0,"userdefinedAnimFPS":false,"visible":true,"depth":100,"userdefinedDepth":false,"inheritLayerDepth":false,"inheritLayerSettings":false,"inheritVisibility":true,"inheritSubLayers":true,"gridX":16,"gridY":16,"layers":[],"hierarchyFrozen":false,"effectEnabled":true,"effectType":null,"properties":[],},
],
"inheritLayers": false,
"creationCodeFile": "",

163
scripts/GmlLua/GmlLua.gml Normal file
View file

@ -0,0 +1,163 @@
function __lua_draw_surface_general(surface, xx, yy, xs, ys, ang, color, alpha) {
draw_surface_ext(surface, xx, yy, xs, ys, ang, color, alpha);
}
function __lua_draw_surface_transform(surface, xx, yy, rot = 0, xs = 1, ys = 1) {
if(argument_count == 5) ys = argument[4];
draw_surface_ext(surface, xx, yy, xs, ys, rot, c_white, 1);
}
function __lua_draw_surface_colored(surface, xx, yy, color = c_white, alpha = 1) {
draw_surface_ext(surface, xx, yy, 1, 1, 0, color, alpha);
}
function __lua_draw_surface(surface, xx, yy) {
draw_surface(surface, xx, yy);
}
function __lua_draw_rectangle(x0, y0, x1, y1) {
draw_rectangle(x0, y0, x1, y1, false);
}
function __lua_draw_rectangle_outline(x0, y0, x1, y1, thick = 1) {
draw_rectangle_border(x0, y0, x1, y1, thick);
}
function __lua_draw_circle(x0, y0, r) {
draw_circle(x0, y0, r, false);
}
function __lua_draw_circle_outline(x0, y0, r, thick = 1) {
draw_circle_border(x0, y0, r, thick);
}
function __lua_draw_ellipse(x0, y0, x1, y1) {
draw_ellipse(x0, y0, x1, y1, false);
}
function __lua_draw_ellipse_outline(x0, y0, x1, y1, thick = 1) {
draw_ellipse_border(x0, y0, x1, y1, thick);
}
function __lua_draw_line(x0, y0, x1, y1, thick = 1) {
draw_line_width(x0, y0, x1, y1, thick);
}
function __lua_draw_line_round(x0, y0, x1, y1, thick = 1) {
draw_line_round(x0, y0, x1, y1, thick);
}
function __lua_draw_pixel(x0, y0) {
draw_point(x0, y0);
}
function __lua_blendmode_set(mode) {
gpu_set_blendmode(mode);
}
function __lua_blendmode_reset() {
gpu_set_blendmode(bm_normal);
}
function __initLua() {
var lua_functions = [
["print", noti_status],
["drawGeneral", __lua_draw_surface_general],
["drawBlend", __lua_draw_surface_colored],
["drawTransform", __lua_draw_surface_transform],
["draw", __lua_draw_surface],
["clear", function(color = 0, alpha = 0) { draw_clear_alpha(color, alpha); }],
["setColor", draw_set_color],
["setAlpha", draw_set_alpha],
["drawRect", __lua_draw_rectangle],
["drawRectOutline", __lua_draw_rectangle_outline],
["drawCircle", __lua_draw_circle],
["drawCircleOutline", __lua_draw_circle_outline],
["drawEllipse", __lua_draw_ellipse],
["drawEllipseOutline", __lua_draw_ellipse_outline],
["drawLine", __lua_draw_line],
["drawLineRound", __lua_draw_line_round],
["drawPixel", __lua_draw_pixel],
["colorGetBlue", colour_get_blue],
["colorGetGreen", colour_get_green],
["colorGetRed", colour_get_red],
["colorGetHue", colour_get_hue],
["colorGetSaturation", colour_get_saturation],
["colorGetValue", colour_get_value],
["getColor", draw_get_colour],
["getAlpha", draw_get_alpha],
["colorMakeHSV", make_colour_hsv],
["colorMakeRGB", make_colour_rgb],
["colorMerge", merge_colour],
["setBlend", __lua_blendmode_set],
["resetBlend", __lua_blendmode_reset],
["seed", random_set_seed],
["random", random],
["randomRange", random_range],
["irandom", irandom],
["irandomRange", irandom_range],
["abs", abs],
["round", round],
["floor", floor],
["ceil", ceil],
["max", max],
["min", min],
["clamp", clamp],
["lerp", lerp],
["exp", exp],
["ln", ln],
["power", power],
["sqr", sqr],
["sqrt", sqrt],
["log2", log2],
["log10", log10],
["logn", logn],
["acos", arccos],
["asin", arcsin],
["atan", arctan],
["atan2", arctan2],
["cos", cos],
["sin", sin],
["tan", tan],
["dcos", dcos],
["dsin", dsin],
["dtan", dtan],
["dacos", darccos],
["dasin", darcsin],
["datan", darctan],
["datan2", darctan2],
["rad", degtorad],
["deg", radtodeg],
["dot", dot_product],
["stringLength", string_length],
["stringSearch", string_pos],
["stringCopy", string_copy],
["stringUpper", string_upper],
["stringLower", string_lower],
["stringReplace", string_replace],
["stringReplaceAll", string_replace_all],
["stringSplit", string_split],
];
globalvar LUA_API;
LUA_API = ds_map_create();
for( var i = 0; i < array_length(lua_functions); i++ ) {
LUA_API[? lua_functions[i][0]] = lua_functions[i][1];
}
}
function lua_create() {
var state = lua_state_create();
var k = ds_map_find_first(LUA_API);
repeat(ds_map_size(LUA_API)) {
lua_add_function(state, k, LUA_API[? k]);
k = ds_map_find_next(LUA_API, k);
}
return state;
}
function _lua_error(msg, state) {
noti_error("A Lua error occurred: " + msg);
}
lua_error_handler = _lua_error;

11
scripts/GmlLua/GmlLua.yy Normal file
View file

@ -0,0 +1,11 @@
{
"resourceType": "GMScript",
"resourceVersion": "1.0",
"name": "GmlLua",
"isDnD": false,
"isCompatibility": false,
"parent": {
"name": "lua",
"path": "folders/functions/lua.yy",
},
}

View file

@ -241,7 +241,7 @@
_outSurf = surface_verify(_outSurf, _dim[0], _dim[1]);
var cam_proj = matrix_build_projection_ortho(_dim[0], _dim[1], 1, 100);
camera_set_view_mat(cam, cam_proj);
camera_set_proj_mat(cam, cam_proj);
camera_set_view_size(cam, _dim[0], _dim[1]);
var lightFor = [ -cos(degtorad(_ldir)), -_lhgt, -sin(degtorad(_ldir)) ];
@ -256,7 +256,7 @@
shader_set_uniform_f_array(uniLightClr, colorArrayFromReal(_lclr));
shader_set_uniform_f(uniLightInt, _lint);
shader_set_uniform_i(uniLightNrm, use_normal);
camera_apply(cam);
matrix_stack_push(matrix_build(_pos[0], _pos[1], 0, 0, 0, 0, _dim[0] * _sca[0], _dim[1] * _sca[1], 1));

View file

@ -8,9 +8,31 @@ function draw_circle_border(xx, yy, r, w) {
var px = xx + lengthdir_x(r, i * angle_step);
var py = yy + lengthdir_y(r, i * angle_step);
if(i>0){
if(i)
draw_line_round(_px, _py, px, py, w);
_px = px;
_py = py;
}
}
function draw_ellipse_border(x0, y0, x1, y1, w) {
var step = 32;
var angle_step = 360 / step;
var px, py, _px, _py;
var cx = (x0 + x1) / 2;
var cy = (y0 + y1) / 2;
var ww = abs(x0 - x1) / 2;
var hh = abs(y0 - y1) / 2;
for(var i = 0; i <= step; i++){
var px = cx + lengthdir_x(ww, i * angle_step);
var py = cy + lengthdir_y(hh, i * angle_step);
if(i)
draw_line_round(_px, _py, px, py, w);
}
_px = px;
_py = py;

View file

@ -37,7 +37,8 @@ function draw_line_curve(x0, y0, x1, y1, thick = 1) {
function draw_line_curve_color(x0, y0, x1, y1, thick, col1, col2, type = LINE_STYLE.solid) {
var xc = (x0 + x1) / 2;
var sample = max(8, ceil((abs(x0 - x1) + abs(y0 - y1)) / 4));
var sample = ceil((abs(x0 - x1) + abs(y0 - y1)) / 16 * PREF_MAP[? "connection_line_sample"]);
sample = clamp(sample, 8, 128);
var c = draw_get_color();
var ox, oy, nx, ny, t, it, oc, nc;
@ -71,7 +72,8 @@ function draw_line_curve_color(x0, y0, x1, y1, thick, col1, col2, type = LINE_ST
function distance_to_curve(mx, my, x0, y0, x1, y1) {
var xc = (x0 + x1) / 2;
var sample = max(8, ceil((abs(x0 - x1) + abs(y0 - y1)) / 4));
var sample = ceil((abs(x0 - x1) + abs(y0 - y1)) / 16 * PREF_MAP[? "connection_line_sample"]);
sample = clamp(sample, 8, 128);
var dist = 999999;
var ox, oy, nx, ny, t, it;

View file

@ -0,0 +1,4 @@
function draw_sprite_fit(spr, ind, xx, yy, w, h) {
var ss = min(w / sprite_get_width(spr), h / sprite_get_height(spr));
draw_sprite_ext(spr, ind, xx, yy, w, h, 0, c_white, 1);
}

View file

@ -0,0 +1,11 @@
{
"resourceType": "GMScript",
"resourceVersion": "1.0",
"name": "draw_sprite_fit",
"isDnD": false,
"isCompatibility": false,
"parent": {
"name": "draw",
"path": "folders/functions/draw.yy",
},
}

View file

@ -1,4 +1,4 @@
globalvar FONT_LOADED, f_h3, f_h5, f_p0, f_p0b, f_p1, f_p2, f_p3;
globalvar FONT_LOADED, f_h3, f_h5, f_p0, f_p0b, f_p1, f_p2, f_p3, f_code;
FONT_LOADED = false;
@ -29,6 +29,8 @@ function loadFonts() {
font_clear(f_p1);
font_clear(f_p2);
font_clear(f_p3);
font_clear(f_code);
}
var path = _font_path("./fonts.json");
@ -41,6 +43,7 @@ function loadFonts() {
f_p1 = _f_p1;
f_p2 = _f_p2;
f_p3 = _f_p3;
f_code = _f_code;
FONT_LOADED = false;
return;
}
@ -61,5 +64,7 @@ function loadFonts() {
f_p2 = _font_load_from_struct(fontDef.p2, _f_p2);
f_p3 = _font_load_from_struct(fontDef.p3, _f_p3);
f_code = _font_load_from_struct(fontDef.code, _f_code);
FONT_LOADED = true;
}

View file

@ -22,7 +22,7 @@
globalvar VERSION, SAVEFILE_VERSION, VERSION_STRING;
VERSION = 1090;
SAVEFILE_VERSION = 1090;
SAVEFILE_VERSION = 1080;
VERSION_STRING = "1.0.9";
globalvar NODES, NODE_MAP, APPEND_MAP, HOTKEYS, HOTKEY_CONTEXT;

View file

@ -12,6 +12,25 @@ function json_load(path) {
function json_save(path, struct) {
var s = json_encode(struct);
var f = file_text_open_write(path);
file_text_write_string(f, s);
file_text_close(f);
}
function json_load_struct(path) {
if(!file_exists(path)) return noone;
var f = file_text_open_read(path);
var s = file_text_read_all(f);
file_text_close(f);
var js = json_parse(s);
return js;
}
function json_save_struct(path, struct) {
var s = json_stringify(struct);
var f = file_text_open_write(path);
file_text_write_string(f, s);
file_text_close(f);

View file

@ -0,0 +1,85 @@
global.lua_reserved = ds_map_create();
var reserved = ["and", "break", "do", "else", "elseif", "end", "false",
"for", "function", "if", "in", "local", "nil", "not",
"or", "repeat", "return", "then", "true", "until", "while"];
for( var i = 0; i < array_length(reserved); i++ )
global.lua_reserved[? reserved[i]] = 1;
function token_splice(str) {
var st = [];
var ss = str;
var sp;
var cc;
var tk = [" ", "(", ")", "[", "]", "{", "}", ",", ";", "+", "-", "*", "/", "="];
do {
sp = 999999;
for( var i = 0; i < array_length(tk); i++ ) {
var _pos = string_pos(tk[i], ss);
if(_pos != 0) sp = min(sp, _pos);
}
if(sp == 999999) { //no delim left
array_push(st, ss);
break;
}
var _ss = string_copy(ss, 1, sp - 1);
array_push(st, _ss);
cc = string_char_at(ss, sp);
array_push(st, cc);
ss = string_copy(ss, sp + 1, string_length(ss) - sp);
} until(sp == 0);
return st;
}
function draw_code(_x, _y, str) {
var tx = _x
var ty = _y;
var isStr = true;
var stringSplice = string_splice(str, "\"");
var amo = array_length(stringSplice);
var word;
for( var i = 0; i < amo; i++ ) {
var _w = stringSplice[i];
isStr = !isStr;
if(isStr) {
word = "\"" + _w;
if(i < amo - 1) word += "\"";
draw_set_color(isStr? COLORS.lua_highlight_string : COLORS._main_text);
draw_text(tx, ty, word);
tx += string_width(word);
continue;
}
var words = token_splice(_w);
for( var j = 0; j < array_length(words); j++ ) {
word = words[j];
var wordNoS = string_replace_all(word, " ", "");
draw_set_color(COLORS._main_text);
if(word == "(" || word == ")" || word == "[" || word == "]" || word == "{" || word == "}")
draw_set_color(COLORS.lua_highlight_bracklet);
else if(ds_map_exists(global.lua_reserved, word))
draw_set_color(COLORS.lua_highlight_keyword);
else if(wordNoS == string_decimal(wordNoS))
draw_set_color(COLORS.lua_highlight_number);
else if(j < array_length(words) - 1) {
if(words[j + 1] == "(")
draw_set_color(COLORS.lua_highlight_function);
}
draw_text(tx, ty, word);
tx += string_width(word);
}
}
}

View file

@ -0,0 +1,11 @@
{
"resourceType": "GMScript",
"resourceVersion": "1.0",
"name": "luaHighlight",
"isDnD": false,
"isCompatibility": false,
"parent": {
"name": "lua",
"path": "folders/functions/lua.yy",
},
}

View file

@ -0,0 +1,44 @@
function luaArgumentRenderer() {
argument_renderer = new Inspector_Custom_Renderer(function(_x, _y, _w, _m, _hover, _focus) {
var tx = _x;
var ty = _y + ui(8);
var hh = ui(8);
var _th = TEXTBOX_HEIGHT + ui(4);
for( var i = input_fix_len; i < ds_list_size(inputs); i += data_length ) {
var _jType = inputs[| i + 1];
var _typ = _jType.getValue();
var _h = 0;
_jType.editWidget.hover = _hover;
_jType.editWidget.active = _focus;
_jType.editWidget.draw(tx, ty, ui(128), _th, _jType.display_data[_jType.showValue()], _m, argument_renderer.rx, argument_renderer.ry);
var _jName = inputs[| i + 0];
_jName.editWidget.hover = _hover;
_jName.editWidget.active = _focus;
_jName.editWidget.draw(tx + ui(128 + 8), ty, _w - ui(128 + 8), _th, _jName.showValue(), _m, _jName.display_type);
_h += _th + ui(6);
draw_set_text(f_p1, fa_left, fa_top, COLORS._main_text_sub);
draw_text_add(tx + ui(8), ty + _th + ui(6) + ui(6), "Value");
var _jValue = inputs[| i + 2];
_jValue.editWidget.hover = _hover;
_jValue.editWidget.active = _focus;
if(_typ == 2) {
_jValue.editWidget.draw(tx + ui(64), ty + _th + ui(6), _w - ui(64), ui(96), _jValue.showValue(), _m, argument_renderer.rx, argument_renderer.ry);
_h += ui(96 + 8);
} else {
_jValue.editWidget.draw(tx + ui(64), ty + _th + ui(6), _w - ui(64), TEXTBOX_HEIGHT, _jValue.showValue(), _m);
_h += TEXTBOX_HEIGHT + ui(8);
}
hh += _h;
ty += _h;
}
return hh;
});
}

View file

@ -0,0 +1,11 @@
{
"resourceType": "GMScript",
"resourceVersion": "1.0",
"name": "luaRenderer",
"isDnD": false,
"isCompatibility": false,
"parent": {
"name": "lua",
"path": "folders/functions/lua.yy",
},
}

View file

@ -0,0 +1,95 @@
function matrixGrid(_type, _onModify, _unit = noone) constructor {
size = 9;
onModify = _onModify;
unit = _unit;
hover = false;
active = false;
linked = false;
b_link = button(function() { linked = !linked; });
b_link.icon = THEME.value_link;
onModifyIndex = function(index, val) {
if(linked) {
for( var i = 0; i < size; i++ )
onModify(i, toNumber(val));
return;
}
onModify(index, toNumber(val));
}
onModifySingle[0] = function(val) { onModifyIndex(0, val); }
onModifySingle[1] = function(val) { onModifyIndex(1, val); }
onModifySingle[2] = function(val) { onModifyIndex(2, val); }
onModifySingle[3] = function(val) { onModifyIndex(3, val); }
onModifySingle[4] = function(val) { onModifyIndex(4, val); }
onModifySingle[5] = function(val) { onModifyIndex(5, val); }
onModifySingle[6] = function(val) { onModifyIndex(6, val); }
onModifySingle[7] = function(val) { onModifyIndex(7, val); }
onModifySingle[8] = function(val) { onModifyIndex(8, val); }
extras = -1;
for(var i = 0; i < size; i++) {
tb[i] = new textBox(_type, onModifySingle[i]);
tb[i].slidable = true;
}
static draw = function(_x, _y, _w, _h, _data, _m) {
if(extras && instanceof(extras) == "buttonClass") {
extras.hover = hover;
extras.active = active;
extras.draw(_x + _w - ui(32), _y + _h / 2 - ui(32 / 2), ui(32), ui(32), _m, THEME.button_hide);
_w -= ui(40);
}
if(unit != noone && unit.reference != noone) {
_w += ui(4);
unit.triggerButton.hover = hover;
unit.triggerButton.active = active;
unit.draw(_x + _w - ui(32), _y + _h / 2 - ui(32 / 2), ui(32), ui(32), _m);
_w -= ui(40);
}
b_link.hover = hover;
b_link.active = active;
b_link.icon_index = linked;
b_link.icon_blend = linked? COLORS._main_accent : COLORS._main_icon;
b_link.tooltip = linked? "Unlink values" : "Link values";
var hh = TEXTBOX_HEIGHT + ui(8);
var th = hh * 3 - ui(8);
var bx = _x;
var by = _y + th / 2 - ui(32 / 2);
b_link.draw(bx + ui(4), by + ui(4), ui(24), ui(24), _m, THEME.button_hide);
_x += ui(28);
_w -= ui(28);
var ww = _w / 3;
for(var i = 0; i < 3; i++)
for(var j = 0; j < 3; j++) {
var ind = i * 3 + j;
tb[ind].hover = hover;
tb[ind].active = active;
var bx = _x + ww * j;
var by = _y + hh * i;
tb[ind].draw(bx + ui(8), by, ww - ui(8), TEXTBOX_HEIGHT, _data[ind], _m);
}
hover = false;
active = false;
return th;
}
}

View file

@ -0,0 +1,11 @@
{
"resourceType": "GMScript",
"resourceVersion": "1.0",
"name": "matrixGrid",
"isDnD": false,
"isCompatibility": false,
"parent": {
"name": "widgets",
"path": "folders/widgets.yy",
},
}

View file

@ -65,8 +65,8 @@ function Node_3D_Extrude(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) c
vertex_begin(VB[0], FORMAT_PT);
vertex_end(VB[0]);
static onValueUpdate = function(index) {
if(index == 0 || index == 12)
static onValueUpdateFrom = function(index) {
if(index == 0 || index == 14)
generateMesh();
}

View file

@ -50,7 +50,7 @@ function Node_3D_Cube(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) cons
input_display_list = [1,
["Object transform",false], 19, 18, 12,
["Render", false], 2, 4,
["Render", false], 2, 4,
["Texture", true], 0, 5, 6, 7, 8, 9, 10, 11,
["Light", false], 13, 14, 15, 16, 17,
];
@ -115,7 +115,7 @@ function Node_3D_Cube(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) cons
var _usetex = _data[5];
for(var i = 6; i <= 11; i++) inputs[| i].setVisible(_usetex);
for(var i = 6; i <= 11; i++) inputs[| i].setVisible(true, _usetex);
inputs[| 0].setVisible(true, !_usetex);
_3d_pre_setup(_outSurf, _dim, _pos, _sca, _ldir, _lhgt, _lint, _lclr, _aclr, _lpos, _lrot, _lsca);

View file

@ -153,8 +153,7 @@ function Node_VFX_effector(_x, _y, _group = -1) : Node(_x, _y, _group) construct
}
static onDrawNode = function(xx, yy, _mx, _my, _s) {
var cx = xx + w * _s / 2;
var cy = yy + 10 + (h - 10) * _s / 2;
draw_sprite_uniform(node_draw_icon, 0, cx, cy, _s);
var bbox = drawGetBbox(xx, yy, _s);
draw_sprite_fit(node_draw_icon, 0, bbox.xc, bbox.yc, bbox.w, bbox.h);
}
}

View file

@ -81,5 +81,4 @@ function Node_VFX_Renderer(_x, _y, _group = -1) : Node(_x, _y, _group) construct
for(var i = input_index; i < ds_list_size(_inputs); i++)
createNewInput();
}
}

View file

@ -26,6 +26,7 @@ function Node_Anim_Curve(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) c
}
static onDrawNode = function(xx, yy, _mx, _my, _s) {
draw_sprite_ext(s_node_curve, 0, xx + w / 2 * _s, yy + 10 + h / 2 * _s, _s / 2, _s / 2, 0, c_white, 1);
var bbox = drawGetBbox(xx, yy, _s);
draw_sprite_fit(s_node_curve, 0, bbox.xc, bbox.yc, bbox.w, bbox.h);
}
}

View file

@ -47,6 +47,7 @@ function Node_Area(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) constru
}
static onDrawNode = function(xx, yy, _mx, _my, _s) {
draw_sprite_ui_uniform(THEME.node_draw_area, 0, xx + w * _s / 2, yy + 10 + (h - 10) * _s / 2, _s, c_white);
var bbox = drawGetBbox(xx, yy, _s);
draw_sprite_fit(THEME.node_draw_area, 0, bbox.xc, bbox.yc, bbox.w, bbox.h);
}
}

View file

@ -19,12 +19,17 @@ function Node_Array_Get(_x, _y, _group = -1) : Node(_x, _y, _group) constructor
static update = function() {
var _arr = inputs[| 0].getValue();
inputs[| 0].type = VALUE_TYPE.any;
outputs[| 0].type = VALUE_TYPE.any;
if(!is_array(_arr)) return;
var index = inputs[| 1].getValue();
var _len = array_length(_arr);
var _of = inputs[| 2].getValue();
switch(_of) {
var _ovf = inputs[| 2].getValue();
switch(_ovf) {
case 0 :
index = clamp(index, 0, _len - 1);
break;
@ -40,6 +45,11 @@ function Node_Array_Get(_x, _y, _group = -1) : Node(_x, _y, _group) constructor
break;
}
if(inputs[| 0].value_from != noone) {
inputs[| 0].type = inputs[| 0].value_from.type;
outputs[| 0].type = inputs[| 0].type;
}
outputs[| 0].setValue(_arr[index]);
}
}

View file

@ -5,7 +5,7 @@
"isDnD": false,
"isCompatibility": false,
"parent": {
"name": "input",
"path": "folders/nodes/data/input.yy",
"name": "IO",
"path": "folders/nodes/data/IO.yy",
},
}

View file

@ -14,14 +14,10 @@ function Node_Color(_x, _y, _group = -1) : Node(_x, _y, _group) constructor {
}
static onDrawNode = function(xx, yy, _mx, _my, _s) {
var x0 = xx + 8 * _s;
var x1 = xx + (w - 8) * _s;
var y0 = yy + 20 + 8 * _s;
var y1 = yy + (h - 8) * _s;
if(y1 <= y0) return;
var bbox = drawGetBbox(xx, yy, _s);
if(bbox.h < 1) return;
draw_set_color(inputs[| 0].getValue());
draw_rectangle(x0, y0, x1, y1, 0);
draw_rectangle(bbox.x0, bbox.y0, bbox.x1, bbox.y1, 0);
}
}

View file

@ -24,14 +24,10 @@ function Node_Color_HSV(_x, _y, _group = -1) : Node(_x, _y, _group) constructor
}
static onDrawNode = function(xx, yy, _mx, _my, _s) {
var x0 = xx + 8 * _s;
var x1 = xx + (w - 8) * _s;
var y0 = yy + 20 + 8 * _s;
var y1 = yy + (h - 8) * _s;
var bbox = drawGetBbox(xx, yy, _s);
if(bbox.h < 1) return;
if(y1 > y0) {
draw_set_color(outputs[| 0].getValue());
draw_rectangle(x0, y0, x1, y1, 0);
}
draw_set_color(outputs[| 0].getValue());
draw_rectangle(bbox.x0, bbox.y0, bbox.x1, bbox.y1, 0);
}
}

View file

@ -24,14 +24,10 @@ function Node_Color_RGB(_x, _y, _group = -1) : Node(_x, _y, _group) constructor
}
static onDrawNode = function(xx, yy, _mx, _my, _s) {
var x0 = xx + 8 * _s;
var x1 = xx + (w - 8) * _s;
var y0 = yy + 20 + 8 * _s;
var y1 = yy + (h - 8) * _s;
var bbox = drawGetBbox(xx, yy, _s);
if(bbox.h < 1) return;
if(y1 > y0) {
draw_set_color(outputs[| 0].getValue());
draw_rectangle(x0, y0, x1, y1, 0);
}
draw_set_color(outputs[| 0].getValue());
draw_rectangle(bbox.x0, bbox.y0, bbox.x1, bbox.y1, 0);
}
}

View file

@ -27,17 +27,14 @@ function Node_Sampler(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) cons
}
static onDrawNode = function(xx, yy, _mx, _my, _s) {
var x0 = xx + 8 * _s;
var x1 = xx + (w - 8) * _s;
var y0 = yy + 20 + 8 * _s;
var y1 = yy + (h - 8) * _s;
var bbox = drawGetBbox(xx, yy, _s);
if(y1 <= y0) return;
var c = outputs[| 0].getValue();
if(is_array(c)) c = c[0];
draw_set_color(c);
draw_rectangle(x0, y0, x1, y1, 0);
draw_rectangle(bbox.x0, bbox.y0, bbox.x1, bbox.y1, 0);
}
}

View file

@ -0,0 +1,104 @@
enum COMPARE_OPERATOR {
equal,
nonEqual,
greater,
greaterEqual,
lesser,
lesserEqual,
}
function Node_create_Compare(_x, _y, _group = -1, _param = "") {
var node = new Node_Compare(_x, _y, _group);
switch(_param) {
case "equal" : node.inputs[| 0].setValue(COMPARE_OPERATOR.equal); break;
case "greater" : node.inputs[| 0].setValue(COMPARE_OPERATOR.greater); break;
case "lesser" : node.inputs[| 0].setValue(COMPARE_OPERATOR.lesser); break;
}
//ds_list_add(PANEL_GRAPH.nodes_list, node);
return node;
}
function Node_Compare(_x, _y, _group = -1) : Node(_x, _y, _group) constructor {
name = "Compare";
color = COLORS.node_blend_number;
previewable = false;
w = 96;
min_h = 0;
inputs[| 0] = nodeValue(0, "Type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "Equal", "Not equal", "Greater", "Greater or equal", "Lesser", "Lesser or equal" ]);
inputs[| 1] = nodeValue(1, "a", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0)
.setVisible(true, true);
inputs[| 2] = nodeValue(2, "b", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0)
.setVisible(true, true);
outputs[| 0] = nodeValue(0, "Result", self, JUNCTION_CONNECT.output, VALUE_TYPE.boolean, false);
static _eval = function(mode, a, b) {
switch(mode) {
case COMPARE_OPERATOR.equal : return a == b;
case COMPARE_OPERATOR.nonEqual : return a != b;
case COMPARE_OPERATOR.greater : return a > b;
case COMPARE_OPERATOR.greaterEqual : return a >= b;
case COMPARE_OPERATOR.lesser : return a < b;
case COMPARE_OPERATOR.lesserEqual : return a <= b;
}
return 0;
}
function update() {
var mode = inputs[| 0].getValue();
var a = inputs[| 1].getValue();
var b = inputs[| 2].getValue();
var as = is_array(a);
var bs = is_array(b);
var al = as? array_length(a) : 0;
var bl = bs? array_length(b) : 0;
var val = 0;
if(!as && !bs)
val = _eval(mode, a, b);
else if(!as && bs) {
for( var i = 0; i < bl; i++ )
val[i] = _eval(mode, a, b[i]);
} else if(as && !bs) {
for( var i = 0; i < al; i++ )
val[i] = _eval(mode, a[i], b);
} else {
for( var i = 0; i < max(al, bl); i++ )
val[i] = _eval(mode, array_safe_get(a, i), array_safe_get(b, i));
}
outputs[| 0].setValue(val);
}
function onDrawNode(xx, yy, _mx, _my, _s) {
draw_set_text(f_h3, fa_center, fa_center, COLORS._main_text);
var str = "";
switch(inputs[| 0].getValue()) {
case COMPARE_OPERATOR.equal : str = "="; break;
case COMPARE_OPERATOR.nonEqual : str = "!="; break;
case COMPARE_OPERATOR.greater : str = ">"; break;
case COMPARE_OPERATOR.greaterEqual : str = ">="; break;
case COMPARE_OPERATOR.lesser : str = "<"; break;
case COMPARE_OPERATOR.lesserEqual : str = "<="; break;
default: return;
}
var bbox = drawGetBbox(xx, yy, _s);
var ss = string_scale(str, bbox.w, bbox.h);
draw_text_transformed(bbox.xc, bbox.yc, str, ss, ss, 0);
}
}

View file

@ -0,0 +1,11 @@
{
"resourceType": "GMScript",
"resourceVersion": "1.0",
"name": "node_compare",
"isDnD": false,
"isCompatibility": false,
"parent": {
"name": "value",
"path": "folders/nodes/data/value.yy",
},
}

View file

@ -1,17 +1,18 @@
function Node_Sharpen(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) constructor {
name = "Sharpen";
function Node_Convolution(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) constructor {
name = "Convolution";
shader = sh_sharpen;
shader = sh_convolution;
uniform_dim = shader_get_uniform(shader, "dimension");
uniform_ker = shader_get_uniform(shader, "kernel");
inputs[| 0] = nodeValue(0, "Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 1] = nodeValue(1, "Brightness", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0)
.setDisplay(VALUE_DISPLAY.slider, [ -1, 1, 0.01]);
inputs[| 1] = nodeValue(1, "Kernel", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, array_create(9))
.setDisplay(VALUE_DISPLAY.kernel);
outputs[| 0] = nodeValue(0, "Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, PIXEL_SURFACE);
static process_data = function(_outSurf, _data, _output_index, _array_index) {
var _exp = _data[1];
var _ker = _data[1];
surface_set_target(_outSurf);
draw_clear_alpha(0, 0);
@ -19,6 +20,7 @@ function Node_Sharpen(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) cons
shader_set(shader);
shader_set_uniform_f(uniform_dim, surface_get_width(_outSurf), surface_get_height(_outSurf));
shader_set_uniform_f_array(uniform_ker, _ker);
draw_surface_safe(_data[0], 0, 0);
shader_reset();

View file

@ -1,7 +1,7 @@
{
"resourceType": "GMScript",
"resourceVersion": "1.0",
"name": "node_sharpen",
"name": "node_convolution",
"isDnD": false,
"isCompatibility": false,
"parent": {

View file

@ -36,7 +36,11 @@ function Node_Counter(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) cons
}
static onDrawNode = function(xx, yy, _mx, _my, _s) {
var bbox = drawGetBbox(xx, yy, _s);
var str = outputs[| 0].getValue();
draw_set_text(f_h5, fa_center, fa_center, COLORS._main_text);
draw_text_transformed(xx + w / 2 * _s, yy + 10 + h / 2 * _s, outputs[| 0].getValue(), _s, _s, 0);
var ss = string_scale(str, bbox.w, bbox.h);
draw_text_transformed(bbox.xc, bbox.yc, str, ss, ss, 0);
}
}

View file

@ -0,0 +1,110 @@
function Node_create_CSV_File_Read(_x, _y, _group = -1) {
var path = "";
if(!LOADING && !APPENDING) {
path = get_open_filename(".csv", "");
if(path == "") return noone;
}
var node = new Node_Text_File_Read(_x, _y, _group);
node.inputs[| 0].setValue(path);
node.doUpdate();
return node;
}
function Node_create_CSV_File_Read_path(_x, _y, path) {
if(!file_exists(path)) return noone;
var node = new Node_CSV_File_Read(_x, _y);
node.inputs[| 0].setValue(path);
node.doUpdate();
return node;
}
function Node_CSV_File_Read(_x, _y, _group = -1) : Node(_x, _y, _group) constructor {
name = "CSV in";
color = COLORS.node_blend_input;
previewable = false;
w = 128;
min_h = 0;
inputs[| 0] = nodeValue(0, "Path", self, JUNCTION_CONNECT.input, VALUE_TYPE.path, "")
.setDisplay(VALUE_DISPLAY.path_load, ["*.csv", ""]);
inputs[| 1] = nodeValue(1, "Convert to number", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false);
outputs[| 0] = nodeValue(0, "Content", self, JUNCTION_CONNECT.output, VALUE_TYPE.text, "");
outputs[| 1] = nodeValue(1, "Path", self, JUNCTION_CONNECT.output, VALUE_TYPE.path, "")
.setVisible(true, true);
content = "";
path_current = "";
first_update = false;
on_dragdrop_file = function(path) {
if(updatePaths(path)) {
doUpdate();
return true;
}
return false;
}
function updatePaths(path) {
if(path_current == path) return false;
path = try_get_path(path);
if(path == -1) return false;
var ext = filename_ext(path);
var _name = string_replace(filename_name(path), filename_ext(path), "");
if(ext != ".csv") return false;
outputs[| 1].setValue(path);
var f = file_text_open_read(path);
content = file_text_read_all_lines(f);
file_text_close(f);
var convert = inputs[| 1].getValue();
if(convert) {
for( var i = 0; i < array_length(content); i++ ) {
var c = content[i];
if(is_array(c)) {
for( var j = 0; j < array_length(c); j++ )
content[i][j] = toNumber(c[j]);
} else
content[i] = toNumber(c);
}
}
if(path_current == "")
first_update = true;
path_current = path;
return true;
}
static update = function() {
var path = inputs[| 0].getValue();
if(path == "") return;
updatePaths(path);
outputs[| 0].setValue(content);
}
function onDrawNode(xx, yy, _mx, _my, _s) {
var bbox = drawGetBbox(xx, yy, _s);
var str = filename_name(path_current);
draw_set_text(f_h5, fa_center, fa_center, COLORS._main_text);
var ss = string_scale(str, bbox.w, bbox.h);
draw_text_transformed(bbox.xc, bbox.yc, str, ss, ss, 0);
}
}

View file

@ -0,0 +1,11 @@
{
"resourceType": "GMScript",
"resourceVersion": "1.0",
"name": "node_csv_file_read",
"isDnD": false,
"isCompatibility": false,
"parent": {
"name": "IO",
"path": "folders/nodes/data/IO.yy",
},
}

View file

@ -24,6 +24,8 @@ function Node(_x, _y, _group = PANEL_GRAPH.getCurrentContext()) constructor {
min_h = 128;
auto_height = true;
draw_name = true;
input_display_list = -1;
output_display_list = -1;
inspector_display_list = -1;
@ -127,7 +129,8 @@ function Node(_x, _y, _group = PANEL_GRAPH.getCurrentContext()) constructor {
if(ANIMATOR.frame_progress) {
if(update_on_frame)
doUpdate();
willUpdate = true;
for(var i = 0; i < ds_list_size(inputs); i++) {
if(inputs[| i].isAnimated())
willUpdate = true;
@ -178,6 +181,7 @@ function Node(_x, _y, _group = PANEL_GRAPH.getCurrentContext()) constructor {
static update = function() {}
static updateValue = function(index) {}
static updateValueFrom = function(index) {}
static triggerRender = function() {
@ -249,9 +253,28 @@ function Node(_x, _y, _group = PANEL_GRAPH.getCurrentContext()) constructor {
draw_sprite_stretched_ext(bg_spr, 0, xx, yy, w * _s, h * _s, color, 0.75);
}
static drawGetBbox = function(xx, yy, _s) {
var x0 = xx + 8 * _s;
var x1 = xx + (w - 8) * _s;
var y0 = yy + 20 * draw_name + 8 * _s;
var y1 = yy + (h - 8) * _s;
return { x0: x0,
x1 : x1,
y0: y0,
y1 : y1,
xc: (x0 + x1) / 2,
yc: (y0 + y1) / 2,
w: x1 - x0,
h: y1 - y0
};
}
static drawNodeName = function(xx, yy, _s) {
draw_name = false;
if(name == "") return;
if(_s * w <= 48) return;
if(_s < 0.5) return;
draw_name = true;
draw_sprite_stretched_ext(THEME.node_bg_name, 0, xx, yy, w * _s, ui(20), color, 0.75);
@ -263,12 +286,12 @@ function Node(_x, _y, _group = PANEL_GRAPH.getCurrentContext()) constructor {
if(inspectorUpdate != noone) icon = THEME.refresh_s;
var ts = clamp(power(_s, 0.5), 0.5, 1);
if(icon) {
if(icon && _s > 0.75) {
draw_sprite_ui_uniform(icon, 0, xx + ui(12), yy + ui(10));
draw_text_cut(xx + ui(24), yy + ui(10), name, w * _s - ui(24), ts);
} else {
} else
draw_text_cut(xx + ui(8), yy + ui(10), name, w * _s - ui(8), ts);
}
}
static drawJunctions = function(_x, _y, _mx, _my, _s) {
@ -345,7 +368,7 @@ function Node(_x, _y, _group = PANEL_GRAPH.getCurrentContext()) constructor {
var c0 = value_color(jun.value_from.type);
var c1 = value_color(jun.type);
var hover = false;
var th = max(1, 2 * _s);
var th = max(1, PREF_MAP[? "connection_line_width"] * _s);
switch(PREF_MAP[? "curve_connection_line"]) {
case 0 :
@ -364,7 +387,7 @@ function Node(_x, _y, _group = PANEL_GRAPH.getCurrentContext()) constructor {
if(active && hover)
hovering = jun;
if(PANEL_GRAPH.junction_hovering == jun || (instance_exists(o_dialog_add_node) && o_dialog_add_node.junction_hovering == jun))
if(active && PANEL_GRAPH.junction_hovering == jun || (instance_exists(o_dialog_add_node) && o_dialog_add_node.junction_hovering == jun))
th *= 2;
var ty = LINE_STYLE.solid;
@ -376,7 +399,7 @@ function Node(_x, _y, _group = PANEL_GRAPH.getCurrentContext()) constructor {
if(ty == LINE_STYLE.solid)
draw_line_width_color(jx, jy, frx, fry, th, c0, c1);
else
draw_line_dashed_color(jx, jy, frx, fry, th, c0, c1, 12);
draw_line_dashed_color(jx, jy, frx, fry, th, c0, c1, 12 * _s);
break;
case 1 : draw_line_curve_color(jx, jy, frx, fry, th, c0, c1, ty); break;
case 2 : draw_line_elbow_color(jx, jy, frx, fry, th, c0, c1, ty); break;

View file

@ -5,7 +5,7 @@
"isDnD": false,
"isCompatibility": false,
"parent": {
"name": "render",
"path": "folders/nodes/data/render.yy",
"name": "IO",
"path": "folders/nodes/data/IO.yy",
},
}

View file

@ -29,12 +29,9 @@ function Node_Gradient_Out(_x, _y, _group = -1) : Node(_x, _y, _group) construct
}
static onDrawNode = function(xx, yy, _mx, _my, _s) {
var x0 = xx + 8 * _s;
var x1 = xx + (w - 8) * _s;
var y0 = yy + 20 + 8 * _s;
var y1 = yy + (h - 8) * _s;
var bbox = drawGetBbox(xx, yy, _s);
if(bbox.h < 1) return;
if(y1 > y0)
draw_gradient(x0, y0, x1 - x0, y1 - y0, inputs[| 0].getValue(), inputs[| 0].extra_data[| 0]);
draw_gradient(bbox.x0, bbox.y0, bbox.w, bbox.h, inputs[| 0].getValue(), inputs[| 0].extra_data[| 0]);
}
}

View file

@ -5,7 +5,7 @@
"isDnD": false,
"isCompatibility": false,
"parent": {
"name": "input",
"path": "folders/nodes/data/input.yy",
"name": "IO",
"path": "folders/nodes/data/IO.yy",
},
}

View file

@ -5,7 +5,7 @@
"isDnD": false,
"isCompatibility": false,
"parent": {
"name": "input",
"path": "folders/nodes/data/input.yy",
"name": "IO",
"path": "folders/nodes/data/IO.yy",
},
}

View file

@ -125,9 +125,8 @@ function Node_Image_gif(_x, _y, _group = -1) : Node(_x, _y, _group) constructor
}
function onDrawNode(xx, yy, _mx, _my, _s) {
if(loading) {
if(loading)
draw_sprite_ui(THEME.loading, 0, xx + w * _s / 2, yy + h * _s / 2, _s, _s, current_time / 2, COLORS._main_icon, 1);
}
}
static onDestroy = function() {

View file

@ -5,7 +5,7 @@
"isDnD": false,
"isCompatibility": false,
"parent": {
"name": "input",
"path": "folders/nodes/data/input.yy",
"name": "IO",
"path": "folders/nodes/data/IO.yy",
},
}

View file

@ -5,7 +5,7 @@
"isDnD": false,
"isCompatibility": false,
"parent": {
"name": "input",
"path": "folders/nodes/data/input.yy",
"name": "IO",
"path": "folders/nodes/data/IO.yy",
},
}

View file

@ -5,7 +5,7 @@
"isDnD": false,
"isCompatibility": false,
"parent": {
"name": "input",
"path": "folders/nodes/data/input.yy",
"name": "IO",
"path": "folders/nodes/data/IO.yy",
},
}

View file

@ -14,8 +14,7 @@ function Node_Iterator_Index(_x, _y, _group = -1) : Node(_x, _y, _group) constru
}
static onDrawNode = function(xx, yy, _mx, _my, _s) {
var cx = xx + w * _s / 2;
var cy = yy + 10 + (h - 10) * _s / 2;
draw_sprite_uniform(s_node_iterator_index, 0, cx, cy, _s * 0.8);
var bbox = drawGetBbox(xx, yy, _s);
draw_sprite_fit(s_node_iterator_index, 0, bbox.xc, bbox.yc, bbox.w, bbox.h);
}
}

View file

@ -23,7 +23,7 @@ function Node_create_Json_File_Read_path(_x, _y, path) {
}
function Node_Json_File_Read(_x, _y, _group = -1) : Node(_x, _y, _group) constructor {
name = "JSON file";
name = "JSON in";
color = COLORS.node_blend_input;
previewable = false;
@ -33,11 +33,22 @@ function Node_Json_File_Read(_x, _y, _group = -1) : Node(_x, _y, _group) constru
inputs[| 0] = nodeValue(0, "Path", self, JUNCTION_CONNECT.input, VALUE_TYPE.path, "")
.setDisplay(VALUE_DISPLAY.path_load, ["*.json", ""]);
outputs[| 0] = nodeValue(0, "Content", self, JUNCTION_CONNECT.output, VALUE_TYPE.text, "");
outputs[| 1] = nodeValue(1, "Path", self, JUNCTION_CONNECT.output, VALUE_TYPE.path, "")
outputs[| 0] = nodeValue(0, "Path", self, JUNCTION_CONNECT.output, VALUE_TYPE.path, "")
.setVisible(true, true);
content = "";
input_index = ds_list_size(inputs);
static createNewInput = function() {
var index = ds_list_size(inputs);
inputs[| index] = nodeValue( index, "Key", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "" )
.setVisible(true, true);
outputs[| index] = nodeValue( index, "Values", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, 0 )
.setVisible(true, true);
}
if(!LOADING && !APPENDING) createNewInput();
content = {};
path_current = "";
first_update = false;
@ -51,6 +62,37 @@ function Node_Json_File_Read(_x, _y, _group = -1) : Node(_x, _y, _group) constru
return false;
}
static updateValue = function(index) {
if(index < input_index) return;
if(LOADING || APPENDING) return;
var _in = ds_list_create();
var _ot = ds_list_create();
for( var i = 0; i < ds_list_size(inputs); i++ ) {
if(i < input_index || inputs[| i].getValue() != "") {
ds_list_add(_in, inputs[| i]);
ds_list_add(_ot, outputs[| i]);
} else {
delete inputs[| i];
delete outputs[| i];
}
}
for( var i = 0; i < ds_list_size(_in); i++ ) {
_in[| i].index = i;
_ot[| i].index = i;
}
ds_list_destroy(inputs);
inputs = _in;
ds_list_destroy(outputs);
outputs = _ot;
createNewInput();
}
function updatePaths(path) {
if(path_current == path) return false;
@ -60,19 +102,17 @@ function Node_Json_File_Read(_x, _y, _group = -1) : Node(_x, _y, _group) constru
var ext = filename_ext(path);
var _name = string_replace(filename_name(path), filename_ext(path), "");
switch(ext) {
case ".json":
outputs[| 1].setValue(path);
if(ext != ".json") return false;
outputs[| 0].setValue(path);
content = json_load(path);
content = json_load_struct(path);
if(path_current == "")
first_update = true;
path_current = path;
if(path_current == "")
first_update = true;
path_current = path;
return true;
}
return false;
return true;
}
static update = function() {
@ -80,17 +120,37 @@ function Node_Json_File_Read(_x, _y, _group = -1) : Node(_x, _y, _group) constru
if(path == "") return;
updatePaths(path);
outputs[| 0].setValue(content);
for( var i = 1; i < ds_list_size(inputs) - 1; i++ ) {
var key = inputs[| i].getValue();
outputs[| i].name = key;
if(variable_struct_exists(content, key)) {
var val = variable_struct_get(content, key);
outputs[| i].setValue(val);
if(is_array(val) && array_length(val))
outputs[| i].type = is_string(val[0])? VALUE_TYPE.text : VALUE_TYPE.float;
else
outputs[| i].type = is_string(val)? VALUE_TYPE.text : VALUE_TYPE.float;
} else {
outputs[| i].setValue(0);
outputs[| i].type = VALUE_TYPE.float;
}
}
}
function onDrawNode(xx, yy, _mx, _my, _s) {
draw_set_text(f_h5, fa_center, fa_center, COLORS._main_text);
var cx = xx + w / 2 * _s;
var cy = yy + 10 + h / 2 * _s;
var str = filename_name(path_current);
var ss = min((w - 8) * _s / string_width(str), (h - 24) * _s / string_height(str));
var bbox = drawGetBbox(xx, yy, _s);
var ss = string_scale(str, bbox.w, bbox.h);
draw_text_transformed(bbox.xc, bbox.yc, str, ss, ss, 0);
}
static postDeserialize = function() {
var _inputs = load_map[? "inputs"];
draw_text_transformed(cx, cy, str, ss, ss, 0);
for(var i = input_index; i < ds_list_size(_inputs); i++)
createNewInput();
}
}

View file

@ -5,7 +5,7 @@
"isDnD": false,
"isCompatibility": false,
"parent": {
"name": "input",
"path": "folders/nodes/data/input.yy",
"name": "IO",
"path": "folders/nodes/data/IO.yy",
},
}

View file

@ -0,0 +1,100 @@
function Node_Json_File_Write(_x, _y, _group = -1) : Node(_x, _y, _group) constructor {
name = "JSON out";
color = COLORS.node_blend_input;
previewable = false;
w = 128;
min_h = 0;
inputs[| 0] = nodeValue(0, "Path", self, JUNCTION_CONNECT.input, VALUE_TYPE.path, "")
.setDisplay(VALUE_DISPLAY.path_save, ["*.json", ""]);
static createNewInput = function() {
var index = ds_list_size(inputs);
inputs[| index + 0] = nodeValue( index + 0, "Key", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "" );
inputs[| index + 1] = nodeValue( index + 1, "value", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, 0 )
.setVisible(false, true);
array_push(input_display_list, index + 0);
array_push(input_display_list, index + 1);
}
input_display_list = [ 0,
["Inputs", false],
]
input_fix_len = ds_list_size(inputs);
input_display_len = array_length(input_display_list);
data_length = 2;
if(!LOADING && !APPENDING) createNewInput();
static updateValue = function(index) {
if(index < input_fix_len) return;
if(LOADING || APPENDING) return;
if((index - input_fix_len) % data_length == 0) { //Variable name
inputs[| index + 1].name = inputs[| index].getValue() + " value";
}
var _in = ds_list_create();
for( var i = 0; i < input_fix_len; i++ )
ds_list_add(_in, inputs[| i]);
array_resize(input_display_list, input_display_len);
for( var i = input_fix_len; i < ds_list_size(inputs); i += data_length ) {
if(inputs[| i].getValue() != "") {
ds_list_add(_in, inputs[| i + 0]);
ds_list_add(_in, inputs[| i + 1]);
array_push(input_display_list, i + 0);
array_push(input_display_list, i + 1);
} else {
delete inputs[| i + 0];
delete inputs[| i + 1];
}
}
for( var i = 0; i < ds_list_size(_in); i++ )
_in[| i].index = i;
ds_list_destroy(inputs);
inputs = _in;
createNewInput();
}
static update = function() {
var path = inputs[| 0].getValue();
if(path == "") return;
if(filename_ext(path) != ".json")
path += ".json";
var cont = {};
for( var i = input_fix_len; i < ds_list_size(inputs) - data_length; i += data_length ) {
var _key = inputs[| i + 0].getValue();
var _val = inputs[| i + 1].getValue();
inputs[| i + 1].type = inputs[| i + 1].value_from? inputs[| i + 1].value_from.type : VALUE_TYPE.any;
variable_struct_set(cont, _key, _val);
}
json_save_struct(path, cont);
}
function onDrawNode(xx, yy, _mx, _my, _s) {
var bbox = drawGetBbox(xx, yy, _s);
var str = filename_name(inputs[| 0].getValue());
if(filename_ext(str) != ".json")
str += ".json";
draw_set_text(f_h5, fa_center, fa_center, COLORS._main_text);
var ss = string_scale(str, bbox.w, bbox.h);
draw_text_transformed(bbox.xc, bbox.yc, str, ss, ss, 0);
}
}

View file

@ -0,0 +1,11 @@
{
"resourceType": "GMScript",
"resourceVersion": "1.0",
"name": "node_json_file_write",
"isDnD": false,
"isCompatibility": false,
"parent": {
"name": "IO",
"path": "folders/nodes/data/IO.yy",
},
}

View file

@ -20,8 +20,9 @@ function Node_Lerp(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) constru
function onDrawNode(xx, yy, _mx, _my, _s) {
draw_set_text(f_h5, fa_center, fa_center, COLORS._main_text);
var str = "lerp";
var _ss = min((w - 8) * _s / string_width(str), (h - 8) * _s / string_height(str));
draw_text_transformed(xx + w / 2 * _s, yy + 10 + h / 2 * _s, str, _ss, _ss, 0);
var bbox = drawGetBbox(xx, yy, _s);
var ss = string_scale(str, bbox.w, bbox.h);
draw_text_transformed(bbox.xc, bbox.yc, str, ss, ss, 0);
}
}

View file

@ -38,7 +38,6 @@ function Node_Level(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) constr
var x1 = _x + _w;
var y0 = _y;
var y1 = _y + _h;
level_renderer.h = 128;
draw_set_color(COLORS.node_level_shade);
var _wh = inputs[| 1].getValue();
@ -62,6 +61,8 @@ function Node_Level(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) constr
draw_set_color(COLORS.node_level_outline);
draw_rectangle(x0, y0, x1, y1, true);
return _h;
});
input_display_list = [
@ -76,7 +77,7 @@ function Node_Level(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) constr
histogramUpdate(current_data[0]);
}
static onValueUpdate = function(index) {
static onValueUpdateFrom = function(index) {
if(index == 0) {
update();
if(array_length(current_data) > 0)

View file

@ -0,0 +1,198 @@
function Node_Lua_Compute(_x, _y, _group = -1) : Node(_x, _y, _group) constructor {
name = "Lua compute";
preview_channel = 1;
previewable = false;
min_h = 0;
inputs[| 0] = nodeValue(0, "Function name", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "render" + string(irandom_range(100000, 999999)));
inputs[| 1] = nodeValue(1, "Type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "Number", "String" ]);
inputs[| 2] = nodeValue(2, "Lua code", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "")
.setDisplay(VALUE_DISPLAY.code);
inputs[| 3] = nodeValue(3, "Execution thread", self, JUNCTION_CONNECT.input, VALUE_TYPE.node, noone)
.setVisible(false, true);
static createNewInput = function() {
var index = ds_list_size(inputs);
inputs[| index + 0] = nodeValue( index + 0, "Argument name", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "" );
inputs[| index + 1] = nodeValue( index + 1, "Argument type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0 )
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "Number", "String", "Surface" ]);
inputs[| index + 2] = nodeValue( index + 2, "Argument value", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0 )
.setVisible(true, true);
}
outputs[| 0] = nodeValue(0, "Execution thread", self, JUNCTION_CONNECT.output, VALUE_TYPE.node, noone );
outputs[| 1] = nodeValue(1, "Return value", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, PIXEL_SURFACE);
luaArgumentRenderer();
input_display_list = [
["Main", false], 0, 3, 1, 2,
["Arguments", false], argument_renderer,
["Inputs", true],
]
input_fix_len = ds_list_size(inputs);
input_display_len = array_length(input_display_list);
data_length = 3;
argument_name = [];
argument_val = [];
lua_state = lua_create();
compiled = false;
if(!LOADING && !APPENDING) createNewInput();
static stepBegin = function() {
if(ANIMATOR.frame_progress) {
setRenderStatus(false);
UPDATE |= RENDER_TYPE.partial;
}
setHeight();
doStepBegin();
value_validation[VALIDATION.error] = !compiled;
var _type = inputs[| 1].getValue();
switch(_type) {
case 0 : outputs[| 1].type = VALUE_TYPE.float; break;
case 1 : outputs[| 1].type = VALUE_TYPE.text; break;
}
}
static getState = function() {
if(inputs[| 3].value_from == noone)
return lua_state;
return inputs[| 3].value_from.node.getState();
}
static updateValueFrom = function(index) {
compiled = false;
}
static updateValue = function(index) {
compiled = false;
if(index == 4) {
for( var i = 0; i < ds_list_size(outputs[| 0].value_to); i++ ) {
var _j = outputs[| 0].value_to[| i];
if(_j.value_from != outputs[| 0]) continue;
_j.node.compiled = false;
}
}
if(index < input_fix_len) return;
if(LOADING || APPENDING) return;
if((index - input_fix_len) % data_length == 0) { //Variable name
inputs[| index + 2].name = inputs[| index].getValue();
} else if((index - input_fix_len) % data_length == 1) { //Variable type
var type = inputs[| index].getValue();
switch(type) {
case 0 : inputs[| index + 1].type = VALUE_TYPE.float; break;
case 1 : inputs[| index + 1].type = VALUE_TYPE.text; break;
case 2 : inputs[| index + 1].type = VALUE_TYPE.surface; break;
}
inputs[| index + 1].setDisplay(VALUE_DISPLAY._default);
}
var _in = ds_list_create();
for( var i = 0; i < input_fix_len; i++ )
ds_list_add(_in, inputs[| i]);
array_resize(input_display_list, input_display_len);
for( var i = input_fix_len; i < ds_list_size(inputs); i += data_length ) {
if(inputs[| i].getValue() != "") {
ds_list_add(_in, inputs[| i + 0]);
ds_list_add(_in, inputs[| i + 1]);
ds_list_add(_in, inputs[| i + 2]);
array_push(input_display_list, i + 2);
} else {
delete inputs[| i + 0];
delete inputs[| i + 1];
delete inputs[| i + 2];
}
}
for( var i = 0; i < ds_list_size(_in); i++ )
_in[| i].index = i;
ds_list_destroy(inputs);
inputs = _in;
createNewInput();
}
static update = function() {
if(!compiled) return;
var _func = inputs[| 0].getValue();
var _dimm = inputs[| 1].getValue();
argument_val = [];
for( var i = input_fix_len; i < ds_list_size(inputs) - data_length; i += data_length ) {
array_push(argument_val, inputs[| i + 2].getValue());
}
var res = 0;
try {
res = lua_call_w(getState(), _func, argument_val);
} catch(e) {
noti_warning(exception_print(e));
}
outputs[| 1].setValue(res);
}
static inspectorUpdate = function() { //compile
var _func = inputs[| 0].getValue();
var _code = inputs[| 2].getValue();
argument_name = [];
for( var i = input_fix_len; i < ds_list_size(inputs) - data_length; i += data_length ) {
array_push(argument_name, inputs[| i + 0].getValue());
}
var lua_code = "function " + _func + "(";
for( var i = 0; i < array_length(argument_name); i++ ) {
if(i) lua_code += ", "
lua_code += argument_name[i];
}
lua_code += ")";
lua_code += _code;
lua_code += "end";
lua_add_code(getState(), lua_code);
compiled = true;
for( var i = 0; i < ds_list_size(outputs[| 0].value_to); i++ ) {
var _j = outputs[| 0].value_to[| i];
if(_j.value_from != outputs[| 0]) continue;
_j.node.inspectorUpdate();
}
doUpdate();
}
static postDeserialize = function() {
var _inputs = load_map[? "inputs"];
for(var i = input_index; i < ds_list_size(_inputs); i += data_length)
createNewInput();
}
}

View file

@ -0,0 +1,11 @@
{
"resourceType": "GMScript",
"resourceVersion": "1.0",
"name": "node_lua_compute",
"isDnD": false,
"isCompatibility": false,
"parent": {
"name": "node",
"path": "folders/nodes/data/node.yy",
},
}

View file

@ -0,0 +1,79 @@
function Node_Lua_Global(_x, _y, _group = -1) : Node(_x, _y, _group) constructor {
name = "Lua global";
preview_channel = 1;
previewable = false;
min_h = 0;
inputs[| 0] = nodeValue(2, "Lua code", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "")
.setDisplay(VALUE_DISPLAY.code);
inputs[| 1] = nodeValue(3, "Run order", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "On start", "Every frame" ]);
inputs[| 2] = nodeValue(4, "Execution thread", self, JUNCTION_CONNECT.input, VALUE_TYPE.node, noone)
.setVisible(false, true);
outputs[| 0] = nodeValue(0, "Execution thread", self, JUNCTION_CONNECT.output, VALUE_TYPE.node, noone );
input_display_list = [
["Main", false], 2, 1, 0,
]
lua_state = lua_create();
compiled = false;
static stepBegin = function() {
var _type = inputs[| 1].getValue();
if(ANIMATOR.frame_progress && (ANIMATOR.current_frame == 0 || _type == 1)) {
setRenderStatus(false);
UPDATE |= RENDER_TYPE.partial;
}
setHeight();
doStepBegin();
value_validation[VALIDATION.error] = !compiled;
}
static getState = function() {
if(inputs[| 2].value_from == noone)
return lua_state;
return inputs[| 2].value_from.node.getState();
}
static updateValueFrom = function(index) {
compiled = false;
}
static updateValue = function(index) {
compiled = false;
}
static update = function() {
if(!compiled) return;
var _code = inputs[| 0].getValue();
try {
lua_add_code(getState(), _code);
} catch(e) {
noti_warning(exception_print(e));
}
}
static inspectorUpdate = function() { //compile
var _code = inputs[| 0].getValue();
compiled = true;
for( var i = 0; i < ds_list_size(outputs[| 0].value_to); i++ ) {
var _j = outputs[| 0].value_to[| i];
if(_j.value_from != outputs[| 0]) continue;
_j.node.inspectorUpdate();
}
doUpdate();
}
}

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