Pixel-Composer/objects/o_dialog_anim_time_scaler/Draw_64.gml

49 lines
1.7 KiB
Plaintext
Raw Normal View History

2022-01-13 05:24:03 +01:00
/// @description init
if !ready exit;
#region base UI
2022-11-18 03:20:31 +01:00
draw_sprite_stretched(THEME.dialog_bg, 0, dialog_x, dialog_y, dialog_w, dialog_h);
2022-11-03 11:44:49 +01:00
if(sFOCUS)
2022-11-18 03:20:31 +01:00
draw_sprite_stretched_ext(THEME.dialog_active, 0, dialog_x, dialog_y, dialog_w, dialog_h, COLORS._main_accent, 1);
2022-01-13 05:24:03 +01:00
2022-11-18 03:20:31 +01:00
draw_set_text(f_p0, fa_left, fa_top, COLORS._main_text_title);
2022-11-03 11:44:49 +01:00
draw_text(dialog_x + ui(24), dialog_y + ui(16), "Animation scaler");
2022-01-13 05:24:03 +01:00
#endregion
#region scaler
2022-11-03 11:44:49 +01:00
var yy = dialog_y + ui(44);
2022-01-13 05:24:03 +01:00
2022-11-03 11:44:49 +01:00
tb_scale_frame.active = sFOCUS;
tb_scale_frame.hover = sHOVER;
2022-11-18 03:20:31 +01:00
draw_set_text(f_p1, fa_left, fa_center, COLORS._main_text);
2022-11-03 11:44:49 +01:00
draw_text(dialog_x + ui(32), yy + ui(17), "Target frame length");
var tb_x = dialog_x + ui(200);
tb_scale_frame.draw(tb_x, yy, ui(96), TEXTBOX_HEIGHT, scale_to, mouse_ui);
2022-01-13 05:24:03 +01:00
2022-11-03 11:44:49 +01:00
var sx1 = tb_x + ui(96);
2022-11-18 03:20:31 +01:00
draw_set_text(f_p1, fa_right, fa_top, COLORS._main_text_sub);
2022-11-03 11:44:49 +01:00
draw_text(sx1, yy + ui(38), "Scaling factor: " + string(scale_to / ANIMATOR.frames_total));
2022-01-13 05:24:03 +01:00
2022-11-03 11:44:49 +01:00
var bx = sx1 + ui(16);
2022-09-21 06:09:40 +02:00
var by = yy;
2022-11-18 03:20:31 +01:00
if(buttonInstant(THEME.button_lime, bx, by, ui(34), ui(34), mouse_ui, sFOCUS, sHOVER, "", THEME.accept, 0, COLORS._main_icon_dark) == 2) {
2022-01-13 05:24:03 +01:00
var fac = scale_to / ANIMATOR.frames_total;
var key = ds_map_find_first(NODE_MAP);
repeat(ds_map_size(NODE_MAP)) {
var n = NODE_MAP[? key];
2022-09-23 13:28:42 +02:00
key = ds_map_find_next(NODE_MAP, key);
if(!n || !n.active) continue;
for(var i = 0; i < ds_list_size(n.inputs); i++) {
var in = n.inputs[| i];
if(!in.animator.is_anim) continue;
for(var j = 0; j < ds_list_size(in.animator.values); j++) {
var t = in.animator.values[| j];
2023-01-09 03:14:20 +01:00
t.time = t.ratio * scale_to;
2022-01-13 05:24:03 +01:00
}
}
}
ANIMATOR.frames_total = scale_to;
instance_destroy();
}
#endregion