[Group Input] Add properties to modify gizmo position, scale.

This commit is contained in:
Tanasart 2025-02-26 09:44:12 +07:00
parent 69b982a10d
commit dbcdf8f27d
21 changed files with 72 additions and 53 deletions

View file

@ -16,6 +16,7 @@
{"name":"VCT","order":1,"path":"folders/__extensions/VCT.yy",},
{"name":"WinMan","order":6,"path":"folders/__extensions/WinMan.yy",},
{"name":"dialog","order":4,"path":"folders/dialog.yy",},
{"name":"font","order":9,"path":"folders/font.yy",},
{"name":"functions","order":1,"path":"folders/functions.yy",},
{"name":"camera","order":7,"path":"folders/functions/3d/camera.yy",},
{"name":"gizmo","order":8,"path":"folders/functions/3d/gizmo.yy",},
@ -256,7 +257,6 @@
{"name":"palette mixer","order":2,"path":"folders/shader/UI/palette mixer.yy",},
{"name":"sprites","order":8,"path":"folders/sprites.yy",},
{"name":"bs","order":3,"path":"folders/sprites/bs.yy",},
{"name":"font","order":9,"path":"folders/font.yy",},
{"name":"gameframe","order":4,"path":"folders/sprites/gameframe.yy",},
{"name":"meta","order":2,"path":"folders/sprites/meta.yy",},
{"name":"misc","order":5,"path":"folders/sprites/misc.yy",},

View file

@ -43,9 +43,6 @@
{"$GMFolder":"","%Name":"biterator","folderPath":"folders/__extensions/VCT/biterator.yy","name":"biterator","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"widget","folderPath":"folders/__extensions/VCT/widget.yy","name":"widget","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"WinMan","folderPath":"folders/__extensions/WinMan.yy","name":"WinMan","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"addons","folderPath":"folders/misc/addons.yy","name":"addons","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"custom","folderPath":"folders/misc/addons/custom.yy","name":"custom","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"key_displayer","folderPath":"folders/misc/addons/key_displayer.yy","name":"key_displayer","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"dialog","folderPath":"folders/dialog.yy","name":"dialog","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"_others","folderPath":"folders/dialog/_others.yy","name":"_others","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"color_selector","folderPath":"folders/dialog/color_selector.yy","name":"color_selector","resourceType":"GMFolder","resourceVersion":"2.0",},
@ -54,6 +51,7 @@
{"$GMFolder":"","%Name":"inspector","folderPath":"folders/dialog/inspector.yy","name":"inspector","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"menu","folderPath":"folders/dialog/menu.yy","name":"menu","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"widget","folderPath":"folders/dialog/widget.yy","name":"widget","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"font","folderPath":"folders/font.yy","name":"font","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"functions","folderPath":"folders/functions.yy","name":"functions","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"3d","folderPath":"folders/functions/3d.yy","name":"3d","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"camera","folderPath":"folders/functions/3d/camera.yy","name":"camera","resourceType":"GMFolder","resourceVersion":"2.0",},
@ -106,6 +104,9 @@
{"$GMFolder":"","%Name":"main","folderPath":"folders/main.yy","name":"main","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"components","folderPath":"folders/main/components.yy","name":"components","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"misc","folderPath":"folders/misc.yy","name":"misc","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"addons","folderPath":"folders/misc/addons.yy","name":"addons","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"custom","folderPath":"folders/misc/addons/custom.yy","name":"custom","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"key_displayer","folderPath":"folders/misc/addons/key_displayer.yy","name":"key_displayer","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"animation_curve","folderPath":"folders/misc/animation_curve.yy","name":"animation_curve","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"debugging","folderPath":"folders/misc/debugging.yy","name":"debugging","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"fx","folderPath":"folders/misc/fx.yy","name":"fx","resourceType":"GMFolder","resourceVersion":"2.0",},
@ -334,7 +335,6 @@
{"$GMFolder":"","%Name":"palette mixer","folderPath":"folders/shader/UI/palette mixer.yy","name":"palette mixer","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"sprites","folderPath":"folders/sprites.yy","name":"sprites","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"bs","folderPath":"folders/sprites/bs.yy","name":"bs","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"font","folderPath":"folders/font.yy","name":"font","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"gameframe","folderPath":"folders/sprites/gameframe.yy","name":"gameframe","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"meta","folderPath":"folders/sprites/meta.yy","name":"meta","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"misc","folderPath":"folders/sprites/misc.yy","name":"misc","resourceType":"GMFolder","resourceVersion":"2.0",},

Binary file not shown.

View file

@ -43,8 +43,8 @@
LATEST_VERSION = 1_18_00_0;
VERSION = 1_18_09_0;
SAVE_VERSION = 1_18_09_1;
VERSION_STRING = MAC? "1.18.003m" : "1.18.9.1";
BUILD_NUMBER = 118091;
VERSION_STRING = MAC? "1.18.003m" : "1.18.9.1.001";
BUILD_NUMBER = 118091.001;
PREF_VERSION = 1_17_1;
var _vsp = string_split(VERSION_STRING, ".");

View file

@ -79,14 +79,14 @@ function Node_Group_Input(_x, _y, _group = noone) : Node(_x, _y, _group) constru
skipDefault();
setDimension(96, 48);
newInput(0, nodeValue_Enum_Scroll("Display type", self, 0, { data: GROUP_IO_DISPLAY[11], update_hover: false }));
newInput(0, nodeValue_Enum_Scroll("Subtype", self, 0, { data: GROUP_IO_DISPLAY[11], update_hover: false }));
newInput(1, nodeValue_Range("Range", self, [ 0, 1 ]))
.setVisible(false);
newInput(2, nodeValue_Enum_Scroll("Input type", self, 11, { data: GROUP_IO_TYPE_NAME, update_hover: false }));
newInput(2, nodeValue_Enum_Scroll("Input Type", self, 11, { data: GROUP_IO_TYPE_NAME, update_hover: false }));
newInput(3, nodeValue_Text("Enum label", self, ""))
newInput(3, nodeValue_Text("Enum Labels", self, "", "Define enum choices, use comma to separate each choice."))
.setVisible(false);
newInput(4, nodeValue_Enum_Button("Vector size", self, 0, [ "2", "3", "4" ]))
@ -102,17 +102,21 @@ function Node_Group_Input(_x, _y, _group = noone) : Node(_x, _y, _group) constru
newInput(8, nodeValue_Text("Button Label", self, "Trigger"))
.setVisible(false);
newInput(9, nodeValue_Enum_Scroll("Visible Condition", self, 0, [ "Show", "Hide", /* 2 */ new scrollItem("Equal", s_node_condition_type, 0),
/* 3 */ new scrollItem("Not equal", s_node_condition_type, 1),
/* 4 */ new scrollItem("Greater ", s_node_condition_type, 4),
/* 5 */ new scrollItem("Greater or equal", s_node_condition_type, 5),
/* 6 */ new scrollItem("Lesser", s_node_condition_type, 2),
/* 7 */ new scrollItem("Lesser or equal", s_node_condition_type, 3), ]));
newInput(9, nodeValue_Enum_Scroll("Visible Condition", self, 0, [ "Always Show", "Always Hide", /* 2 */ new scrollItem("Equal", s_node_condition_type, 0),
/* 3 */ new scrollItem("Not equal", s_node_condition_type, 1),
/* 4 */ new scrollItem("Greater ", s_node_condition_type, 4),
/* 5 */ new scrollItem("Greater or equal", s_node_condition_type, 5),
/* 6 */ new scrollItem("Lesser", s_node_condition_type, 2),
/* 7 */ new scrollItem("Lesser or equal", s_node_condition_type, 3), ]));
newInput(10, nodeValue_Float("Visible Check", self, 0));
newInput(11, nodeValue_Float("Visible Check To", self, 0));
newInput(12, nodeValue_Vec2("Gizmo Position", self, [ 0, 0 ]));
newInput(13, nodeValue_Vec2("Gizmo Scale", self, 1));
inputs[10].setFrom_condition = function(_valueFrom) {
if(is_instanceof(_valueFrom.node, Node_Group_Input)) return true;
noti_warning("Group IO visibility must be connected directly to another group input.",, self);
@ -123,8 +127,9 @@ function Node_Group_Input(_x, _y, _group = noone) : Node(_x, _y, _group) constru
inputs[i].uncache().rejectArray();
input_display_list = [
["Display", false], 6, 9, 10, 11,
["Data", false], 2, 0, 4, 1, 7, 3, 8,
["Junction", false], 9, 10, 11,
["Data", false], 2, 0, 4, 1, 7, 3, 8,
["Gizmo", false, 6], 12, 13,
];
newOutput(0, nodeValue_Output("Value", self, VALUE_TYPE.any, 0))
@ -511,7 +516,15 @@ function Node_Group_Input(_x, _y, _group = noone) : Node(_x, _y, _group) constru
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
if(inParent.isArray()) return;
return inParent.drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
var _pos = inputs[12].getValue();
var _px = _x + _pos[0] * _s;
var _py = _y + _pos[1] * _s;
var _sca = inputs[13].getValue();
_s *= _sca;
return inParent.drawOverlay(hover, active, _px, _py, _s, _mx, _my, _snx, _sny);
}
static drawNode = function(_draw, _x, _y, _mx, _my, _s, display_parameter = noone, _panel = noone) {

View file

@ -10,7 +10,7 @@ function Node_Switch(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
newInput(1, nodeValue("Default value", self, CONNECT_TYPE.input, VALUE_TYPE.any, 0 ))
.setVisible(false, true);
size_adjust_tool = new Inspector_Custom_Renderer(function(_x, _y, _w, _m, _hover, _focus) { #region
size_adjust_tool = new Inspector_Custom_Renderer(function(_x, _y, _w, _m, _hover, _focus) {
var _h = ui(48);
var bw = _w / 2 - ui(4);
@ -23,7 +23,7 @@ function Node_Switch(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
deleteInput(array_length(inputs) - data_length);
return _h;
}); #endregion
});
newOutput(0, nodeValue_Output("Result", self, VALUE_TYPE.any, 0));
@ -112,7 +112,7 @@ function Node_Switch(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
#endregion //////////////////////////////// Dynamic IO ////////////////////////////////
static onValueFromUpdate = function(index) { #region
static onValueFromUpdate = function(index) {
if(LOADING || APPENDING) return;
if(index < 0) return;
@ -123,9 +123,9 @@ function Node_Switch(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
if(inputs[i + 1].value_from != noone)
inputs[i + 1].setType(inputs[i + 1].value_from.type);
}
} #endregion
}
static onValueUpdate = function(index = 0) { #region
static onValueUpdate = function(index = 0) {
if(index < input_fix_len) return;
if(LOADING || APPENDING) return;
@ -135,18 +135,18 @@ function Node_Switch(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
}
refreshDynamicInput();
} #endregion
}
static step = function() { #region
static step = function() {
for( var i = input_fix_len; i < array_length(inputs); i += data_length ) {
var _inp = inputs[i + 1];
if(_inp.value_from == noone) continue;
_inp.setType(_inp.value_from.type);
}
} #endregion
}
static update = function(frame = CURRENT_FRAME) { #region
static update = function(frame = CURRENT_FRAME) {
var sele = getInputData(0);
var _res = getInputData(1);
@ -164,9 +164,9 @@ function Node_Switch(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
}
outputs[0].setValue(_res);
} #endregion
}
static onDrawNode = function(xx, yy, _mx, _my, _s, _hover, _focus) { #region
static onDrawNode = function(xx, yy, _mx, _my, _s, _hover, _focus) {
var frm = inputs[1];
var sele = getInputData(0);
var _res = getInputData(1);
@ -189,7 +189,8 @@ function Node_Switch(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
if(inputs[1].visible) {
var str = string("default");
var ss = min(_s * 0.4, string_scale(str, bbox.w - 16 * _s, 999));
var ss = min(_s * 0.4 / UI_SCALE, string_scale(str, bbox.w - 16 * _s, 999));
draw_set_color(value_color(inputs[1].type));
draw_text_transformed(bbox.x0 + 8 * _s, inputs[1].y, str, ss, ss, 0);
}
@ -200,11 +201,12 @@ function Node_Switch(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
var str = string(getInputData(i, ""));
if(str == "") continue;
var ss = min(_s * 0.4, string_scale(str, bbox.w - 16 * _s, 999));
var ss = min(_s * 0.4 / UI_SCALE, string_scale(str, bbox.w - 16 * _s, 999));
draw_set_color(value_color(inputs[i + 1].type));
draw_text_transformed(bbox.x0 + 8 * _s, inputs[i + 1].y, str, ss, ss, 0);
}
} #endregion
}
static postApplyDeserialize = function() { refreshDynamicInput(); }
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 293 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 503 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 497 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 383 B

After

Width:  |  Height:  |  Size: 383 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 503 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 497 B

View file

@ -2,9 +2,9 @@
"$GMSprite":"",
"%Name":"s_node_curve_type",
"bboxMode":0,
"bbox_bottom":165,
"bbox_left":0,
"bbox_right":23,
"bbox_bottom":20,
"bbox_left":3,
"bbox_right":21,
"bbox_top":3,
"collisionKind":1,
"collisionTolerance":0,
@ -12,18 +12,19 @@
"edgeFiltering":false,
"For3D":false,
"frames":[
{"$GMSpriteFrame":"","%Name":"bd7ad13c-f64a-4d4c-867f-ec4773fd2490","name":"bd7ad13c-f64a-4d4c-867f-ec4773fd2490","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
{"$GMSpriteFrame":"","%Name":"dc773099-05a9-410a-8dd1-a5c1f68469a2","name":"dc773099-05a9-410a-8dd1-a5c1f68469a2","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
{"$GMSpriteFrame":"","%Name":"7a86ca18-ce47-423d-88e1-859c3cb27230","name":"7a86ca18-ce47-423d-88e1-859c3cb27230","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
{"$GMSpriteFrame":"","%Name":"b7e0036b-e78a-4d2d-9f3b-ee90c7a4f0d0","name":"b7e0036b-e78a-4d2d-9f3b-ee90c7a4f0d0","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
{"$GMSpriteFrame":"","%Name":"2bfc1360-c72a-4b3e-a79f-deb793c62bf8","name":"2bfc1360-c72a-4b3e-a79f-deb793c62bf8","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
{"$GMSpriteFrame":"","%Name":"1eeda1a5-3a47-49fc-8860-adcfd18f1a1f","name":"1eeda1a5-3a47-49fc-8860-adcfd18f1a1f","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
{"$GMSpriteFrame":"","%Name":"9db771ca-0b0a-40a6-a40e-f93a86131d56","name":"9db771ca-0b0a-40a6-a40e-f93a86131d56","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
{"$GMSpriteFrame":"","%Name":"b5084515-ba3a-44a0-bde0-bfc3b47de899","name":"b5084515-ba3a-44a0-bde0-bfc3b47de899","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
{"$GMSpriteFrame":"","%Name":"ffa77090-ad2e-4fd2-aeea-aac1631da40b","name":"ffa77090-ad2e-4fd2-aeea-aac1631da40b","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
{"$GMSpriteFrame":"","%Name":"9a2e662d-467b-452e-8487-4866552a94c4","name":"9a2e662d-467b-452e-8487-4866552a94c4","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
{"$GMSpriteFrame":"","%Name":"066eda81-1625-4550-9ba6-08231984a85b","name":"066eda81-1625-4550-9ba6-08231984a85b","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
],
"gridX":0,
"gridY":0,
"height":24,
"HTile":false,
"layers":[
{"$GMImageLayer":"","%Name":"024ac051-0f47-4d3d-8caa-e4b7475e0b5e","blendMode":0,"displayName":"default","isLocked":false,"name":"024ac051-0f47-4d3d-8caa-e4b7475e0b5e","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,},
{"$GMImageLayer":"","%Name":"82cef850-e4d6-45e0-a95d-927b4b6ef078","blendMode":0,"displayName":"default","isLocked":false,"name":"82cef850-e4d6-45e0-a95d-927b4b6ef078","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,},
],
"name":"s_node_curve_type",
"nineSlice":null,
@ -53,7 +54,7 @@
},
"eventStubScript":null,
"eventToFunction":{},
"length":5.0,
"length":6.0,
"lockOrigin":false,
"moments":{
"$KeyframeStore<MomentsEventKeyframe>":"",
@ -73,20 +74,23 @@
"tracks":[
{"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore<SpriteFrameKeyframe>":"","Keyframes":[
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"bd7ad13c-f64a-4d4c-867f-ec4773fd2490","path":"sprites/s_node_curve_type/s_node_curve_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
},"Disabled":false,"id":"b2fdd3cd-8ef1-48e3-af34-e969b677d89e","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"1eeda1a5-3a47-49fc-8860-adcfd18f1a1f","path":"sprites/s_node_curve_type/s_node_curve_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
},"Disabled":false,"id":"84dadba2-c067-4693-9df8-e9a9a9b659f9","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"dc773099-05a9-410a-8dd1-a5c1f68469a2","path":"sprites/s_node_curve_type/s_node_curve_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
},"Disabled":false,"id":"a456d519-e09d-4a31-98dd-09cfbdabb3c9","IsCreationKey":false,"Key":1.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"9db771ca-0b0a-40a6-a40e-f93a86131d56","path":"sprites/s_node_curve_type/s_node_curve_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
},"Disabled":false,"id":"c2ab555d-0100-4c35-a10e-eb9b058dd57c","IsCreationKey":false,"Key":1.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"7a86ca18-ce47-423d-88e1-859c3cb27230","path":"sprites/s_node_curve_type/s_node_curve_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
},"Disabled":false,"id":"de85f870-f7c3-4f0d-85cc-de7030e0252b","IsCreationKey":false,"Key":2.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"b5084515-ba3a-44a0-bde0-bfc3b47de899","path":"sprites/s_node_curve_type/s_node_curve_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
},"Disabled":false,"id":"bf2f7cb0-824e-400d-b452-d40b04456679","IsCreationKey":false,"Key":2.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"b7e0036b-e78a-4d2d-9f3b-ee90c7a4f0d0","path":"sprites/s_node_curve_type/s_node_curve_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
},"Disabled":false,"id":"c3235a9c-f044-4fa7-9ef7-7382847aa5a9","IsCreationKey":false,"Key":3.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"ffa77090-ad2e-4fd2-aeea-aac1631da40b","path":"sprites/s_node_curve_type/s_node_curve_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
},"Disabled":false,"id":"c267585b-634e-4cef-aa54-c2c1ced99938","IsCreationKey":false,"Key":3.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"2bfc1360-c72a-4b3e-a79f-deb793c62bf8","path":"sprites/s_node_curve_type/s_node_curve_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
},"Disabled":false,"id":"e147b60a-04c9-419c-9626-539a72e93226","IsCreationKey":false,"Key":4.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"9a2e662d-467b-452e-8487-4866552a94c4","path":"sprites/s_node_curve_type/s_node_curve_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
},"Disabled":false,"id":"2f0b3745-0b9f-4cc3-8cc9-3a6b4325ed95","IsCreationKey":false,"Key":4.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"066eda81-1625-4550-9ba6-08231984a85b","path":"sprites/s_node_curve_type/s_node_curve_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
},"Disabled":false,"id":"2c70ecbd-a4e3-45ec-9a23-516bb514ecf7","IsCreationKey":false,"Key":5.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
],"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"2.0",},"modifiers":[],"name":"frames","resourceType":"GMSpriteFramesTrack","resourceVersion":"2.0","spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
],
"visibleRange":null,