mirror of
https://github.com/Ttanasart-pt/Pixel-Composer.git
synced 2024-12-24 14:06:23 +01:00
Region fill fix, threshold, rgb extract
This commit is contained in:
parent
77e7fefff0
commit
f69bc86ff0
42 changed files with 29503 additions and 193 deletions
|
@ -742,6 +742,7 @@
|
|||
{"name":"node_surface_replace","order":12,"path":"scripts/node_surface_replace/node_surface_replace.yy",},
|
||||
{"name":"node_strand_create","order":1,"path":"scripts/node_strand_create/node_strand_create.yy",},
|
||||
{"name":"sh_gradient","order":17,"path":"shaders/sh_gradient/sh_gradient.yy",},
|
||||
{"name":"sh_region_fill_init","order":2,"path":"shaders/sh_region_fill_init/sh_region_fill_init.yy",},
|
||||
{"name":"node_json_file_read","order":8,"path":"scripts/node_json_file_read/node_json_file_read.yy",},
|
||||
{"name":"s_node_array_remove","order":7,"path":"sprites/s_node_array_remove/s_node_array_remove.yy",},
|
||||
{"name":"s_node_zigzag","order":18,"path":"sprites/s_node_zigzag/s_node_zigzag.yy",},
|
||||
|
|
|
@ -243,21 +243,24 @@
|
|||
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"nodes.json","CopyToMask":-1,"filePath":"datafiles/data/locale/en",},
|
||||
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"UI.json","CopyToMask":-1,"filePath":"datafiles/data/locale/en",},
|
||||
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"words.json","CopyToMask":-1,"filePath":"datafiles/data/locale/en",},
|
||||
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"config.json","CopyToMask":-1,"filePath":"datafiles/data/locale/sample locale",},
|
||||
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"FiraCode-Medium.ttf","CopyToMask":-1,"filePath":"datafiles/data/locale/sample locale/fonts",},
|
||||
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"fonts.json","CopyToMask":-1,"filePath":"datafiles/data/locale/sample locale/fonts",},
|
||||
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"NotoSans-Bold.ttf","CopyToMask":-1,"filePath":"datafiles/data/locale/sample locale/fonts",},
|
||||
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"NotoSans-Medium.ttf","CopyToMask":-1,"filePath":"datafiles/data/locale/sample locale/fonts",},
|
||||
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"NotoSans-SemiBold.ttf","CopyToMask":-1,"filePath":"datafiles/data/locale/sample locale/fonts",},
|
||||
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"nodes.json","CopyToMask":-1,"filePath":"datafiles/data/locale/sample locale",},
|
||||
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"HOW TO LOCALE.txt","CopyToMask":-1,"filePath":"datafiles/data/locale/sample locale",},
|
||||
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"UI.json","CopyToMask":-1,"filePath":"datafiles/data/locale/sample locale",},
|
||||
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"words.json","CopyToMask":-1,"filePath":"datafiles/data/locale/sample locale",},
|
||||
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"nodes.json","CopyToMask":-1,"filePath":"datafiles/data",},
|
||||
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"default x2.zip","CopyToMask":-1,"filePath":"datafiles/data/themes",},
|
||||
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"default.zip","CopyToMask":-1,"filePath":"datafiles/data/themes",},
|
||||
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"FiraCode-Medium.ttf","CopyToMask":-1,"filePath":"datafiles/data/themes/default/fonts",},
|
||||
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"fonts.json","CopyToMask":-1,"filePath":"datafiles/data/themes/default/fonts",},
|
||||
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"NotoSans-Black.ttf","CopyToMask":-1,"filePath":"datafiles/data/themes/default/fonts",},
|
||||
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"NotoSans-Bold.ttf","CopyToMask":-1,"filePath":"datafiles/data/themes/default/fonts",},
|
||||
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"NotoSans-ExtraBold.ttf","CopyToMask":-1,"filePath":"datafiles/data/themes/default/fonts",},
|
||||
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"NotoSans-ExtraLight.ttf","CopyToMask":-1,"filePath":"datafiles/data/themes/default/fonts",},
|
||||
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"NotoSans-Italic.ttf","CopyToMask":-1,"filePath":"datafiles/data/themes/default/fonts",},
|
||||
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"NotoSans-Light.ttf","CopyToMask":-1,"filePath":"datafiles/data/themes/default/fonts",},
|
||||
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"NotoSans-Medium.ttf","CopyToMask":-1,"filePath":"datafiles/data/themes/default/fonts",},
|
||||
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"NotoSans-Regular.ttf","CopyToMask":-1,"filePath":"datafiles/data/themes/default/fonts",},
|
||||
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"NotoSans-SemiBold.ttf","CopyToMask":-1,"filePath":"datafiles/data/themes/default/fonts",},
|
||||
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"NotoSans-Thin.ttf","CopyToMask":-1,"filePath":"datafiles/data/themes/default/fonts",},
|
||||
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"empty.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics",},
|
||||
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"graphics.json","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics",},
|
||||
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"1.png.tmp$$","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",},
|
||||
|
@ -1339,6 +1342,7 @@
|
|||
{"id":{"name":"node_surface_replace","path":"scripts/node_surface_replace/node_surface_replace.yy",},},
|
||||
{"id":{"name":"node_strand_create","path":"scripts/node_strand_create/node_strand_create.yy",},},
|
||||
{"id":{"name":"sh_gradient","path":"shaders/sh_gradient/sh_gradient.yy",},},
|
||||
{"id":{"name":"sh_region_fill_init","path":"shaders/sh_region_fill_init/sh_region_fill_init.yy",},},
|
||||
{"id":{"name":"node_json_file_read","path":"scripts/node_json_file_read/node_json_file_read.yy",},},
|
||||
{"id":{"name":"s_node_array_remove","path":"sprites/s_node_array_remove/s_node_array_remove.yy",},},
|
||||
{"id":{"name":"s_node_zigzag","path":"sprites/s_node_zigzag/s_node_zigzag.yy",},},
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
5
datafiles/data/locale/sample locale/HOW TO LOCALE.txt
Normal file
5
datafiles/data/locale/sample locale/HOW TO LOCALE.txt
Normal file
|
@ -0,0 +1,5 @@
|
|||
1. nodes.json, UI.json, words.json is for translation.
|
||||
2. If your language use non-ascii characters, you need to supply your own font files in the fonts folder.
|
||||
2.1. Copy font files (.ttf, .otf) to fonts/
|
||||
2.2. Edit fonts/fonts.json such that each "path" value point to the font file.
|
||||
2.3. If your language does not use space to separate words, you need to edit config.json and set "per_character_line_break" to true.
|
327
datafiles/data/locale/sample locale/UI.json
Normal file
327
datafiles/data/locale/sample locale/UI.json
Normal file
|
@ -0,0 +1,327 @@
|
|||
{
|
||||
"safe_mode": "SAFE MODE",
|
||||
|
||||
"anim_length": "Animation length",
|
||||
"anim_frame_rate": "Preview frame rate",
|
||||
"anim_on_end": "On end",
|
||||
|
||||
"anim_scale_title": "Animation scaler",
|
||||
"anim_scale_target_frame_length": "Target frame length",
|
||||
"anim_scale_scale_factor": "Scaling factor: ",
|
||||
|
||||
"anim_interpolation": "Interpolation curve",
|
||||
|
||||
"color_selector_title": "Color selector",
|
||||
"color_selector_open_palette": "Open palette folder",
|
||||
|
||||
"gradient_editor_delete": "Delete gradient",
|
||||
"gradient_editor_title": "Gradient editor",
|
||||
"gradient_editor_key_blend": "Key blending",
|
||||
"gradient_editor_blend_RGB": "RGB blend",
|
||||
"gradient_editor_blend_HSV": "HSV blend",
|
||||
"gradient_editor_blend_hard": "Hard blend",
|
||||
"graident_editor_open_folder": "Open gradient folder",
|
||||
|
||||
"palette_editor_delete": "Delete palette",
|
||||
"palette_editor_title": "Palette editor",
|
||||
"palette_editor_sort": "Sort color",
|
||||
"palette_editor_sort_brighter": "Brighter",
|
||||
"palette_editor_sort_darker": "Darker",
|
||||
"palette_editor_sort_hue": "Hue",
|
||||
"palette_editor_load": "Load palette file",
|
||||
|
||||
"add_images_title_direcory": "Import directory",
|
||||
"add_images_title_images": "Import multiple images",
|
||||
"add_images_recursive": "Recursive",
|
||||
"add_images_filter": "Filter",
|
||||
|
||||
"add_node_group_enabled": "Group enabled",
|
||||
"add_node_group_disabled": "Group disabled",
|
||||
"add_node_show_connect": "Showing connectable",
|
||||
"add_node_show_all": "Showing all",
|
||||
"add_node_add_favourite": "Add to favourite",
|
||||
"add_node_remove_favourite":"Remove from favourite",
|
||||
"add_node_create_equation": "Create equation",
|
||||
"add_node_equation_enter": "Press Enter to create equation node.",
|
||||
|
||||
"grid_title": "Grid settings",
|
||||
"grid_snap": "Snap to grid",
|
||||
"grid_size": "Grid size",
|
||||
"grid_width": "Grid width",
|
||||
"grid_height": "Grid height",
|
||||
"grid_opacity": "Grid opacity",
|
||||
"grid_color": "Grid color",
|
||||
|
||||
"graph_visibility_title": "Visibility settings",
|
||||
"graph_visibility_dim": "Dimension",
|
||||
"graph_visibility_compute": "Compute time",
|
||||
|
||||
"output_visibility_title": "Outputs visibility",
|
||||
|
||||
"new_file_placeholder": "New file",
|
||||
|
||||
"new_collection_placeholder": "New collection",
|
||||
"new_collection_create": "Create collection",
|
||||
"new_collection_meta_edit": "Edit metadata",
|
||||
"new_collection_update": "Update collection",
|
||||
|
||||
"crashed_title": "Restore project",
|
||||
"crashed_content": "Restore previous project before crash?",
|
||||
"crashed_log": "Log file",
|
||||
|
||||
"exit_title": "Project modified",
|
||||
"exit_content": "Save progress before exit?",
|
||||
"exit_save": "Save",
|
||||
"exit_no_save": "Don't save",
|
||||
|
||||
"array_edit_title": "Image array edit",
|
||||
"array_edit_sort_name": "Sort by name",
|
||||
|
||||
"noti_clear_log": "Clear log messages",
|
||||
"noti_clear_warn": "Clear warning messages",
|
||||
"noti_clear_all": "Clear all notifications",
|
||||
"noti_open_log": "Open log file",
|
||||
"noti_copy_message": "Copy notification message",
|
||||
"noti_delete_message": "Delete notification",
|
||||
"noti_hide_error": "Hide error",
|
||||
"noti_show_error": "Show error",
|
||||
"noti_hide_warning": "Hide warning",
|
||||
"noti_show_warning": "Show warning",
|
||||
"noti_hide_log": "Hide log",
|
||||
"noti_show_log": "Show log",
|
||||
|
||||
"pref_pages_general": "General",
|
||||
"pref_pages_nodes": "Node settings",
|
||||
"pref_pages_appearance": "Appearances",
|
||||
"pref_reset_colors": "Reset colors",
|
||||
|
||||
"pref_show_welcome_screen": "Show welcome screen",
|
||||
"pref_gui_scaling": "GUI scaling",
|
||||
"pref_double_click_delay": "Double click delay",
|
||||
"pref_keyboard_hold_start": "Keyboard hold start",
|
||||
"pref_keyboard_repeat_delay": "Keyboard repeat delay",
|
||||
"pref_ui_frame_rate": "UI frame rate",
|
||||
"pref_default_surface_size": "Default surface size",
|
||||
"pref_show_node_render_time": "Show node render time",
|
||||
"pref_show_node_render_status": "Show node render status",
|
||||
"pref_collection_preview_speed": "Collection preview speed",
|
||||
"pref_inspector_line_break_width": "Inspector line break width",
|
||||
"pref_expand_hovering_panel": "Expand hovering panel",
|
||||
"pref_graph_zoom_smoothing": "Graph zoom smoothing",
|
||||
"pref_warning_notification_time": "Warning notification time",
|
||||
"pref_enable_test_mode": "Enable dev mode (require restart)",
|
||||
"pref_directory": "Directory path (restart required)",
|
||||
"pref_auto_save_time": "Autosave delay (-1 to disable)",
|
||||
"pref_mouse_wheel_speed": "Scroll speed",
|
||||
"pref_save_file_minify": "Minify save file",
|
||||
"pref_legacy_exception": "Use legacy exception handler",
|
||||
"pref_crash_dialog": "Show dialog after crash",
|
||||
"pref_interface_language": "Interface Language (restart required)",
|
||||
"pref_connection_aa": "Connection anti aliasing",
|
||||
"pref_connection_anim": "Connection line animation",
|
||||
"pref_windows_control": "Use Windows style window control.",
|
||||
|
||||
"pref_max_particles": "Max particles",
|
||||
"pref_max_shapes": "Max shapes",
|
||||
"pref_histogram_resolution": "Histogram resolution",
|
||||
"pref_maximum_sampling": "Maximum sampling",
|
||||
"pref_verlet_iteration": "Verlet iteration",
|
||||
"pref_gravity": "Gravity",
|
||||
|
||||
"pref_reset_color": "Reset colors",
|
||||
"pref_connection_thickness": "Connection thickness",
|
||||
"pref_connection_curve_smoothness": "Connection curve smoothness",
|
||||
|
||||
"panel_pop_out": "Pop out",
|
||||
"panel_menu_addons_key": "Key displayer",
|
||||
"panel_menu_center_preview": "Center preview",
|
||||
"panel_menu_save_current_preview_as": "Save current preview as",
|
||||
"panel_menu_preview_background": "Preview background",
|
||||
"panel_menu_show_grid": "Show Grid",
|
||||
"panel_menu_grid_setting": "Grid setting",
|
||||
"panel_menu_animation_setting": "Animation setting",
|
||||
"panel_menu_animation_scaler": "Animation scaler",
|
||||
"panel_menu_render_all_nodes": "Render all nodes",
|
||||
"panel_menu_execute_exports": "Execute all export nodes",
|
||||
"panel_menu_test_load_all": "Load all current collections",
|
||||
"panel_menu_test_update_all": "Update all current collections",
|
||||
"panel_menu_test_add_meta": "Add metadata to current collections",
|
||||
"panel_menu_test_update_sam": "Update sample projects",
|
||||
"panel_menu_test_gen_guide": "Generate node guide",
|
||||
"panel_menu_test_crash": "Force crash",
|
||||
"panel_menu_test_load_nodes": "Load all nodes",
|
||||
"panel_menu_newer": "Newer version available",
|
||||
"panel_menu_help_video": "Tutorial videos",
|
||||
"panel_menu_help_wiki": "Community Wiki",
|
||||
"panel_menu_local_directory": "Open local directory",
|
||||
"panel_menu_autosave_directory":"Open autosave directory",
|
||||
"panel_menu_reset_default": "Reset default collection, assets",
|
||||
"panel_menu_itch": "itch.io page",
|
||||
"panel_menu_steam": "Steam page",
|
||||
"panel_menu_auto_save_folder": "Open autosave folder",
|
||||
"panel_menu_save_layout": "Save layout",
|
||||
|
||||
"panel_globalvar": "Global Variables",
|
||||
"panel_export_graph": "Export Graph",
|
||||
"panel_debug_console": "Debug Console",
|
||||
|
||||
"panel_graph_center_to_nodes": "Center to nodes",
|
||||
"panel_graph_minimap_enabled": "Minimap enabled",
|
||||
"panel_graph_minimap_disabled": "Minimap disabled",
|
||||
"panel_graph_straight_connection_line": "Straight connection line",
|
||||
"panel_graph_curve_connection_line": "Curve connection line",
|
||||
"panel_graph_elbow_connection_line": "Elbow connection line",
|
||||
"panel_graph_send_to_preview": "Send to preview",
|
||||
"panel_graph_send_to_export": "Send to export",
|
||||
"panel_graph_toggle_preview": "Toggle node preview",
|
||||
"panel_graph_toggle_render": "Toggle node render",
|
||||
"panel_graph_enter_group": "Enter group",
|
||||
"panel_graph_preview_window": "Send to preview window",
|
||||
"panel_graph_delete_and_merge_connection": "Delete and merge connection",
|
||||
"panel_graph_delete_and_cut_connection": "Delete and cut connection",
|
||||
"panel_graph_add_transform": "Add transform",
|
||||
"panel_graph_canvas": "Canvas",
|
||||
"panel_graph_copy_to_canvas": "Copy to canvas",
|
||||
"panel_graph_overlay_canvas": "Overlay canvas",
|
||||
"panel_graph_blend_nodes": "Blend nodes",
|
||||
"panel_graph_compose_nodes": "Compose nodes",
|
||||
"panel_graph_array_from_nodes": "Array from nodes",
|
||||
"panel_graph_group_nodes": "Group nodes",
|
||||
"panel_graph_frame_nodes": "Frame nodes",
|
||||
"panel_graph_ungroup": "Ungroup",
|
||||
"panel_graph_rendering": "Rendering",
|
||||
"panel_graph_rendering_partial": "Rendering partial",
|
||||
"panel_graph_export_image": "Export graph as image",
|
||||
"panel_graph_connection_line": "Connection render settings",
|
||||
"panel_graph_inspector_panel": "Send to new inspector",
|
||||
|
||||
"panel_preview_center_canvas_on_preview": "Center canvas on preview",
|
||||
"panel_preview_keep_canvas_on_preview": "Keep canvas on preview",
|
||||
"panel_preview_split_view": "Split view",
|
||||
"panel_preview_split_view_off": "Split view off",
|
||||
"panel_preview_horizontal_split_view": "Horizontal split view",
|
||||
"panel_preview_vertical_split_view": "Vertical split view",
|
||||
"panel_preview_tile_mode": "Tile mode",
|
||||
"panel_preview_tile_off": "Tile off",
|
||||
"panel_preview_tile_horizontal": "Tile horizontal",
|
||||
"panel_preview_tile_vertical": "Tile vertical",
|
||||
"panel_preview_tile_both": "Tile both",
|
||||
"panel_preview_center_canvas": "Center canvas",
|
||||
"panel_preview_export_canvas": "Export canvas",
|
||||
"panel_preview_save": "Save current preview as",
|
||||
"panel_preview_save_all": "Save all current previews as",
|
||||
"panel_preview_copy_image": "Copy image",
|
||||
"panel_preview_copy_color": "Copy color",
|
||||
"panel_preview_copy_hex": "Copy hex",
|
||||
|
||||
"panel_animation_ease_in": "Ease in",
|
||||
"panel_animation_ease_out": "Ease out",
|
||||
"panel_animation_ease_linear": "Linear",
|
||||
"panel_animation_ease_smooth": "Smooth",
|
||||
"panel_animation_ease_overshoot": "Overshoot",
|
||||
"panel_animation_ease_sharp": "Sharp",
|
||||
"panel_animation_ease_hold": "Hold",
|
||||
"panel_animation_stagger": "Stagger",
|
||||
"panel_animation_goto": "Go to node",
|
||||
"panel_animation_show_graph": "Show graph",
|
||||
"panel_animation_looping_mode": "Looping mode",
|
||||
"panel_animation_length": "Animation length",
|
||||
"panel_animation_stretch": "Stretch animation",
|
||||
"panel_animation_adjust_length": "Adjust animation length",
|
||||
"panel_animation_go_to_first_frame": "Go to first frame",
|
||||
"panel_animation_go_to_last_frame": "Go to last frame",
|
||||
"panel_animation_previous_frame": "Previous frame",
|
||||
"panel_animation_next_frame": "Next frame",
|
||||
"panel_animation_animation_settings": "Animation settings",
|
||||
"panel_animation_scale_animation": "Scale animation",
|
||||
"panel_animation_hide_node": "Hide node outside context",
|
||||
"panel_animation_show_node": "Show node outside context",
|
||||
"panel_animation_name_full": "Show full name",
|
||||
"panel_animation_keyframe_override": "Override Keyframe",
|
||||
|
||||
"panel_collection_replace": "Replace with selected",
|
||||
"panel_collection_edit_meta": "Edit metadata",
|
||||
"panel_collection_add_node": "Add selecting node as collection",
|
||||
"panel_collection_add_folder": "Add folder",
|
||||
"panel_collection_open_file": "Open in file explorer",
|
||||
"panel_collection_you_created": "You created this item",
|
||||
|
||||
"panel_inspector_toggle_anim": "Toggle animation",
|
||||
"panel_inspector_remove_link": "Remove link",
|
||||
"panel_inspector_remove_key": "Remove keyframe",
|
||||
"panel_inspector_add_key": "Add keyframe",
|
||||
"panel_inspector_file_not_exist": "File not exist",
|
||||
"panel_inspector_reset": "Reset value",
|
||||
"panel_inspector_remove": "Remove animation",
|
||||
"panel_inspector_add": "Add animation",
|
||||
"panel_inspector_extract": "Extract...",
|
||||
"panel_inspector_out_visible": "Outputs visibility",
|
||||
"panel_inspector_execute": "Execute node",
|
||||
"panel_inspector_cache_desp": "This node cache output for performance.\nClick to clear all cached frames in this node.",
|
||||
"panel_inspector_set_default": "Set Metadata as default",
|
||||
"panel_inspector_workshop_save": "Save file before upload",
|
||||
"panel_inspector_workshop_upload": "Upload to Steam Workshop",
|
||||
"panel_inspector_workshop_update": "Update Steam Workshop",
|
||||
"panel_inspector_use_expression": "Use expression",
|
||||
|
||||
"panel_addon_not_activated" : "Not activated",
|
||||
"panel_addon_activated": "Activated",
|
||||
"panel_addon_run_on_start": "Run on start",
|
||||
|
||||
"more_actions": " more actions...",
|
||||
|
||||
"dialog_migration_title": "Program directory changed in 1.13",
|
||||
"dialog_migration_content": "This means all custom collections, assets, palettes, gradients, fonts, presets have to be move manually.",
|
||||
"migrate_files": "Migrate files",
|
||||
"migrate_open_directory": "Open directory",
|
||||
|
||||
"palette_change_preview_size": "Change preview size",
|
||||
|
||||
"graph_export_scale": "Scale",
|
||||
"graph_export_padding": "Padding",
|
||||
"graph_export_solid_background": "Solid Background",
|
||||
"graph_export_background_color": "Background Color",
|
||||
"graph_export_render_grid": "Render Grid",
|
||||
"graph_export_grid_color": "Grid Color",
|
||||
"graph_export_grid_opacity": "Grid Opacity",
|
||||
"graph_export_border": "Border",
|
||||
"graph_export_border_color": "Border Color",
|
||||
"graph_export_border_opacity": "Border Opacity",
|
||||
|
||||
"panel_node_goto": "Go to node",
|
||||
"panel_tunnel_create_tunnel": "Create tunnel",
|
||||
"panel_tunnel_no_key": "No key",
|
||||
|
||||
"panel_globalvar_add": "Add variable",
|
||||
|
||||
"widget_area_center_Span": "Center + Span",
|
||||
"widget_area_padding": "Padding",
|
||||
"widget_area_two_points": "Two points",
|
||||
"widget_area_fill_surface": "Full surface",
|
||||
"widget_font_open_folder": "Open font folder",
|
||||
|
||||
"dialog_revert_and_exit": "Revert and exit",
|
||||
|
||||
"dialog_connection_title": "Connection settings",
|
||||
"dialog_connection_thickness": "Line thickness",
|
||||
"dialog_connection_radius": "Corner radius",
|
||||
|
||||
"dialog_group_order_title": "Input order",
|
||||
"dialog_group_order_add": "Add separator",
|
||||
|
||||
"dialog_exit_title": "Project modified",
|
||||
"dialog_exit_content": "Save progress before close?",
|
||||
|
||||
"contest_open_discord": "Open in Discord",
|
||||
|
||||
"splash_clear_recent": "Clear recent files",
|
||||
"splash_hide_thumbnail": "Hide thumbnail",
|
||||
"splash_show_thumbnail": "Show thumbnail",
|
||||
"splash_open_autosave": "Open autosave folder",
|
||||
|
||||
"workshop_open": "Open Steam Workshop",
|
||||
|
||||
"workspace_replace_current": "Replace with current",
|
||||
|
||||
"" : ""
|
||||
}
|
3
datafiles/data/locale/sample locale/config.json
Normal file
3
datafiles/data/locale/sample locale/config.json
Normal file
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"per_character_line_break": false
|
||||
}
|
BIN
datafiles/data/locale/sample locale/fonts/FiraCode-Medium.ttf
Normal file
BIN
datafiles/data/locale/sample locale/fonts/FiraCode-Medium.ttf
Normal file
Binary file not shown.
BIN
datafiles/data/locale/sample locale/fonts/NotoSans-Bold.ttf
Normal file
BIN
datafiles/data/locale/sample locale/fonts/NotoSans-Bold.ttf
Normal file
Binary file not shown.
BIN
datafiles/data/locale/sample locale/fonts/NotoSans-Medium.ttf
Normal file
BIN
datafiles/data/locale/sample locale/fonts/NotoSans-Medium.ttf
Normal file
Binary file not shown.
BIN
datafiles/data/locale/sample locale/fonts/NotoSans-SemiBold.ttf
Normal file
BIN
datafiles/data/locale/sample locale/fonts/NotoSans-SemiBold.ttf
Normal file
Binary file not shown.
38
datafiles/data/locale/sample locale/fonts/fonts.json
Normal file
38
datafiles/data/locale/sample locale/fonts/fonts.json
Normal file
|
@ -0,0 +1,38 @@
|
|||
{
|
||||
"h1": {
|
||||
"path": "./NotoSans-Medium.ttf",
|
||||
"size": 48
|
||||
},
|
||||
"h3": {
|
||||
"path": "./NotoSans-Bold.ttf",
|
||||
"size": 20
|
||||
},
|
||||
"h5": {
|
||||
"path": "./NotoSans-Bold.ttf",
|
||||
"size": 16
|
||||
},
|
||||
"p0": {
|
||||
"path": "./NotoSans-Medium.ttf",
|
||||
"size": 12
|
||||
},
|
||||
"p0b": {
|
||||
"path": "./NotoSans-Bold.ttf",
|
||||
"size": 12
|
||||
},
|
||||
"p1": {
|
||||
"path": "./NotoSans-SemiBold.ttf",
|
||||
"size": 11
|
||||
},
|
||||
"p2": {
|
||||
"path": "./NotoSans-SemiBold.ttf",
|
||||
"size": 10
|
||||
},
|
||||
"p3": {
|
||||
"path": "./NotoSans-SemiBold.ttf",
|
||||
"size": 9
|
||||
},
|
||||
"code": {
|
||||
"path": "./FiraCode-Medium.ttf",
|
||||
"size": 12
|
||||
}
|
||||
}
|
11158
datafiles/data/locale/sample locale/nodes.json
Normal file
11158
datafiles/data/locale/sample locale/nodes.json
Normal file
File diff suppressed because it is too large
Load diff
192
datafiles/data/locale/sample locale/words.json
Normal file
192
datafiles/data/locale/sample locale/words.json
Normal file
|
@ -0,0 +1,192 @@
|
|||
{
|
||||
"2d_operations": "2D operations",
|
||||
"3d_generates": "3D generates",
|
||||
"3d_object": "3D object",
|
||||
"3d_operations": "3D operations",
|
||||
"3d_vertex": "3D vertex",
|
||||
"3d": "3D",
|
||||
"accept": "Accept",
|
||||
"actions": "Actions",
|
||||
"active": "Active",
|
||||
"add_preset": "Add to preset",
|
||||
"add": "Add",
|
||||
"addons": "Addons",
|
||||
"alias": "Alias",
|
||||
"align": "Align",
|
||||
"all": "All",
|
||||
"animation": "Animation",
|
||||
"animations": "Animations",
|
||||
"apply": "Apply",
|
||||
"arrays": "Arrays",
|
||||
"art_by": "Art by",
|
||||
"assets": "Assets",
|
||||
"atlas": "Atlas",
|
||||
"audio": "Audio",
|
||||
"author": "Author",
|
||||
"blurs": "Blurs",
|
||||
"boolean": "Boolean",
|
||||
"by": "By ",
|
||||
"cache": "Cache",
|
||||
"cancel": "Cancel",
|
||||
"close_program": "Close program",
|
||||
"close": "Close",
|
||||
"collapse_all": "Collapse all",
|
||||
"collections": "Collections",
|
||||
"color": "Color",
|
||||
"colors": "Colors",
|
||||
"combines": "Combines",
|
||||
"compose": "Compose",
|
||||
"composes": "Composes",
|
||||
"contact_info": "Contact info",
|
||||
"contests": "Contests",
|
||||
"control": "Control",
|
||||
"conversions": "Conversions",
|
||||
"copy": "Copy",
|
||||
"curve_object": "Curve object",
|
||||
"debug": "Debug",
|
||||
"delete": "Delete",
|
||||
"description": "Description",
|
||||
"dev": "Dev",
|
||||
"distribute": "Distribute",
|
||||
"dont_save": "Don't save",
|
||||
"drawer": "Drawer",
|
||||
"duplicate": "Duplicate",
|
||||
"edit": "Edit",
|
||||
"effects": "Effects",
|
||||
"enabled": "Enabled",
|
||||
"errors": "Errors",
|
||||
"expand_all": "Expand all",
|
||||
"export": "Export",
|
||||
"false": "False",
|
||||
"favourites": "Favourites",
|
||||
"feedback": "Feedback",
|
||||
"file": "File",
|
||||
"files": "Files",
|
||||
"filter": "Filter",
|
||||
"fixes": "Fixes",
|
||||
"fluid_odmain": "Fluid domain",
|
||||
"fluidsim": "FluidSim",
|
||||
"fps": "fps",
|
||||
"frame": "Frame",
|
||||
"fullscreen": "Fullscreen",
|
||||
"generate": "Generate",
|
||||
"getting_started": "Getting started",
|
||||
"global": "Global",
|
||||
"gradient": "Gradient",
|
||||
"gradients": "Gradients",
|
||||
"graph": "Graph",
|
||||
"grid": "Grid",
|
||||
"group": "Group",
|
||||
"groups": "Groups",
|
||||
"help": "Help",
|
||||
"hidden": "Hidden",
|
||||
"history": "History",
|
||||
"horizontal": "Horizontal",
|
||||
"hotkeys": "Hotkeys",
|
||||
"ignore": "Ignore",
|
||||
"images": "Images",
|
||||
"import": "Import",
|
||||
"inspect": "Inspect",
|
||||
"inspector": "Inspector",
|
||||
"interface": "Interface",
|
||||
"io": "IO",
|
||||
"link_values": "Link values",
|
||||
"lock": "Lock",
|
||||
"loop": "Loop",
|
||||
"lua": "Lua",
|
||||
"max": "Max",
|
||||
"menu": "Menu",
|
||||
"mesh_object": "Mesh object",
|
||||
"mesh": "Mesh",
|
||||
"metadata": "Metadata",
|
||||
"min": "Min",
|
||||
"mode": "Mode",
|
||||
"move": "Move",
|
||||
"name": "Name",
|
||||
"network": "Network",
|
||||
"new": "New",
|
||||
"node": "Node",
|
||||
"nodes": "Nodes",
|
||||
"noises": "Noises",
|
||||
"notifications": "Notifications",
|
||||
"numbers": "Numbers",
|
||||
"object": "Object",
|
||||
"open": "Open",
|
||||
"organize": "Organize",
|
||||
"others": "Others",
|
||||
"outputs": "Outputs",
|
||||
"palettes": "Palettes",
|
||||
"panels": "Panels",
|
||||
"particle_object": "Particle object",
|
||||
"paste": "Paste",
|
||||
"path_object": "Path object",
|
||||
"paths": "Paths",
|
||||
"patterns": "Patterns",
|
||||
"pause": "Pause",
|
||||
"pin": "Pin",
|
||||
"play": "Play",
|
||||
"populate": "Populate",
|
||||
"position": "Position",
|
||||
"preferences": "Preferences",
|
||||
"preset_new": "New preset",
|
||||
"presets": "Presets",
|
||||
"preview": "Preview",
|
||||
"raw_data": "Raw data",
|
||||
"recent_files": "Recent files",
|
||||
"recents": "Recents",
|
||||
"reconnect": "Reconnect",
|
||||
"recursive": "Recursive",
|
||||
"redo": "Redo",
|
||||
"refresh_server": "Refresh server",
|
||||
"refresh": "Refresh",
|
||||
"remove": "Remove",
|
||||
"rendering": "Rendering",
|
||||
"reset_all": "Reset all",
|
||||
"reset_view": "Reset view",
|
||||
"reset": "Reset",
|
||||
"restore": "Restore",
|
||||
"rigidbody_object": "Rigidbody object",
|
||||
"rigidsim": "RigidSim",
|
||||
"sample_projects": "Sample projects",
|
||||
"save_as": "Save as",
|
||||
"save": "Save",
|
||||
"select": "Select",
|
||||
"set_to_center": "Set to center",
|
||||
"show_on_startup": "Show on startup",
|
||||
"simulation": "Simulation",
|
||||
"splash_screen": "Splash screen",
|
||||
"stop": "Stop",
|
||||
"strand_object": "Strand object",
|
||||
"strandsim": "StrandSim",
|
||||
"struct": "Struct",
|
||||
"submissions": "Submissions",
|
||||
"tags": "Tags",
|
||||
"test": "Test",
|
||||
"texts": "Texts",
|
||||
"theme": "Theme",
|
||||
"transform": "Transform",
|
||||
"transformations": "Transformations",
|
||||
"trigger": "Trigger",
|
||||
"true": "True",
|
||||
"tunnels": "Tunnels",
|
||||
"type": "Type",
|
||||
"undo": "Undo",
|
||||
"ungroup": "Ungroup",
|
||||
"unlink_values": "Unlink values",
|
||||
"unpin": "Unpin",
|
||||
"unsubscribe": "Unsubscribe",
|
||||
"values": "Values",
|
||||
"vertical": "Vertical",
|
||||
"vfx": "VFX",
|
||||
"view_grid": "Grid view",
|
||||
"view_list": "List view",
|
||||
"visibility": "Visibility",
|
||||
"warning": "Warning",
|
||||
"warnings": "Warnings",
|
||||
"warps": "Warps",
|
||||
"workspace": "Workspace",
|
||||
"zoom_in": "Zoom in",
|
||||
"zoom_out": "Zoom out",
|
||||
"zoom_to_fit": "Zoom to fit",
|
||||
"zoom": "Zoom"
|
||||
}
|
Binary file not shown.
|
@ -398,9 +398,7 @@ event_inherited();
|
|||
|
||||
function overrideColor() {
|
||||
var path = DIRECTORY + "themes/" + PREF_MAP[? "theme"] + "/override.json";
|
||||
var f = file_text_open_write(path);
|
||||
file_text_write_string(f, json_stringify(COLORS));
|
||||
file_text_close(f);
|
||||
json_save_struct(path, COLORS, true);
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
|
|
@ -210,19 +210,21 @@ event_inherited();
|
|||
#region contest
|
||||
discord_map = ds_map_create();
|
||||
discord_map[? "Authorization"] = "Bot " + get_discord_bot_token();
|
||||
|
||||
|
||||
contest_req = noone;
|
||||
contest_message_req = [];
|
||||
|
||||
if(os_is_network_connected()) {
|
||||
var url = "https://discord.com/api/v10/guilds/953634069646835773/threads/active";
|
||||
contest_req = http_request(url, "GET", discord_map, "");
|
||||
contest_message_req = [];
|
||||
}
|
||||
|
||||
nicknames = ds_map_create();
|
||||
attachment = ds_map_create();
|
||||
contests = [];
|
||||
contests = [];
|
||||
|
||||
grid_surface = surface_create(1, 1);
|
||||
banner = noone;
|
||||
banner = noone;
|
||||
banner_alpha = 0;
|
||||
|
||||
contest_viewing = noone;
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
/// @description
|
||||
if(async_load[? "id"] == contest_req) { //get contests
|
||||
var r_str = async_load[? "result"];
|
||||
if(is_undefined(r_str)) return;
|
||||
if(is_undefined(r_str)) exit;
|
||||
|
||||
var thr_str = json_parse(r_str);
|
||||
var thr_str = json_try_parse(r_str, noone);
|
||||
if(thr_str == noone) exit;
|
||||
|
||||
if(struct_has(thr_str, "threads")) {
|
||||
var thrs = thr_str.threads;
|
||||
|
@ -26,16 +27,18 @@ if(async_load[? "id"] == contest_req) { //get contests
|
|||
project_page++;
|
||||
}
|
||||
|
||||
return;
|
||||
exit;
|
||||
}
|
||||
|
||||
for( var i = 0, n = array_length(contest_message_req); i < n; i++ ) {
|
||||
if(async_load[? "id"] != contest_message_req[i][0]) continue;
|
||||
|
||||
var r_str = async_load[? "result"];
|
||||
if(is_undefined(r_str)) return;
|
||||
if(is_undefined(r_str)) exit;
|
||||
|
||||
var msgs = json_try_parse(r_str, noone);
|
||||
if(msgs == noone) exit;
|
||||
|
||||
var msgs = json_parse(r_str);
|
||||
var ind = contest_message_req[i][1];
|
||||
var thr = contests[ind];
|
||||
thr.messages = msgs;
|
||||
|
@ -79,7 +82,7 @@ for( var i = 0, n = array_length(contest_message_req); i < n; i++ ) {
|
|||
} else
|
||||
thr.title.attachments = noone;
|
||||
|
||||
return;
|
||||
exit;
|
||||
}
|
||||
|
||||
var keys = ds_map_keys_to_array(nicknames);
|
||||
|
@ -90,12 +93,14 @@ for( var i = 0, n = array_length(keys); i < n; i++ ) {
|
|||
if(async_load[? "id"] != nick[0]) continue;
|
||||
|
||||
var r_str = async_load[? "result"];
|
||||
if(is_undefined(r_str)) return;
|
||||
if(is_undefined(r_str)) exit;
|
||||
|
||||
var auth = json_try_parse(r_str, noone);
|
||||
if(auth == noone) exit;
|
||||
|
||||
var auth = json_parse(r_str);
|
||||
nicknames[? keys[i]] = struct_try_get(auth, "nick", nick[1]);
|
||||
|
||||
return;
|
||||
exit;
|
||||
}
|
||||
|
||||
var keys = ds_map_keys_to_array(attachment);
|
||||
|
@ -109,7 +114,7 @@ for( var i = 0, n = array_length(keys); i < n; i++ ) {
|
|||
|
||||
if(!file_exists(path)) {
|
||||
attachment[? keys[i]] = noone;
|
||||
return;
|
||||
exit;
|
||||
}
|
||||
|
||||
var spr = sprite_add(path, 0, false, 0, 0, 0);
|
||||
|
@ -118,5 +123,5 @@ for( var i = 0, n = array_length(keys); i < n; i++ ) {
|
|||
var _sh = sprite_get_height(spr);
|
||||
sprite_set_offset(spr, _sw / 2, _sh / 2);
|
||||
|
||||
return;
|
||||
exit;
|
||||
}
|
|
@ -25,14 +25,8 @@ function _loadColor(theme = "default", replace = false) {
|
|||
return;
|
||||
}
|
||||
|
||||
var oclr = {};
|
||||
if(file_exists(pathO)) {
|
||||
var s = file_text_read_all(pathO);
|
||||
oclr = json_try_parse(s);
|
||||
}
|
||||
|
||||
var s = file_text_read_all(path);
|
||||
var clrs = json_try_parse(s);
|
||||
var clrs = json_load_struct(path);
|
||||
var oclr = file_exists(pathO)? json_load_struct(pathO) : {};
|
||||
|
||||
var valkeys = variable_struct_get_names(clrs.values);
|
||||
if(replace) THEME_VALUE = clrs.values;
|
||||
|
|
|
@ -3,12 +3,14 @@ globalvar FONT_ISLOADED, f_h1, f_h3, f_h5, f_p0, f_p0b, f_p1, f_p2, f_p3, f_code
|
|||
FONT_ISLOADED = false;
|
||||
|
||||
function _font_path(rel) {
|
||||
var defPath = DIRECTORY + "themes/" + PREF_MAP[? "theme"] + "/fonts/" + string_replace_all(rel, "./", "");
|
||||
rel = string_replace_all(rel, "./", "");
|
||||
|
||||
var defPath = $"{DIRECTORY}themes/{PREF_MAP[? "theme"]}/fonts/{rel}";
|
||||
|
||||
if(LOCALE.fontDir == noone)
|
||||
return defPath;
|
||||
|
||||
var overridePath = LOCALE.fontDir + string_replace_all(rel, "./", "");
|
||||
var overridePath = $"{LOCALE.fontDir}{rel}";
|
||||
if(file_exists(overridePath))
|
||||
return overridePath;
|
||||
|
||||
|
@ -24,7 +26,10 @@ function _font_load_from_struct(str, def) {
|
|||
}
|
||||
|
||||
font_add_enable_aa(THEME_VALUE.font_aa);
|
||||
return font_add(path, str.size * UI_SCALE, false, false, 0, 0);
|
||||
var _font = font_add(path, str.size * UI_SCALE, false, false, 0, 0);
|
||||
//font_enable_sdf(_font, true);
|
||||
|
||||
return _font;
|
||||
}
|
||||
|
||||
function font_clear(font) { if(font_exists(font)) font_delete(font); }
|
||||
|
|
|
@ -109,10 +109,10 @@
|
|||
|
||||
globalvar VERSION, SAVE_VERSION, VERSION_STRING, BUILD_NUMBER;
|
||||
|
||||
VERSION = 11482;
|
||||
SAVE_VERSION = 11481;
|
||||
VERSION_STRING = "1.15rc2";
|
||||
BUILD_NUMBER = 11482;
|
||||
VERSION = 11483;
|
||||
SAVE_VERSION = 11482;
|
||||
VERSION_STRING = "1.15rc3";
|
||||
BUILD_NUMBER = 11483;
|
||||
|
||||
globalvar APPEND_MAP;
|
||||
APPEND_MAP = ds_map_create();
|
||||
|
|
|
@ -74,7 +74,7 @@ function drawWidget(xx, yy, ww, _m, jun, global_var = true, _hover = false, _foc
|
|||
|
||||
draw_set_text(lineBreak? f_p0 : f_p1, fa_left, fa_center, cc);
|
||||
draw_text_add(xx + ui(40), lb_y - ui(2), jun.name);
|
||||
var lb_w = string_width(jun.name) + ui(32);
|
||||
var lb_w = string_width(jun.name) + ui(48);
|
||||
|
||||
#region tooltip
|
||||
if(jun.tooltip != "") {
|
||||
|
|
|
@ -77,7 +77,7 @@ function Node_Display_Text(_x, _y, _group = noone) : Node(_x, _y, _group) constr
|
|||
_tw = string_width(_bch) * _s;
|
||||
_th = string_height(_bch) * _s;
|
||||
|
||||
draw_sprite_stretched_points(THEME.ui_selection, 0, _tx - 4, _y - 4, _tx + _tw + 4, _y + _th + 4);
|
||||
draw_sprite_stretched_points(THEME.node_bg, 0, _tx - 4, _y - 4, _tx + _tw + 4, _y + _th + 4);
|
||||
|
||||
draw_set_color(_cc);
|
||||
draw_text_transformed(_tx, _y, _bch, _s, _s, 0);
|
||||
|
@ -189,7 +189,7 @@ function Node_Display_Text(_x, _y, _group = noone) : Node(_x, _y, _group) constr
|
|||
var _tx = _line_man[i];
|
||||
|
||||
while(string_length(_tx) > 0) {
|
||||
var sp = min(string_pos("\n", _tx), string_pos(" ", _tx));
|
||||
var sp = min(string_pos(" ", _tx));
|
||||
if(sp == 0) sp = string_length(_tx);
|
||||
|
||||
var _ps = string_copy(_tx, 1, sp);
|
||||
|
@ -201,9 +201,6 @@ function Node_Display_Text(_x, _y, _group = noone) : Node(_x, _y, _group) constr
|
|||
} else if(string_length(_tx) <= 0) {
|
||||
array_push(_lines, ss + _ps);
|
||||
ss = "";
|
||||
} else if(string_char_at(_ps, string_length(_ps)) == "\n") {
|
||||
array_push(_lines, ss + _ps);
|
||||
ss = "";
|
||||
} else
|
||||
ss += _ps;
|
||||
}
|
||||
|
|
|
@ -22,7 +22,7 @@ function Node_Region_Fill(_x, _y, _group = noone) : Node_Processor(_x, _y, _grou
|
|||
temp_surface = [ surface_create(1, 1), surface_create(1, 1) ];
|
||||
|
||||
static step = function() {
|
||||
var _fill = current_data[3];
|
||||
var _fill = inputs[| 3].getValue();
|
||||
|
||||
inputs[| 2].setVisible(_fill);
|
||||
inputs[| 4].setVisible(_fill);
|
||||
|
@ -42,22 +42,20 @@ function Node_Region_Fill(_x, _y, _group = noone) : Node_Processor(_x, _y, _grou
|
|||
temp_surface[0] = surface_verify(temp_surface[0], _sw, _sh);
|
||||
temp_surface[1] = surface_verify(temp_surface[1], _sw, _sh);
|
||||
|
||||
surface_set_target(temp_surface[0])
|
||||
DRAW_CLEAR
|
||||
surface_reset_target();
|
||||
surface_clear(temp_surface[0]);
|
||||
|
||||
surface_set_target(temp_surface[1])
|
||||
DRAW_CLEAR
|
||||
surface_set_shader(temp_surface[1], sh_region_fill_init);
|
||||
draw_surface(_surf, 0, 0);
|
||||
surface_reset_target();
|
||||
surface_reset_shader();
|
||||
|
||||
var base = 0;
|
||||
var amo = ceil(log2(max(_sw, _sh))) + 1;
|
||||
var amo = _sw + _sh;
|
||||
|
||||
repeat(amo) {
|
||||
for( var i = 0; i < amo; i++ ) {
|
||||
surface_set_shader(temp_surface[base], sh_region_fill_coordinate);
|
||||
shader_set_f("dimension", _sw, _sh);
|
||||
draw_surface(temp_surface[!base], 0, 0);
|
||||
|
||||
surface_reset_shader();
|
||||
|
||||
base = !base;
|
||||
|
|
|
@ -123,23 +123,23 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor {
|
|||
ds_list_add(filter, "Loops");
|
||||
addNodeObject(filter, "Index", s_node_iterator_index, "Node_Iterator_Index", [1, Node_Iterator_Index]);
|
||||
addNodeObject(filter, "Array Length", s_node_iterator_length, "Node_Iterator_Each_Length", [1, Node_Iterator_Each_Length]);
|
||||
|
||||
|
||||
var feed = ds_list_create();
|
||||
addNodeCatagory("Feedback", feed, ["Node_Feedback"]);
|
||||
ds_list_add(feed, "Groups");
|
||||
addNodeObject(feed, "Input", s_node_feedback_input, "Node_Feedback_Input", [1, Node_Feedback_Input]);
|
||||
addNodeObject(feed, "Output", s_node_feedback_output, "Node_Feedback_Output", [1, Node_Feedback_Output]);
|
||||
|
||||
|
||||
var vfx = ds_list_create();
|
||||
addNodeCatagory("VFX", vfx, ["Node_VFX_Group"]);
|
||||
ds_list_add(vfx, "Groups");
|
||||
addNodeObject(vfx, "Input", s_node_vfx_input, "Node_Group_Input", [1, Node_Group_Input]);
|
||||
addNodeObject(vfx, "Output", s_node_vfx_output, "Node_Group_Output", [1, Node_Group_Output]);
|
||||
|
||||
|
||||
ds_list_add(vfx, "VFXs");
|
||||
addNodeObject(vfx, "Spawner", s_node_vfx_spawn, "Node_VFX_Spawner", [1, Node_VFX_Spawner]);
|
||||
addNodeObject(vfx, "Renderer", s_node_vfx_render, "Node_VFX_Renderer", [1, Node_VFX_Renderer]);
|
||||
|
||||
|
||||
ds_list_add(vfx, "Affectors");
|
||||
addNodeObject(vfx, "Accelerate", s_node_vfx_accel, "Node_VFX_Accelerate", [1, Node_VFX_Accelerate]);
|
||||
addNodeObject(vfx, "Destroy", s_node_vfx_destroy, "Node_VFX_Destroy", [1, Node_VFX_Destroy]);
|
||||
|
@ -148,7 +148,7 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor {
|
|||
addNodeObject(vfx, "Vortex", s_node_vfx_vortex, "Node_VFX_Vortex", [1, Node_VFX_Vortex]);
|
||||
addNodeObject(vfx, "Turbulence", s_node_vfx_turb, "Node_VFX_Turbulence", [1, Node_VFX_Turbulence]);
|
||||
addNodeObject(vfx, "Repel", s_node_vfx_repel, "Node_VFX_Repel", [1, Node_VFX_Repel]);
|
||||
|
||||
|
||||
ds_list_add(vfx, "Instance control");
|
||||
addNodeObject(vfx, "VFX Variable", s_node_vfx_variable, "Node_VFX_Variable", [1, Node_VFX_Variable]).setVersion(1120);
|
||||
addNodeObject(vfx, "VFX Override", s_node_vfx_override, "Node_VFX_Override", [1, Node_VFX_Override]).setVersion(1120);
|
||||
|
@ -242,7 +242,7 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor {
|
|||
ds_list_add(input, "Network");
|
||||
addNodeObject(input, "Websocket Receiver", s_node_websocket_receive, "Node_Websocket_Receiver", [1, Node_Websocket_Receiver],, "Create websocket server to receive data from the network.").setVersion(1145);
|
||||
addNodeObject(input, "Websocket Sender", s_node_websocket_send, "Node_Websocket_Sender", [1, Node_Websocket_Sender],, "Create websocket server to send data to the network.").setVersion(1145);
|
||||
|
||||
|
||||
var transform = ds_list_create();
|
||||
addNodeCatagory("Transform", transform);
|
||||
ds_list_add(transform, "Transformations");
|
||||
|
@ -250,7 +250,7 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor {
|
|||
addNodeObject(transform, "Scale", s_node_scale, "Node_Scale", [1, Node_Scale], ["resize"], "Simple node for scaling image.");
|
||||
addNodeObject(transform, "Scale Algorithm", s_node_scale_algo, "Node_Scale_Algo", [0, Node_create_Scale_Algo], ["scale2x", "scale3x"], "Scale image using scale2x, scale3x algorithm.");
|
||||
addNodeObject(transform, "Flip", s_node_flip, "Node_Flip", [1, Node_Flip], ["mirror"], "Flip image horizontally or vertically.");
|
||||
|
||||
|
||||
ds_list_add(transform, "Warps");
|
||||
addNodeObject(transform, "Crop", s_node_crop, "Node_Crop", [1, Node_Crop],, "Crop out image to create smaller ones.");
|
||||
addNodeObject(transform, "Crop Content", s_node_crop_content, "Node_Crop_Content", [1, Node_Crop_Content],, "Crop out empty pixel pixel from the image.");
|
||||
|
@ -259,7 +259,7 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor {
|
|||
addNodeObject(transform, "Mesh Warp", s_node_warp_mesh, "Node_Mesh_Warp", [1, Node_Mesh_Warp], ["mesh wrap"], "Wrap image by converting it to mesh, and using control points.");
|
||||
addNodeObject(transform, "Polar", s_node_polar, "Node_Polar", [1, Node_Polar],, "Convert image to polar coordinate.");
|
||||
addNodeObject(transform, "Area Warp", s_node_padding, "Node_Wrap_Area", [1, Node_Wrap_Area],, "Wrap image to fit area value (x, y, w, h).");
|
||||
|
||||
|
||||
ds_list_add(transform, "Others");
|
||||
addNodeObject(transform, "Composite", s_node_compose, "Node_Composite", [1, Node_Composite], ["merge"], "Combine multiple images with controllable position, rotation, scale.");
|
||||
addNodeObject(transform, "Nine Slice", s_node_9patch, "Node_9Slice", [1, Node_9Slice], ["9 slice", "splice"], "Cut image into 3x3 parts, and scale/repeat only the middle part.");
|
||||
|
@ -290,7 +290,7 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor {
|
|||
addNodeObject(filter, "Texture Remap", s_node_texture_map, "Node_Texture_Remap", [1, Node_Texture_Remap],, "Remap image using texture map. Where red channel control x position and green channel control y position.");
|
||||
addNodeObject(filter, "Time Remap", s_node_time_map, "Node_Time_Remap", [1, Node_Time_Remap],, "Remap image using texture as time map. Where brighter pixel means using pixel from an older frame.");
|
||||
addNodeObject(filter, "Morph Surface", s_node_morph_surface, "Node_Morph_Surface", [1, Node_Morph_Surface],, "Morph pixel bewteen two surfaces.").setVersion(1141);
|
||||
|
||||
|
||||
ds_list_add(filter, "Effects");
|
||||
addNodeObject(filter, "Outline", s_node_border, "Node_Outline", [1, Node_Outline], ["border"], "Add border to the image.");
|
||||
addNodeObject(filter, "Glow", s_node_glow, "Node_Glow", [1, Node_Glow],, "Apply glow to the border of the image.");
|
||||
|
@ -329,17 +329,17 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor {
|
|||
addNodeObject(filter, "Curve", s_node_curve_edit, "Node_Curve", [1, Node_Curve],, "Adjust brightness of an image using curves.").setVersion(1120);
|
||||
addNodeObject(filter, "Threshold", s_node_threshold, "Node_Threshold", [1, Node_Threshold],, "Set a threshold where pixel darker will becomes black, and brighter to white. Also works with alpha.").setVersion(1080);
|
||||
addNodeObject(filter, "Alpha Cutoff", s_node_alpha_cut, "Node_Alpha_Cutoff", [1, Node_Alpha_Cutoff], ["remove alpha"], "Remove pixel with low alpha value.");
|
||||
|
||||
|
||||
ds_list_add(filter, "Conversions");
|
||||
addNodeObject(filter, "RGBA Extract", s_node_RGB, "Node_RGB_Channel", [1, Node_RGB_Channel], ["channel extract"], "Extract RGBA channel on an image, each channel becomes its own image.");
|
||||
addNodeObject(filter, "HSV Extract", s_node_HSV, "Node_HSV_Channel", [1, Node_HSV_Channel],, "Extract HSVA channel on an image, each channel becomes its own image.").setVersion(1070);
|
||||
addNodeObject(filter, "Alpha to Grey", s_node_alpha_grey, "Node_Alpha_Grey", [1, Node_Alpha_Grey],, "Convert alpha value into solid greyscale.");
|
||||
addNodeObject(filter, "Grey to Alpha", s_node_grey_alpha, "Node_Grey_Alpha", [1, Node_Grey_Alpha],, "Convert greyscale to alpha value.");
|
||||
|
||||
|
||||
ds_list_add(filter, "Fixes");
|
||||
addNodeObject(filter, "De-Corner", s_node_decorner, "Node_De_Corner", [1, Node_De_Corner], ["decorner"], "Attempt to remove single pixel corner from the image.");
|
||||
addNodeObject(filter, "De-Stray", s_node_destray, "Node_De_Stray", [1, Node_De_Stray], ["destray"], "Attempt to remove orphan pixel.");
|
||||
|
||||
|
||||
var threeD = ds_list_create();
|
||||
addNodeCatagory("3D", threeD);
|
||||
ds_list_add(threeD, "2D operations");
|
||||
|
@ -348,7 +348,7 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor {
|
|||
addNodeObject(threeD, "Bevel", s_node_bevel, "Node_Bevel", [1, Node_Bevel], ["shade", "auto shade"], "Apply 2D bevel on the image.");
|
||||
addNodeObject(threeD, "Sprite Stack", s_node_stack, "Node_Sprite_Stack", [1, Node_Sprite_Stack],, "Create sprite stack either from repeating a single image or stacking different images using array.");
|
||||
///**/ addNodeObject(threeD, "Depth 3D", s_node_stack, "Node_3D_Depth", [1, Node_3D_Depth],, "Create 3D looking image from depth map.").setVersion(1447);
|
||||
|
||||
|
||||
ds_list_add(threeD, "3D generates");
|
||||
addNodeObject(threeD, "3D Object", s_node_3d_obj, "Node_3D_Obj", [0, Node_create_3D_Obj],, "Load .obj file from your computer as a 3D object.");
|
||||
addNodeObject(threeD, "3D Plane", s_node_3d_plane, "Node_3D_Plane", [1, Node_3D_Plane],, "Put 2D image on a plane in 3D space.");
|
||||
|
@ -357,7 +357,7 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor {
|
|||
addNodeObject(threeD, "3D Sphere", s_node_3d_sphere, "Node_3D_Sphere", [1, Node_3D_Sphere]).setVersion(1090);
|
||||
addNodeObject(threeD, "3D Cone", s_node_3d_cone, "Node_3D_Cone", [1, Node_3D_Cone]).setVersion(1090);
|
||||
addNodeObject(threeD, "3D Extrude", s_node_3d_extrude, "Node_3D_Extrude", [1, Node_3D_Extrude],, "Extrude 2D image into 3D object.");
|
||||
|
||||
|
||||
ds_list_add(threeD, "3D operations");
|
||||
addNodeObject(threeD, "3D Transform", s_node_3d_transform, "Node_3D_Transform", [1, Node_3D_Transform]).setVersion(1080);
|
||||
addNodeObject(threeD, "3D Combine", s_node_3d_obj_combine, "Node_3D_Combine", [1, Node_3D_Combine],, "Combine multiple 3D object to a single scene,").setVersion(1080);
|
||||
|
@ -372,7 +372,7 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor {
|
|||
addNodeObject(generator, "Solid", s_node_solid, "Node_Solid", [1, Node_Solid],, "Create image of a single color.");
|
||||
addNodeObject(generator, "Draw Gradient", s_node_gradient, "Node_Gradient", [1, Node_Gradient],, "Create image from gradient.");
|
||||
addNodeObject(generator, "4 Points Gradient", s_node_gradient_4points, "Node_Gradient_Points", [1, Node_Gradient_Points],, "Create image from 4 color points.");
|
||||
|
||||
|
||||
ds_list_add(generator, "Drawer");
|
||||
//addNodeObject(generator, "Pixel Builder", s_node_pixel_builder, "Node_Pixel_Builder", [1, Node_Pixel_Builder]).setVersion(1147);
|
||||
addNodeObject(generator, "Line", s_node_line, "Node_Line", [1, Node_Line],, "Draw line on an image. Connect path data to it to draw line from path.");
|
||||
|
@ -408,15 +408,15 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor {
|
|||
addNodeObject(generator, "RigidSim Global", s_node_rigidSim_global, "Node_Rigid_Global", [1, Node_Rigid_Global]).setVersion(1110);
|
||||
addNodeObject(generator, "FluidSim", s_node_fluidSim_group, "Node_Fluid_Group", [1, Node_Fluid_Group],, "Create group for fluid simulation.").setVersion(1120);
|
||||
addNodeObject(generator, "StrandSim", s_node_strandSim, "Node_Strand_Group", [1, Node_Strand_Group], ["Hair"], "Create group for hair simulation.").setVersion(1140);
|
||||
|
||||
|
||||
ds_list_add(generator, "Region");
|
||||
addNodeObject(generator, "Separate Shape", s_node_sepearte_shape, "Node_Seperate_Shape", [1, Node_Seperate_Shape],, "Separate disconnected pixel each into an image in an image array.");
|
||||
addNodeObject(generator, "Region Fill", s_node_region_fill, "Node_Region_Fill", [1, Node_Region_Fill]).setVersion(1147);
|
||||
addNodeObject(generator, "Region Fill", s_node_region_fill, "Node_Region_Fill", [1, Node_Region_Fill],, "Fill connected pixel with the same color.").setVersion(1147);
|
||||
|
||||
ds_list_add(generator, "Others");
|
||||
addNodeObject(generator, "Flood Fill", s_node_flood_fill, "Node_Flood_Fill", [1, Node_Flood_Fill],, "Filled connected pixel given position and color.").setVersion(1133);
|
||||
addNodeObject(generator, "Bar / Graph", s_node_bar_graph, "Node_Plot_Linear", [1, Node_Plot_Linear], ["graph", "waveform", "bar chart", "plot"], "Plot graph or bar chart from array of number.").setVersion(1144);
|
||||
|
||||
|
||||
var compose = ds_list_create();
|
||||
addNodeCatagory("Compose", compose);
|
||||
ds_list_add(compose, "Composes");
|
||||
|
@ -438,7 +438,7 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor {
|
|||
ds_list_add(compose, "Export");
|
||||
addNodeObject(compose, "Export", s_node_export, "Node_Export", [0, Node_create_Export]);
|
||||
}
|
||||
|
||||
|
||||
var values = ds_list_create();
|
||||
addNodeCatagory("Values", values);
|
||||
ds_list_add(values, "Raw data");
|
||||
|
@ -447,7 +447,7 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor {
|
|||
addNodeObject(values, "Path", s_node_path, "Node_Path", [1, Node_Path]);
|
||||
addNodeObject(values, "Area", s_node_area, "Node_Area", [1, Node_Area]);
|
||||
addNodeObject(values, "Boolean", s_node_boolean, "Node_Boolean", [1, Node_Boolean]).setVersion(1090);
|
||||
|
||||
|
||||
ds_list_add(values, "Numbers");
|
||||
addNodeObject(values, "Number", s_node_number, "Node_Number", [1, Node_Number]);
|
||||
addNodeObject(values, "To Number", s_node_to_number, "Node_To_Number", [1, Node_To_Number]).setVersion(1145);
|
||||
|
@ -572,7 +572,7 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor {
|
|||
addNodeObject(color, "Gradient Shift", s_node_gradient_shift, "Node_Gradient_Shift", [1, Node_Gradient_Shift],, "Move gradients keys.");
|
||||
addNodeObject(color, "Gradient Replace", s_node_gradient_replace, "Node_Gradient_Replace_Color", [1, Node_Gradient_Replace_Color]).setVersion(1135);
|
||||
addNodeObject(color, "Gradient Data", s_node_gradient_data, "Node_Gradient_Extract", [1, Node_Gradient_Extract],, "Get palatte and array of key positions from gradient.").setVersion(1135);
|
||||
|
||||
|
||||
var animation = ds_list_create();
|
||||
addNodeCatagory("Animation", animation);
|
||||
ds_list_add(animation, "Animations");
|
||||
|
@ -587,7 +587,7 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor {
|
|||
addNodeObject(animation, "FFT", s_node_FFT, "Node_FFT", [1, Node_FFT], ["frequency analysis"], "Perform fourier transform on number array.").setVersion(1144);
|
||||
addNodeObject(animation, "Bar / Graph", s_node_bar_graph, "Node_Plot_Linear", [1, Node_Plot_Linear], ["graph", "waveform", "bar chart", "plot"], "Plot graph or bar chart from array of number.").setVersion(1144);
|
||||
addNodeObject(animation, "Audio Window", s_node_audio_trim, "Node_Audio_Window", [1, Node_Audio_Window],, "Take a slice of an audio array based on the current frame.").setVersion(1144);
|
||||
|
||||
|
||||
var node = ds_list_create();
|
||||
addNodeCatagory("Node", node);
|
||||
ds_list_add(node, "Control");
|
||||
|
@ -621,71 +621,71 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor {
|
|||
|
||||
ds_list_add(node, "Debug");
|
||||
addNodeObject(node, "Print", s_node_print, "Node_Print", [1, Node_Print], ["debug log"], "Display text to notification.").setVersion(1145);
|
||||
|
||||
|
||||
var actions = ds_list_create();
|
||||
addNodeCatagory("Actions", actions);
|
||||
__initNodeActions(actions);
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////// PIXEL BUILDER ////////////////////////////////////////////////////////////////
|
||||
|
||||
var pb_draw = ds_list_create();
|
||||
addNodePBCatagory("Draw", pb_draw);
|
||||
ds_list_add(pb_draw, "Fill");
|
||||
addNodeObject(pb_draw, "Fill", s_node_pb_draw_fill, "Node_PB_Draw_Fill", [1, Node_PB_Draw_Fill]);
|
||||
|
||||
ds_list_add(pb_draw, "Shape");
|
||||
addNodeObject(pb_draw, "Rectangle", s_node_pb_draw_rectangle, "Node_PB_Draw_Rectangle", [1, Node_PB_Draw_Rectangle]);
|
||||
addNodeObject(pb_draw, "Round Rectangle", s_node_pb_draw_roundrectangle, "Node_PB_Draw_Round_Rectangle", [1, Node_PB_Draw_Round_Rectangle]);
|
||||
addNodeObject(pb_draw, "Trapezoid", s_node_pb_draw_trapezoid, "Node_PB_Draw_Trapezoid", [1, Node_PB_Draw_Trapezoid]);
|
||||
addNodeObject(pb_draw, "Diamond", s_node_pb_draw_diamond, "Node_PB_Draw_Diamond", [1, Node_PB_Draw_Diamond]);
|
||||
addNodeObject(pb_draw, "Ellipse", s_node_pb_draw_ellipse, "Node_PB_Draw_Ellipse", [1, Node_PB_Draw_Ellipse]);
|
||||
addNodeObject(pb_draw, "Semi-Ellipse", s_node_pb_draw_semi_ellipse, "Node_PB_Draw_Semi_Ellipse", [1, Node_PB_Draw_Semi_Ellipse]);
|
||||
addNodeObject(pb_draw, "Line", s_node_pb_draw_line, "Node_PB_Draw_Line", [1, Node_PB_Draw_Line]);
|
||||
addNodeObject(pb_draw, "Angle", s_node_pb_draw_angle, "Node_PB_Draw_Angle", [1, Node_PB_Draw_Angle]);
|
||||
addNodeObject(pb_draw, "Blob", s_node_pb_draw_blob, "Node_PB_Draw_Blob", [1, Node_PB_Draw_Blob]);
|
||||
|
||||
var pb_box = ds_list_create();
|
||||
addNodePBCatagory("Box", pb_box);
|
||||
ds_list_add(pb_box, "Layer");
|
||||
addNodeObject(pb_box, "Layer", s_node_pb_layer, "Node_PB_Layer", [1, Node_PB_Layer]);
|
||||
//var pb_draw = ds_list_create();
|
||||
//addNodePBCatagory("Draw", pb_draw);
|
||||
// ds_list_add(pb_draw, "Fill");
|
||||
// addNodeObject(pb_draw, "Fill", s_node_pb_draw_fill, "Node_PB_Draw_Fill", [1, Node_PB_Draw_Fill]);
|
||||
|
||||
ds_list_add(pb_box, "Box");
|
||||
addNodeObject(pb_box, "Transform", s_node_pb_box_transform, "Node_PB_Box_Transform", [1, Node_PB_Box_Transform]);
|
||||
addNodeObject(pb_box, "Mirror", s_node_pb_box_mirror, "Node_PB_Box_Mirror", [1, Node_PB_Box_Mirror]);
|
||||
addNodeObject(pb_box, "Inset", s_node_pb_box_inset, "Node_PB_Box_Inset", [1, Node_PB_Box_Inset]);
|
||||
addNodeObject(pb_box, "Split", s_node_pb_box_split, "Node_PB_Box_Split", [1, Node_PB_Box_Split]);
|
||||
addNodeObject(pb_box, "Divide", s_node_pb_box_divide, "Node_PB_Box_Divide", [1, Node_PB_Box_Divide]);
|
||||
addNodeObject(pb_box, "Divide Grid", s_node_pb_box_divide_grid, "Node_PB_Box_Divide_Grid", [1, Node_PB_Box_Divide_Grid]);
|
||||
addNodeObject(pb_box, "Contract", s_node_pb_box_contract, "Node_PB_Box_Contract", [1, Node_PB_Box_Contract]);
|
||||
|
||||
var pb_fx = ds_list_create();
|
||||
addNodePBCatagory("Effects", pb_fx);
|
||||
ds_list_add(pb_fx, "Effect");
|
||||
addNodeObject(pb_fx, "Outline", s_node_pb_fx_outline, "Node_PB_Fx_Outline", [1, Node_PB_Fx_Outline]);
|
||||
addNodeObject(pb_fx, "Stack", s_node_pb_fx_stack, "Node_PB_Fx_Stack", [1, Node_PB_Fx_Stack]);
|
||||
addNodeObject(pb_fx, "Radial", s_node_pb_fx_radial, "Node_PB_Fx_Radial", [1, Node_PB_Fx_Radial]);
|
||||
// ds_list_add(pb_draw, "Shape");
|
||||
// addNodeObject(pb_draw, "Rectangle", s_node_pb_draw_rectangle, "Node_PB_Draw_Rectangle", [1, Node_PB_Draw_Rectangle]);
|
||||
// addNodeObject(pb_draw, "Round Rectangle", s_node_pb_draw_roundrectangle, "Node_PB_Draw_Round_Rectangle", [1, Node_PB_Draw_Round_Rectangle]);
|
||||
// addNodeObject(pb_draw, "Trapezoid", s_node_pb_draw_trapezoid, "Node_PB_Draw_Trapezoid", [1, Node_PB_Draw_Trapezoid]);
|
||||
// addNodeObject(pb_draw, "Diamond", s_node_pb_draw_diamond, "Node_PB_Draw_Diamond", [1, Node_PB_Draw_Diamond]);
|
||||
// addNodeObject(pb_draw, "Ellipse", s_node_pb_draw_ellipse, "Node_PB_Draw_Ellipse", [1, Node_PB_Draw_Ellipse]);
|
||||
// addNodeObject(pb_draw, "Semi-Ellipse", s_node_pb_draw_semi_ellipse, "Node_PB_Draw_Semi_Ellipse", [1, Node_PB_Draw_Semi_Ellipse]);
|
||||
// addNodeObject(pb_draw, "Line", s_node_pb_draw_line, "Node_PB_Draw_Line", [1, Node_PB_Draw_Line]);
|
||||
// addNodeObject(pb_draw, "Angle", s_node_pb_draw_angle, "Node_PB_Draw_Angle", [1, Node_PB_Draw_Angle]);
|
||||
// addNodeObject(pb_draw, "Blob", s_node_pb_draw_blob, "Node_PB_Draw_Blob", [1, Node_PB_Draw_Blob]);
|
||||
|
||||
ds_list_add(pb_fx, "Lighting");
|
||||
addNodeObject(pb_fx, "Highlight", s_node_pb_fx_highlight, "Node_PB_Fx_Highlight", [1, Node_PB_Fx_Highlight]);
|
||||
addNodeObject(pb_fx, "Shading", s_node_pb_fx_shading, "Node_PB_Fx_Shading", [1, Node_PB_Fx_Shading]);
|
||||
//var pb_box = ds_list_create();
|
||||
//addNodePBCatagory("Box", pb_box);
|
||||
// ds_list_add(pb_box, "Layer");
|
||||
// addNodeObject(pb_box, "Layer", s_node_pb_layer, "Node_PB_Layer", [1, Node_PB_Layer]);
|
||||
|
||||
ds_list_add(pb_fx, "Texture");
|
||||
addNodeObject(pb_fx, "Hashing", s_node_pb_fx_hash, "Node_PB_Fx_Hash", [1, Node_PB_Fx_Hash]);
|
||||
addNodeObject(pb_fx, "Strip", s_node_pb_fx_strip, "Node_PB_Fx_Strip", [1, Node_PB_Fx_Strip]);
|
||||
addNodeObject(pb_fx, "Brick", s_node_pb_fx_brick, "Node_PB_Fx_Brick", [1, Node_PB_Fx_Brick]);
|
||||
// ds_list_add(pb_box, "Box");
|
||||
// addNodeObject(pb_box, "Transform", s_node_pb_box_transform, "Node_PB_Box_Transform", [1, Node_PB_Box_Transform]);
|
||||
// addNodeObject(pb_box, "Mirror", s_node_pb_box_mirror, "Node_PB_Box_Mirror", [1, Node_PB_Box_Mirror]);
|
||||
// addNodeObject(pb_box, "Inset", s_node_pb_box_inset, "Node_PB_Box_Inset", [1, Node_PB_Box_Inset]);
|
||||
// addNodeObject(pb_box, "Split", s_node_pb_box_split, "Node_PB_Box_Split", [1, Node_PB_Box_Split]);
|
||||
// addNodeObject(pb_box, "Divide", s_node_pb_box_divide, "Node_PB_Box_Divide", [1, Node_PB_Box_Divide]);
|
||||
// addNodeObject(pb_box, "Divide Grid", s_node_pb_box_divide_grid, "Node_PB_Box_Divide_Grid", [1, Node_PB_Box_Divide_Grid]);
|
||||
// addNodeObject(pb_box, "Contract", s_node_pb_box_contract, "Node_PB_Box_Contract", [1, Node_PB_Box_Contract]);
|
||||
|
||||
ds_list_add(pb_fx, "Blend");
|
||||
addNodeObject(pb_fx, "Add", s_node_pb_fx_add, "Node_PB_Fx_Add", [1, Node_PB_Fx_Add]);
|
||||
addNodeObject(pb_fx, "Subtract", s_node_pb_fx_subtract, "Node_PB_Fx_Subtract", [1, Node_PB_Fx_Subtract]);
|
||||
addNodeObject(pb_fx, "Intersect", s_node_pb_fx_interesct, "Node_PB_Fx_Intersect", [1, Node_PB_Fx_Intersect]);
|
||||
//var pb_fx = ds_list_create();
|
||||
//addNodePBCatagory("Effects", pb_fx);
|
||||
// ds_list_add(pb_fx, "Effect");
|
||||
// addNodeObject(pb_fx, "Outline", s_node_pb_fx_outline, "Node_PB_Fx_Outline", [1, Node_PB_Fx_Outline]);
|
||||
// addNodeObject(pb_fx, "Stack", s_node_pb_fx_stack, "Node_PB_Fx_Stack", [1, Node_PB_Fx_Stack]);
|
||||
// addNodeObject(pb_fx, "Radial", s_node_pb_fx_radial, "Node_PB_Fx_Radial", [1, Node_PB_Fx_Radial]);
|
||||
|
||||
var pb_arr = ds_list_create();
|
||||
addNodePBCatagory("Array", pb_arr);
|
||||
addNodeObject(pb_arr, "Array", s_node_array, "Node_Array", [1, Node_Array]);
|
||||
addNodeObject(pb_arr, "Array Get", s_node_array_get, "Node_Array_Get", [1, Node_Array_Get], ["get array"]);
|
||||
addNodeObject(pb_arr, "Array Set", s_node_array_set, "Node_Array_Set", [1, Node_Array_Set], ["set array"]).setVersion(1120);
|
||||
addNodeObject(pb_arr, "Array Insert", s_node_array_insert, "Node_Array_Insert", [1, Node_Array_Insert], ["insert array"]).setVersion(1120);
|
||||
addNodeObject(pb_arr, "Array Remove", s_node_array_remove, "Node_Array_Remove", [1, Node_Array_Remove], ["remove array", "delete array", "array delete"]).setVersion(1120);
|
||||
// ds_list_add(pb_fx, "Lighting");
|
||||
// addNodeObject(pb_fx, "Highlight", s_node_pb_fx_highlight, "Node_PB_Fx_Highlight", [1, Node_PB_Fx_Highlight]);
|
||||
// addNodeObject(pb_fx, "Shading", s_node_pb_fx_shading, "Node_PB_Fx_Shading", [1, Node_PB_Fx_Shading]);
|
||||
|
||||
// ds_list_add(pb_fx, "Texture");
|
||||
// addNodeObject(pb_fx, "Hashing", s_node_pb_fx_hash, "Node_PB_Fx_Hash", [1, Node_PB_Fx_Hash]);
|
||||
// addNodeObject(pb_fx, "Strip", s_node_pb_fx_strip, "Node_PB_Fx_Strip", [1, Node_PB_Fx_Strip]);
|
||||
// addNodeObject(pb_fx, "Brick", s_node_pb_fx_brick, "Node_PB_Fx_Brick", [1, Node_PB_Fx_Brick]);
|
||||
|
||||
// ds_list_add(pb_fx, "Blend");
|
||||
// addNodeObject(pb_fx, "Add", s_node_pb_fx_add, "Node_PB_Fx_Add", [1, Node_PB_Fx_Add]);
|
||||
// addNodeObject(pb_fx, "Subtract", s_node_pb_fx_subtract, "Node_PB_Fx_Subtract", [1, Node_PB_Fx_Subtract]);
|
||||
// addNodeObject(pb_fx, "Intersect", s_node_pb_fx_interesct, "Node_PB_Fx_Intersect", [1, Node_PB_Fx_Intersect]);
|
||||
|
||||
//var pb_arr = ds_list_create();
|
||||
//addNodePBCatagory("Array", pb_arr);
|
||||
// addNodeObject(pb_arr, "Array", s_node_array, "Node_Array", [1, Node_Array]);
|
||||
// addNodeObject(pb_arr, "Array Get", s_node_array_get, "Node_Array_Get", [1, Node_Array_Get], ["get array"]);
|
||||
// addNodeObject(pb_arr, "Array Set", s_node_array_set, "Node_Array_Set", [1, Node_Array_Set], ["set array"]).setVersion(1120);
|
||||
// addNodeObject(pb_arr, "Array Insert", s_node_array_insert, "Node_Array_Insert", [1, Node_Array_Insert], ["insert array"]).setVersion(1120);
|
||||
// addNodeObject(pb_arr, "Array Remove", s_node_array_remove, "Node_Array_Remove", [1, Node_Array_Remove], ["remove array", "delete array", "array delete"]).setVersion(1120);
|
||||
|
||||
var hid = ds_list_create();
|
||||
addNodeCatagory("Hidden", hid, ["Hidden"]);
|
||||
|
|
|
@ -1,58 +1,71 @@
|
|||
function Node_Threshold(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
|
||||
name = "Threshold";
|
||||
|
||||
shader = sh_threshold;
|
||||
uniform_mde = shader_get_uniform(shader, "mode");
|
||||
uniform_thr = shader_get_uniform(shader, "thr");
|
||||
uniform_smt = shader_get_uniform(shader, "smooth");
|
||||
|
||||
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
|
||||
|
||||
inputs[| 1] = nodeValue("Mode", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
|
||||
.setDisplay(VALUE_DISPLAY.enum_button, [ "Brightness", "Alpha" ]);
|
||||
inputs[| 1] = nodeValue("Brightness", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false);
|
||||
|
||||
inputs[| 2] = nodeValue("Threshold", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.5)
|
||||
.setDisplay(VALUE_DISPLAY.slider, [ 0, 1, 0.01]);
|
||||
inputs[| 2] = nodeValue("Brightness Threshold", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.5)
|
||||
.setDisplay(VALUE_DISPLAY.slider, [ 0, 1, 0.01 ]);
|
||||
|
||||
inputs[| 3] = nodeValue("Smoothness", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0)
|
||||
.setDisplay(VALUE_DISPLAY.slider, [ 0, 1, 0.01]);
|
||||
inputs[| 3] = nodeValue("Brightness Smoothness", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0)
|
||||
.setDisplay(VALUE_DISPLAY.slider, [ 0, 1, 0.01 ]);
|
||||
|
||||
inputs[| 4] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
|
||||
|
||||
inputs[| 5] = nodeValue("Mix", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1)
|
||||
.setDisplay(VALUE_DISPLAY.slider, [0, 1, 0.01]);
|
||||
.setDisplay(VALUE_DISPLAY.slider, [ 0, 1, 0.01 ]);
|
||||
|
||||
inputs[| 6] = nodeValue("Active", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true);
|
||||
active_index = 6;
|
||||
|
||||
inputs[| 7] = nodeValue("Alpha", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false);
|
||||
|
||||
inputs[| 8] = nodeValue("Alpha Threshold", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.5)
|
||||
.setDisplay(VALUE_DISPLAY.slider, [ 0, 1, 0.01 ]);
|
||||
|
||||
inputs[| 9] = nodeValue("Alpha Smoothness", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0)
|
||||
.setDisplay(VALUE_DISPLAY.slider, [ 0, 1, 0.01 ]);
|
||||
|
||||
outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone);
|
||||
|
||||
input_display_list = [ 6,
|
||||
["Output", true], 0, 4, 5,
|
||||
["Threshold", false], 1, 2, 3,
|
||||
["Threshold", false], 1, 2, 3, 7, 8, 9,
|
||||
];
|
||||
|
||||
attribute_surface_depth();
|
||||
|
||||
static step = function() {
|
||||
var _bright = inputs[| 1].getValue();
|
||||
inputs[| 2].setVisible(_bright);
|
||||
inputs[| 3].setVisible(_bright);
|
||||
|
||||
var _alpha = inputs[| 7].getValue();
|
||||
inputs[| 8].setVisible(_alpha);
|
||||
inputs[| 9].setVisible(_alpha);
|
||||
}
|
||||
|
||||
static process_data = function(_outSurf, _data, _output_index, _array_index) {
|
||||
var _mode = _data[1];
|
||||
var _thr = _data[2];
|
||||
var _smt = _data[3];
|
||||
|
||||
surface_set_target(_outSurf);
|
||||
DRAW_CLEAR
|
||||
BLEND_OVERRIDE;
|
||||
|
||||
shader_set(shader);
|
||||
shader_set_uniform_i(uniform_mde, _mode);
|
||||
shader_set_uniform_f(uniform_thr, _thr);
|
||||
shader_set_uniform_f(uniform_smt, _smt);
|
||||
var _bright = _data[1];
|
||||
var _brightThreshold = _data[2];
|
||||
var _brightSmooth = _data[3];
|
||||
|
||||
var _alpha = _data[7];
|
||||
var _alphaThreshold = _data[8];
|
||||
var _alphaSmooth = _data[9];
|
||||
|
||||
surface_set_shader(_outSurf, sh_threshold);
|
||||
shader_set_i("bright", _bright );
|
||||
shader_set_f("brightThreshold", _brightThreshold );
|
||||
shader_set_f("brightSmooth", _brightSmooth );
|
||||
|
||||
draw_surface_safe(_data[0], 0, 0);
|
||||
shader_reset();
|
||||
|
||||
BLEND_NORMAL;
|
||||
surface_reset_target();
|
||||
shader_set_i("alpha", _alpha );
|
||||
shader_set_f("alphaThreshold", _alphaThreshold );
|
||||
shader_set_f("alphaSmooth", _alphaSmooth );
|
||||
|
||||
draw_surface_safe(_data[0]);
|
||||
surface_reset_shader();
|
||||
|
||||
_outSurf = mask_apply(_data[0], _outSurf, _data[4], _data[5]);
|
||||
|
||||
|
|
|
@ -622,7 +622,7 @@ function textArea(_input, _onModify, _extras = noone) : textInput(_input, _onMod
|
|||
|
||||
if(format == TEXT_AREA_FORMAT.code) {
|
||||
draw_sprite_stretched_ext(THEME.textbox_code, 0, _x, _y, ui(code_line_width), hh, boxColor, 1);
|
||||
draw_set_text(f_p1, fa_right, fa_top, COLORS._main_text_sub);
|
||||
draw_set_text(f_code, fa_right, fa_top, COLORS._main_text_sub);
|
||||
|
||||
var lx = _x + ui(code_line_width - 8);
|
||||
for( var i = 0; i < line_count; i++ ) {
|
||||
|
|
|
@ -6,5 +6,5 @@ varying vec4 v_vColour;
|
|||
|
||||
void main() {
|
||||
vec4 col = texture2D( gm_BaseTexture, v_vTexcoord);
|
||||
gl_FragColor = vec4(0., 0., col.b, col.a);
|
||||
gl_FragColor = vec4(0., 0., col.b, 1.);
|
||||
}
|
||||
|
|
|
@ -6,5 +6,5 @@ varying vec4 v_vColour;
|
|||
|
||||
void main() {
|
||||
vec4 col = texture2D( gm_BaseTexture, v_vTexcoord);
|
||||
gl_FragColor = vec4(col.b, col.b, col.b, col.a);
|
||||
gl_FragColor = vec4(col.b, col.b, col.b, 1.);
|
||||
}
|
||||
|
|
|
@ -6,5 +6,5 @@ varying vec4 v_vColour;
|
|||
|
||||
void main() {
|
||||
vec4 col = texture2D( gm_BaseTexture, v_vTexcoord);
|
||||
gl_FragColor = vec4(0., col.g, 0., col.a);
|
||||
gl_FragColor = vec4(0., col.g, 0., 1.);
|
||||
}
|
||||
|
|
|
@ -6,5 +6,5 @@ varying vec4 v_vColour;
|
|||
|
||||
void main() {
|
||||
vec4 col = texture2D( gm_BaseTexture, v_vTexcoord);
|
||||
gl_FragColor = vec4(col.g, col.g, col.g, col.a);
|
||||
gl_FragColor = vec4(col.g, col.g, col.g, 1.);
|
||||
}
|
||||
|
|
|
@ -6,5 +6,5 @@ varying vec4 v_vColour;
|
|||
|
||||
void main() {
|
||||
vec4 col = texture2D( gm_BaseTexture, v_vTexcoord);
|
||||
gl_FragColor = vec4(col.r, 0., 0., col.a);
|
||||
gl_FragColor = vec4(col.r, 0., 0., 1.);
|
||||
}
|
||||
|
|
|
@ -6,5 +6,5 @@ varying vec4 v_vColour;
|
|||
|
||||
void main() {
|
||||
vec4 col = texture2D( gm_BaseTexture, v_vTexcoord);
|
||||
gl_FragColor = vec4(col.r, col.r, col.r, col.a);
|
||||
gl_FragColor = vec4(col.r, col.r, col.r, 1.);
|
||||
}
|
||||
|
|
|
@ -4,7 +4,10 @@
|
|||
varying vec2 v_vTexcoord;
|
||||
varying vec4 v_vColour;
|
||||
|
||||
#define ITERATION 8.
|
||||
|
||||
uniform vec2 dimension;
|
||||
uniform float step;
|
||||
|
||||
vec4 less ( vec4 a, vec4 b ) {
|
||||
if(b.xy == vec2(0.)) return a;
|
||||
|
@ -29,19 +32,29 @@ void main() {
|
|||
vec4 c = texture2D( gm_BaseTexture, v_vTexcoord );
|
||||
gl_FragColor = c;
|
||||
|
||||
if(c.rgb == vec3(0.)) return;
|
||||
if(c.rgb == vec3(1.)) {
|
||||
gl_FragColor = vec4( v_vTexcoord, 0., 1. );
|
||||
return;
|
||||
if(c.a == 0.) return;
|
||||
|
||||
for( float i = 1.; i < ITERATION; i++ ) {
|
||||
vec4 s = sample( v_vTexcoord + vec2(tx.x * i, 0) );
|
||||
if(s.a == 0.) break;
|
||||
gl_FragColor = less( gl_FragColor, s );
|
||||
}
|
||||
|
||||
vec4 l = sample( v_vTexcoord - vec2(tx.x, 0.) );
|
||||
vec4 r = sample( v_vTexcoord + vec2(tx.x, 0.) );
|
||||
vec4 u = sample( v_vTexcoord - vec2(0., tx.y) );
|
||||
vec4 d = sample( v_vTexcoord + vec2(0., tx.y) );
|
||||
for( float i = 1.; i < ITERATION; i++ ) {
|
||||
vec4 s = sample( v_vTexcoord - vec2(tx.x * i, 0) );
|
||||
if(s.a == 0.) break;
|
||||
gl_FragColor = less( gl_FragColor, s );
|
||||
}
|
||||
|
||||
gl_FragColor = less( gl_FragColor, l );
|
||||
gl_FragColor = less( gl_FragColor, r );
|
||||
gl_FragColor = less( gl_FragColor, u );
|
||||
gl_FragColor = less( gl_FragColor, d );
|
||||
for( float i = 1.; i < ITERATION; i++ ) {
|
||||
vec4 s = sample( v_vTexcoord + vec2(0, tx.y * i) );
|
||||
if(s.a == 0.) break;
|
||||
gl_FragColor = less( gl_FragColor, s );
|
||||
}
|
||||
|
||||
for( float i = 1.; i < ITERATION; i++ ) {
|
||||
vec4 s = sample( v_vTexcoord - vec2(0, tx.y * i) );
|
||||
if(s.a == 0.) break;
|
||||
gl_FragColor = less( gl_FragColor, s );
|
||||
}
|
||||
}
|
||||
|
|
13
shaders/sh_region_fill_init/sh_region_fill_init.fsh
Normal file
13
shaders/sh_region_fill_init/sh_region_fill_init.fsh
Normal file
|
@ -0,0 +1,13 @@
|
|||
//
|
||||
// Simple passthrough fragment shader
|
||||
//
|
||||
varying vec2 v_vTexcoord;
|
||||
varying vec4 v_vColour;
|
||||
|
||||
void main() {
|
||||
vec4 c = texture2D( gm_BaseTexture, v_vTexcoord );
|
||||
vec3 _c = c.rgb * c.a;
|
||||
float _f = _c.r + _c.g + _c.b;
|
||||
|
||||
gl_FragColor = _f == 0.? vec4(0.) : vec4(v_vTexcoord, 0., 1.);
|
||||
}
|
19
shaders/sh_region_fill_init/sh_region_fill_init.vsh
Normal file
19
shaders/sh_region_fill_init/sh_region_fill_init.vsh
Normal file
|
@ -0,0 +1,19 @@
|
|||
//
|
||||
// Simple passthrough vertex shader
|
||||
//
|
||||
attribute vec3 in_Position; // (x,y,z)
|
||||
//attribute vec3 in_Normal; // (x,y,z) unused in this shader.
|
||||
attribute vec4 in_Colour; // (r,g,b,a)
|
||||
attribute vec2 in_TextureCoord; // (u,v)
|
||||
|
||||
varying vec2 v_vTexcoord;
|
||||
varying vec4 v_vColour;
|
||||
|
||||
void main()
|
||||
{
|
||||
vec4 object_space_pos = vec4( in_Position.x, in_Position.y, in_Position.z, 1.0);
|
||||
gl_Position = gm_Matrices[MATRIX_WORLD_VIEW_PROJECTION] * object_space_pos;
|
||||
|
||||
v_vColour = in_Colour;
|
||||
v_vTexcoord = in_TextureCoord;
|
||||
}
|
10
shaders/sh_region_fill_init/sh_region_fill_init.yy
Normal file
10
shaders/sh_region_fill_init/sh_region_fill_init.yy
Normal file
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"resourceType": "GMShader",
|
||||
"resourceVersion": "1.0",
|
||||
"name": "sh_region_fill_init",
|
||||
"parent": {
|
||||
"name": "region",
|
||||
"path": "folders/shader/generator/region.yy",
|
||||
},
|
||||
"type": 1,
|
||||
}
|
|
@ -4,18 +4,26 @@
|
|||
varying vec2 v_vTexcoord;
|
||||
varying vec4 v_vColour;
|
||||
|
||||
uniform int mode;
|
||||
uniform float thr;
|
||||
uniform float smooth;
|
||||
uniform int bright;
|
||||
uniform float brightThreshold;
|
||||
uniform float brightSmooth;
|
||||
|
||||
uniform int alpha;
|
||||
uniform float alphaThreshold;
|
||||
uniform float alphaSmooth;
|
||||
|
||||
float _step( in float threshold, in float val ) { return val <= threshold? 0. : 1.; }
|
||||
|
||||
void main() {
|
||||
vec4 col = v_vColour * texture2D( gm_BaseTexture, v_vTexcoord );
|
||||
|
||||
if(mode == 0) {
|
||||
if(bright == 1) {
|
||||
float bright = dot(col.rgb, vec3(0.2126, 0.7152, 0.0722));
|
||||
col.rgb = vec3(smooth == 0.? step(thr, bright) : smoothstep(thr - smooth, thr + smooth, bright));
|
||||
} else {
|
||||
col.a = smooth == 0.? step(thr, col.a) : smoothstep(thr - smooth, thr + smooth, col.a);
|
||||
col.rgb = vec3(brightSmooth == 0.? _step(brightThreshold, bright) : smoothstep(brightThreshold - brightSmooth, brightThreshold + brightSmooth, bright));
|
||||
}
|
||||
|
||||
if(alpha == 1) {
|
||||
col.a = alphaSmooth == 0.? _step(alphaThreshold, col.a) : smoothstep(alphaThreshold - alphaSmooth, alphaThreshold + alphaSmooth, col.a);
|
||||
}
|
||||
|
||||
gl_FragColor = col;
|
||||
|
|
Loading…
Reference in a new issue