[Delay] Now show delayed frame in the timeline on inspection.

This commit is contained in:
Tanasart 2025-01-05 09:12:52 +07:00
parent be8d84a0ca
commit 524ad97729
34 changed files with 168 additions and 145 deletions

Binary file not shown.

View file

@ -116,6 +116,92 @@ event_inherited();
return bool(_b & value_bit(junction_called.type));
}
function setPage(pageIndex) {
ADD_NODE_PAGE = min(pageIndex, ds_list_size(category) - 1);
subgroups = [];
subgroup_index = 0;
ds_list_clear(node_list);
if(ADD_NODE_PAGE == -2) {
for(var i = 0; i < ds_list_size(category); i++) {
var cat = category[| i];
if(array_length(cat.filter) && !array_exists(cat.filter, instanceof(context)))
continue;
for( var j = 0; j < ds_list_size(cat.list); j++ )
ds_list_add(node_list, cat.list[| j]);
}
} else if(ADD_NODE_PAGE == -1) {
for( var i = 0, n = ds_list_size(NEW_NODES); i < n; i++ )
ds_list_add(node_list, NEW_NODES[| i]);
} else if(ADD_NODE_PAGE == NODE_PAGE_DEFAULT && category == NODE_CATEGORY) { // page 0 global context
var sug = [];
if(junction_called != noone) {
array_append(sug, nodeReleatedQuery(
junction_called.connect_type == CONNECT_TYPE.input? "connectTo" : "connectFrom",
junction_called.type
));
}
array_append(sug, nodeReleatedQuery("context", instanceof(context)));
if(!array_empty(sug)) {
ds_list_add(node_list, "Related");
for( var i = 0, n = array_length(sug); i < n; i++ ) {
var k = array_safe_get_fast(sug, i);
if(k == 0) continue;
if(ds_map_exists(ALL_NODES, k))
ds_list_add(node_list, ALL_NODES[? k]);
}
}
ds_list_add(node_list, "Favourites");
var _favs = struct_get_names(global.FAV_NODES);
for( var i = 0, n = array_length(_favs); i < n; i++ ) {
var _nodeIndex = _favs[i];
if(!ds_map_exists(ALL_NODES, _nodeIndex)) continue;
var _node = ALL_NODES[? _nodeIndex];
if(_node.show_in_recent)
ds_list_add(node_list, _node);
}
ds_list_add(node_list, "Recents");
if(is_array(global.RECENT_NODES))
for( var i = 0, n = array_length(global.RECENT_NODES); i < n; i++ ) {
var _nodeIndex = global.RECENT_NODES[i];
if(!ds_map_exists(ALL_NODES, _nodeIndex)) continue;
var _node = ALL_NODES[? _nodeIndex];
if(_node.show_in_recent)
ds_list_add(node_list, _node);
}
} else {
var _l = category[| ADD_NODE_PAGE].list;
for( var i = 0, n = ds_list_size(_l); i < n; i++ )
ds_list_add(node_list, _l[| i]);
}
for( var i = 0, n = ds_list_size(node_list); i < n; i++ ) {
var _node = node_list[| i];
if(!is_string(_node)) continue;
if(string_starts_with(_node, "/")) continue;
array_push(subgroups, _node);
}
setSubgroup(0);
}
function setSubgroup(_subg) {
subgroup_index = _subg;
}
#endregion
#region build
function buildNode(_node, _param = {}) {
instance_destroy();
instance_destroy(o_dialog_menubox);
@ -212,6 +298,7 @@ event_inherited();
//connect to called junction
var _call_input = junction_called.connect_type == CONNECT_TYPE.input;
var _from = junction_called.value_from;
var _junc_list = _call_input? _outputs : _inputs;
for(var i = 0; i < array_length(_junc_list); i++) {
@ -229,89 +316,17 @@ event_inherited();
break;
}
}
}
function setPage(pageIndex) {
ADD_NODE_PAGE = min(pageIndex, ds_list_size(category) - 1);
subgroups = [];
subgroup_index = 0;
ds_list_clear(node_list);
if(ADD_NODE_PAGE == -2) {
for(var i = 0; i < ds_list_size(category); i++) {
var cat = category[| i];
if(array_length(cat.filter) && !array_exists(cat.filter, instanceof(context)))
continue;
for( var j = 0; j < ds_list_size(cat.list); j++ )
ds_list_add(node_list, cat.list[| j]);
}
} else if(ADD_NODE_PAGE == -1) {
for( var i = 0, n = ds_list_size(NEW_NODES); i < n; i++ )
ds_list_add(node_list, NEW_NODES[| i]);
} else if(ADD_NODE_PAGE == NODE_PAGE_DEFAULT && category == NODE_CATEGORY) { // page 0 global context
var sug = [];
if(junction_called != noone) {
array_append(sug, nodeReleatedQuery(
junction_called.connect_type == CONNECT_TYPE.input? "connectTo" : "connectFrom",
junction_called.type
));
}
array_append(sug, nodeReleatedQuery("context", instanceof(context)));
if(!array_empty(sug)) {
ds_list_add(node_list, "Related");
for( var i = 0, n = array_length(sug); i < n; i++ ) {
var k = array_safe_get_fast(sug, i);
if(k == 0) continue;
if(ds_map_exists(ALL_NODES, k))
ds_list_add(node_list, ALL_NODES[? k]);
}
}
ds_list_add(node_list, "Favourites");
var _favs = struct_get_names(global.FAV_NODES);
for( var i = 0, n = array_length(_favs); i < n; i++ ) {
var _nodeIndex = _favs[i];
if(!ds_map_exists(ALL_NODES, _nodeIndex)) continue;
var _node = ALL_NODES[? _nodeIndex];
if(_node.show_in_recent)
ds_list_add(node_list, _node);
}
ds_list_add(node_list, "Recents");
if(is_array(global.RECENT_NODES))
for( var i = 0, n = array_length(global.RECENT_NODES); i < n; i++ ) {
var _nodeIndex = global.RECENT_NODES[i];
if(!ds_map_exists(ALL_NODES, _nodeIndex)) continue;
var _node = ALL_NODES[? _nodeIndex];
if(_node.show_in_recent)
ds_list_add(node_list, _node);
}
} else {
var _l = category[| ADD_NODE_PAGE].list;
for( var i = 0, n = ds_list_size(_l); i < n; i++ )
ds_list_add(node_list, _l[| i]);
}
if(!_call_input || _from == noone) return;
for( var i = 0, n = ds_list_size(node_list); i < n; i++ ) {
var _node = node_list[| i];
if(!is_string(_node)) continue;
if(string_starts_with(_node, "/")) continue;
for(var i = 0; i < array_length(_inputs); i++) {
var _target = _inputs[i];
array_push(subgroups, _node);
if(_target.isConnectableStrict(_from) == 1) {
_target.setFrom(_from);
break;
}
}
setSubgroup(0);
}
function setSubgroup(_subg) {
subgroup_index = _subg;
}
#endregion
@ -1170,19 +1185,22 @@ event_inherited();
search_pane.hover_content = true;
node_selecting = i;
if(mouse_release(mb_left, sFOCUS))
buildNode(_node, _param);
else if(struct_has(_node, "node") && mouse_release(mb_right, right_free && sFOCUS))
rightClick(_node);
node_icon = _node.spr;
node_icon_x = search_pane.x + pd + list_height / 2 + ui(32);
node_icon_y = search_pane.y + yy + list_height / 2;
if(sFOCUS) {
if(mouse_release(mb_left))
buildNode(_node, _param);
if(struct_has(_node, "node") && mouse_release(mb_right, right_free))
rightClick(_node);
}
}
if(node_selecting == i) {
draw_sprite_stretched_ext(THEME.node_bg, 1, pd, yy, list_width - pd * 2, list_height, COLORS._main_accent, 1);
if(keyboard_check_pressed(vk_enter)) buildNode(_node, _param);
node_icon = _node.spr;
node_icon_x = search_pane.x + pd + list_height / 2 + ui(32);
node_icon_y = search_pane.y + yy + list_height / 2;
}
var tx;

View file

@ -58,10 +58,8 @@ event_inherited();
var _name = _menu.name;
var _fname = $"{string_lower(_cnxt)} {string_lower(_name)}"
var match = string_partial_match(_fname, search_lower);
var match = string_partial_match_res(_fname, search_lower)[0];
if(match == -9999) continue;
if(_cnxt == "New node") match -= 1000;
ds_priority_add(pr_list, _menu, match);
}

View file

@ -7,7 +7,7 @@ function Node_Delay(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) con
newInput(1, nodeValue_Int("Frames", self, 1));
newInput(2, nodeValue_Bool("Loop", self, false));
newInput(2, nodeValue_Enum_Scroll("Overflow", self, 0, [ "Hold", "Loop", "Clear" ]));
newOutput(0, nodeValue_Output("Surface", self, VALUE_TYPE.surface, noone));
@ -16,6 +16,7 @@ function Node_Delay(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) con
];
surf_indexes = [];
curr_frame = 0;
static processData_prebatch = function() {
surf_indexes = array_verify(surf_indexes, process_amount);
@ -26,40 +27,46 @@ function Node_Delay(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) con
static processData = function(_output, _data, _output_index, _array_index = 0) {
var _surf = _data[0];
var _frme = _data[1];
var _loop = _data[2];
var _ovrf = _data[2];
var _time = CURRENT_FRAME;
var _totl = TOTAL_FRAMES;
var _frtm = _time - _frme;
if(_loop) _frtm = (_frtm + TOTAL_FRAMES) % TOTAL_FRAMES;
else _frtm = clamp(_frtm, 0, TOTAL_FRAMES - 1);
switch(_ovrf) {
case 0 : _frtm = clamp(_frtm, 0, _totl - 1); break;
case 1 : _frtm = (_frtm + _totl) % _totl; break;
}
var _sw = surface_get_width_safe(_surf);
var _sh = surface_get_height_safe(_surf);
surf_indexes[_array_index][_time] = surface_verify(surf_indexes[_array_index][_time], _sw, _sh);
var _surfA = surf_indexes[_array_index];
_surfA[_time] = surface_verify(_surfA[_time], _sw, _sh);
surface_set_target(surf_indexes[_array_index][_time]);
DRAW_CLEAR
BLEND_OVERRIDE
surface_set_shader(_surfA[_time], sh_sample, true, BLEND.over);
draw_surface_safe(_surf);
BLEND_NORMAL
surface_reset_target();
_output = surface_verify(_output, _sw, _sh);
surface_set_target(_output);
DRAW_CLEAR
BLEND_OVERRIDE
if(0 <= _frtm && _frtm < TOTAL_FRAMES) {
draw_surface_safe(surf_indexes[_array_index][_frtm]);
surface_free(surf_indexes[_array_index][_frtm]);
surf_indexes[_array_index][_frtm] = 0;
}
BLEND_NORMAL
surface_set_shader(_output, sh_sample, true, BLEND.over);
if(0 <= _frtm && _frtm < _totl)
draw_surface_safe(_surfA[_frtm]);
surface_reset_target();
curr_frame = _frtm;
return _output;
}
static drawAnimationTimeline = function(_shf, _w, _h, _s) {
draw_set_color(COLORS._main_value_positive);
draw_set_alpha(1);
var _x = _shf + (curr_frame + 1) * _s;
draw_line_width(_x, 0, _x, _h, 1);
draw_set_alpha(1);
}
}

View file

@ -43,7 +43,7 @@ function NodeObject(_name, _spr, _node, _tooltip = "") constructor {
input_type_mask = 0b0;
output_type_mask = 0b0;
_fn = registerFunctionLite("New node", _name, function(n) /*=>*/ { PANEL_GRAPH.createNodeHotkey(n); }, [ node ]);
_fn = registerFunctionLite("New node", _name, function(n) /*=>*/ { PANEL_GRAPH.createNodeHotkey(n); }, [ nodeName ]);
_fn.spr = _spr;
if(!IS_CMD) {

View file

@ -21,9 +21,9 @@ function Node_Text(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) cons
newInput(6, nodeValue_Vec2("Fixed dimension", self, DEF_SURF ))
.setVisible(true, false);
newInput(7, nodeValue_Enum_Button("Horizontal alignment", self, 0 , [ THEME.inspector_text_halign, THEME.inspector_text_halign, THEME.inspector_text_halign]));
newInput(7, nodeValue_Enum_Button("H align", self, 0 , [ THEME.inspector_text_halign, THEME.inspector_text_halign, THEME.inspector_text_halign]));
newInput(8, nodeValue_Enum_Button("Vertical alignment", self, 0 , [ THEME.inspector_text_valign, THEME.inspector_text_valign, THEME.inspector_text_valign ]));
newInput(8, nodeValue_Enum_Button("V align", self, 0 , [ THEME.inspector_text_valign, THEME.inspector_text_valign, THEME.inspector_text_valign ]));
newInput(9, nodeValue_Enum_Scroll("Output dimension", self, 1 , [ "Fixed", "Dynamic" ]));

View file

@ -690,8 +690,6 @@ function Panel_Animation() : PanelContent() constructor {
}
#region lines
if(inspecting) inspecting.drawAnimationTimeline(timeline_shift, bar_w, bar_h, timeline_scale);
var _stW = timeline_separate * timeline_scale;
var _st = ceil(-timeline_shift / _stW);
var _fr = _st + ceil(bar_w / _stW);
@ -739,6 +737,8 @@ function Panel_Animation() : PanelContent() constructor {
draw_set_text(f_p2, fa_center, fa_bottom, cc);
draw_text_add(bar_line_x, ui(16), string(CURRENT_FRAME + 1));
if(inspecting) inspecting.drawAnimationTimeline(timeline_shift, bar_w, bar_h, timeline_scale);
#endregion
#region summary \\\ Set X for all keyframes

View file

@ -133,7 +133,7 @@ function string_partial_match(str, key) {
return -9999;
}
function string_partial_match_res(str, key, keys = []) {
function string_partial_match_res(str, key) {
if(str == key) return [ 9999, array_create(string_length(str) + 1, 1) ];
var lenn = string_length(str);

Binary file not shown.

After

Width:  |  Height:  |  Size: 333 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 334 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 332 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 341 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 343 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 336 B

View file

@ -2,26 +2,26 @@
"$GMSprite":"",
"%Name":"s_inspector_text_halign",
"bboxMode":0,
"bbox_bottom":20,
"bbox_left":2,
"bbox_right":21,
"bbox_top":3,
"bbox_bottom":18,
"bbox_left":6,
"bbox_right":18,
"bbox_top":5,
"collisionKind":1,
"collisionTolerance":0,
"DynamicTexturePage":false,
"edgeFiltering":false,
"For3D":false,
"frames":[
{"$GMSpriteFrame":"","%Name":"1e9635bb-b572-4804-aca6-678b0afe87c5","name":"1e9635bb-b572-4804-aca6-678b0afe87c5","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
{"$GMSpriteFrame":"","%Name":"9e29dffc-8cc8-48ad-a029-5a63e2558dd3","name":"9e29dffc-8cc8-48ad-a029-5a63e2558dd3","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
{"$GMSpriteFrame":"","%Name":"468d07d2-90d2-45b6-b9eb-58bf70666591","name":"468d07d2-90d2-45b6-b9eb-58bf70666591","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
{"$GMSpriteFrame":"","%Name":"119b29b9-d592-4435-a586-71d102c66bad","name":"119b29b9-d592-4435-a586-71d102c66bad","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
{"$GMSpriteFrame":"","%Name":"e36184af-811e-4704-9d05-529bee736775","name":"e36184af-811e-4704-9d05-529bee736775","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
{"$GMSpriteFrame":"","%Name":"42445dc1-7044-45ef-b6fc-af54f24c34cb","name":"42445dc1-7044-45ef-b6fc-af54f24c34cb","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
],
"gridX":0,
"gridY":0,
"height":24,
"HTile":false,
"layers":[
{"$GMImageLayer":"","%Name":"b8898d05-a136-4dd3-8c79-c5d53dcbfd11","blendMode":0,"displayName":"default","isLocked":false,"name":"b8898d05-a136-4dd3-8c79-c5d53dcbfd11","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,},
{"$GMImageLayer":"","%Name":"cba8bb66-bb57-48a1-8b65-7df0f50ad889","blendMode":0,"displayName":"default","isLocked":false,"name":"cba8bb66-bb57-48a1-8b65-7df0f50ad889","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,},
],
"name":"s_inspector_text_halign",
"nineSlice":null,
@ -71,14 +71,14 @@
"tracks":[
{"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore<SpriteFrameKeyframe>":"","Keyframes":[
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"1e9635bb-b572-4804-aca6-678b0afe87c5","path":"sprites/s_inspector_text_halign/s_inspector_text_halign.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
},"Disabled":false,"id":"19ccbae4-253e-4bdb-bda5-bf36a5c00231","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"119b29b9-d592-4435-a586-71d102c66bad","path":"sprites/s_inspector_text_halign/s_inspector_text_halign.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
},"Disabled":false,"id":"b07de2d5-69d1-428c-83db-5a00a32d864a","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"9e29dffc-8cc8-48ad-a029-5a63e2558dd3","path":"sprites/s_inspector_text_halign/s_inspector_text_halign.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
},"Disabled":false,"id":"613312e7-9d29-47e0-9d7a-d22f3aa8bd96","IsCreationKey":false,"Key":1.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"e36184af-811e-4704-9d05-529bee736775","path":"sprites/s_inspector_text_halign/s_inspector_text_halign.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
},"Disabled":false,"id":"ef35c354-9e3e-403c-bf69-3cee4192e24d","IsCreationKey":false,"Key":1.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"468d07d2-90d2-45b6-b9eb-58bf70666591","path":"sprites/s_inspector_text_halign/s_inspector_text_halign.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
},"Disabled":false,"id":"c4ce67df-1a07-4831-b375-9e181d272ccf","IsCreationKey":false,"Key":2.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"42445dc1-7044-45ef-b6fc-af54f24c34cb","path":"sprites/s_inspector_text_halign/s_inspector_text_halign.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
},"Disabled":false,"id":"70b2464c-bfbe-4c50-b613-40ba162032d4","IsCreationKey":false,"Key":2.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,

Binary file not shown.

After

Width:  |  Height:  |  Size: 418 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 500 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 395 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 422 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 402 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 427 B

View file

@ -2,26 +2,26 @@
"$GMSprite":"",
"%Name":"s_inspector_text_valign",
"bboxMode":0,
"bbox_bottom":21,
"bbox_left":2,
"bbox_right":21,
"bbox_top":2,
"bbox_bottom":19,
"bbox_left":5,
"bbox_right":18,
"bbox_top":4,
"collisionKind":1,
"collisionTolerance":0,
"DynamicTexturePage":false,
"edgeFiltering":false,
"For3D":false,
"frames":[
{"$GMSpriteFrame":"","%Name":"5cff06ad-dc1d-45e0-9027-7b80f9635a2e","name":"5cff06ad-dc1d-45e0-9027-7b80f9635a2e","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
{"$GMSpriteFrame":"","%Name":"cb195dfd-6bad-468d-9774-492529dd1e58","name":"cb195dfd-6bad-468d-9774-492529dd1e58","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
{"$GMSpriteFrame":"","%Name":"a556fd40-b4dc-43f7-b8a9-a64bc3dec065","name":"a556fd40-b4dc-43f7-b8a9-a64bc3dec065","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
{"$GMSpriteFrame":"","%Name":"381a82b5-3091-41c6-800b-761c08ebf0fa","name":"381a82b5-3091-41c6-800b-761c08ebf0fa","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
{"$GMSpriteFrame":"","%Name":"584b36d0-c5ec-4059-9925-640216ef7a12","name":"584b36d0-c5ec-4059-9925-640216ef7a12","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
{"$GMSpriteFrame":"","%Name":"769c1914-737d-4fae-bc21-352ce29a67ec","name":"769c1914-737d-4fae-bc21-352ce29a67ec","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
],
"gridX":0,
"gridY":0,
"height":24,
"HTile":false,
"layers":[
{"$GMImageLayer":"","%Name":"b4dea735-6db2-43ae-ad6b-eb56a3c8d5ef","blendMode":0,"displayName":"default","isLocked":false,"name":"b4dea735-6db2-43ae-ad6b-eb56a3c8d5ef","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,},
{"$GMImageLayer":"","%Name":"80e8bf45-1395-4921-a48c-44bfa6f7600c","blendMode":0,"displayName":"default","isLocked":false,"name":"80e8bf45-1395-4921-a48c-44bfa6f7600c","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,},
],
"name":"s_inspector_text_valign",
"nineSlice":null,
@ -71,14 +71,14 @@
"tracks":[
{"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore<SpriteFrameKeyframe>":"","Keyframes":[
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"5cff06ad-dc1d-45e0-9027-7b80f9635a2e","path":"sprites/s_inspector_text_valign/s_inspector_text_valign.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
},"Disabled":false,"id":"d3ddaf4c-4151-453c-b9a6-1c8c60996ede","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"381a82b5-3091-41c6-800b-761c08ebf0fa","path":"sprites/s_inspector_text_valign/s_inspector_text_valign.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
},"Disabled":false,"id":"6056acc0-147d-403f-a5c4-a8c89559e357","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"cb195dfd-6bad-468d-9774-492529dd1e58","path":"sprites/s_inspector_text_valign/s_inspector_text_valign.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
},"Disabled":false,"id":"853cfaaf-97fd-481e-8cea-562e39d15b39","IsCreationKey":false,"Key":1.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"584b36d0-c5ec-4059-9925-640216ef7a12","path":"sprites/s_inspector_text_valign/s_inspector_text_valign.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
},"Disabled":false,"id":"55dbf111-0708-4ec1-9cf8-482091aea339","IsCreationKey":false,"Key":1.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"a556fd40-b4dc-43f7-b8a9-a64bc3dec065","path":"sprites/s_inspector_text_valign/s_inspector_text_valign.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
},"Disabled":false,"id":"91483f39-a0a0-46b6-8ef8-d9c127d49ba6","IsCreationKey":false,"Key":2.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"769c1914-737d-4fae-bc21-352ce29a67ec","path":"sprites/s_inspector_text_valign/s_inspector_text_valign.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
},"Disabled":false,"id":"c086e83b-1552-42a7-90d1-32b827b210ef","IsCreationKey":false,"Key":2.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,