headless option
|
@ -268,6 +268,8 @@
|
||||||
{"name":"button","order":34,"path":"folders/widgets/button.yy",},
|
{"name":"button","order":34,"path":"folders/widgets/button.yy",},
|
||||||
{"name":"rotator","order":35,"path":"folders/widgets/rotator.yy",},
|
{"name":"rotator","order":35,"path":"folders/widgets/rotator.yy",},
|
||||||
{"name":"text","order":36,"path":"folders/widgets/text.yy",},
|
{"name":"text","order":36,"path":"folders/widgets/text.yy",},
|
||||||
|
{"name":"lovify","order":26,"path":"folders/nodes/data/misc/lovify.yy",},
|
||||||
|
{"name":"spr","order":6,"path":"folders/nodes/data/misc/lovify/spr.yy",},
|
||||||
],
|
],
|
||||||
"ResourceOrderSettings": [
|
"ResourceOrderSettings": [
|
||||||
{"name":"s_node_corner","order":13,"path":"sprites/s_node_corner/s_node_corner.yy",},
|
{"name":"s_node_corner","order":13,"path":"sprites/s_node_corner/s_node_corner.yy",},
|
||||||
|
@ -385,6 +387,7 @@
|
||||||
{"name":"node_3d_mesh_terrain","order":9,"path":"scripts/node_3d_mesh_terrain/node_3d_mesh_terrain.yy",},
|
{"name":"node_3d_mesh_terrain","order":9,"path":"scripts/node_3d_mesh_terrain/node_3d_mesh_terrain.yy",},
|
||||||
{"name":"s_node_condition_type","order":9,"path":"sprites/s_node_condition_type/s_node_condition_type.yy",},
|
{"name":"s_node_condition_type","order":9,"path":"sprites/s_node_condition_type/s_node_condition_type.yy",},
|
||||||
{"name":"fd_rectangle_set_material_time_step","order":8,"path":"scripts/fd_rectangle_set_material_time_step/fd_rectangle_set_material_time_step.yy",},
|
{"name":"fd_rectangle_set_material_time_step","order":8,"path":"scripts/fd_rectangle_set_material_time_step/fd_rectangle_set_material_time_step.yy",},
|
||||||
|
{"name":"s_lovify_heart_16","order":4,"path":"sprites/s_lovify_heart_16/s_lovify_heart_16.yy",},
|
||||||
{"name":"Obj_FirebaseREST_Listener_On_Firestore","order":1,"path":"objects/Obj_FirebaseREST_Listener_On_Firestore/Obj_FirebaseREST_Listener_On_Firestore.yy",},
|
{"name":"Obj_FirebaseREST_Listener_On_Firestore","order":1,"path":"objects/Obj_FirebaseREST_Listener_On_Firestore/Obj_FirebaseREST_Listener_On_Firestore.yy",},
|
||||||
{"name":"credit_badge_popular","order":2,"path":"sprites/credit_badge_popular/credit_badge_popular.yy",},
|
{"name":"credit_badge_popular","order":2,"path":"sprites/credit_badge_popular/credit_badge_popular.yy",},
|
||||||
{"name":"s_node_path_sample","order":3,"path":"sprites/s_node_path_sample/s_node_path_sample.yy",},
|
{"name":"s_node_path_sample","order":3,"path":"sprites/s_node_path_sample/s_node_path_sample.yy",},
|
||||||
|
@ -484,6 +487,7 @@
|
||||||
{"name":"fd_rectangle_get_acceleration_y","order":3,"path":"scripts/fd_rectangle_get_acceleration_y/fd_rectangle_get_acceleration_y.yy",},
|
{"name":"fd_rectangle_get_acceleration_y","order":3,"path":"scripts/fd_rectangle_get_acceleration_y/fd_rectangle_get_acceleration_y.yy",},
|
||||||
{"name":"sh_simplex","order":7,"path":"shaders/sh_simplex/sh_simplex.yy",},
|
{"name":"sh_simplex","order":7,"path":"shaders/sh_simplex/sh_simplex.yy",},
|
||||||
{"name":"node_noise_grid_tri","order":6,"path":"scripts/node_noise_grid_tri/node_noise_grid_tri.yy",},
|
{"name":"node_noise_grid_tri","order":6,"path":"scripts/node_noise_grid_tri/node_noise_grid_tri.yy",},
|
||||||
|
{"name":"s_lovify_heart_12","order":1,"path":"sprites/s_lovify_heart_12/s_lovify_heart_12.yy",},
|
||||||
{"name":"node_threshold","order":9,"path":"scripts/node_threshold/node_threshold.yy",},
|
{"name":"node_threshold","order":9,"path":"scripts/node_threshold/node_threshold.yy",},
|
||||||
{"name":"sh_cell_noise_edge","order":2,"path":"shaders/sh_cell_noise_edge/sh_cell_noise_edge.yy",},
|
{"name":"sh_cell_noise_edge","order":2,"path":"shaders/sh_cell_noise_edge/sh_cell_noise_edge.yy",},
|
||||||
{"name":"node_pb_fx_strip","order":11,"path":"scripts/node_pb_fx_strip/node_pb_fx_strip.yy",},
|
{"name":"node_pb_fx_strip","order":11,"path":"scripts/node_pb_fx_strip/node_pb_fx_strip.yy",},
|
||||||
|
@ -618,6 +622,7 @@
|
||||||
{"name":"s_node_rigidSim_global","order":4,"path":"sprites/s_node_rigidSim_global/s_node_rigidSim_global.yy",},
|
{"name":"s_node_rigidSim_global","order":4,"path":"sprites/s_node_rigidSim_global/s_node_rigidSim_global.yy",},
|
||||||
{"name":"sh_channel_G_grey","order":8,"path":"shaders/sh_channel_G_grey/sh_channel_G_grey.yy",},
|
{"name":"sh_channel_G_grey","order":8,"path":"shaders/sh_channel_G_grey/sh_channel_G_grey.yy",},
|
||||||
{"name":"sh_corner_iterate","order":2,"path":"shaders/sh_corner_iterate/sh_corner_iterate.yy",},
|
{"name":"sh_corner_iterate","order":2,"path":"shaders/sh_corner_iterate/sh_corner_iterate.yy",},
|
||||||
|
{"name":"s_lovify_heart_6","order":2,"path":"sprites/s_lovify_heart_6/s_lovify_heart_6.yy",},
|
||||||
{"name":"display_screenshot","order":4,"path":"extensions/display_screenshot/display_screenshot.yy",},
|
{"name":"display_screenshot","order":4,"path":"extensions/display_screenshot/display_screenshot.yy",},
|
||||||
{"name":"node_strand_sim_inline","order":12,"path":"scripts/node_strand_sim_inline/node_strand_sim_inline.yy",},
|
{"name":"node_strand_sim_inline","order":12,"path":"scripts/node_strand_sim_inline/node_strand_sim_inline.yy",},
|
||||||
{"name":"node_path_map","order":17,"path":"scripts/node_path_map/node_path_map.yy",},
|
{"name":"node_path_map","order":17,"path":"scripts/node_path_map/node_path_map.yy",},
|
||||||
|
@ -957,6 +962,7 @@
|
||||||
{"name":"sh_find_boundary_stretch_y","order":2,"path":"shaders/sh_find_boundary_stretch_y/sh_find_boundary_stretch_y.yy",},
|
{"name":"sh_find_boundary_stretch_y","order":2,"path":"shaders/sh_find_boundary_stretch_y/sh_find_boundary_stretch_y.yy",},
|
||||||
{"name":"BBMOD_Vec2","order":4,"path":"scripts/BBMOD_Vec2/BBMOD_Vec2.yy",},
|
{"name":"BBMOD_Vec2","order":4,"path":"scripts/BBMOD_Vec2/BBMOD_Vec2.yy",},
|
||||||
{"name":"sh_grid_hex","order":1,"path":"shaders/sh_grid_hex/sh_grid_hex.yy",},
|
{"name":"sh_grid_hex","order":1,"path":"shaders/sh_grid_hex/sh_grid_hex.yy",},
|
||||||
|
{"name":"s_node_lovify","order":6,"path":"sprites/s_node_lovify/s_node_lovify.yy",},
|
||||||
{"name":"s_node_lua_surface","order":18,"path":"sprites/s_node_lua_surface/s_node_lua_surface.yy",},
|
{"name":"s_node_lua_surface","order":18,"path":"sprites/s_node_lua_surface/s_node_lua_surface.yy",},
|
||||||
{"name":"node_data","order":1,"path":"scripts/node_data/node_data.yy",},
|
{"name":"node_data","order":1,"path":"scripts/node_data/node_data.yy",},
|
||||||
{"name":"node_wiggler","order":2,"path":"scripts/node_wiggler/node_wiggler.yy",},
|
{"name":"node_wiggler","order":2,"path":"scripts/node_wiggler/node_wiggler.yy",},
|
||||||
|
@ -1038,6 +1044,7 @@
|
||||||
{"name":"s_node_array_remove","order":7,"path":"sprites/s_node_array_remove/s_node_array_remove.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",},
|
{"name":"s_node_zigzag","order":18,"path":"sprites/s_node_zigzag/s_node_zigzag.yy",},
|
||||||
{"name":"node_FLIP_render","order":3,"path":"scripts/node_FLIP_render/node_FLIP_render.yy",},
|
{"name":"node_FLIP_render","order":3,"path":"scripts/node_FLIP_render/node_FLIP_render.yy",},
|
||||||
|
{"name":"s_lovify_heart_8","order":3,"path":"sprites/s_lovify_heart_8/s_lovify_heart_8.yy",},
|
||||||
{"name":"s_key_display_mouse","order":1,"path":"sprites/s_key_display_mouse/s_key_display_mouse.yy",},
|
{"name":"s_key_display_mouse","order":1,"path":"sprites/s_key_display_mouse/s_key_display_mouse.yy",},
|
||||||
{"name":"dynaSurf_square_outline","order":3,"path":"scripts/dynaSurf_square_outline/dynaSurf_square_outline.yy",},
|
{"name":"dynaSurf_square_outline","order":3,"path":"scripts/dynaSurf_square_outline/dynaSurf_square_outline.yy",},
|
||||||
{"name":"node_3d_repeat","order":1,"path":"scripts/node_3d_repeat/node_3d_repeat.yy",},
|
{"name":"node_3d_repeat","order":1,"path":"scripts/node_3d_repeat/node_3d_repeat.yy",},
|
||||||
|
@ -1071,6 +1078,7 @@
|
||||||
{"name":"node_atlas_get","order":1,"path":"scripts/node_atlas_get/node_atlas_get.yy",},
|
{"name":"node_atlas_get","order":1,"path":"scripts/node_atlas_get/node_atlas_get.yy",},
|
||||||
{"name":"fontScrollBox","order":14,"path":"scripts/fontScrollBox/fontScrollBox.yy",},
|
{"name":"fontScrollBox","order":14,"path":"scripts/fontScrollBox/fontScrollBox.yy",},
|
||||||
{"name":"node_grid_hex","order":2,"path":"scripts/node_grid_hex/node_grid_hex.yy",},
|
{"name":"node_grid_hex","order":2,"path":"scripts/node_grid_hex/node_grid_hex.yy",},
|
||||||
|
{"name":"sh_lovify","order":1,"path":"shaders/sh_lovify/sh_lovify.yy",},
|
||||||
{"name":"FirebaseREST_Firestore_collection_compare","order":5,"path":"scripts/FirebaseREST_Firestore_collection_compare/FirebaseREST_Firestore_collection_compare.yy",},
|
{"name":"FirebaseREST_Firestore_collection_compare","order":5,"path":"scripts/FirebaseREST_Firestore_collection_compare/FirebaseREST_Firestore_collection_compare.yy",},
|
||||||
{"name":"node_pb_draw_blob","order":5,"path":"scripts/node_pb_draw_blob/node_pb_draw_blob.yy",},
|
{"name":"node_pb_draw_blob","order":5,"path":"scripts/node_pb_draw_blob/node_pb_draw_blob.yy",},
|
||||||
{"name":"credit_badge_value","order":1,"path":"sprites/credit_badge_value/credit_badge_value.yy",},
|
{"name":"credit_badge_value","order":1,"path":"sprites/credit_badge_value/credit_badge_value.yy",},
|
||||||
|
@ -1765,6 +1773,7 @@
|
||||||
{"name":"path_function","order":4,"path":"scripts/path_function/path_function.yy",},
|
{"name":"path_function","order":4,"path":"scripts/path_function/path_function.yy",},
|
||||||
{"name":"s_node_shell_excecute","order":33,"path":"sprites/s_node_shell_excecute/s_node_shell_excecute.yy",},
|
{"name":"s_node_shell_excecute","order":33,"path":"sprites/s_node_shell_excecute/s_node_shell_excecute.yy",},
|
||||||
{"name":"fd_rectangle_set_velocity_dissipation_value","order":14,"path":"scripts/fd_rectangle_set_velocity_dissipation_value/fd_rectangle_set_velocity_dissipation_value.yy",},
|
{"name":"fd_rectangle_set_velocity_dissipation_value","order":14,"path":"scripts/fd_rectangle_set_velocity_dissipation_value/fd_rectangle_set_velocity_dissipation_value.yy",},
|
||||||
|
{"name":"s_lovify_icon","order":5,"path":"sprites/s_lovify_icon/s_lovify_icon.yy",},
|
||||||
{"name":"panel_history","order":7,"path":"scripts/panel_history/panel_history.yy",},
|
{"name":"panel_history","order":7,"path":"scripts/panel_history/panel_history.yy",},
|
||||||
{"name":"sh_channel_H","order":3,"path":"shaders/sh_channel_H/sh_channel_H.yy",},
|
{"name":"sh_channel_H","order":3,"path":"shaders/sh_channel_H/sh_channel_H.yy",},
|
||||||
{"name":"rotatorRandom","order":1,"path":"scripts/rotatorRandom/rotatorRandom.yy",},
|
{"name":"rotatorRandom","order":1,"path":"scripts/rotatorRandom/rotatorRandom.yy",},
|
||||||
|
|
|
@ -304,6 +304,8 @@
|
||||||
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"button","folderPath":"folders/widgets/button.yy",},
|
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"button","folderPath":"folders/widgets/button.yy",},
|
||||||
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"rotator","folderPath":"folders/widgets/rotator.yy",},
|
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"rotator","folderPath":"folders/widgets/rotator.yy",},
|
||||||
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"text","folderPath":"folders/widgets/text.yy",},
|
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"text","folderPath":"folders/widgets/text.yy",},
|
||||||
|
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"lovify","folderPath":"folders/nodes/data/misc/lovify.yy",},
|
||||||
|
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"spr","folderPath":"folders/nodes/data/misc/lovify/spr.yy",},
|
||||||
],
|
],
|
||||||
"IncludedFiles": [
|
"IncludedFiles": [
|
||||||
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"ApolloHelp.html","ConfigValues":{"Itch":{"CopyToMask":"0",},},"CopyToMask":-1,"filePath":"datafiles",},
|
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"ApolloHelp.html","ConfigValues":{"Itch":{"CopyToMask":"0",},},"CopyToMask":-1,"filePath":"datafiles",},
|
||||||
|
@ -590,6 +592,7 @@
|
||||||
{"id":{"name":"node_3d_mesh_terrain","path":"scripts/node_3d_mesh_terrain/node_3d_mesh_terrain.yy",},},
|
{"id":{"name":"node_3d_mesh_terrain","path":"scripts/node_3d_mesh_terrain/node_3d_mesh_terrain.yy",},},
|
||||||
{"id":{"name":"s_node_condition_type","path":"sprites/s_node_condition_type/s_node_condition_type.yy",},},
|
{"id":{"name":"s_node_condition_type","path":"sprites/s_node_condition_type/s_node_condition_type.yy",},},
|
||||||
{"id":{"name":"fd_rectangle_set_material_time_step","path":"scripts/fd_rectangle_set_material_time_step/fd_rectangle_set_material_time_step.yy",},},
|
{"id":{"name":"fd_rectangle_set_material_time_step","path":"scripts/fd_rectangle_set_material_time_step/fd_rectangle_set_material_time_step.yy",},},
|
||||||
|
{"id":{"name":"s_lovify_heart_16","path":"sprites/s_lovify_heart_16/s_lovify_heart_16.yy",},},
|
||||||
{"id":{"name":"Obj_FirebaseREST_Listener_On_Firestore","path":"objects/Obj_FirebaseREST_Listener_On_Firestore/Obj_FirebaseREST_Listener_On_Firestore.yy",},},
|
{"id":{"name":"Obj_FirebaseREST_Listener_On_Firestore","path":"objects/Obj_FirebaseREST_Listener_On_Firestore/Obj_FirebaseREST_Listener_On_Firestore.yy",},},
|
||||||
{"id":{"name":"credit_badge_popular","path":"sprites/credit_badge_popular/credit_badge_popular.yy",},},
|
{"id":{"name":"credit_badge_popular","path":"sprites/credit_badge_popular/credit_badge_popular.yy",},},
|
||||||
{"id":{"name":"s_node_path_sample","path":"sprites/s_node_path_sample/s_node_path_sample.yy",},},
|
{"id":{"name":"s_node_path_sample","path":"sprites/s_node_path_sample/s_node_path_sample.yy",},},
|
||||||
|
@ -706,6 +709,7 @@
|
||||||
{"id":{"name":"sh_simplex","path":"shaders/sh_simplex/sh_simplex.yy",},},
|
{"id":{"name":"sh_simplex","path":"shaders/sh_simplex/sh_simplex.yy",},},
|
||||||
{"id":{"name":"node_noise_grid_tri","path":"scripts/node_noise_grid_tri/node_noise_grid_tri.yy",},},
|
{"id":{"name":"node_noise_grid_tri","path":"scripts/node_noise_grid_tri/node_noise_grid_tri.yy",},},
|
||||||
{"id":{"name":"blurSurface","path":"scripts/blurSurface/blurSurface.yy",},},
|
{"id":{"name":"blurSurface","path":"scripts/blurSurface/blurSurface.yy",},},
|
||||||
|
{"id":{"name":"s_lovify_heart_12","path":"sprites/s_lovify_heart_12/s_lovify_heart_12.yy",},},
|
||||||
{"id":{"name":"node_threshold","path":"scripts/node_threshold/node_threshold.yy",},},
|
{"id":{"name":"node_threshold","path":"scripts/node_threshold/node_threshold.yy",},},
|
||||||
{"id":{"name":"sh_cell_noise_edge","path":"shaders/sh_cell_noise_edge/sh_cell_noise_edge.yy",},},
|
{"id":{"name":"sh_cell_noise_edge","path":"shaders/sh_cell_noise_edge/sh_cell_noise_edge.yy",},},
|
||||||
{"id":{"name":"node_pb_fx_strip","path":"scripts/node_pb_fx_strip/node_pb_fx_strip.yy",},},
|
{"id":{"name":"node_pb_fx_strip","path":"scripts/node_pb_fx_strip/node_pb_fx_strip.yy",},},
|
||||||
|
@ -855,6 +859,7 @@
|
||||||
{"id":{"name":"s_node_rigidSim_global","path":"sprites/s_node_rigidSim_global/s_node_rigidSim_global.yy",},},
|
{"id":{"name":"s_node_rigidSim_global","path":"sprites/s_node_rigidSim_global/s_node_rigidSim_global.yy",},},
|
||||||
{"id":{"name":"sh_channel_G_grey","path":"shaders/sh_channel_G_grey/sh_channel_G_grey.yy",},},
|
{"id":{"name":"sh_channel_G_grey","path":"shaders/sh_channel_G_grey/sh_channel_G_grey.yy",},},
|
||||||
{"id":{"name":"sh_corner_iterate","path":"shaders/sh_corner_iterate/sh_corner_iterate.yy",},},
|
{"id":{"name":"sh_corner_iterate","path":"shaders/sh_corner_iterate/sh_corner_iterate.yy",},},
|
||||||
|
{"id":{"name":"s_lovify_heart_6","path":"sprites/s_lovify_heart_6/s_lovify_heart_6.yy",},},
|
||||||
{"id":{"name":"display_screenshot","path":"extensions/display_screenshot/display_screenshot.yy",},},
|
{"id":{"name":"display_screenshot","path":"extensions/display_screenshot/display_screenshot.yy",},},
|
||||||
{"id":{"name":"node_strand_sim_inline","path":"scripts/node_strand_sim_inline/node_strand_sim_inline.yy",},},
|
{"id":{"name":"node_strand_sim_inline","path":"scripts/node_strand_sim_inline/node_strand_sim_inline.yy",},},
|
||||||
{"id":{"name":"node_path_map","path":"scripts/node_path_map/node_path_map.yy",},},
|
{"id":{"name":"node_path_map","path":"scripts/node_path_map/node_path_map.yy",},},
|
||||||
|
@ -1240,6 +1245,7 @@
|
||||||
{"id":{"name":"sprite_add_functions","path":"scripts/sprite_add_functions/sprite_add_functions.yy",},},
|
{"id":{"name":"sprite_add_functions","path":"scripts/sprite_add_functions/sprite_add_functions.yy",},},
|
||||||
{"id":{"name":"BBMOD_Vec2","path":"scripts/BBMOD_Vec2/BBMOD_Vec2.yy",},},
|
{"id":{"name":"BBMOD_Vec2","path":"scripts/BBMOD_Vec2/BBMOD_Vec2.yy",},},
|
||||||
{"id":{"name":"sh_grid_hex","path":"shaders/sh_grid_hex/sh_grid_hex.yy",},},
|
{"id":{"name":"sh_grid_hex","path":"shaders/sh_grid_hex/sh_grid_hex.yy",},},
|
||||||
|
{"id":{"name":"s_node_lovify","path":"sprites/s_node_lovify/s_node_lovify.yy",},},
|
||||||
{"id":{"name":"s_node_lua_surface","path":"sprites/s_node_lua_surface/s_node_lua_surface.yy",},},
|
{"id":{"name":"s_node_lua_surface","path":"sprites/s_node_lua_surface/s_node_lua_surface.yy",},},
|
||||||
{"id":{"name":"node_data","path":"scripts/node_data/node_data.yy",},},
|
{"id":{"name":"node_data","path":"scripts/node_data/node_data.yy",},},
|
||||||
{"id":{"name":"node_wiggler","path":"scripts/node_wiggler/node_wiggler.yy",},},
|
{"id":{"name":"node_wiggler","path":"scripts/node_wiggler/node_wiggler.yy",},},
|
||||||
|
@ -1334,6 +1340,7 @@
|
||||||
{"id":{"name":"s_node_array_remove","path":"sprites/s_node_array_remove/s_node_array_remove.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",},},
|
{"id":{"name":"s_node_zigzag","path":"sprites/s_node_zigzag/s_node_zigzag.yy",},},
|
||||||
{"id":{"name":"node_FLIP_render","path":"scripts/node_FLIP_render/node_FLIP_render.yy",},},
|
{"id":{"name":"node_FLIP_render","path":"scripts/node_FLIP_render/node_FLIP_render.yy",},},
|
||||||
|
{"id":{"name":"s_lovify_heart_8","path":"sprites/s_lovify_heart_8/s_lovify_heart_8.yy",},},
|
||||||
{"id":{"name":"s_key_display_mouse","path":"sprites/s_key_display_mouse/s_key_display_mouse.yy",},},
|
{"id":{"name":"s_key_display_mouse","path":"sprites/s_key_display_mouse/s_key_display_mouse.yy",},},
|
||||||
{"id":{"name":"dynaSurf_square_outline","path":"scripts/dynaSurf_square_outline/dynaSurf_square_outline.yy",},},
|
{"id":{"name":"dynaSurf_square_outline","path":"scripts/dynaSurf_square_outline/dynaSurf_square_outline.yy",},},
|
||||||
{"id":{"name":"node_3d_repeat","path":"scripts/node_3d_repeat/node_3d_repeat.yy",},},
|
{"id":{"name":"node_3d_repeat","path":"scripts/node_3d_repeat/node_3d_repeat.yy",},},
|
||||||
|
@ -1373,6 +1380,7 @@
|
||||||
{"id":{"name":"node_atlas_get","path":"scripts/node_atlas_get/node_atlas_get.yy",},},
|
{"id":{"name":"node_atlas_get","path":"scripts/node_atlas_get/node_atlas_get.yy",},},
|
||||||
{"id":{"name":"fontScrollBox","path":"scripts/fontScrollBox/fontScrollBox.yy",},},
|
{"id":{"name":"fontScrollBox","path":"scripts/fontScrollBox/fontScrollBox.yy",},},
|
||||||
{"id":{"name":"node_grid_hex","path":"scripts/node_grid_hex/node_grid_hex.yy",},},
|
{"id":{"name":"node_grid_hex","path":"scripts/node_grid_hex/node_grid_hex.yy",},},
|
||||||
|
{"id":{"name":"sh_lovify","path":"shaders/sh_lovify/sh_lovify.yy",},},
|
||||||
{"id":{"name":"FirebaseREST_Firestore_collection_compare","path":"scripts/FirebaseREST_Firestore_collection_compare/FirebaseREST_Firestore_collection_compare.yy",},},
|
{"id":{"name":"FirebaseREST_Firestore_collection_compare","path":"scripts/FirebaseREST_Firestore_collection_compare/FirebaseREST_Firestore_collection_compare.yy",},},
|
||||||
{"id":{"name":"node_pb_draw_blob","path":"scripts/node_pb_draw_blob/node_pb_draw_blob.yy",},},
|
{"id":{"name":"node_pb_draw_blob","path":"scripts/node_pb_draw_blob/node_pb_draw_blob.yy",},},
|
||||||
{"id":{"name":"draw_overlay","path":"scripts/draw_overlay/draw_overlay.yy",},},
|
{"id":{"name":"draw_overlay","path":"scripts/draw_overlay/draw_overlay.yy",},},
|
||||||
|
@ -1449,6 +1457,7 @@
|
||||||
{"id":{"name":"file_functions","path":"scripts/file_functions/file_functions.yy",},},
|
{"id":{"name":"file_functions","path":"scripts/file_functions/file_functions.yy",},},
|
||||||
{"id":{"name":"node_perlin_smear","path":"scripts/node_perlin_smear/node_perlin_smear.yy",},},
|
{"id":{"name":"node_perlin_smear","path":"scripts/node_perlin_smear/node_perlin_smear.yy",},},
|
||||||
{"id":{"name":"node_alpha_cutoff","path":"scripts/node_alpha_cutoff/node_alpha_cutoff.yy",},},
|
{"id":{"name":"node_alpha_cutoff","path":"scripts/node_alpha_cutoff/node_alpha_cutoff.yy",},},
|
||||||
|
{"id":{"name":"node_lovify","path":"scripts/node_lovify/node_lovify.yy",},},
|
||||||
{"id":{"name":"pack_best_fit","path":"scripts/pack_best_fit/pack_best_fit.yy",},},
|
{"id":{"name":"pack_best_fit","path":"scripts/pack_best_fit/pack_best_fit.yy",},},
|
||||||
{"id":{"name":"sh_channel_R","path":"shaders/sh_channel_R/sh_channel_R.yy",},},
|
{"id":{"name":"sh_channel_R","path":"shaders/sh_channel_R/sh_channel_R.yy",},},
|
||||||
{"id":{"name":"draw_circle_functions","path":"scripts/draw_circle_functions/draw_circle_functions.yy",},},
|
{"id":{"name":"draw_circle_functions","path":"scripts/draw_circle_functions/draw_circle_functions.yy",},},
|
||||||
|
@ -2128,6 +2137,7 @@
|
||||||
{"id":{"name":"s_node_dot_product","path":"sprites/s_node_dot_product/s_node_dot_product.yy",},},
|
{"id":{"name":"s_node_dot_product","path":"sprites/s_node_dot_product/s_node_dot_product.yy",},},
|
||||||
{"id":{"name":"s_node_canvas","path":"sprites/s_node_canvas/s_node_canvas.yy",},},
|
{"id":{"name":"s_node_canvas","path":"sprites/s_node_canvas/s_node_canvas.yy",},},
|
||||||
{"id":{"name":"d3d_light","path":"scripts/d3d_light/d3d_light.yy",},},
|
{"id":{"name":"d3d_light","path":"scripts/d3d_light/d3d_light.yy",},},
|
||||||
|
{"id":{"name":"s_lovify_heart_10","path":"sprites/s_lovify_heart_10/s_lovify_heart_10.yy",},},
|
||||||
{"id":{"name":"sh_downsample","path":"shaders/sh_downsample/sh_downsample.yy",},},
|
{"id":{"name":"sh_downsample","path":"shaders/sh_downsample/sh_downsample.yy",},},
|
||||||
{"id":{"name":"Obj_FirebaseFirestore_Collection_Query_Greater","path":"objects/Obj_FirebaseFirestore_Collection_Query_Greater/Obj_FirebaseFirestore_Collection_Query_Greater.yy",},},
|
{"id":{"name":"Obj_FirebaseFirestore_Collection_Query_Greater","path":"objects/Obj_FirebaseFirestore_Collection_Query_Greater/Obj_FirebaseFirestore_Collection_Query_Greater.yy",},},
|
||||||
{"id":{"name":"sh_remove_black","path":"shaders/sh_remove_black/sh_remove_black.yy",},},
|
{"id":{"name":"sh_remove_black","path":"shaders/sh_remove_black/sh_remove_black.yy",},},
|
||||||
|
@ -2164,6 +2174,7 @@
|
||||||
{"id":{"name":"path_function","path":"scripts/path_function/path_function.yy",},},
|
{"id":{"name":"path_function","path":"scripts/path_function/path_function.yy",},},
|
||||||
{"id":{"name":"s_node_shell_excecute","path":"sprites/s_node_shell_excecute/s_node_shell_excecute.yy",},},
|
{"id":{"name":"s_node_shell_excecute","path":"sprites/s_node_shell_excecute/s_node_shell_excecute.yy",},},
|
||||||
{"id":{"name":"fd_rectangle_set_velocity_dissipation_value","path":"scripts/fd_rectangle_set_velocity_dissipation_value/fd_rectangle_set_velocity_dissipation_value.yy",},},
|
{"id":{"name":"fd_rectangle_set_velocity_dissipation_value","path":"scripts/fd_rectangle_set_velocity_dissipation_value/fd_rectangle_set_velocity_dissipation_value.yy",},},
|
||||||
|
{"id":{"name":"s_lovify_icon","path":"sprites/s_lovify_icon/s_lovify_icon.yy",},},
|
||||||
{"id":{"name":"panel_history","path":"scripts/panel_history/panel_history.yy",},},
|
{"id":{"name":"panel_history","path":"scripts/panel_history/panel_history.yy",},},
|
||||||
{"id":{"name":"sh_channel_H","path":"shaders/sh_channel_H/sh_channel_H.yy",},},
|
{"id":{"name":"sh_channel_H","path":"shaders/sh_channel_H/sh_channel_H.yy",},},
|
||||||
{"id":{"name":"rotatorRandom","path":"scripts/rotatorRandom/rotatorRandom.yy",},},
|
{"id":{"name":"rotatorRandom","path":"scripts/rotatorRandom/rotatorRandom.yy",},},
|
||||||
|
|
Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 80 KiB |
Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 80 KiB |
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB |
|
@ -104,10 +104,11 @@ if !ready exit;
|
||||||
|
|
||||||
if(buttonInstant(THEME.button_hide, bx, by, ui(28), ui(28), mouse_ui, interactable && sFOCUS, sHOVER, __txtx("gradient_editor_key_blend", "Key blending"), THEME.grad_blend) == 2) {
|
if(buttonInstant(THEME.button_hide, bx, by, ui(28), ui(28), mouse_ui, interactable && sFOCUS, sHOVER, __txtx("gradient_editor_key_blend", "Key blending"), THEME.grad_blend) == 2) {
|
||||||
menuCall("gradient_window_blend_menu", bx + ui(32), by, [
|
menuCall("gradient_window_blend_menu", bx + ui(32), by, [
|
||||||
menuItem(__txtx("gradient_editor_blend_hard", "Hard blend"), function() { gradient.type = 1; onApply(gradient); }),
|
menuItem(__txtx("gradient_editor_blend_hard", "Solid"), function() { gradient.type = 1; onApply(gradient); }),
|
||||||
menuItem(__txtx("gradient_editor_blend_RGB", "RGB blend"), function() { gradient.type = 0; onApply(gradient); }),
|
menuItem(__txtx("gradient_editor_blend_RGB", "RGB"), function() { gradient.type = 0; onApply(gradient); }),
|
||||||
menuItem(__txtx("gradient_editor_blend_HSV", "HSV blend"), function() { gradient.type = 2; onApply(gradient); }),
|
menuItem(__txtx("gradient_editor_blend_sRGB", "sRGB"), function() { gradient.type = 4; onApply(gradient); }),
|
||||||
menuItem(__txtx("gradient_editor_blend_OKLAB", "OKLAB blend"), function() { gradient.type = 3; onApply(gradient); }),
|
menuItem(__txtx("gradient_editor_blend_HSV", "HSV"), function() { gradient.type = 2; onApply(gradient); }),
|
||||||
|
menuItem(__txtx("gradient_editor_blend_OKLAB", "OKLAB"), function() { gradient.type = 3; onApply(gradient); }),
|
||||||
],, gradient);
|
],, gradient);
|
||||||
}
|
}
|
||||||
bx -= ui(32);
|
bx -= ui(32);
|
||||||
|
|
|
@ -149,7 +149,7 @@
|
||||||
with(dialogCall(o_dialog_add_multiple_images, WIN_W / 2, WIN_H / 2))
|
with(dialogCall(o_dialog_add_multiple_images, WIN_W / 2, WIN_H / 2))
|
||||||
setPath(path);
|
setPath(path);
|
||||||
} else {
|
} else {
|
||||||
PANEL_GRAPH.onStepBegin();
|
if(!IS_CMD) PANEL_GRAPH.onStepBegin();
|
||||||
|
|
||||||
var node = noone;
|
var node = noone;
|
||||||
for( var i = 0, n = array_length(path); i < n; i++ ) {
|
for( var i = 0, n = array_length(path); i < n; i++ ) {
|
||||||
|
@ -192,10 +192,10 @@
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
PANEL_GRAPH.mouse_grid_y += 160;
|
if(!IS_CMD)PANEL_GRAPH.mouse_grid_y += 160;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(node)
|
if(node && !IS_CMD)
|
||||||
PANEL_GRAPH.toCenterNode();
|
PANEL_GRAPH.toCenterNode();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -313,22 +313,21 @@
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region arguments
|
#region arguments
|
||||||
|
#macro IS_CMD PROGRAM_ARGUMENTS._cmd
|
||||||
|
|
||||||
alarm[1] = 2;
|
alarm[1] = 2;
|
||||||
|
|
||||||
globalvar PROGRAM_ARGUMENTS;
|
globalvar PROGRAM_ARGUMENTS;
|
||||||
PROGRAM_ARGUMENTS = {
|
PROGRAM_ARGUMENTS = {
|
||||||
run : false,
|
_cmd : false,
|
||||||
|
_run : false,
|
||||||
|
_persist : false,
|
||||||
};
|
};
|
||||||
|
|
||||||
//PROGRAM_ARGUMENTS = {
|
//.\PixelComposer.exe "D:/Project/MakhamDev/LTS-PixelComposer/TEST/terminal/outline.pxc" --h -image "D:/Project/MakhamDev/LTS-PixelComposer/TEST/terminal/05.png"
|
||||||
// path: "D:/Project/MakhamDev/LTS-PixelComposer/TEST/terminal/outline.pxc",
|
|
||||||
// image: "D:/Project/MakhamDev/LTS-PixelComposer/TEST/terminal/05.png",
|
|
||||||
// run : true,
|
|
||||||
// persist : false,
|
|
||||||
//};
|
|
||||||
|
|
||||||
var paramCount = parameter_count();
|
var paramCount = parameter_count();
|
||||||
var paramType = "path";
|
var paramType = "_path";
|
||||||
|
|
||||||
for( var i = 0; i < paramCount; i++ ) {
|
for( var i = 0; i < paramCount; i++ ) {
|
||||||
var param = parameter_string(i);
|
var param = parameter_string(i);
|
||||||
|
@ -341,28 +340,33 @@
|
||||||
run_in(1, function() { dialogCall(o_dialog_crashed); });
|
run_in(1, function() { dialogCall(o_dialog_crashed); });
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "--h" : PROGRAM_ARGUMENTS.run = true; break;
|
case "--h" :
|
||||||
case "--p" : PROGRAM_ARGUMENTS.persist = true; break;
|
debug_event("OutputDebugOn");
|
||||||
|
PROGRAM_ARGUMENTS._cmd = true;
|
||||||
|
PROGRAM_ARGUMENTS._run = true;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "--p" : PROGRAM_ARGUMENTS._persist = true; break;
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if(string_starts_with(param, "-")) {
|
} else if(string_starts_with(param, "-")) {
|
||||||
paramType = string_trim(param, ["-"]);
|
paramType = string_trim(param, ["-"]);
|
||||||
|
|
||||||
} else if(paramType == "path") {
|
} else if(paramType == "_path") {
|
||||||
var path = param;
|
var path = param;
|
||||||
path = string_replace_all(path, "\n", "");
|
path = string_replace_all(path, "\n", "");
|
||||||
path = string_replace_all(path, "\"", "");
|
path = string_replace_all(path, "\"", "");
|
||||||
|
|
||||||
if(file_exists_empty(path) && filename_ext(path) == ".pxc")
|
if(file_exists_empty(path) && filename_ext(path) == ".pxc")
|
||||||
PROGRAM_ARGUMENTS.path = path;
|
PROGRAM_ARGUMENTS._path = path;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
PROGRAM_ARGUMENTS[$ paramType] = param;
|
PROGRAM_ARGUMENTS[$ paramType] = param;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(struct_exists(PROGRAM_ARGUMENTS, "path")) {
|
if(struct_exists(PROGRAM_ARGUMENTS, "_path")) {
|
||||||
var path = PROGRAM_ARGUMENTS.path;
|
var path = PROGRAM_ARGUMENTS._path;
|
||||||
|
|
||||||
if(PROJECT == noone || PROJECT.path != path) {
|
if(PROJECT == noone || PROJECT.path != path) {
|
||||||
file_open_parameter = path;
|
file_open_parameter = path;
|
||||||
|
@ -370,6 +374,6 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(PROGRAM_ARGUMENTS.run)
|
if(PROGRAM_ARGUMENTS._cmd)
|
||||||
draw_enable_drawevent(false);
|
draw_enable_drawevent(false);
|
||||||
#endregion
|
#endregion
|
|
@ -68,44 +68,46 @@
|
||||||
var t0 = get_timer();
|
var t0 = get_timer();
|
||||||
var t = get_timer();
|
var t = get_timer();
|
||||||
|
|
||||||
__initPatreon(); log_message("SESSION", $"> init Patreon | complete in {get_timer() - t}"); t = get_timer();
|
__initPatreon(); log_message("SESSION", $"> init Patreon | complete in {get_timer() - t}"); t = get_timer();
|
||||||
__initTheme(); log_message("SESSION", $"> init Theme | complete in {get_timer() - t}"); t = get_timer();
|
if(!IS_CMD) { __initTheme(); log_message("SESSION", $"> init Theme | complete in {get_timer() - t}"); t = get_timer(); }
|
||||||
__initLocale(); log_message("SESSION", $"> init Locale | complete in {get_timer() - t}"); t = get_timer();
|
if(!IS_CMD) { __initLocale(); log_message("SESSION", $"> init Locale | complete in {get_timer() - t}"); t = get_timer(); }
|
||||||
loadFonts(); log_message("SESSION", $"> init Font | complete in {get_timer() - t}"); t = get_timer();
|
if(!IS_CMD) { loadFonts(); log_message("SESSION", $"> init Font | complete in {get_timer() - t}"); t = get_timer(); }
|
||||||
__initProject(); log_message("SESSION", $"> init Project | complete in {get_timer() - t}"); t = get_timer();
|
__initProject(); log_message("SESSION", $"> init Project | complete in {get_timer() - t}"); t = get_timer();
|
||||||
|
|
||||||
__initAction(); log_message("SESSION", $"> init Action | complete in {get_timer() - t}"); t = get_timer();
|
if(!IS_CMD) { __initAction(); log_message("SESSION", $"> init Action | complete in {get_timer() - t}"); t = get_timer(); }
|
||||||
__initSurfaceFormat(); log_message("SESSION", $"> init SurfaceFormat | complete in {get_timer() - t}"); t = get_timer();
|
__initSurfaceFormat(); log_message("SESSION", $"> init SurfaceFormat | complete in {get_timer() - t}"); t = get_timer();
|
||||||
__initCollection(); log_message("SESSION", $"> init Collection | complete in {get_timer() - t}"); t = get_timer();
|
if(!IS_CMD) { __initCollection(); log_message("SESSION", $"> init Collection | complete in {get_timer() - t}"); t = get_timer(); }
|
||||||
__initAssets(); log_message("SESSION", $"> init Assets | complete in {get_timer() - t}"); t = get_timer();
|
if(!IS_CMD) { __initAssets(); log_message("SESSION", $"> init Assets | complete in {get_timer() - t}"); t = get_timer(); }
|
||||||
__initPresets(); log_message("SESSION", $"> init Presets | complete in {get_timer() - t}"); t = get_timer();
|
if(!IS_CMD) { __initPresets(); log_message("SESSION", $"> init Presets | complete in {get_timer() - t}"); t = get_timer(); }
|
||||||
__initFontFolder(); log_message("SESSION", $"> init FontFolder | complete in {get_timer() - t}"); t = get_timer();
|
__initFontFolder(); log_message("SESSION", $"> init FontFolder | complete in {get_timer() - t}"); t = get_timer();
|
||||||
__initLua(); log_message("SESSION", $"> init Lua | complete in {get_timer() - t}"); t = get_timer();
|
__initLua(); log_message("SESSION", $"> init Lua | complete in {get_timer() - t}"); t = get_timer();
|
||||||
__initNodeData(); log_message("SESSION", $"> init NodeData | complete in {get_timer() - t}"); t = get_timer();
|
if(!IS_CMD) { __initNodeData(); log_message("SESSION", $"> init NodeData | complete in {get_timer() - t}"); t = get_timer(); }
|
||||||
__initNodes(); log_message("SESSION", $"> init Nodes | complete in {get_timer() - t}"); t = get_timer();
|
__initNodes(); log_message("SESSION", $"> init Nodes | complete in {get_timer() - t}"); t = get_timer();
|
||||||
__initSteamUGC(); log_message("SESSION", $"> init SteamUGC | complete in {get_timer() - t}"); t = get_timer();
|
if(!IS_CMD) { __initSteamUGC(); log_message("SESSION", $"> init SteamUGC | complete in {get_timer() - t}"); t = get_timer(); }
|
||||||
__initAddon(); log_message("SESSION", $"> init Addon | complete in {get_timer() - t}"); t = get_timer();
|
if(!IS_CMD) { __initAddon(); log_message("SESSION", $"> init Addon | complete in {get_timer() - t}"); t = get_timer(); }
|
||||||
__initPalette(); log_message("SESSION", $"> init Palette | complete in {get_timer() - t}"); t = get_timer();
|
if(!IS_CMD) { __initPalette(); log_message("SESSION", $"> init Palette | complete in {get_timer() - t}"); t = get_timer(); }
|
||||||
__initGradient(); log_message("SESSION", $"> init Gradient | complete in {get_timer() - t}"); t = get_timer();
|
if(!IS_CMD) { __initGradient(); log_message("SESSION", $"> init Gradient | complete in {get_timer() - t}"); t = get_timer(); }
|
||||||
|
|
||||||
loadAddon(); log_message("SESSION", $"> init Addons | complete in {get_timer() - t}"); t = get_timer();
|
if(!IS_CMD) { loadAddon(); log_message("SESSION", $"> init Addons | complete in {get_timer() - t}"); t = get_timer(); }
|
||||||
|
|
||||||
LOAD_SAMPLE(); log_message("SESSION", $"> init sample | complete in {get_timer() - t}"); t = get_timer();
|
if(!IS_CMD) { LOAD_SAMPLE(); log_message("SESSION", $"> init sample | complete in {get_timer() - t}"); t = get_timer(); }
|
||||||
INIT_FOLDERS(); log_message("SESSION", $"> init folders | complete in {get_timer() - t}"); t = get_timer();
|
if(!IS_CMD) { INIT_FOLDERS(); log_message("SESSION", $"> init folders | complete in {get_timer() - t}"); t = get_timer(); }
|
||||||
RECENT_LOAD(); log_message("SESSION", $"> init recents | complete in {get_timer() - t}"); t = get_timer();
|
if(!IS_CMD) { RECENT_LOAD(); log_message("SESSION", $"> init recents | complete in {get_timer() - t}"); t = get_timer(); }
|
||||||
|
|
||||||
log_message("SESSION", $">> Initialization complete in {get_timer() - t0}");
|
log_message("SESSION", $">> Initialization complete in {get_timer() - t0}");
|
||||||
|
|
||||||
__initPanel();
|
if(!IS_CMD) {
|
||||||
|
__initPanel();
|
||||||
|
|
||||||
if(file_exists_empty("icon.png"))
|
if(file_exists_empty("icon.png"))
|
||||||
file_copy("icon.png", DIRECTORY + "icon.png");
|
file_copy("icon.png", DIRECTORY + "icon.png");
|
||||||
|
|
||||||
var cmd = ".pxc=\"" + string(program_directory) + "PixelComposer.exe\"";
|
var cmd = ".pxc=\"" + string(program_directory) + "PixelComposer.exe\"";
|
||||||
shell_execute_async("assoc", cmd);
|
shell_execute_async("assoc", cmd);
|
||||||
|
|
||||||
var cmd = ".pxcc=\"" + string(program_directory) + "PixelComposer.exe\"";
|
var cmd = ".pxcc=\"" + string(program_directory) + "PixelComposer.exe\"";
|
||||||
shell_execute_async("assoc", cmd);
|
shell_execute_async("assoc", cmd);
|
||||||
|
}
|
||||||
|
|
||||||
directory_set_current_working(DIRECTORY);
|
directory_set_current_working(DIRECTORY);
|
||||||
#endregion
|
#endregion
|
||||||
|
|
|
@ -101,11 +101,11 @@ _HOVERING_ELEMENT = noone;
|
||||||
PROJECT.animator.frame_progress = false;
|
PROJECT.animator.frame_progress = false;
|
||||||
} else {
|
} else {
|
||||||
if(UPDATE & RENDER_TYPE.full) {
|
if(UPDATE & RENDER_TYPE.full) {
|
||||||
if(PROGRAM_ARGUMENTS.run) {
|
if(PROGRAM_ARGUMENTS._run) {
|
||||||
exportAll();
|
exportAll();
|
||||||
PROGRAM_ARGUMENTS.run = false;
|
PROGRAM_ARGUMENTS._run = false;
|
||||||
|
|
||||||
if(!IS_RENDERING && !struct_try_get(PROGRAM_ARGUMENTS, "persist", true)) game_end();
|
if(!IS_RENDERING && !PROGRAM_ARGUMENTS._persist) game_end();
|
||||||
} else
|
} else
|
||||||
Render();
|
Render();
|
||||||
|
|
||||||
|
|
|
@ -82,10 +82,12 @@ function __Node_3D_Export(_x, _y, _group = noone) : Node(_x, _y, _group) constru
|
||||||
|
|
||||||
file_text_close(fObj);
|
file_text_close(fObj);
|
||||||
file_text_close(fMtl);
|
file_text_close(fMtl);
|
||||||
|
|
||||||
var noti = log_message("EXPORT", "Export obj as " + oPath, THEME.noti_icon_tick, COLORS._main_value_positive, false);
|
if(!IS_CMD) {
|
||||||
noti.path = filename_dir(oPath);
|
var noti = log_message("EXPORT", "Export obj as " + oPath, THEME.noti_icon_tick, COLORS._main_value_positive, false);
|
||||||
noti.setOnClick(function() { shellOpenExplorer(self.path); }, "Open in explorer", THEME.explorer);
|
noti.path = filename_dir(oPath);
|
||||||
|
noti.setOnClick(function() { shellOpenExplorer(self.path); }, "Open in explorer", THEME.explorer);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static update = function() {
|
static update = function() {
|
||||||
|
|
|
@ -167,7 +167,7 @@
|
||||||
is_rendering = false;
|
is_rendering = false;
|
||||||
time_since_last_frame = 0;
|
time_since_last_frame = 0;
|
||||||
|
|
||||||
if(struct_try_get(PROGRAM_ARGUMENTS, "persist", true)) game_end();
|
if(PROGRAM_ARGUMENTS._cmd && !PROGRAM_ARGUMENTS._persist) game_end();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,15 @@
|
||||||
return make_color_rgba(rg.x, rg.y, rg.z, a);
|
return make_color_rgba(rg.x, rg.y, rg.z, a);
|
||||||
} #endregion
|
} #endregion
|
||||||
|
|
||||||
|
function make_color_srgba(r, g, b, a) { #region
|
||||||
|
INLINE
|
||||||
|
r = power(r, 1 / 2.2) * 255;
|
||||||
|
g = power(g, 1 / 2.2) * 255;
|
||||||
|
b = power(b, 1 / 2.2) * 255;
|
||||||
|
|
||||||
|
return int64(round(r) + (round(g) << 8) + (round(b) << 16) + (round(a) << 24));
|
||||||
|
} #endregion
|
||||||
|
|
||||||
function colorFromRGBArray(arr) { #region
|
function colorFromRGBArray(arr) { #region
|
||||||
var r = round(real(arr[0]) * 255);
|
var r = round(real(arr[0]) * 255);
|
||||||
var g = round(real(arr[1]) * 255);
|
var g = round(real(arr[1]) * 255);
|
||||||
|
@ -66,6 +75,11 @@
|
||||||
return [ color_get_red(col) / 255, color_get_green(col) / 255, color_get_blue(col) / 255 ];
|
return [ color_get_red(col) / 255, color_get_green(col) / 255, color_get_blue(col) / 255 ];
|
||||||
} #endregion
|
} #endregion
|
||||||
|
|
||||||
|
function color_srgb(col) { #region
|
||||||
|
INLINE
|
||||||
|
return [ power(color_get_red(col) / 255, 2.2), power(color_get_green(col) / 255, 2.2), power(color_get_blue(col) / 255, 2.2) ];
|
||||||
|
} #endregion
|
||||||
|
|
||||||
function color_hsv(col) { #region
|
function color_hsv(col) { #region
|
||||||
INLINE
|
INLINE
|
||||||
return [ color_get_hue(col) / 255, color_get_saturation(col) / 255, color_get_value(col) / 255 ];
|
return [ color_get_hue(col) / 255, color_get_saturation(col) / 255, color_get_value(col) / 255 ];
|
||||||
|
@ -212,6 +226,23 @@ function color_diff(c1, c2, fast = false, alpha = false) { #region
|
||||||
|
|
||||||
return make_color_oklab(ok, a);
|
return make_color_oklab(ok, a);
|
||||||
} #endregion
|
} #endregion
|
||||||
|
|
||||||
|
function merge_color_srgb(c0, c1, t) { #region
|
||||||
|
INLINE
|
||||||
|
|
||||||
|
var sr0 = color_srgb(c0);
|
||||||
|
var sr1 = color_srgb(c1);
|
||||||
|
|
||||||
|
var sr = [
|
||||||
|
lerp(sr0[0], sr1[0], t),
|
||||||
|
lerp(sr0[1], sr1[1], t),
|
||||||
|
lerp(sr0[2], sr1[2], t),
|
||||||
|
];
|
||||||
|
|
||||||
|
var a = is_real(c0)? 255 : clamp(round(lerp(color_get_alpha(c0), color_get_alpha(c1), t)), 0, 255);
|
||||||
|
|
||||||
|
return make_color_srgba(sr, a);
|
||||||
|
} #endregion
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region sorting functions
|
#region sorting functions
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
#region colors
|
#region colors
|
||||||
globalvar CDEF, COLORS, THEME_VALUE;
|
globalvar CDEF, COLORS, THEME_VALUE;
|
||||||
|
|
||||||
CDEF = {};
|
CDEF = new ThemeColorDef();
|
||||||
COLORS = new ThemeColor();
|
COLORS = new ThemeColor();
|
||||||
THEME_VALUE = new ThemeValue();
|
THEME_VALUE = new ThemeValue();
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
function loadColor(theme = "default") { #region
|
function loadColor(theme = "default") { #region
|
||||||
CDEF = {};
|
CDEF = new ThemeColorDef();
|
||||||
COLORS = new ThemeColor();
|
COLORS = new ThemeColor();
|
||||||
THEME_VALUE = new ThemeValue();
|
THEME_VALUE = new ThemeValue();
|
||||||
|
|
||||||
|
|
|
@ -26,6 +26,8 @@ function __log(title, str, fname = "log/log.txt") { #region
|
||||||
|
|
||||||
function log_message(title, str, icon = noone, flash = false, write = true) { #region
|
function log_message(title, str, icon = noone, flash = false, write = true) { #region
|
||||||
if(TEST_ERROR) return;
|
if(TEST_ERROR) return;
|
||||||
|
if(IS_CMD) return;
|
||||||
|
|
||||||
if(write) __log("[MESSAGE] ", string(title) + ": " + string(str));
|
if(write) __log("[MESSAGE] ", string(title) + ": " + string(str));
|
||||||
|
|
||||||
return noti_status(string(title) + ": " + string(str), icon, flash);
|
return noti_status(string(title) + ": " + string(str), icon, flash);
|
||||||
|
@ -33,6 +35,8 @@ function log_message(title, str, icon = noone, flash = false, write = true) { #r
|
||||||
|
|
||||||
function log_warning(title, str, ref = noone) { #region
|
function log_warning(title, str, ref = noone) { #region
|
||||||
if(TEST_ERROR) return;
|
if(TEST_ERROR) return;
|
||||||
|
if(IS_CMD) return;
|
||||||
|
|
||||||
__log("[WARNING] ", string(title) + ": " + string(str));
|
__log("[WARNING] ", string(title) + ": " + string(str));
|
||||||
|
|
||||||
return noti_warning(string(title) + ": " + string(str),, ref);
|
return noti_warning(string(title) + ": " + string(str),, ref);
|
||||||
|
@ -40,6 +44,8 @@ function log_warning(title, str, ref = noone) { #region
|
||||||
|
|
||||||
function log_crash(str) { #region
|
function log_crash(str) { #region
|
||||||
if(TEST_ERROR) return;
|
if(TEST_ERROR) return;
|
||||||
|
if(IS_CMD) return;
|
||||||
|
|
||||||
__log("[ERROR] ", string(str));
|
__log("[ERROR] ", string(str));
|
||||||
|
|
||||||
return noti_error(string(str));
|
return noti_error(string(str));
|
||||||
|
|
|
@ -1,11 +1,27 @@
|
||||||
globalvar FONT_DEF, FONT_ISLOADED, FONT_CACHE, FONT_CUST_CACHE, GLYPH_MAP;
|
globalvar FONT_DEF, FONT_ISLOADED, FONT_CACHE, FONT_CUST_CACHE, GLYPH_MAP;
|
||||||
globalvar f_h1, f_h2, f_h3, f_h5, f_p0, f_p0b, f_p1, f_p2, f_p3, f_code, f_sdf, f_sdf_medium;
|
globalvar f_h1, f_h2, f_h3, f_h5, f_p0, f_p0b, f_p1, f_p2, f_p3, f_code, f_sdf, f_sdf_medium;
|
||||||
|
|
||||||
FONT_DEF = true;
|
#region default
|
||||||
FONT_CACHE = {};
|
FONT_DEF = true;
|
||||||
FONT_CUST_CACHE = {};
|
FONT_CACHE = {};
|
||||||
FONT_ISLOADED = false;
|
FONT_CUST_CACHE = {};
|
||||||
GLYPH_MAP = {};
|
FONT_ISLOADED = false;
|
||||||
|
GLYPH_MAP = {};
|
||||||
|
|
||||||
|
f_h1 = _f_h1;
|
||||||
|
f_h2 = _f_h2;
|
||||||
|
f_h3 = _f_h3;
|
||||||
|
f_h5 = _f_h5;
|
||||||
|
f_p0 = _f_p0;
|
||||||
|
f_p0b = _f_p0b;
|
||||||
|
f_p1 = _f_p1;
|
||||||
|
f_p2 = _f_p2;
|
||||||
|
f_p3 = _f_p3;
|
||||||
|
f_code = _f_code;
|
||||||
|
f_sdf = _f_sdf;
|
||||||
|
f_sdf_medium = _f_sdf_medium;
|
||||||
|
FONT_ISLOADED = false;
|
||||||
|
#endregion
|
||||||
|
|
||||||
function _font_add(path, size, sdf = false, custom = false) { #region
|
function _font_add(path, size, sdf = false, custom = false) { #region
|
||||||
var _cache = custom? FONT_CUST_CACHE : FONT_CACHE;
|
var _cache = custom? FONT_CUST_CACHE : FONT_CACHE;
|
||||||
|
|
|
@ -2,7 +2,8 @@ enum GRADIENT_INTER {
|
||||||
smooth,
|
smooth,
|
||||||
none,
|
none,
|
||||||
hue,
|
hue,
|
||||||
oklab
|
oklab,
|
||||||
|
srgb
|
||||||
}
|
}
|
||||||
|
|
||||||
function gradientKey(time, value) constructor { #region
|
function gradientKey(time, value) constructor { #region
|
||||||
|
@ -79,6 +80,7 @@ function gradientObject(color = c_black) constructor { #region
|
||||||
case GRADIENT_INTER.smooth : return merge_color (_pkey.value, _key.value, rat);
|
case GRADIENT_INTER.smooth : return merge_color (_pkey.value, _key.value, rat);
|
||||||
case GRADIENT_INTER.hue : return merge_color_hsv (_pkey.value, _key.value, rat);
|
case GRADIENT_INTER.hue : return merge_color_hsv (_pkey.value, _key.value, rat);
|
||||||
case GRADIENT_INTER.oklab : return merge_color_oklab(_pkey.value, _key.value, rat);
|
case GRADIENT_INTER.oklab : return merge_color_oklab(_pkey.value, _key.value, rat);
|
||||||
|
case GRADIENT_INTER.srgb : return merge_color_srgb (_pkey.value, _key.value, rat);
|
||||||
case GRADIENT_INTER.none : return _pkey.value;
|
case GRADIENT_INTER.none : return _pkey.value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,16 +27,19 @@ function LOAD_PATH(path, readonly = false, safe_mode = false) { #region
|
||||||
|
|
||||||
var _PROJECT = PROJECT;
|
var _PROJECT = PROJECT;
|
||||||
PROJECT = new Project();
|
PROJECT = new Project();
|
||||||
if(PANEL_GRAPH.project.path == "" && !PANEL_GRAPH.project.modified) {
|
|
||||||
var ind = array_find(PROJECTS, PANEL_GRAPH.project);
|
if(_PROJECT.path == "" && !_PROJECT.modified) {
|
||||||
|
var ind = array_find(PROJECTS, _PROJECT);
|
||||||
if(ind == -1) ind = 0;
|
if(ind == -1) ind = 0;
|
||||||
PROJECTS[ind] = PROJECT;
|
PROJECTS[ind] = PROJECT;
|
||||||
|
|
||||||
PANEL_GRAPH.setProject(PROJECT);
|
if(!IS_CMD) PANEL_GRAPH.setProject(PROJECT);
|
||||||
} else {
|
} else {
|
||||||
var graph = new Panel_Graph(PROJECT);
|
if(!IS_CMD) {
|
||||||
PANEL_GRAPH.panel.setContent(graph, true);
|
var graph = new Panel_Graph(PROJECT);
|
||||||
PANEL_GRAPH = graph;
|
PANEL_GRAPH.panel.setContent(graph, true);
|
||||||
|
PANEL_GRAPH = graph;
|
||||||
|
}
|
||||||
array_push(PROJECTS, PROJECT);
|
array_push(PROJECTS, PROJECT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -44,7 +47,8 @@ function LOAD_PATH(path, readonly = false, safe_mode = false) { #region
|
||||||
if(!res) return false;
|
if(!res) return false;
|
||||||
|
|
||||||
PROJECT.safeMode = safe_mode;
|
PROJECT.safeMode = safe_mode;
|
||||||
setFocus(PANEL_GRAPH.panel);
|
if(!IS_CMD)
|
||||||
|
setFocus(PANEL_GRAPH.panel);
|
||||||
|
|
||||||
return PROJECT;
|
return PROJECT;
|
||||||
} #endregion
|
} #endregion
|
||||||
|
@ -246,14 +250,14 @@ function LOAD_AT(path, readonly = false, override = false) { #region
|
||||||
PROJECT.modified = false;
|
PROJECT.modified = false;
|
||||||
|
|
||||||
log_message("FILE", "load " + path, THEME.noti_icon_file_load);
|
log_message("FILE", "load " + path, THEME.noti_icon_file_load);
|
||||||
PANEL_MENU.setNotiIcon(THEME.noti_icon_file_load);
|
if(!IS_CMD) PANEL_MENU.setNotiIcon(THEME.noti_icon_file_load);
|
||||||
|
|
||||||
refreshNodeMap();
|
refreshNodeMap();
|
||||||
|
|
||||||
if(struct_has(_load_content, "timelines") && !array_empty(_load_content.timelines.contents))
|
if(struct_has(_load_content, "timelines") && !array_empty(_load_content.timelines.contents))
|
||||||
PROJECT.timelines.deserialize(_load_content.timelines);
|
PROJECT.timelines.deserialize(_load_content.timelines);
|
||||||
|
|
||||||
run_in(1, PANEL_GRAPH.toCenterNode);
|
if(!IS_CMD) run_in(1, PANEL_GRAPH.toCenterNode);
|
||||||
|
|
||||||
//print($"========== Load completed in {(get_timer() - t) / 1000} ms ==========");
|
//print($"========== Load completed in {(get_timer() - t) / 1000} ms ==========");
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ enum DYNA_INPUT_COND {
|
||||||
zero = 1 << 1,
|
zero = 1 << 1,
|
||||||
}
|
}
|
||||||
|
|
||||||
function Node(_x, _y, _group = PANEL_GRAPH.getCurrentContext()) : __Node_Base(_x, _y) constructor {
|
function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor {
|
||||||
#region ---- main & active ----
|
#region ---- main & active ----
|
||||||
active = true;
|
active = true;
|
||||||
renderActive = true;
|
renderActive = true;
|
||||||
|
@ -23,7 +23,9 @@ function Node(_x, _y, _group = PANEL_GRAPH.getCurrentContext()) : __Node_Base(_x
|
||||||
manual_deletable = true;
|
manual_deletable = true;
|
||||||
manual_ungroupable = true;
|
manual_ungroupable = true;
|
||||||
destroy_when_upgroup = false;
|
destroy_when_upgroup = false;
|
||||||
ds_list_add(PANEL_GRAPH.getNodeList(_group), self);
|
|
||||||
|
var l = _group == noone? PROJECT.nodes : _group.getNodeList();
|
||||||
|
ds_list_add(l, self);
|
||||||
|
|
||||||
active_index = -1;
|
active_index = -1;
|
||||||
active_range = [ 0, TOTAL_FRAMES - 1 ];
|
active_range = [ 0, TOTAL_FRAMES - 1 ];
|
||||||
|
@ -1956,7 +1958,7 @@ function Node(_x, _y, _group = PANEL_GRAPH.getCurrentContext()) : __Node_Base(_x
|
||||||
|
|
||||||
static doApplyDeserialize = function() {}
|
static doApplyDeserialize = function() {}
|
||||||
|
|
||||||
static loadGroup = function(context = PANEL_GRAPH.getCurrentContext()) { #region
|
static loadGroup = function(context = noone) { #region
|
||||||
if(_group == noone) {
|
if(_group == noone) {
|
||||||
if(context != noone) context.add(self);
|
if(context != noone) context.add(self);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -586,8 +586,8 @@ function Node_Export(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
|
||||||
p = save_surface(_surf, p);
|
p = save_surface(_surf, p);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(form != NODE_EXPORT_FORMAT.animation) {
|
if(form != NODE_EXPORT_FORMAT.animation && !IS_CMD) {
|
||||||
var noti = log_message("EXPORT", "Export " + string(array_length(surf)) + " images complete.", THEME.noti_icon_tick, COLORS._main_value_positive, false);
|
var noti = log_message("EXPORT", $"Export {array_length(surf)} images complete.", THEME.noti_icon_tick, COLORS._main_value_positive, false);
|
||||||
noti.path = filename_dir(p);
|
noti.path = filename_dir(p);
|
||||||
noti.setOnClick(function() { shellOpenExplorer(self.path); }, "Open in explorer", THEME.explorer);
|
noti.setOnClick(function() { shellOpenExplorer(self.path); }, "Open in explorer", THEME.explorer);
|
||||||
|
|
||||||
|
@ -604,8 +604,8 @@ function Node_Export(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
|
||||||
|
|
||||||
p = save_surface(surf, p);
|
p = save_surface(surf, p);
|
||||||
|
|
||||||
if(form != NODE_EXPORT_FORMAT.animation) {
|
if(form != NODE_EXPORT_FORMAT.animation && !IS_CMD) {
|
||||||
var noti = log_message("EXPORT", "Export image as " + p, THEME.noti_icon_tick, COLORS._main_value_positive, false);
|
var noti = log_message("EXPORT", $"Export image as {p}", THEME.noti_icon_tick, COLORS._main_value_positive, false);
|
||||||
noti.path = filename_dir(p);
|
noti.path = filename_dir(p);
|
||||||
noti.setOnClick(function() { shellOpenExplorer(self.path); }, "Open in explorer", THEME.explorer);
|
noti.setOnClick(function() { shellOpenExplorer(self.path); }, "Open in explorer", THEME.explorer);
|
||||||
|
|
||||||
|
@ -693,7 +693,7 @@ function Node_Export(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
|
||||||
} #endregion
|
} #endregion
|
||||||
|
|
||||||
static doInspectorAction = function() { #region
|
static doInspectorAction = function() { #region
|
||||||
if(!PROGRAM_ARGUMENTS.run && (LOADING || APPENDING)) return;
|
if(!PROGRAM_ARGUMENTS._cmd && (LOADING || APPENDING)) return;
|
||||||
|
|
||||||
var path = getInputData(1);
|
var path = getInputData(1);
|
||||||
if(path == "") return;
|
if(path == "") return;
|
||||||
|
@ -799,10 +799,13 @@ function Node_Export(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
|
||||||
var res = ProcIdExists(render_process_id);
|
var res = ProcIdExists(render_process_id);
|
||||||
|
|
||||||
if(res == 0 || OS == os_macosx) {
|
if(res == 0 || OS == os_macosx) {
|
||||||
var noti = log_message("EXPORT", $"Export {render_type} as {render_target}", THEME.noti_icon_tick, COLORS._main_value_positive, false);
|
if(!IS_CMD) {
|
||||||
noti.path = filename_dir(render_target);
|
var noti = log_message("EXPORT", $"Export {render_type} as {render_target}", THEME.noti_icon_tick, COLORS._main_value_positive, false);
|
||||||
noti.setOnClick(function() { shellOpenExplorer(self.path); }, "Open in explorer", THEME.explorer);
|
noti.path = filename_dir(render_target);
|
||||||
PANEL_MENU.setNotiIcon(THEME.noti_icon_tick);
|
noti.setOnClick(function() { shellOpenExplorer(self.path); }, "Open in explorer", THEME.explorer);
|
||||||
|
PANEL_MENU.setNotiIcon(THEME.noti_icon_tick);
|
||||||
|
}
|
||||||
|
|
||||||
render_process_id = 0;
|
render_process_id = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -140,7 +140,7 @@
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region node function
|
#region node function
|
||||||
function nodeLoad(_data, scale = false, _group = PANEL_GRAPH.getCurrentContext()) {
|
function nodeLoad(_data, scale = false, _group = noone) {
|
||||||
if(!is_struct(_data)) return;
|
if(!is_struct(_data)) return;
|
||||||
|
|
||||||
var _x = _data.x;
|
var _x = _data.x;
|
||||||
|
|
|
@ -192,9 +192,7 @@ function Node_Global(_x = 0, _y = 0) : __Node_Base(_x, _y) constructor {
|
||||||
input_display_list = -1;
|
input_display_list = -1;
|
||||||
anim_priority = -999;
|
anim_priority = -999;
|
||||||
|
|
||||||
static valueUpdate = function(index) {
|
static valueUpdate = function(index) { RENDER_ALL }
|
||||||
RENDER_ALL
|
|
||||||
}
|
|
||||||
|
|
||||||
static createValue = function() { #region
|
static createValue = function() { #region
|
||||||
var _in = nodeValue("NewValue", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0);
|
var _in = nodeValue("NewValue", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0);
|
||||||
|
@ -262,13 +260,14 @@ function Node_Global(_x = 0, _y = 0) : __Node_Base(_x, _y) constructor {
|
||||||
var _inputs = _map.inputs;
|
var _inputs = _map.inputs;
|
||||||
|
|
||||||
for(var i = 0; i < array_length(_inputs); i++) {
|
for(var i = 0; i < array_length(_inputs); i++) {
|
||||||
var _des = _inputs[i];
|
var _des = _inputs[i];
|
||||||
var _in = createValue();
|
var _in = createValue();
|
||||||
|
var _name = struct_try_get(_des, "global_name", "");
|
||||||
|
|
||||||
_in.editor.type_index = struct_try_get(_des, "global_type", 0);
|
_in.editor.type_index = struct_try_get(_des, "global_type", 0);
|
||||||
_in.editor.disp_index = struct_try_get(_des, "global_disp", 0);
|
_in.editor.disp_index = struct_try_get(_des, "global_disp", 0);
|
||||||
_in.editor.disp_index = struct_try_get(_des, "global_disp", 0);
|
_in.editor.disp_index = struct_try_get(_des, "global_disp", 0);
|
||||||
_in.editor.value_name = struct_try_get(_des, "global_name", "");
|
_in.editor.value_name = _name;
|
||||||
|
|
||||||
_in.editor.slider_range = _des.global_s_range;
|
_in.editor.slider_range = _des.global_s_range;
|
||||||
_in.editor.slider_step = struct_try_get(_des, "global_s_step", 0.01);
|
_in.editor.slider_step = struct_try_get(_des, "global_s_step", 0.01);
|
||||||
|
@ -276,6 +275,8 @@ function Node_Global(_x = 0, _y = 0) : __Node_Base(_x, _y) constructor {
|
||||||
_in.editor.refreshInput();
|
_in.editor.refreshInput();
|
||||||
|
|
||||||
_in.applyDeserialize(_des);
|
_in.applyDeserialize(_des);
|
||||||
|
|
||||||
|
if(struct_has(PROGRAM_ARGUMENTS, _name)) _in.setValue(PROGRAM_ARGUMENTS[$ _name]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(struct_has(_map, "attr")) struct_override(attributes, _map.attr);
|
if(struct_has(_map, "attr")) struct_override(attributes, _map.attr);
|
||||||
|
|
|
@ -13,7 +13,7 @@ function Node_Gradient_Palette(_x, _y, _group = noone) : Node_Processor(_x, _y,
|
||||||
inputs[| 2].array_depth = 1;
|
inputs[| 2].array_depth = 1;
|
||||||
|
|
||||||
inputs[| 3] = nodeValue("Blending", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 1)
|
inputs[| 3] = nodeValue("Blending", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 1)
|
||||||
.setDisplay(VALUE_DISPLAY.enum_button, [ "Hard", "RGB", "HSV", "OKLAB" ]);
|
.setDisplay(VALUE_DISPLAY.enum_button, [ "Hard", "RGB", "HSV", "OKLAB", "sRGB" ]);
|
||||||
|
|
||||||
outputs[| 0] = nodeValue("Gradient", self, JUNCTION_CONNECT.output, VALUE_TYPE.gradient, new gradientObject(c_white) )
|
outputs[| 0] = nodeValue("Gradient", self, JUNCTION_CONNECT.output, VALUE_TYPE.gradient, new gradientObject(c_white) )
|
||||||
|
|
||||||
|
@ -46,6 +46,7 @@ function Node_Gradient_Palette(_x, _y, _group = noone) : Node_Processor(_x, _y,
|
||||||
case 1 : grad.type = GRADIENT_INTER.smooth; break;
|
case 1 : grad.type = GRADIENT_INTER.smooth; break;
|
||||||
case 2 : grad.type = GRADIENT_INTER.hue; break;
|
case 2 : grad.type = GRADIENT_INTER.hue; break;
|
||||||
case 3 : grad.type = GRADIENT_INTER.oklab; break;
|
case 3 : grad.type = GRADIENT_INTER.oklab; break;
|
||||||
|
case 4 : grad.type = GRADIENT_INTER.srgb; break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return grad;
|
return grad;
|
||||||
|
|
12
scripts/node_lovify/node_checkerboard.yy
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"isDnD": false,
|
||||||
|
"isCompatibility": false,
|
||||||
|
"parent": {
|
||||||
|
"name": "generator",
|
||||||
|
"path": "folders/nodes/data/generator.yy",
|
||||||
|
},
|
||||||
|
"resourceVersion": "1.0",
|
||||||
|
"name": "node_checkerboard",
|
||||||
|
"tags": [],
|
||||||
|
"resourceType": "GMScript",
|
||||||
|
}
|
71
scripts/node_lovify/node_lovify.gml
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
function Node_Lovify(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
|
||||||
|
name = "Lovify";
|
||||||
|
color = CDEF.red;
|
||||||
|
|
||||||
|
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone );
|
||||||
|
|
||||||
|
inputs[| 1] = nodeValue("Seed", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, seed_random(6) );
|
||||||
|
|
||||||
|
inputs[| 2] = nodeValue("Density", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.5 )
|
||||||
|
.setDisplay(VALUE_DISPLAY.slider);
|
||||||
|
|
||||||
|
inputs[| 3] = nodeValue("Distribution", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.1 )
|
||||||
|
.setDisplay(VALUE_DISPLAY.slider);
|
||||||
|
|
||||||
|
outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone);
|
||||||
|
|
||||||
|
input_display_list = [ 1,
|
||||||
|
["Surfaces", false], 0,
|
||||||
|
["Love", false], 2, 3,
|
||||||
|
];
|
||||||
|
|
||||||
|
attribute_surface_depth();
|
||||||
|
|
||||||
|
static processData = function(_outSurf, _data, _output_index, _array_index) {
|
||||||
|
var _surf = _data[0];
|
||||||
|
var _seed = _data[1];
|
||||||
|
var _dens = _data[2];
|
||||||
|
var _dist = _data[3];
|
||||||
|
var _dim = surface_get_dimension(_surf);
|
||||||
|
|
||||||
|
_outSurf = surface_verify(_outSurf, _dim[0], _dim[1], attrDepth());
|
||||||
|
|
||||||
|
random_set_seed(_seed);
|
||||||
|
|
||||||
|
var amo = (_dim[0] * _dim[1]) / 8 * _dens;
|
||||||
|
var sprs = [ s_lovify_heart_6 ];
|
||||||
|
var sde = max(_dim[0], _dim[1]);
|
||||||
|
var hmax = 12;
|
||||||
|
|
||||||
|
if(sde > 16) { sprs[1] = s_lovify_heart_8; hmax = 16; }
|
||||||
|
if(sde > 20) { sprs[2] = s_lovify_heart_10; hmax = 20; }
|
||||||
|
if(sde > 24) { sprs[3] = s_lovify_heart_12; hmax = 24; }
|
||||||
|
if(sde > 32) { sprs[4] = s_lovify_heart_16; hmax = 32; }
|
||||||
|
|
||||||
|
var maxS = min(4, ceil(sde / hmax / 4));
|
||||||
|
|
||||||
|
surface_set_target(_outSurf);
|
||||||
|
DRAW_CLEAR
|
||||||
|
|
||||||
|
shader_set(sh_lovify);
|
||||||
|
draw_surface(_surf, 0, 0);
|
||||||
|
shader_reset();
|
||||||
|
|
||||||
|
repeat(amo) {
|
||||||
|
var _r = power(random_seed(1, _seed++), _dist) * 0.75;
|
||||||
|
var _a = random_seed(360, _seed++);
|
||||||
|
|
||||||
|
var _x = lengthdir_x(_r, _a) + 0.5;
|
||||||
|
var _y = lengthdir_y(_r, _a) + 0.5;
|
||||||
|
|
||||||
|
_x *= _dim[0];
|
||||||
|
_y *= _dim[1];
|
||||||
|
|
||||||
|
var ss = irandom_range_seed(1, maxS, _seed++);
|
||||||
|
draw_sprite_ext(sprs[irandom(array_length(sprs) - 1)], 0, _x, _y, ss, ss, 0, c_white, 1);
|
||||||
|
}
|
||||||
|
surface_reset_target();
|
||||||
|
|
||||||
|
return _outSurf;
|
||||||
|
}
|
||||||
|
}
|
11
scripts/node_lovify/node_lovify.yy
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"resourceType": "GMScript",
|
||||||
|
"resourceVersion": "1.0",
|
||||||
|
"name": "node_lovify",
|
||||||
|
"isCompatibility": false,
|
||||||
|
"isDnD": false,
|
||||||
|
"parent": {
|
||||||
|
"name": "lovify",
|
||||||
|
"path": "folders/nodes/data/misc/lovify.yy",
|
||||||
|
},
|
||||||
|
}
|
12
scripts/node_lovify/node_stripe.yy
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"isDnD": false,
|
||||||
|
"isCompatibility": false,
|
||||||
|
"parent": {
|
||||||
|
"name": "generator",
|
||||||
|
"path": "folders/nodes/data/generator.yy",
|
||||||
|
},
|
||||||
|
"resourceVersion": "1.0",
|
||||||
|
"name": "node_stripe",
|
||||||
|
"tags": [],
|
||||||
|
"resourceType": "GMScript",
|
||||||
|
}
|
|
@ -2,8 +2,11 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor { #regio
|
||||||
name = _name;
|
name = _name;
|
||||||
spr = _spr;
|
spr = _spr;
|
||||||
node = _node;
|
node = _node;
|
||||||
|
icon = noone;
|
||||||
|
|
||||||
createNode = _create;
|
createNode = _create;
|
||||||
self.tags = tags;
|
self.tags = tags;
|
||||||
|
new_node = false;
|
||||||
|
|
||||||
tooltip = "";
|
tooltip = "";
|
||||||
tooltip_spr = noone;
|
tooltip_spr = noone;
|
||||||
|
@ -14,12 +17,12 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor { #regio
|
||||||
|
|
||||||
is_patreon_extra = false;
|
is_patreon_extra = false;
|
||||||
|
|
||||||
var pth = DIRECTORY + "Nodes/tooltip/" + node + ".png";
|
if(!IS_CMD) {
|
||||||
if(file_exists_empty(pth))
|
var pth = DIRECTORY + "Nodes/tooltip/" + node + ".png";
|
||||||
tooltip_spr = sprite_add(pth, 0, false, false, 0, 0);
|
if(file_exists_empty(pth)) tooltip_spr = sprite_add(pth, 0, false, false, 0, 0);
|
||||||
new_node = false;
|
}
|
||||||
|
|
||||||
if(struct_has(global.NODE_GUIDE, node)) { #region
|
if(!IS_CMD && struct_has(global.NODE_GUIDE, node)) { #region
|
||||||
var _n = global.NODE_GUIDEarn[$ node];
|
var _n = global.NODE_GUIDEarn[$ node];
|
||||||
name = _n.name;
|
name = _n.name;
|
||||||
if(_n.tooltip != "")
|
if(_n.tooltip != "")
|
||||||
|
@ -41,6 +44,12 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor { #regio
|
||||||
return self;
|
return self;
|
||||||
} #endregion
|
} #endregion
|
||||||
|
|
||||||
|
static setIcon = function(icon) { #region
|
||||||
|
INLINE
|
||||||
|
self.icon = icon;
|
||||||
|
return self;
|
||||||
|
} #endregion
|
||||||
|
|
||||||
static isDeprecated = function() { #region
|
static isDeprecated = function() { #region
|
||||||
INLINE
|
INLINE
|
||||||
deprecated = true;
|
deprecated = true;
|
||||||
|
@ -105,11 +114,11 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor { #regio
|
||||||
|
|
||||||
var fav = array_exists(global.FAV_NODES, node);
|
var fav = array_exists(global.FAV_NODES, node);
|
||||||
if(fav) draw_sprite_ui_uniform(THEME.star, 0, _x + grid_size - ui(10), _y + grid_size - ui(10), 0.7, COLORS._main_accent, 1.);
|
if(fav) draw_sprite_ui_uniform(THEME.star, 0, _x + grid_size - ui(10), _y + grid_size - ui(10), 0.7, COLORS._main_accent, 1.);
|
||||||
|
|
||||||
|
var spr_x = _x + grid_size - 4;
|
||||||
|
var spr_y = _y + 4;
|
||||||
|
|
||||||
if(IS_PATREON && is_patreon_extra) {
|
if(IS_PATREON && is_patreon_extra) {
|
||||||
var spr_x = _x + grid_size - 4;
|
|
||||||
var spr_y = _y + 4;
|
|
||||||
|
|
||||||
BLEND_SUBTRACT
|
BLEND_SUBTRACT
|
||||||
gpu_set_colorwriteenable(0, 0, 0, 1);
|
gpu_set_colorwriteenable(0, 0, 0, 1);
|
||||||
draw_sprite_ext(s_patreon_supporter, 0, spr_x, spr_y, 1, 1, 0, c_white, 1);
|
draw_sprite_ext(s_patreon_supporter, 0, spr_x, spr_y, 1, 1, 0, c_white, 1);
|
||||||
|
@ -120,6 +129,8 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor { #regio
|
||||||
|
|
||||||
if(point_in_circle(_mx, _my, spr_x, spr_y, 10)) TOOLTIP = __txt("Supporter exclusive");
|
if(point_in_circle(_mx, _my, spr_x, spr_y, 10)) TOOLTIP = __txt("Supporter exclusive");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(icon) draw_sprite_ext(icon, 0, spr_x, spr_y, 1, 1, 0, c_white, 1);
|
||||||
} #endregion
|
} #endregion
|
||||||
|
|
||||||
static drawList = function(_x, _y, _mx, _my, list_height) { #region
|
static drawList = function(_x, _y, _mx, _my, list_height) { #region
|
||||||
|
@ -234,13 +245,15 @@ function addNodePCXCatagory(name, list, filter = []) { #region
|
||||||
function __initNodes() {
|
function __initNodes() {
|
||||||
global.__currPage = "";
|
global.__currPage = "";
|
||||||
|
|
||||||
var favPath = DIRECTORY + "Nodes/fav.json";
|
if(!IS_CMD) {
|
||||||
global.FAV_NODES = file_exists_empty(favPath)? json_load_struct(favPath) : [];
|
var favPath = DIRECTORY + "Nodes/fav.json";
|
||||||
if(!is_array(global.FAV_NODES)) global.FAV_NODES = [];
|
global.FAV_NODES = file_exists_empty(favPath)? json_load_struct(favPath) : [];
|
||||||
|
if(!is_array(global.FAV_NODES)) global.FAV_NODES = [];
|
||||||
|
|
||||||
var recPath = DIRECTORY + "Nodes/recent.json";
|
var recPath = DIRECTORY + "Nodes/recent.json";
|
||||||
global.RECENT_NODES = file_exists_empty(recPath)? json_load_struct(recPath) : [];
|
global.RECENT_NODES = file_exists_empty(recPath)? json_load_struct(recPath) : [];
|
||||||
if(!is_array(global.RECENT_NODES)) global.RECENT_NODES = [];
|
if(!is_array(global.RECENT_NODES)) global.RECENT_NODES = [];
|
||||||
|
}
|
||||||
|
|
||||||
NODE_PAGE_DEFAULT = ds_list_size(NODE_CATEGORY);
|
NODE_PAGE_DEFAULT = ds_list_size(NODE_CATEGORY);
|
||||||
ADD_NODE_PAGE = NODE_PAGE_DEFAULT;
|
ADD_NODE_PAGE = NODE_PAGE_DEFAULT;
|
||||||
|
@ -488,6 +501,8 @@ function __initNodes() {
|
||||||
|
|
||||||
var filter = ds_list_create(); #region
|
var filter = ds_list_create(); #region
|
||||||
addNodeCatagory("Filter", filter);
|
addNodeCatagory("Filter", filter);
|
||||||
|
addNodeObject(filter, "Lovify", s_node_lovify, "Node_Lovify", [1, Node_Lovify]).setIcon(s_lovify_icon);
|
||||||
|
|
||||||
ds_list_add(filter, "Combines");
|
ds_list_add(filter, "Combines");
|
||||||
addNodeObject(filter, "Blend", s_node_blend, "Node_Blend", [0, Node_create_Blend], ["normal", "add", "subtract", "multiply", "screen", "maxx", "minn"], "Blend 2 images using different blendmodes.");
|
addNodeObject(filter, "Blend", s_node_blend, "Node_Blend", [0, Node_create_Blend], ["normal", "add", "subtract", "multiply", "screen", "maxx", "minn"], "Blend 2 images using different blendmodes.");
|
||||||
addNodeObject(filter, "RGBA Combine", s_node_RGB_combine, "Node_Combine_RGB", [1, Node_Combine_RGB],, "Combine 4 image in to one. Each image use to control RGBA channel.").setVersion(1070);
|
addNodeObject(filter, "RGBA Combine", s_node_RGB_combine, "Node_Combine_RGB", [1, Node_Combine_RGB],, "Combine 4 image in to one. Each image use to control RGBA channel.").setVersion(1070);
|
||||||
|
|
|
@ -160,6 +160,7 @@
|
||||||
|
|
||||||
#region save load
|
#region save load
|
||||||
function PREF_SAVE() { #region
|
function PREF_SAVE() { #region
|
||||||
|
if(IS_CMD) return;
|
||||||
var map = {};
|
var map = {};
|
||||||
|
|
||||||
var save_l = [];
|
var save_l = [];
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
function timelineItem() constructor {
|
function timelineItem() constructor {
|
||||||
show = true;
|
show = true;
|
||||||
active = true;
|
active = true;
|
||||||
|
|
||||||
color = -1;
|
color = -1;
|
||||||
color_cur = CDEF.main_grey;
|
color_cur = CDEF.main_grey;
|
||||||
color_dsp = -1;
|
color_dsp = -1;
|
||||||
parent = noone;
|
parent = noone;
|
||||||
|
|
||||||
static setColor = function(color) { self.color = color; }
|
static setColor = function(color) { self.color = color; }
|
||||||
static getColor = function() { return color; }
|
static getColor = function() { return color; }
|
||||||
|
|
|
@ -18,6 +18,16 @@ uniform sampler2D gradient_shiftSurf;
|
||||||
uniform vec4 gradient_map_range;
|
uniform vec4 gradient_map_range;
|
||||||
uniform sampler2D gradient_map;
|
uniform sampler2D gradient_map;
|
||||||
|
|
||||||
|
vec3 linearToGamma(vec3 c) { return pow(c, vec3( 2.2)); }
|
||||||
|
vec3 gammaToLinear(vec3 c) { return pow(c, vec3(1. / 2.2)); }
|
||||||
|
|
||||||
|
vec3 rgbMix(vec3 c1, vec3 c2, float t) { #region
|
||||||
|
vec3 k1 = linearToGamma(c1);
|
||||||
|
vec3 k2 = linearToGamma(c2);
|
||||||
|
|
||||||
|
return gammaToLinear(mix(k1, k2, t));
|
||||||
|
} #endregion
|
||||||
|
|
||||||
vec3 rgb2oklab(vec3 c) { #region
|
vec3 rgb2oklab(vec3 c) { #region
|
||||||
const mat3 kCONEtoLMS = mat3(
|
const mat3 kCONEtoLMS = mat3(
|
||||||
0.4121656120, 0.2118591070, 0.0883097947,
|
0.4121656120, 0.2118591070, 0.0883097947,
|
||||||
|
@ -99,17 +109,25 @@ uniform sampler2D gradient_shiftSurf;
|
||||||
if(i == 0)
|
if(i == 0)
|
||||||
col = gradient_color[i];
|
col = gradient_color[i];
|
||||||
else {
|
else {
|
||||||
float t = (prog - gradient_time[i - 1]) / (gradient_time[i] - gradient_time[i - 1]);
|
float t = (prog - gradient_time[i - 1]) / (gradient_time[i] - gradient_time[i - 1]);
|
||||||
float a = mix(gradient_color[i - 1].a, gradient_color[i].a, t);
|
vec3 c0 = gradient_color[i - 1].rgb;
|
||||||
|
vec3 c1 = gradient_color[i].rgb;
|
||||||
|
float a = mix(gradient_color[i - 1].a, gradient_color[i].a, t);
|
||||||
|
|
||||||
if(gradient_blend == 0)
|
if(gradient_blend == 0)
|
||||||
col = mix(gradient_color[i - 1], gradient_color[i], t);
|
col = vec4(mix(c0, c1, t), a);
|
||||||
|
|
||||||
else if(gradient_blend == 1)
|
else if(gradient_blend == 1)
|
||||||
col = gradient_color[i - 1];
|
col = gradient_color[i - 1];
|
||||||
|
|
||||||
else if(gradient_blend == 2)
|
else if(gradient_blend == 2)
|
||||||
col = vec4(hsvMix(gradient_color[i - 1].rgb, gradient_color[i].rgb, t), a);
|
col = vec4(hsvMix(c0, c1, t), a);
|
||||||
|
|
||||||
else if(gradient_blend == 3)
|
else if(gradient_blend == 3)
|
||||||
col = vec4(oklabMax(gradient_color[i - 1].rgb, gradient_color[i].rgb, t), a);
|
col = vec4(oklabMax(c0, c1, t), a);
|
||||||
|
|
||||||
|
else if(gradient_blend == 4)
|
||||||
|
col = vec4(rgbMix(c0, c1, t), a);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,6 +14,16 @@ uniform vec2 dimension;
|
||||||
uniform vec4 gradient_map_range;
|
uniform vec4 gradient_map_range;
|
||||||
uniform sampler2D gradient_map;
|
uniform sampler2D gradient_map;
|
||||||
|
|
||||||
|
vec3 linearToGamma(vec3 c) { return pow(c, vec3( 2.2)); }
|
||||||
|
vec3 gammaToLinear(vec3 c) { return pow(c, vec3(1. / 2.2)); }
|
||||||
|
|
||||||
|
vec3 rgbMix(vec3 c1, vec3 c2, float t) { #region
|
||||||
|
vec3 k1 = linearToGamma(c1);
|
||||||
|
vec3 k2 = linearToGamma(c2);
|
||||||
|
|
||||||
|
return gammaToLinear(mix(k1, k2, t));
|
||||||
|
} #endregion
|
||||||
|
|
||||||
vec3 rgb2oklab(vec3 c) { #region
|
vec3 rgb2oklab(vec3 c) { #region
|
||||||
const mat3 kCONEtoLMS = mat3(
|
const mat3 kCONEtoLMS = mat3(
|
||||||
0.4121656120, 0.2118591070, 0.0883097947,
|
0.4121656120, 0.2118591070, 0.0883097947,
|
||||||
|
@ -95,17 +105,25 @@ uniform vec2 dimension;
|
||||||
if(i == 0)
|
if(i == 0)
|
||||||
col = gradient_color[i];
|
col = gradient_color[i];
|
||||||
else {
|
else {
|
||||||
float t = (prog - gradient_time[i - 1]) / (gradient_time[i] - gradient_time[i - 1]);
|
float t = (prog - gradient_time[i - 1]) / (gradient_time[i] - gradient_time[i - 1]);
|
||||||
float a = mix(gradient_color[i - 1].a, gradient_color[i].a, t);
|
vec3 c0 = gradient_color[i - 1].rgb;
|
||||||
|
vec3 c1 = gradient_color[i].rgb;
|
||||||
|
float a = mix(gradient_color[i - 1].a, gradient_color[i].a, t);
|
||||||
|
|
||||||
if(gradient_blend == 0)
|
if(gradient_blend == 0)
|
||||||
col = mix(gradient_color[i - 1], gradient_color[i], t);
|
col = vec4(mix(c0, c1, t), a);
|
||||||
|
|
||||||
else if(gradient_blend == 1)
|
else if(gradient_blend == 1)
|
||||||
col = gradient_color[i - 1];
|
col = gradient_color[i - 1];
|
||||||
|
|
||||||
else if(gradient_blend == 2)
|
else if(gradient_blend == 2)
|
||||||
col = vec4(hsvMix(gradient_color[i - 1].rgb, gradient_color[i].rgb, t), a);
|
col = vec4(hsvMix(c0, c1, t), a);
|
||||||
|
|
||||||
else if(gradient_blend == 3)
|
else if(gradient_blend == 3)
|
||||||
col = vec4(oklabMax(gradient_color[i - 1].rgb, gradient_color[i].rgb, t), a);
|
col = vec4(oklabMax(c0, c1, t), a);
|
||||||
|
|
||||||
|
else if(gradient_blend == 4)
|
||||||
|
col = vec4(rgbMix(c0, c1, t), a);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,6 +40,16 @@ uniform int uniAsp;
|
||||||
uniform vec4 gradient_map_range;
|
uniform vec4 gradient_map_range;
|
||||||
uniform sampler2D gradient_map;
|
uniform sampler2D gradient_map;
|
||||||
|
|
||||||
|
vec3 linearToGamma(vec3 c) { return pow(c, vec3( 2.2)); }
|
||||||
|
vec3 gammaToLinear(vec3 c) { return pow(c, vec3(1. / 2.2)); }
|
||||||
|
|
||||||
|
vec3 rgbMix(vec3 c1, vec3 c2, float t) { #region
|
||||||
|
vec3 k1 = linearToGamma(c1);
|
||||||
|
vec3 k2 = linearToGamma(c2);
|
||||||
|
|
||||||
|
return gammaToLinear(mix(k1, k2, t));
|
||||||
|
} #endregion
|
||||||
|
|
||||||
vec3 rgb2oklab(vec3 c) { #region
|
vec3 rgb2oklab(vec3 c) { #region
|
||||||
const mat3 kCONEtoLMS = mat3(
|
const mat3 kCONEtoLMS = mat3(
|
||||||
0.4121656120, 0.2118591070, 0.0883097947,
|
0.4121656120, 0.2118591070, 0.0883097947,
|
||||||
|
@ -121,17 +131,25 @@ uniform int uniAsp;
|
||||||
if(i == 0)
|
if(i == 0)
|
||||||
col = gradient_color[i];
|
col = gradient_color[i];
|
||||||
else {
|
else {
|
||||||
float t = (prog - gradient_time[i - 1]) / (gradient_time[i] - gradient_time[i - 1]);
|
float t = (prog - gradient_time[i - 1]) / (gradient_time[i] - gradient_time[i - 1]);
|
||||||
float a = mix(gradient_color[i - 1].a, gradient_color[i].a, t);
|
vec3 c0 = gradient_color[i - 1].rgb;
|
||||||
|
vec3 c1 = gradient_color[i].rgb;
|
||||||
|
float a = mix(gradient_color[i - 1].a, gradient_color[i].a, t);
|
||||||
|
|
||||||
if(gradient_blend == 0)
|
if(gradient_blend == 0)
|
||||||
col = mix(gradient_color[i - 1], gradient_color[i], t);
|
col = vec4(mix(c0, c1, t), a);
|
||||||
|
|
||||||
else if(gradient_blend == 1)
|
else if(gradient_blend == 1)
|
||||||
col = gradient_color[i - 1];
|
col = gradient_color[i - 1];
|
||||||
|
|
||||||
else if(gradient_blend == 2)
|
else if(gradient_blend == 2)
|
||||||
col = vec4(hsvMix(gradient_color[i - 1].rgb, gradient_color[i].rgb, t), a);
|
col = vec4(hsvMix(c0, c1, t), a);
|
||||||
|
|
||||||
else if(gradient_blend == 3)
|
else if(gradient_blend == 3)
|
||||||
col = vec4(oklabMax(gradient_color[i - 1].rgb, gradient_color[i].rgb, t), a);
|
col = vec4(oklabMax(c0, c1, t), a);
|
||||||
|
|
||||||
|
else if(gradient_blend == 4)
|
||||||
|
col = vec4(rgbMix(c0, c1, t), a);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,6 +11,16 @@ varying vec4 v_vColour;
|
||||||
uniform float gradient_time[GRADIENT_LIMIT];
|
uniform float gradient_time[GRADIENT_LIMIT];
|
||||||
uniform int gradient_keys;
|
uniform int gradient_keys;
|
||||||
|
|
||||||
|
vec3 linearToGamma(vec3 c) { return pow(c, vec3( 2.2)); }
|
||||||
|
vec3 gammaToLinear(vec3 c) { return pow(c, vec3(1. / 2.2)); }
|
||||||
|
|
||||||
|
vec3 rgbMix(vec3 c1, vec3 c2, float t) { #region
|
||||||
|
vec3 k1 = linearToGamma(c1);
|
||||||
|
vec3 k2 = linearToGamma(c2);
|
||||||
|
|
||||||
|
return gammaToLinear(mix(k1, k2, t));
|
||||||
|
} #endregion
|
||||||
|
|
||||||
vec3 rgb2oklab(vec3 c) { #region
|
vec3 rgb2oklab(vec3 c) { #region
|
||||||
const mat3 kCONEtoLMS = mat3(
|
const mat3 kCONEtoLMS = mat3(
|
||||||
0.4121656120, 0.2118591070, 0.0883097947,
|
0.4121656120, 0.2118591070, 0.0883097947,
|
||||||
|
@ -87,17 +97,25 @@ varying vec4 v_vColour;
|
||||||
if(i == 0)
|
if(i == 0)
|
||||||
col = gradient_color[i];
|
col = gradient_color[i];
|
||||||
else {
|
else {
|
||||||
float t = (prog - gradient_time[i - 1]) / (gradient_time[i] - gradient_time[i - 1]);
|
float t = (prog - gradient_time[i - 1]) / (gradient_time[i] - gradient_time[i - 1]);
|
||||||
float a = mix(gradient_color[i - 1].a, gradient_color[i].a, t);
|
vec3 c0 = gradient_color[i - 1].rgb;
|
||||||
|
vec3 c1 = gradient_color[i].rgb;
|
||||||
|
float a = mix(gradient_color[i - 1].a, gradient_color[i].a, t);
|
||||||
|
|
||||||
if(gradient_blend == 0)
|
if(gradient_blend == 0)
|
||||||
col = mix(gradient_color[i - 1], gradient_color[i], t);
|
col = vec4(mix(c0, c1, t), a);
|
||||||
|
|
||||||
else if(gradient_blend == 1)
|
else if(gradient_blend == 1)
|
||||||
col = gradient_color[i - 1];
|
col = gradient_color[i - 1];
|
||||||
|
|
||||||
else if(gradient_blend == 2)
|
else if(gradient_blend == 2)
|
||||||
col = vec4(hsvMix(gradient_color[i - 1].rgb, gradient_color[i].rgb, t), a);
|
col = vec4(hsvMix(c0, c1, t), a);
|
||||||
|
|
||||||
else if(gradient_blend == 3)
|
else if(gradient_blend == 3)
|
||||||
col = vec4(oklabMax(gradient_color[i - 1].rgb, gradient_color[i].rgb, t), a);
|
col = vec4(oklabMax(c0, c1, t), a);
|
||||||
|
|
||||||
|
else if(gradient_blend == 4)
|
||||||
|
col = vec4(rgbMix(c0, c1, t), a);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,6 +11,16 @@ varying vec4 v_vColour;
|
||||||
uniform float gradient_time[GRADIENT_LIMIT];
|
uniform float gradient_time[GRADIENT_LIMIT];
|
||||||
uniform int gradient_keys;
|
uniform int gradient_keys;
|
||||||
|
|
||||||
|
vec3 linearToGamma(vec3 c) { return pow(c, vec3( 2.2)); }
|
||||||
|
vec3 gammaToLinear(vec3 c) { return pow(c, vec3(1. / 2.2)); }
|
||||||
|
|
||||||
|
vec3 rgbMix(vec3 c1, vec3 c2, float t) { #region
|
||||||
|
vec3 k1 = linearToGamma(c1);
|
||||||
|
vec3 k2 = linearToGamma(c2);
|
||||||
|
|
||||||
|
return gammaToLinear(mix(k1, k2, t));
|
||||||
|
} #endregion
|
||||||
|
|
||||||
vec3 rgb2oklab(vec3 c) { #region
|
vec3 rgb2oklab(vec3 c) { #region
|
||||||
const mat3 kCONEtoLMS = mat3(
|
const mat3 kCONEtoLMS = mat3(
|
||||||
0.4121656120, 0.2118591070, 0.0883097947,
|
0.4121656120, 0.2118591070, 0.0883097947,
|
||||||
|
@ -87,17 +97,25 @@ varying vec4 v_vColour;
|
||||||
if(i == 0)
|
if(i == 0)
|
||||||
col = gradient_color[i];
|
col = gradient_color[i];
|
||||||
else {
|
else {
|
||||||
float t = (prog - gradient_time[i - 1]) / (gradient_time[i] - gradient_time[i - 1]);
|
float t = (prog - gradient_time[i - 1]) / (gradient_time[i] - gradient_time[i - 1]);
|
||||||
float a = mix(gradient_color[i - 1].a, gradient_color[i].a, t);
|
vec3 c0 = gradient_color[i - 1].rgb;
|
||||||
|
vec3 c1 = gradient_color[i].rgb;
|
||||||
|
float a = mix(gradient_color[i - 1].a, gradient_color[i].a, t);
|
||||||
|
|
||||||
if(gradient_blend == 0)
|
if(gradient_blend == 0)
|
||||||
col = mix(gradient_color[i - 1], gradient_color[i], t);
|
col = vec4(mix(c0, c1, t), a);
|
||||||
|
|
||||||
else if(gradient_blend == 1)
|
else if(gradient_blend == 1)
|
||||||
col = gradient_color[i - 1];
|
col = gradient_color[i - 1];
|
||||||
|
|
||||||
else if(gradient_blend == 2)
|
else if(gradient_blend == 2)
|
||||||
col = vec4(hsvMix(gradient_color[i - 1].rgb, gradient_color[i].rgb, t), a);
|
col = vec4(hsvMix(c0, c1, t), a);
|
||||||
|
|
||||||
else if(gradient_blend == 3)
|
else if(gradient_blend == 3)
|
||||||
col = vec4(oklabMax(gradient_color[i - 1].rgb, gradient_color[i].rgb, t), a);
|
col = vec4(oklabMax(c0, c1, t), a);
|
||||||
|
|
||||||
|
else if(gradient_blend == 4)
|
||||||
|
col = vec4(rgbMix(c0, c1, t), a);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,6 +46,16 @@ float random (in vec2 st) { return fract(sin(dot(st.xy + vec2(85.456034, 64.5406
|
||||||
uniform vec4 gradient_map_range;
|
uniform vec4 gradient_map_range;
|
||||||
uniform sampler2D gradient_map;
|
uniform sampler2D gradient_map;
|
||||||
|
|
||||||
|
vec3 linearToGamma(vec3 c) { return pow(c, vec3( 2.2)); }
|
||||||
|
vec3 gammaToLinear(vec3 c) { return pow(c, vec3(1. / 2.2)); }
|
||||||
|
|
||||||
|
vec3 rgbMix(vec3 c1, vec3 c2, float t) { #region
|
||||||
|
vec3 k1 = linearToGamma(c1);
|
||||||
|
vec3 k2 = linearToGamma(c2);
|
||||||
|
|
||||||
|
return gammaToLinear(mix(k1, k2, t));
|
||||||
|
} #endregion
|
||||||
|
|
||||||
vec3 rgb2oklab(vec3 c) { #region
|
vec3 rgb2oklab(vec3 c) { #region
|
||||||
const mat3 kCONEtoLMS = mat3(
|
const mat3 kCONEtoLMS = mat3(
|
||||||
0.4121656120, 0.2118591070, 0.0883097947,
|
0.4121656120, 0.2118591070, 0.0883097947,
|
||||||
|
@ -127,17 +137,25 @@ float random (in vec2 st) { return fract(sin(dot(st.xy + vec2(85.456034, 64.5406
|
||||||
if(i == 0)
|
if(i == 0)
|
||||||
col = gradient_color[i];
|
col = gradient_color[i];
|
||||||
else {
|
else {
|
||||||
float t = (prog - gradient_time[i - 1]) / (gradient_time[i] - gradient_time[i - 1]);
|
float t = (prog - gradient_time[i - 1]) / (gradient_time[i] - gradient_time[i - 1]);
|
||||||
float a = mix(gradient_color[i - 1].a, gradient_color[i].a, t);
|
vec3 c0 = gradient_color[i - 1].rgb;
|
||||||
|
vec3 c1 = gradient_color[i].rgb;
|
||||||
|
float a = mix(gradient_color[i - 1].a, gradient_color[i].a, t);
|
||||||
|
|
||||||
if(gradient_blend == 0)
|
if(gradient_blend == 0)
|
||||||
col = mix(gradient_color[i - 1], gradient_color[i], t);
|
col = vec4(mix(c0, c1, t), a);
|
||||||
|
|
||||||
else if(gradient_blend == 1)
|
else if(gradient_blend == 1)
|
||||||
col = gradient_color[i - 1];
|
col = gradient_color[i - 1];
|
||||||
|
|
||||||
else if(gradient_blend == 2)
|
else if(gradient_blend == 2)
|
||||||
col = vec4(hsvMix(gradient_color[i - 1].rgb, gradient_color[i].rgb, t), a);
|
col = vec4(hsvMix(c0, c1, t), a);
|
||||||
|
|
||||||
else if(gradient_blend == 3)
|
else if(gradient_blend == 3)
|
||||||
col = vec4(oklabMax(gradient_color[i - 1].rgb, gradient_color[i].rgb, t), a);
|
col = vec4(oklabMax(c0, c1, t), a);
|
||||||
|
|
||||||
|
else if(gradient_blend == 4)
|
||||||
|
col = vec4(rgbMix(c0, c1, t), a);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,6 +44,16 @@ float random (in vec2 st) { return fract(sin(dot(st.xy + vec2(85.456034, 64.5406
|
||||||
uniform vec4 gradient_map_range;
|
uniform vec4 gradient_map_range;
|
||||||
uniform sampler2D gradient_map;
|
uniform sampler2D gradient_map;
|
||||||
|
|
||||||
|
vec3 linearToGamma(vec3 c) { return pow(c, vec3( 2.2)); }
|
||||||
|
vec3 gammaToLinear(vec3 c) { return pow(c, vec3(1. / 2.2)); }
|
||||||
|
|
||||||
|
vec3 rgbMix(vec3 c1, vec3 c2, float t) { #region
|
||||||
|
vec3 k1 = linearToGamma(c1);
|
||||||
|
vec3 k2 = linearToGamma(c2);
|
||||||
|
|
||||||
|
return gammaToLinear(mix(k1, k2, t));
|
||||||
|
} #endregion
|
||||||
|
|
||||||
vec3 rgb2oklab(vec3 c) { #region
|
vec3 rgb2oklab(vec3 c) { #region
|
||||||
const mat3 kCONEtoLMS = mat3(
|
const mat3 kCONEtoLMS = mat3(
|
||||||
0.4121656120, 0.2118591070, 0.0883097947,
|
0.4121656120, 0.2118591070, 0.0883097947,
|
||||||
|
@ -125,17 +135,25 @@ float random (in vec2 st) { return fract(sin(dot(st.xy + vec2(85.456034, 64.5406
|
||||||
if(i == 0)
|
if(i == 0)
|
||||||
col = gradient_color[i];
|
col = gradient_color[i];
|
||||||
else {
|
else {
|
||||||
float t = (prog - gradient_time[i - 1]) / (gradient_time[i] - gradient_time[i - 1]);
|
float t = (prog - gradient_time[i - 1]) / (gradient_time[i] - gradient_time[i - 1]);
|
||||||
float a = mix(gradient_color[i - 1].a, gradient_color[i].a, t);
|
vec3 c0 = gradient_color[i - 1].rgb;
|
||||||
|
vec3 c1 = gradient_color[i].rgb;
|
||||||
|
float a = mix(gradient_color[i - 1].a, gradient_color[i].a, t);
|
||||||
|
|
||||||
if(gradient_blend == 0)
|
if(gradient_blend == 0)
|
||||||
col = mix(gradient_color[i - 1], gradient_color[i], t);
|
col = vec4(mix(c0, c1, t), a);
|
||||||
|
|
||||||
else if(gradient_blend == 1)
|
else if(gradient_blend == 1)
|
||||||
col = gradient_color[i - 1];
|
col = gradient_color[i - 1];
|
||||||
|
|
||||||
else if(gradient_blend == 2)
|
else if(gradient_blend == 2)
|
||||||
col = vec4(hsvMix(gradient_color[i - 1].rgb, gradient_color[i].rgb, t), a);
|
col = vec4(hsvMix(c0, c1, t), a);
|
||||||
|
|
||||||
else if(gradient_blend == 3)
|
else if(gradient_blend == 3)
|
||||||
col = vec4(oklabMax(gradient_color[i - 1].rgb, gradient_color[i].rgb, t), a);
|
col = vec4(oklabMax(c0, c1, t), a);
|
||||||
|
|
||||||
|
else if(gradient_blend == 4)
|
||||||
|
col = vec4(rgbMix(c0, c1, t), a);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,6 +43,16 @@ float random (in vec2 st) { return fract(sin(dot(st.xy + vec2(85.456034, 64.5406
|
||||||
uniform vec4 gradient_map_range;
|
uniform vec4 gradient_map_range;
|
||||||
uniform sampler2D gradient_map;
|
uniform sampler2D gradient_map;
|
||||||
|
|
||||||
|
vec3 linearToGamma(vec3 c) { return pow(c, vec3( 2.2)); }
|
||||||
|
vec3 gammaToLinear(vec3 c) { return pow(c, vec3(1. / 2.2)); }
|
||||||
|
|
||||||
|
vec3 rgbMix(vec3 c1, vec3 c2, float t) { #region
|
||||||
|
vec3 k1 = linearToGamma(c1);
|
||||||
|
vec3 k2 = linearToGamma(c2);
|
||||||
|
|
||||||
|
return gammaToLinear(mix(k1, k2, t));
|
||||||
|
} #endregion
|
||||||
|
|
||||||
vec3 rgb2oklab(vec3 c) { #region
|
vec3 rgb2oklab(vec3 c) { #region
|
||||||
const mat3 kCONEtoLMS = mat3(
|
const mat3 kCONEtoLMS = mat3(
|
||||||
0.4121656120, 0.2118591070, 0.0883097947,
|
0.4121656120, 0.2118591070, 0.0883097947,
|
||||||
|
@ -124,17 +134,25 @@ float random (in vec2 st) { return fract(sin(dot(st.xy + vec2(85.456034, 64.5406
|
||||||
if(i == 0)
|
if(i == 0)
|
||||||
col = gradient_color[i];
|
col = gradient_color[i];
|
||||||
else {
|
else {
|
||||||
float t = (prog - gradient_time[i - 1]) / (gradient_time[i] - gradient_time[i - 1]);
|
float t = (prog - gradient_time[i - 1]) / (gradient_time[i] - gradient_time[i - 1]);
|
||||||
float a = mix(gradient_color[i - 1].a, gradient_color[i].a, t);
|
vec3 c0 = gradient_color[i - 1].rgb;
|
||||||
|
vec3 c1 = gradient_color[i].rgb;
|
||||||
|
float a = mix(gradient_color[i - 1].a, gradient_color[i].a, t);
|
||||||
|
|
||||||
if(gradient_blend == 0)
|
if(gradient_blend == 0)
|
||||||
col = mix(gradient_color[i - 1], gradient_color[i], t);
|
col = vec4(mix(c0, c1, t), a);
|
||||||
|
|
||||||
else if(gradient_blend == 1)
|
else if(gradient_blend == 1)
|
||||||
col = gradient_color[i - 1];
|
col = gradient_color[i - 1];
|
||||||
|
|
||||||
else if(gradient_blend == 2)
|
else if(gradient_blend == 2)
|
||||||
col = vec4(hsvMix(gradient_color[i - 1].rgb, gradient_color[i].rgb, t), a);
|
col = vec4(hsvMix(c0, c1, t), a);
|
||||||
|
|
||||||
else if(gradient_blend == 3)
|
else if(gradient_blend == 3)
|
||||||
col = vec4(oklabMax(gradient_color[i - 1].rgb, gradient_color[i].rgb, t), a);
|
col = vec4(oklabMax(c0, c1, t), a);
|
||||||
|
|
||||||
|
else if(gradient_blend == 4)
|
||||||
|
col = vec4(rgbMix(c0, c1, t), a);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,6 +45,16 @@ float random (in vec2 st) { return fract(sin(dot(st.xy + vec2(85.456034, 64.5406
|
||||||
uniform vec4 gradient_map_range;
|
uniform vec4 gradient_map_range;
|
||||||
uniform sampler2D gradient_map;
|
uniform sampler2D gradient_map;
|
||||||
|
|
||||||
|
vec3 linearToGamma(vec3 c) { return pow(c, vec3( 2.2)); }
|
||||||
|
vec3 gammaToLinear(vec3 c) { return pow(c, vec3(1. / 2.2)); }
|
||||||
|
|
||||||
|
vec3 rgbMix(vec3 c1, vec3 c2, float t) { #region
|
||||||
|
vec3 k1 = linearToGamma(c1);
|
||||||
|
vec3 k2 = linearToGamma(c2);
|
||||||
|
|
||||||
|
return gammaToLinear(mix(k1, k2, t));
|
||||||
|
} #endregion
|
||||||
|
|
||||||
vec3 rgb2oklab(vec3 c) { #region
|
vec3 rgb2oklab(vec3 c) { #region
|
||||||
const mat3 kCONEtoLMS = mat3(
|
const mat3 kCONEtoLMS = mat3(
|
||||||
0.4121656120, 0.2118591070, 0.0883097947,
|
0.4121656120, 0.2118591070, 0.0883097947,
|
||||||
|
@ -126,17 +136,25 @@ float random (in vec2 st) { return fract(sin(dot(st.xy + vec2(85.456034, 64.5406
|
||||||
if(i == 0)
|
if(i == 0)
|
||||||
col = gradient_color[i];
|
col = gradient_color[i];
|
||||||
else {
|
else {
|
||||||
float t = (prog - gradient_time[i - 1]) / (gradient_time[i] - gradient_time[i - 1]);
|
float t = (prog - gradient_time[i - 1]) / (gradient_time[i] - gradient_time[i - 1]);
|
||||||
float a = mix(gradient_color[i - 1].a, gradient_color[i].a, t);
|
vec3 c0 = gradient_color[i - 1].rgb;
|
||||||
|
vec3 c1 = gradient_color[i].rgb;
|
||||||
|
float a = mix(gradient_color[i - 1].a, gradient_color[i].a, t);
|
||||||
|
|
||||||
if(gradient_blend == 0)
|
if(gradient_blend == 0)
|
||||||
col = mix(gradient_color[i - 1], gradient_color[i], t);
|
col = vec4(mix(c0, c1, t), a);
|
||||||
|
|
||||||
else if(gradient_blend == 1)
|
else if(gradient_blend == 1)
|
||||||
col = gradient_color[i - 1];
|
col = gradient_color[i - 1];
|
||||||
|
|
||||||
else if(gradient_blend == 2)
|
else if(gradient_blend == 2)
|
||||||
col = vec4(hsvMix(gradient_color[i - 1].rgb, gradient_color[i].rgb, t), a);
|
col = vec4(hsvMix(c0, c1, t), a);
|
||||||
|
|
||||||
else if(gradient_blend == 3)
|
else if(gradient_blend == 3)
|
||||||
col = vec4(oklabMax(gradient_color[i - 1].rgb, gradient_color[i].rgb, t), a);
|
col = vec4(oklabMax(c0, c1, t), a);
|
||||||
|
|
||||||
|
else if(gradient_blend == 4)
|
||||||
|
col = vec4(rgbMix(c0, c1, t), a);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,6 +19,16 @@ uniform float number[BATCH_SIZE];
|
||||||
uniform vec4 gradient_map_range;
|
uniform vec4 gradient_map_range;
|
||||||
uniform sampler2D gradient_map;
|
uniform sampler2D gradient_map;
|
||||||
|
|
||||||
|
vec3 linearToGamma(vec3 c) { return pow(c, vec3( 2.2)); }
|
||||||
|
vec3 gammaToLinear(vec3 c) { return pow(c, vec3(1. / 2.2)); }
|
||||||
|
|
||||||
|
vec3 rgbMix(vec3 c1, vec3 c2, float t) { #region
|
||||||
|
vec3 k1 = linearToGamma(c1);
|
||||||
|
vec3 k2 = linearToGamma(c2);
|
||||||
|
|
||||||
|
return gammaToLinear(mix(k1, k2, t));
|
||||||
|
} #endregion
|
||||||
|
|
||||||
vec3 rgb2oklab(vec3 c) { #region
|
vec3 rgb2oklab(vec3 c) { #region
|
||||||
const mat3 kCONEtoLMS = mat3(
|
const mat3 kCONEtoLMS = mat3(
|
||||||
0.4121656120, 0.2118591070, 0.0883097947,
|
0.4121656120, 0.2118591070, 0.0883097947,
|
||||||
|
@ -100,17 +110,25 @@ uniform float number[BATCH_SIZE];
|
||||||
if(i == 0)
|
if(i == 0)
|
||||||
col = gradient_color[i];
|
col = gradient_color[i];
|
||||||
else {
|
else {
|
||||||
float t = (prog - gradient_time[i - 1]) / (gradient_time[i] - gradient_time[i - 1]);
|
float t = (prog - gradient_time[i - 1]) / (gradient_time[i] - gradient_time[i - 1]);
|
||||||
float a = mix(gradient_color[i - 1].a, gradient_color[i].a, t);
|
vec3 c0 = gradient_color[i - 1].rgb;
|
||||||
|
vec3 c1 = gradient_color[i].rgb;
|
||||||
|
float a = mix(gradient_color[i - 1].a, gradient_color[i].a, t);
|
||||||
|
|
||||||
if(gradient_blend == 0)
|
if(gradient_blend == 0)
|
||||||
col = mix(gradient_color[i - 1], gradient_color[i], t);
|
col = vec4(mix(c0, c1, t), a);
|
||||||
|
|
||||||
else if(gradient_blend == 1)
|
else if(gradient_blend == 1)
|
||||||
col = gradient_color[i - 1];
|
col = gradient_color[i - 1];
|
||||||
|
|
||||||
else if(gradient_blend == 2)
|
else if(gradient_blend == 2)
|
||||||
col = vec4(hsvMix(gradient_color[i - 1].rgb, gradient_color[i].rgb, t), a);
|
col = vec4(hsvMix(c0, c1, t), a);
|
||||||
|
|
||||||
else if(gradient_blend == 3)
|
else if(gradient_blend == 3)
|
||||||
col = vec4(oklabMax(gradient_color[i - 1].rgb, gradient_color[i].rgb, t), a);
|
col = vec4(oklabMax(c0, c1, t), a);
|
||||||
|
|
||||||
|
else if(gradient_blend == 4)
|
||||||
|
col = vec4(rgbMix(c0, c1, t), a);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
26
shaders/sh_lovify/sh_lovify.fsh
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
varying vec2 v_vTexcoord;
|
||||||
|
varying vec4 v_vColour;
|
||||||
|
|
||||||
|
#define SRGB_TO_LINEAR(c) pow((c), vec3(2.2))
|
||||||
|
#define LINEAR_TO_SRGB(c) pow((c), vec3(1.0 / 2.2))
|
||||||
|
#define SRGB(r, g, b) SRGB_TO_LINEAR(vec3(r, g, b) / 255.0)
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
vec4 c = texture2D( gm_BaseTexture, v_vTexcoord );
|
||||||
|
|
||||||
|
vec3 COLOR0 = SRGB(252., 3., 111.);
|
||||||
|
vec3 COLOR1 = SRGB(190., 3., 252.);
|
||||||
|
|
||||||
|
float t = length(v_vTexcoord) / sqrt(2.);
|
||||||
|
t = smoothstep(0.0, 1.0, clamp(t, 0.0, 1.0));
|
||||||
|
|
||||||
|
vec3 color = mix(COLOR0, COLOR1, t);
|
||||||
|
color = LINEAR_TO_SRGB(color);
|
||||||
|
vec4 b = vec4(color, 1.);
|
||||||
|
|
||||||
|
float lum = dot(c.rgb, vec3(0.2126, 0.7152, 0.0722));
|
||||||
|
vec4 blend = lum > 0.5? (1. - (1. - 2. * (b - 0.5)) * (1. - c)) : ((2. * b) * c);
|
||||||
|
blend = 0.5 + (blend * 1.75 - 0.5) * 0.66;
|
||||||
|
|
||||||
|
gl_FragColor = blend;
|
||||||
|
}
|
19
shaders/sh_lovify/sh_lovify.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_lovify/sh_lovify.yy
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
{
|
||||||
|
"resourceType": "GMShader",
|
||||||
|
"resourceVersion": "1.0",
|
||||||
|
"name": "sh_lovify",
|
||||||
|
"parent": {
|
||||||
|
"name": "lovify",
|
||||||
|
"path": "folders/nodes/data/misc/lovify.yy",
|
||||||
|
},
|
||||||
|
"type": 1,
|
||||||
|
}
|
|
@ -105,6 +105,16 @@ float curveEval(in float _x) { #region
|
||||||
uniform vec4 gradient_map_range;
|
uniform vec4 gradient_map_range;
|
||||||
uniform sampler2D gradient_map;
|
uniform sampler2D gradient_map;
|
||||||
|
|
||||||
|
vec3 linearToGamma(vec3 c) { return pow(c, vec3( 2.2)); }
|
||||||
|
vec3 gammaToLinear(vec3 c) { return pow(c, vec3(1. / 2.2)); }
|
||||||
|
|
||||||
|
vec3 rgbMix(vec3 c1, vec3 c2, float t) { #region
|
||||||
|
vec3 k1 = linearToGamma(c1);
|
||||||
|
vec3 k2 = linearToGamma(c2);
|
||||||
|
|
||||||
|
return gammaToLinear(mix(k1, k2, t));
|
||||||
|
} #endregion
|
||||||
|
|
||||||
vec3 rgb2oklab(vec3 c) { #region
|
vec3 rgb2oklab(vec3 c) { #region
|
||||||
const mat3 kCONEtoLMS = mat3(
|
const mat3 kCONEtoLMS = mat3(
|
||||||
0.4121656120, 0.2118591070, 0.0883097947,
|
0.4121656120, 0.2118591070, 0.0883097947,
|
||||||
|
@ -186,17 +196,25 @@ float curveEval(in float _x) { #region
|
||||||
if(i == 0)
|
if(i == 0)
|
||||||
col = gradient_color[i];
|
col = gradient_color[i];
|
||||||
else {
|
else {
|
||||||
float t = (prog - gradient_time[i - 1]) / (gradient_time[i] - gradient_time[i - 1]);
|
float t = (prog - gradient_time[i - 1]) / (gradient_time[i] - gradient_time[i - 1]);
|
||||||
float a = mix(gradient_color[i - 1].a, gradient_color[i].a, t);
|
vec3 c0 = gradient_color[i - 1].rgb;
|
||||||
|
vec3 c1 = gradient_color[i].rgb;
|
||||||
|
float a = mix(gradient_color[i - 1].a, gradient_color[i].a, t);
|
||||||
|
|
||||||
if(gradient_blend == 0)
|
if(gradient_blend == 0)
|
||||||
col = mix(gradient_color[i - 1], gradient_color[i], t);
|
col = vec4(mix(c0, c1, t), a);
|
||||||
|
|
||||||
else if(gradient_blend == 1)
|
else if(gradient_blend == 1)
|
||||||
col = gradient_color[i - 1];
|
col = gradient_color[i - 1];
|
||||||
|
|
||||||
else if(gradient_blend == 2)
|
else if(gradient_blend == 2)
|
||||||
col = vec4(hsvMix(gradient_color[i - 1].rgb, gradient_color[i].rgb, t), a);
|
col = vec4(hsvMix(c0, c1, t), a);
|
||||||
|
|
||||||
else if(gradient_blend == 3)
|
else if(gradient_blend == 3)
|
||||||
col = vec4(oklabMax(gradient_color[i - 1].rgb, gradient_color[i].rgb, t), a);
|
col = vec4(oklabMax(c0, c1, t), a);
|
||||||
|
|
||||||
|
else if(gradient_blend == 4)
|
||||||
|
col = vec4(rgbMix(c0, c1, t), a);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,6 +43,16 @@ uniform int gradient_use;
|
||||||
uniform vec4 gradient_map_range;
|
uniform vec4 gradient_map_range;
|
||||||
uniform sampler2D gradient_map;
|
uniform sampler2D gradient_map;
|
||||||
|
|
||||||
|
vec3 linearToGamma(vec3 c) { return pow(c, vec3( 2.2)); }
|
||||||
|
vec3 gammaToLinear(vec3 c) { return pow(c, vec3(1. / 2.2)); }
|
||||||
|
|
||||||
|
vec3 rgbMix(vec3 c1, vec3 c2, float t) { #region
|
||||||
|
vec3 k1 = linearToGamma(c1);
|
||||||
|
vec3 k2 = linearToGamma(c2);
|
||||||
|
|
||||||
|
return gammaToLinear(mix(k1, k2, t));
|
||||||
|
} #endregion
|
||||||
|
|
||||||
vec3 rgb2oklab(vec3 c) { #region
|
vec3 rgb2oklab(vec3 c) { #region
|
||||||
const mat3 kCONEtoLMS = mat3(
|
const mat3 kCONEtoLMS = mat3(
|
||||||
0.4121656120, 0.2118591070, 0.0883097947,
|
0.4121656120, 0.2118591070, 0.0883097947,
|
||||||
|
@ -124,17 +134,25 @@ uniform int gradient_use;
|
||||||
if(i == 0)
|
if(i == 0)
|
||||||
col = gradient_color[i];
|
col = gradient_color[i];
|
||||||
else {
|
else {
|
||||||
float t = (prog - gradient_time[i - 1]) / (gradient_time[i] - gradient_time[i - 1]);
|
float t = (prog - gradient_time[i - 1]) / (gradient_time[i] - gradient_time[i - 1]);
|
||||||
float a = mix(gradient_color[i - 1].a, gradient_color[i].a, t);
|
vec3 c0 = gradient_color[i - 1].rgb;
|
||||||
|
vec3 c1 = gradient_color[i].rgb;
|
||||||
|
float a = mix(gradient_color[i - 1].a, gradient_color[i].a, t);
|
||||||
|
|
||||||
if(gradient_blend == 0)
|
if(gradient_blend == 0)
|
||||||
col = mix(gradient_color[i - 1], gradient_color[i], t);
|
col = vec4(mix(c0, c1, t), a);
|
||||||
|
|
||||||
else if(gradient_blend == 1)
|
else if(gradient_blend == 1)
|
||||||
col = gradient_color[i - 1];
|
col = gradient_color[i - 1];
|
||||||
|
|
||||||
else if(gradient_blend == 2)
|
else if(gradient_blend == 2)
|
||||||
col = vec4(hsvMix(gradient_color[i - 1].rgb, gradient_color[i].rgb, t), a);
|
col = vec4(hsvMix(c0, c1, t), a);
|
||||||
|
|
||||||
else if(gradient_blend == 3)
|
else if(gradient_blend == 3)
|
||||||
col = vec4(oklabMax(gradient_color[i - 1].rgb, gradient_color[i].rgb, t), a);
|
col = vec4(oklabMax(c0, c1, t), a);
|
||||||
|
|
||||||
|
else if(gradient_blend == 4)
|
||||||
|
col = vec4(rgbMix(c0, c1, t), a);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,6 +43,16 @@ float random (in vec2 st) { return fract(sin(dot(st.xy + vec2(85.456034, 64.5406
|
||||||
uniform vec4 gradient_map_range;
|
uniform vec4 gradient_map_range;
|
||||||
uniform sampler2D gradient_map;
|
uniform sampler2D gradient_map;
|
||||||
|
|
||||||
|
vec3 linearToGamma(vec3 c) { return pow(c, vec3( 2.2)); }
|
||||||
|
vec3 gammaToLinear(vec3 c) { return pow(c, vec3(1. / 2.2)); }
|
||||||
|
|
||||||
|
vec3 rgbMix(vec3 c1, vec3 c2, float t) { #region
|
||||||
|
vec3 k1 = linearToGamma(c1);
|
||||||
|
vec3 k2 = linearToGamma(c2);
|
||||||
|
|
||||||
|
return gammaToLinear(mix(k1, k2, t));
|
||||||
|
} #endregion
|
||||||
|
|
||||||
vec3 rgb2oklab(vec3 c) { #region
|
vec3 rgb2oklab(vec3 c) { #region
|
||||||
const mat3 kCONEtoLMS = mat3(
|
const mat3 kCONEtoLMS = mat3(
|
||||||
0.4121656120, 0.2118591070, 0.0883097947,
|
0.4121656120, 0.2118591070, 0.0883097947,
|
||||||
|
@ -124,17 +134,25 @@ float random (in vec2 st) { return fract(sin(dot(st.xy + vec2(85.456034, 64.5406
|
||||||
if(i == 0)
|
if(i == 0)
|
||||||
col = gradient_color[i];
|
col = gradient_color[i];
|
||||||
else {
|
else {
|
||||||
float t = (prog - gradient_time[i - 1]) / (gradient_time[i] - gradient_time[i - 1]);
|
float t = (prog - gradient_time[i - 1]) / (gradient_time[i] - gradient_time[i - 1]);
|
||||||
float a = mix(gradient_color[i - 1].a, gradient_color[i].a, t);
|
vec3 c0 = gradient_color[i - 1].rgb;
|
||||||
|
vec3 c1 = gradient_color[i].rgb;
|
||||||
|
float a = mix(gradient_color[i - 1].a, gradient_color[i].a, t);
|
||||||
|
|
||||||
if(gradient_blend == 0)
|
if(gradient_blend == 0)
|
||||||
col = mix(gradient_color[i - 1], gradient_color[i], t);
|
col = vec4(mix(c0, c1, t), a);
|
||||||
|
|
||||||
else if(gradient_blend == 1)
|
else if(gradient_blend == 1)
|
||||||
col = gradient_color[i - 1];
|
col = gradient_color[i - 1];
|
||||||
|
|
||||||
else if(gradient_blend == 2)
|
else if(gradient_blend == 2)
|
||||||
col = vec4(hsvMix(gradient_color[i - 1].rgb, gradient_color[i].rgb, t), a);
|
col = vec4(hsvMix(c0, c1, t), a);
|
||||||
|
|
||||||
else if(gradient_blend == 3)
|
else if(gradient_blend == 3)
|
||||||
col = vec4(oklabMax(gradient_color[i - 1].rgb, gradient_color[i].rgb, t), a);
|
col = vec4(oklabMax(c0, c1, t), a);
|
||||||
|
|
||||||
|
else if(gradient_blend == 4)
|
||||||
|
col = vec4(rgbMix(c0, c1, t), a);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,6 +38,16 @@ uniform int gradient_use;
|
||||||
uniform vec4 gradient_map_range;
|
uniform vec4 gradient_map_range;
|
||||||
uniform sampler2D gradient_map;
|
uniform sampler2D gradient_map;
|
||||||
|
|
||||||
|
vec3 linearToGamma(vec3 c) { return pow(c, vec3( 2.2)); }
|
||||||
|
vec3 gammaToLinear(vec3 c) { return pow(c, vec3(1. / 2.2)); }
|
||||||
|
|
||||||
|
vec3 rgbMix(vec3 c1, vec3 c2, float t) { #region
|
||||||
|
vec3 k1 = linearToGamma(c1);
|
||||||
|
vec3 k2 = linearToGamma(c2);
|
||||||
|
|
||||||
|
return gammaToLinear(mix(k1, k2, t));
|
||||||
|
} #endregion
|
||||||
|
|
||||||
vec3 rgb2oklab(vec3 c) { #region
|
vec3 rgb2oklab(vec3 c) { #region
|
||||||
const mat3 kCONEtoLMS = mat3(
|
const mat3 kCONEtoLMS = mat3(
|
||||||
0.4121656120, 0.2118591070, 0.0883097947,
|
0.4121656120, 0.2118591070, 0.0883097947,
|
||||||
|
@ -119,17 +129,25 @@ uniform int gradient_use;
|
||||||
if(i == 0)
|
if(i == 0)
|
||||||
col = gradient_color[i];
|
col = gradient_color[i];
|
||||||
else {
|
else {
|
||||||
float t = (prog - gradient_time[i - 1]) / (gradient_time[i] - gradient_time[i - 1]);
|
float t = (prog - gradient_time[i - 1]) / (gradient_time[i] - gradient_time[i - 1]);
|
||||||
float a = mix(gradient_color[i - 1].a, gradient_color[i].a, t);
|
vec3 c0 = gradient_color[i - 1].rgb;
|
||||||
|
vec3 c1 = gradient_color[i].rgb;
|
||||||
|
float a = mix(gradient_color[i - 1].a, gradient_color[i].a, t);
|
||||||
|
|
||||||
if(gradient_blend == 0)
|
if(gradient_blend == 0)
|
||||||
col = mix(gradient_color[i - 1], gradient_color[i], t);
|
col = vec4(mix(c0, c1, t), a);
|
||||||
|
|
||||||
else if(gradient_blend == 1)
|
else if(gradient_blend == 1)
|
||||||
col = gradient_color[i - 1];
|
col = gradient_color[i - 1];
|
||||||
|
|
||||||
else if(gradient_blend == 2)
|
else if(gradient_blend == 2)
|
||||||
col = vec4(hsvMix(gradient_color[i - 1].rgb, gradient_color[i].rgb, t), a);
|
col = vec4(hsvMix(c0, c1, t), a);
|
||||||
|
|
||||||
else if(gradient_blend == 3)
|
else if(gradient_blend == 3)
|
||||||
col = vec4(oklabMax(gradient_color[i - 1].rgb, gradient_color[i].rgb, t), a);
|
col = vec4(oklabMax(c0, c1, t), a);
|
||||||
|
|
||||||
|
else if(gradient_blend == 4)
|
||||||
|
col = vec4(rgbMix(c0, c1, t), a);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
After Width: | Height: | Size: 401 B |
After Width: | Height: | Size: 401 B |
74
sprites/s_lovify_heart_10/s_lovify_heart_10.yy
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
{
|
||||||
|
"resourceType": "GMSprite",
|
||||||
|
"resourceVersion": "1.0",
|
||||||
|
"name": "s_lovify_heart_10",
|
||||||
|
"bbox_bottom": 9,
|
||||||
|
"bbox_left": 0,
|
||||||
|
"bbox_right": 9,
|
||||||
|
"bbox_top": 0,
|
||||||
|
"bboxMode": 0,
|
||||||
|
"collisionKind": 1,
|
||||||
|
"collisionTolerance": 0,
|
||||||
|
"DynamicTexturePage": false,
|
||||||
|
"edgeFiltering": false,
|
||||||
|
"For3D": false,
|
||||||
|
"frames": [
|
||||||
|
{"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"ec6c05a3-1afa-4535-b626-fa89043e5a1c",},
|
||||||
|
],
|
||||||
|
"gridX": 0,
|
||||||
|
"gridY": 0,
|
||||||
|
"height": 10,
|
||||||
|
"HTile": false,
|
||||||
|
"layers": [
|
||||||
|
{"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"6f5e1bcb-933f-42d4-a7a1-b5c607647da8","blendMode":0,"displayName":"default","isLocked":false,"opacity":100.0,"visible":true,},
|
||||||
|
],
|
||||||
|
"nineSlice": null,
|
||||||
|
"origin": 4,
|
||||||
|
"parent": {
|
||||||
|
"name": "spr",
|
||||||
|
"path": "folders/nodes/data/misc/lovify/spr.yy",
|
||||||
|
},
|
||||||
|
"preMultiplyAlpha": false,
|
||||||
|
"sequence": {
|
||||||
|
"resourceType": "GMSequence",
|
||||||
|
"resourceVersion": "1.4",
|
||||||
|
"name": "s_lovify_heart_10",
|
||||||
|
"autoRecord": true,
|
||||||
|
"backdropHeight": 768,
|
||||||
|
"backdropImageOpacity": 0.5,
|
||||||
|
"backdropImagePath": "",
|
||||||
|
"backdropWidth": 1366,
|
||||||
|
"backdropXOffset": 0.0,
|
||||||
|
"backdropYOffset": 0.0,
|
||||||
|
"events": {"resourceType":"KeyframeStore<MessageEventKeyframe>","resourceVersion":"1.0","Keyframes":[],},
|
||||||
|
"eventStubScript": null,
|
||||||
|
"eventToFunction": {},
|
||||||
|
"length": 1.0,
|
||||||
|
"lockOrigin": false,
|
||||||
|
"moments": {"resourceType":"KeyframeStore<MomentsEventKeyframe>","resourceVersion":"1.0","Keyframes":[],},
|
||||||
|
"playback": 1,
|
||||||
|
"playbackSpeed": 30.0,
|
||||||
|
"playbackSpeedType": 0,
|
||||||
|
"showBackdrop": true,
|
||||||
|
"showBackdropImage": false,
|
||||||
|
"timeUnits": 1,
|
||||||
|
"tracks": [
|
||||||
|
{"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"1.0","Keyframes":[
|
||||||
|
{"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"ec6c05a3-1afa-4535-b626-fa89043e5a1c","path":"sprites/s_lovify_heart_10/s_lovify_heart_10.yy",},},},"Disabled":false,"id":"ef9df84f-0a91-468a-a3c4-162bf1903f41","IsCreationKey":false,"Key":0.0,"Length":1.0,"Stretch":false,},
|
||||||
|
],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
|
||||||
|
],
|
||||||
|
"visibleRange": null,
|
||||||
|
"volume": 1.0,
|
||||||
|
"xorigin": 5,
|
||||||
|
"yorigin": 5,
|
||||||
|
},
|
||||||
|
"swatchColours": null,
|
||||||
|
"swfPrecision": 2.525,
|
||||||
|
"textureGroupId": {
|
||||||
|
"name": "Default",
|
||||||
|
"path": "texturegroups/Default",
|
||||||
|
},
|
||||||
|
"type": 0,
|
||||||
|
"VTile": false,
|
||||||
|
"width": 10,
|
||||||
|
}
|
After Width: | Height: | Size: 419 B |
After Width: | Height: | Size: 419 B |
74
sprites/s_lovify_heart_12/s_lovify_heart_12.yy
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
{
|
||||||
|
"resourceType": "GMSprite",
|
||||||
|
"resourceVersion": "1.0",
|
||||||
|
"name": "s_lovify_heart_12",
|
||||||
|
"bbox_bottom": 11,
|
||||||
|
"bbox_left": 0,
|
||||||
|
"bbox_right": 11,
|
||||||
|
"bbox_top": 0,
|
||||||
|
"bboxMode": 0,
|
||||||
|
"collisionKind": 1,
|
||||||
|
"collisionTolerance": 0,
|
||||||
|
"DynamicTexturePage": false,
|
||||||
|
"edgeFiltering": false,
|
||||||
|
"For3D": false,
|
||||||
|
"frames": [
|
||||||
|
{"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"78d0172b-5ac2-402f-ae37-a33213b71322",},
|
||||||
|
],
|
||||||
|
"gridX": 0,
|
||||||
|
"gridY": 0,
|
||||||
|
"height": 12,
|
||||||
|
"HTile": false,
|
||||||
|
"layers": [
|
||||||
|
{"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"d3ebb107-5682-4bc9-9413-6e57ae73bfe6","blendMode":0,"displayName":"default","isLocked":false,"opacity":100.0,"visible":true,},
|
||||||
|
],
|
||||||
|
"nineSlice": null,
|
||||||
|
"origin": 4,
|
||||||
|
"parent": {
|
||||||
|
"name": "spr",
|
||||||
|
"path": "folders/nodes/data/misc/lovify/spr.yy",
|
||||||
|
},
|
||||||
|
"preMultiplyAlpha": false,
|
||||||
|
"sequence": {
|
||||||
|
"resourceType": "GMSequence",
|
||||||
|
"resourceVersion": "1.4",
|
||||||
|
"name": "s_lovify_heart_12",
|
||||||
|
"autoRecord": true,
|
||||||
|
"backdropHeight": 768,
|
||||||
|
"backdropImageOpacity": 0.5,
|
||||||
|
"backdropImagePath": "",
|
||||||
|
"backdropWidth": 1366,
|
||||||
|
"backdropXOffset": 0.0,
|
||||||
|
"backdropYOffset": 0.0,
|
||||||
|
"events": {"resourceType":"KeyframeStore<MessageEventKeyframe>","resourceVersion":"1.0","Keyframes":[],},
|
||||||
|
"eventStubScript": null,
|
||||||
|
"eventToFunction": {},
|
||||||
|
"length": 1.0,
|
||||||
|
"lockOrigin": false,
|
||||||
|
"moments": {"resourceType":"KeyframeStore<MomentsEventKeyframe>","resourceVersion":"1.0","Keyframes":[],},
|
||||||
|
"playback": 1,
|
||||||
|
"playbackSpeed": 30.0,
|
||||||
|
"playbackSpeedType": 0,
|
||||||
|
"showBackdrop": true,
|
||||||
|
"showBackdropImage": false,
|
||||||
|
"timeUnits": 1,
|
||||||
|
"tracks": [
|
||||||
|
{"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"1.0","Keyframes":[
|
||||||
|
{"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"78d0172b-5ac2-402f-ae37-a33213b71322","path":"sprites/s_lovify_heart_12/s_lovify_heart_12.yy",},},},"Disabled":false,"id":"a2efd4f7-d254-40c9-b407-4dce81ff915e","IsCreationKey":false,"Key":0.0,"Length":1.0,"Stretch":false,},
|
||||||
|
],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
|
||||||
|
],
|
||||||
|
"visibleRange": null,
|
||||||
|
"volume": 1.0,
|
||||||
|
"xorigin": 6,
|
||||||
|
"yorigin": 6,
|
||||||
|
},
|
||||||
|
"swatchColours": null,
|
||||||
|
"swfPrecision": 2.525,
|
||||||
|
"textureGroupId": {
|
||||||
|
"name": "Default",
|
||||||
|
"path": "texturegroups/Default",
|
||||||
|
},
|
||||||
|
"type": 0,
|
||||||
|
"VTile": false,
|
||||||
|
"width": 12,
|
||||||
|
}
|
After Width: | Height: | Size: 442 B |
After Width: | Height: | Size: 442 B |
74
sprites/s_lovify_heart_16/s_lovify_heart_16.yy
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
{
|
||||||
|
"resourceType": "GMSprite",
|
||||||
|
"resourceVersion": "1.0",
|
||||||
|
"name": "s_lovify_heart_16",
|
||||||
|
"bbox_bottom": 15,
|
||||||
|
"bbox_left": 0,
|
||||||
|
"bbox_right": 15,
|
||||||
|
"bbox_top": 0,
|
||||||
|
"bboxMode": 0,
|
||||||
|
"collisionKind": 1,
|
||||||
|
"collisionTolerance": 0,
|
||||||
|
"DynamicTexturePage": false,
|
||||||
|
"edgeFiltering": false,
|
||||||
|
"For3D": false,
|
||||||
|
"frames": [
|
||||||
|
{"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"b5210b91-bcb4-4b9a-aa23-ff9770518890",},
|
||||||
|
],
|
||||||
|
"gridX": 0,
|
||||||
|
"gridY": 0,
|
||||||
|
"height": 16,
|
||||||
|
"HTile": false,
|
||||||
|
"layers": [
|
||||||
|
{"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"c7d7e132-563b-47ef-8109-cd86fed3f0c9","blendMode":0,"displayName":"default","isLocked":false,"opacity":100.0,"visible":true,},
|
||||||
|
],
|
||||||
|
"nineSlice": null,
|
||||||
|
"origin": 4,
|
||||||
|
"parent": {
|
||||||
|
"name": "spr",
|
||||||
|
"path": "folders/nodes/data/misc/lovify/spr.yy",
|
||||||
|
},
|
||||||
|
"preMultiplyAlpha": false,
|
||||||
|
"sequence": {
|
||||||
|
"resourceType": "GMSequence",
|
||||||
|
"resourceVersion": "1.4",
|
||||||
|
"name": "s_lovify_heart_16",
|
||||||
|
"autoRecord": true,
|
||||||
|
"backdropHeight": 768,
|
||||||
|
"backdropImageOpacity": 0.5,
|
||||||
|
"backdropImagePath": "",
|
||||||
|
"backdropWidth": 1366,
|
||||||
|
"backdropXOffset": 0.0,
|
||||||
|
"backdropYOffset": 0.0,
|
||||||
|
"events": {"resourceType":"KeyframeStore<MessageEventKeyframe>","resourceVersion":"1.0","Keyframes":[],},
|
||||||
|
"eventStubScript": null,
|
||||||
|
"eventToFunction": {},
|
||||||
|
"length": 1.0,
|
||||||
|
"lockOrigin": false,
|
||||||
|
"moments": {"resourceType":"KeyframeStore<MomentsEventKeyframe>","resourceVersion":"1.0","Keyframes":[],},
|
||||||
|
"playback": 1,
|
||||||
|
"playbackSpeed": 30.0,
|
||||||
|
"playbackSpeedType": 0,
|
||||||
|
"showBackdrop": true,
|
||||||
|
"showBackdropImage": false,
|
||||||
|
"timeUnits": 1,
|
||||||
|
"tracks": [
|
||||||
|
{"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"1.0","Keyframes":[
|
||||||
|
{"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"b5210b91-bcb4-4b9a-aa23-ff9770518890","path":"sprites/s_lovify_heart_16/s_lovify_heart_16.yy",},},},"Disabled":false,"id":"58ff330e-e611-4bdf-bae5-cf52361a093c","IsCreationKey":false,"Key":0.0,"Length":1.0,"Stretch":false,},
|
||||||
|
],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
|
||||||
|
],
|
||||||
|
"visibleRange": null,
|
||||||
|
"volume": 1.0,
|
||||||
|
"xorigin": 8,
|
||||||
|
"yorigin": 8,
|
||||||
|
},
|
||||||
|
"swatchColours": null,
|
||||||
|
"swfPrecision": 2.525,
|
||||||
|
"textureGroupId": {
|
||||||
|
"name": "Default",
|
||||||
|
"path": "texturegroups/Default",
|
||||||
|
},
|
||||||
|
"type": 0,
|
||||||
|
"VTile": false,
|
||||||
|
"width": 16,
|
||||||
|
}
|
After Width: | Height: | Size: 370 B |
After Width: | Height: | Size: 370 B |
74
sprites/s_lovify_heart_6/s_lovify_heart_6.yy
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
{
|
||||||
|
"resourceType": "GMSprite",
|
||||||
|
"resourceVersion": "1.0",
|
||||||
|
"name": "s_lovify_heart_6",
|
||||||
|
"bbox_bottom": 5,
|
||||||
|
"bbox_left": 0,
|
||||||
|
"bbox_right": 5,
|
||||||
|
"bbox_top": 0,
|
||||||
|
"bboxMode": 0,
|
||||||
|
"collisionKind": 1,
|
||||||
|
"collisionTolerance": 0,
|
||||||
|
"DynamicTexturePage": false,
|
||||||
|
"edgeFiltering": false,
|
||||||
|
"For3D": false,
|
||||||
|
"frames": [
|
||||||
|
{"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"f0e29127-ada5-42d6-872b-7579721152f2",},
|
||||||
|
],
|
||||||
|
"gridX": 0,
|
||||||
|
"gridY": 0,
|
||||||
|
"height": 6,
|
||||||
|
"HTile": false,
|
||||||
|
"layers": [
|
||||||
|
{"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"ccd92203-1fe7-4598-b979-e3f6bcbe8125","blendMode":0,"displayName":"default","isLocked":false,"opacity":100.0,"visible":true,},
|
||||||
|
],
|
||||||
|
"nineSlice": null,
|
||||||
|
"origin": 4,
|
||||||
|
"parent": {
|
||||||
|
"name": "spr",
|
||||||
|
"path": "folders/nodes/data/misc/lovify/spr.yy",
|
||||||
|
},
|
||||||
|
"preMultiplyAlpha": false,
|
||||||
|
"sequence": {
|
||||||
|
"resourceType": "GMSequence",
|
||||||
|
"resourceVersion": "1.4",
|
||||||
|
"name": "s_lovify_heart_6",
|
||||||
|
"autoRecord": true,
|
||||||
|
"backdropHeight": 768,
|
||||||
|
"backdropImageOpacity": 0.5,
|
||||||
|
"backdropImagePath": "",
|
||||||
|
"backdropWidth": 1366,
|
||||||
|
"backdropXOffset": 0.0,
|
||||||
|
"backdropYOffset": 0.0,
|
||||||
|
"events": {"resourceType":"KeyframeStore<MessageEventKeyframe>","resourceVersion":"1.0","Keyframes":[],},
|
||||||
|
"eventStubScript": null,
|
||||||
|
"eventToFunction": {},
|
||||||
|
"length": 1.0,
|
||||||
|
"lockOrigin": false,
|
||||||
|
"moments": {"resourceType":"KeyframeStore<MomentsEventKeyframe>","resourceVersion":"1.0","Keyframes":[],},
|
||||||
|
"playback": 1,
|
||||||
|
"playbackSpeed": 30.0,
|
||||||
|
"playbackSpeedType": 0,
|
||||||
|
"showBackdrop": true,
|
||||||
|
"showBackdropImage": false,
|
||||||
|
"timeUnits": 1,
|
||||||
|
"tracks": [
|
||||||
|
{"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"1.0","Keyframes":[
|
||||||
|
{"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"f0e29127-ada5-42d6-872b-7579721152f2","path":"sprites/s_lovify_heart_6/s_lovify_heart_6.yy",},},},"Disabled":false,"id":"0f7674fb-1b08-4f74-8dc2-72c5a65d1481","IsCreationKey":false,"Key":0.0,"Length":1.0,"Stretch":false,},
|
||||||
|
],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
|
||||||
|
],
|
||||||
|
"visibleRange": null,
|
||||||
|
"volume": 1.0,
|
||||||
|
"xorigin": 3,
|
||||||
|
"yorigin": 3,
|
||||||
|
},
|
||||||
|
"swatchColours": null,
|
||||||
|
"swfPrecision": 2.525,
|
||||||
|
"textureGroupId": {
|
||||||
|
"name": "Default",
|
||||||
|
"path": "texturegroups/Default",
|
||||||
|
},
|
||||||
|
"type": 0,
|
||||||
|
"VTile": false,
|
||||||
|
"width": 6,
|
||||||
|
}
|
After Width: | Height: | Size: 376 B |
After Width: | Height: | Size: 376 B |
74
sprites/s_lovify_heart_8/s_lovify_heart_8.yy
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
{
|
||||||
|
"resourceType": "GMSprite",
|
||||||
|
"resourceVersion": "1.0",
|
||||||
|
"name": "s_lovify_heart_8",
|
||||||
|
"bbox_bottom": 7,
|
||||||
|
"bbox_left": 0,
|
||||||
|
"bbox_right": 7,
|
||||||
|
"bbox_top": 0,
|
||||||
|
"bboxMode": 0,
|
||||||
|
"collisionKind": 1,
|
||||||
|
"collisionTolerance": 0,
|
||||||
|
"DynamicTexturePage": false,
|
||||||
|
"edgeFiltering": false,
|
||||||
|
"For3D": false,
|
||||||
|
"frames": [
|
||||||
|
{"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"0187099f-c05b-4480-8ad8-8cdab99fad72",},
|
||||||
|
],
|
||||||
|
"gridX": 0,
|
||||||
|
"gridY": 0,
|
||||||
|
"height": 8,
|
||||||
|
"HTile": false,
|
||||||
|
"layers": [
|
||||||
|
{"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"66525455-64e5-4891-957b-f2d6d0295ff1","blendMode":0,"displayName":"default","isLocked":false,"opacity":100.0,"visible":true,},
|
||||||
|
],
|
||||||
|
"nineSlice": null,
|
||||||
|
"origin": 4,
|
||||||
|
"parent": {
|
||||||
|
"name": "spr",
|
||||||
|
"path": "folders/nodes/data/misc/lovify/spr.yy",
|
||||||
|
},
|
||||||
|
"preMultiplyAlpha": false,
|
||||||
|
"sequence": {
|
||||||
|
"resourceType": "GMSequence",
|
||||||
|
"resourceVersion": "1.4",
|
||||||
|
"name": "s_lovify_heart_8",
|
||||||
|
"autoRecord": true,
|
||||||
|
"backdropHeight": 768,
|
||||||
|
"backdropImageOpacity": 0.5,
|
||||||
|
"backdropImagePath": "",
|
||||||
|
"backdropWidth": 1366,
|
||||||
|
"backdropXOffset": 0.0,
|
||||||
|
"backdropYOffset": 0.0,
|
||||||
|
"events": {"resourceType":"KeyframeStore<MessageEventKeyframe>","resourceVersion":"1.0","Keyframes":[],},
|
||||||
|
"eventStubScript": null,
|
||||||
|
"eventToFunction": {},
|
||||||
|
"length": 1.0,
|
||||||
|
"lockOrigin": false,
|
||||||
|
"moments": {"resourceType":"KeyframeStore<MomentsEventKeyframe>","resourceVersion":"1.0","Keyframes":[],},
|
||||||
|
"playback": 1,
|
||||||
|
"playbackSpeed": 30.0,
|
||||||
|
"playbackSpeedType": 0,
|
||||||
|
"showBackdrop": true,
|
||||||
|
"showBackdropImage": false,
|
||||||
|
"timeUnits": 1,
|
||||||
|
"tracks": [
|
||||||
|
{"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"1.0","Keyframes":[
|
||||||
|
{"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"0187099f-c05b-4480-8ad8-8cdab99fad72","path":"sprites/s_lovify_heart_8/s_lovify_heart_8.yy",},},},"Disabled":false,"id":"2b6d942b-c191-4453-8ea4-229ba23640e6","IsCreationKey":false,"Key":0.0,"Length":1.0,"Stretch":false,},
|
||||||
|
],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
|
||||||
|
],
|
||||||
|
"visibleRange": null,
|
||||||
|
"volume": 1.0,
|
||||||
|
"xorigin": 4,
|
||||||
|
"yorigin": 4,
|
||||||
|
},
|
||||||
|
"swatchColours": null,
|
||||||
|
"swfPrecision": 2.525,
|
||||||
|
"textureGroupId": {
|
||||||
|
"name": "Default",
|
||||||
|
"path": "texturegroups/Default",
|
||||||
|
},
|
||||||
|
"type": 0,
|
||||||
|
"VTile": false,
|
||||||
|
"width": 8,
|
||||||
|
}
|
BIN
sprites/s_lovify_icon/35d16322-4261-423a-ae41-08c0f4200eee.png
Normal file
After Width: | Height: | Size: 515 B |
After Width: | Height: | Size: 515 B |
74
sprites/s_lovify_icon/s_lovify_icon.yy
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
{
|
||||||
|
"resourceType": "GMSprite",
|
||||||
|
"resourceVersion": "1.0",
|
||||||
|
"name": "s_lovify_icon",
|
||||||
|
"bbox_bottom": 25,
|
||||||
|
"bbox_left": 6,
|
||||||
|
"bbox_right": 25,
|
||||||
|
"bbox_top": 6,
|
||||||
|
"bboxMode": 0,
|
||||||
|
"collisionKind": 1,
|
||||||
|
"collisionTolerance": 0,
|
||||||
|
"DynamicTexturePage": false,
|
||||||
|
"edgeFiltering": false,
|
||||||
|
"For3D": false,
|
||||||
|
"frames": [
|
||||||
|
{"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"35d16322-4261-423a-ae41-08c0f4200eee",},
|
||||||
|
],
|
||||||
|
"gridX": 0,
|
||||||
|
"gridY": 0,
|
||||||
|
"height": 32,
|
||||||
|
"HTile": false,
|
||||||
|
"layers": [
|
||||||
|
{"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"5771e4ab-ce7f-420f-86ef-dc37f109428f","blendMode":0,"displayName":"default","isLocked":false,"opacity":100.0,"visible":true,},
|
||||||
|
],
|
||||||
|
"nineSlice": null,
|
||||||
|
"origin": 9,
|
||||||
|
"parent": {
|
||||||
|
"name": "spr",
|
||||||
|
"path": "folders/nodes/data/misc/lovify/spr.yy",
|
||||||
|
},
|
||||||
|
"preMultiplyAlpha": false,
|
||||||
|
"sequence": {
|
||||||
|
"resourceType": "GMSequence",
|
||||||
|
"resourceVersion": "1.4",
|
||||||
|
"name": "s_lovify_icon",
|
||||||
|
"autoRecord": true,
|
||||||
|
"backdropHeight": 768,
|
||||||
|
"backdropImageOpacity": 0.5,
|
||||||
|
"backdropImagePath": "",
|
||||||
|
"backdropWidth": 1366,
|
||||||
|
"backdropXOffset": 0.0,
|
||||||
|
"backdropYOffset": 0.0,
|
||||||
|
"events": {"resourceType":"KeyframeStore<MessageEventKeyframe>","resourceVersion":"1.0","Keyframes":[],},
|
||||||
|
"eventStubScript": null,
|
||||||
|
"eventToFunction": {},
|
||||||
|
"length": 1.0,
|
||||||
|
"lockOrigin": false,
|
||||||
|
"moments": {"resourceType":"KeyframeStore<MomentsEventKeyframe>","resourceVersion":"1.0","Keyframes":[],},
|
||||||
|
"playback": 1,
|
||||||
|
"playbackSpeed": 30.0,
|
||||||
|
"playbackSpeedType": 0,
|
||||||
|
"showBackdrop": true,
|
||||||
|
"showBackdropImage": false,
|
||||||
|
"timeUnits": 1,
|
||||||
|
"tracks": [
|
||||||
|
{"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"1.0","Keyframes":[
|
||||||
|
{"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"35d16322-4261-423a-ae41-08c0f4200eee","path":"sprites/s_lovify_icon/s_lovify_icon.yy",},},},"Disabled":false,"id":"1d9ca0c3-630e-4dfc-ab19-a9a39fb5d740","IsCreationKey":false,"Key":0.0,"Length":1.0,"Stretch":false,},
|
||||||
|
],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
|
||||||
|
],
|
||||||
|
"visibleRange": null,
|
||||||
|
"volume": 1.0,
|
||||||
|
"xorigin": 20,
|
||||||
|
"yorigin": 12,
|
||||||
|
},
|
||||||
|
"swatchColours": null,
|
||||||
|
"swfPrecision": 2.525,
|
||||||
|
"textureGroupId": {
|
||||||
|
"name": "Default",
|
||||||
|
"path": "texturegroups/Default",
|
||||||
|
},
|
||||||
|
"type": 0,
|
||||||
|
"VTile": false,
|
||||||
|
"width": 32,
|
||||||
|
}
|
BIN
sprites/s_node_lovify/0a0aeef0-0788-41b2-9d02-7cfe1a0653f9.png
Normal file
After Width: | Height: | Size: 693 B |
After Width: | Height: | Size: 693 B |
74
sprites/s_node_lovify/s_node_lovify.yy
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
{
|
||||||
|
"resourceType": "GMSprite",
|
||||||
|
"resourceVersion": "1.0",
|
||||||
|
"name": "s_node_lovify",
|
||||||
|
"bbox_bottom": 59,
|
||||||
|
"bbox_left": 4,
|
||||||
|
"bbox_right": 59,
|
||||||
|
"bbox_top": 4,
|
||||||
|
"bboxMode": 0,
|
||||||
|
"collisionKind": 1,
|
||||||
|
"collisionTolerance": 0,
|
||||||
|
"DynamicTexturePage": false,
|
||||||
|
"edgeFiltering": false,
|
||||||
|
"For3D": false,
|
||||||
|
"frames": [
|
||||||
|
{"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"0a0aeef0-0788-41b2-9d02-7cfe1a0653f9",},
|
||||||
|
],
|
||||||
|
"gridX": 0,
|
||||||
|
"gridY": 0,
|
||||||
|
"height": 64,
|
||||||
|
"HTile": false,
|
||||||
|
"layers": [
|
||||||
|
{"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"0e840a20-06fd-4423-90ac-10db684cea2d","blendMode":0,"displayName":"default","isLocked":false,"opacity":100.0,"visible":true,},
|
||||||
|
],
|
||||||
|
"nineSlice": null,
|
||||||
|
"origin": 4,
|
||||||
|
"parent": {
|
||||||
|
"name": "spr",
|
||||||
|
"path": "folders/nodes/data/misc/lovify/spr.yy",
|
||||||
|
},
|
||||||
|
"preMultiplyAlpha": false,
|
||||||
|
"sequence": {
|
||||||
|
"resourceType": "GMSequence",
|
||||||
|
"resourceVersion": "1.4",
|
||||||
|
"name": "s_node_lovify",
|
||||||
|
"autoRecord": true,
|
||||||
|
"backdropHeight": 768,
|
||||||
|
"backdropImageOpacity": 0.5,
|
||||||
|
"backdropImagePath": "",
|
||||||
|
"backdropWidth": 1366,
|
||||||
|
"backdropXOffset": 0.0,
|
||||||
|
"backdropYOffset": 0.0,
|
||||||
|
"events": {"resourceType":"KeyframeStore<MessageEventKeyframe>","resourceVersion":"1.0","Keyframes":[],},
|
||||||
|
"eventStubScript": null,
|
||||||
|
"eventToFunction": {},
|
||||||
|
"length": 1.0,
|
||||||
|
"lockOrigin": false,
|
||||||
|
"moments": {"resourceType":"KeyframeStore<MomentsEventKeyframe>","resourceVersion":"1.0","Keyframes":[],},
|
||||||
|
"playback": 1,
|
||||||
|
"playbackSpeed": 30.0,
|
||||||
|
"playbackSpeedType": 0,
|
||||||
|
"showBackdrop": true,
|
||||||
|
"showBackdropImage": false,
|
||||||
|
"timeUnits": 1,
|
||||||
|
"tracks": [
|
||||||
|
{"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"1.0","Keyframes":[
|
||||||
|
{"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"0a0aeef0-0788-41b2-9d02-7cfe1a0653f9","path":"sprites/s_node_lovify/s_node_lovify.yy",},},},"Disabled":false,"id":"1a8b337a-13c6-43af-ac2f-16ce34d65ea6","IsCreationKey":false,"Key":0.0,"Length":1.0,"Stretch":false,},
|
||||||
|
],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
|
||||||
|
],
|
||||||
|
"visibleRange": null,
|
||||||
|
"volume": 1.0,
|
||||||
|
"xorigin": 32,
|
||||||
|
"yorigin": 32,
|
||||||
|
},
|
||||||
|
"swatchColours": null,
|
||||||
|
"swfPrecision": 2.525,
|
||||||
|
"textureGroupId": {
|
||||||
|
"name": "Default",
|
||||||
|
"path": "texturegroups/Default",
|
||||||
|
},
|
||||||
|
"type": 0,
|
||||||
|
"VTile": false,
|
||||||
|
"width": 64,
|
||||||
|
}
|