This commit is contained in:
Tanasart 2024-08-03 17:43:09 +07:00
parent aac0bef31e
commit 0b99d464ec
30 changed files with 146 additions and 75 deletions

View File

@ -603,6 +603,8 @@
{"$GMIncludedFile":"","%Name":"0 Introduction.pxc","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"0 Introduction.pxc","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"0 Introduction.pxc","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"0 Introduction.pxc","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"1 Image import.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"1 Image import.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"1 Image import.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"1 Image import.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"1 Image import.pxc","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"1 Image import.pxc","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"1 Image import.pxc","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"1 Image import.pxc","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"10 Audio.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"10 Audio.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"11 Optimization.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"11 Optimization.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"2 Animation.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"2 Animation.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"2 Animation.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"2 Animation.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"2 Animation.pxc","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"2 Animation.pxc","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"2 Animation.pxc","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"2 Animation.pxc","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"3 Group.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"3 Group.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"3 Group.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"3 Group.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
@ -611,6 +613,14 @@
{"$GMIncludedFile":"","%Name":"4 Loop.pxc","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"4 Loop.pxc","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"4 Loop.pxc","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"4 Loop.pxc","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"5 Particles.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"5 Particles.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"5 Particles.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"5 Particles.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"5 Particles.pxc","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"5 Particles.pxc","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"5 Particles.pxc","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"5 Particles.pxc","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"6 Organization.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"6 Organization.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"6 Organization.pxc","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"6 Organization.pxc","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"7 Composing.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"7 Composing.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"7 Composing.pxc","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"7 Composing.pxc","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"8 Path.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"8 Path.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"8 Path.pxc","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"8 Path.pxc","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"9 Expression.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"9 Expression.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"9 Expression.pxc","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"9 Expression.pxc","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"arrowRight.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"arrowRight.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"arrowRight.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"arrowRight.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"card_back.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"card_back.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"card_back.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"card_back.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"card_clubs_02.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"card_clubs_02.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"card_clubs_02.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"card_clubs_02.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
@ -623,7 +633,9 @@
{"$GMIncludedFile":"","%Name":"dice_4.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"dice_4.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"dice_4.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"dice_4.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"dice_5.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"dice_5.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"dice_5.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"dice_5.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"dice_6.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"dice_6.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"dice_6.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"dice_6.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"driver_dialog.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"driver_dialog.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"multi file dialog.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"multi file dialog.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"multi file dialog.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"multi file dialog.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"node_clutter.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"node_clutter.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"tile_0044.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"tile_0044.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"tile_0044.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"tile_0044.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"tile_0067.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"tile_0067.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"tile_0067.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"tile_0067.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"tile_0126.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"tile_0126.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"tile_0126.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"tile_0126.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -654,5 +654,4 @@ function Node_3D_Object(_x, _y, _group = noone) : Node_3D(_x, _y, _group) constr
static getPreviewObjects = function() { return [ getPreviewObject(), gizmo ]; } static getPreviewObjects = function() { return [ getPreviewObject(), gizmo ]; }
static getPreviewObjectOutline = function() { return [ getPreviewObject(), gizmo ]; } static getPreviewObjectOutline = function() { return [ getPreviewObject(), gizmo ]; }
} }

View File

@ -20,10 +20,11 @@ function draw_text_over(_x, _y, _text, scale = 1) {
function draw_text_add_float(_x, _y, _text, scale = 1) { function draw_text_add_float(_x, _y, _text, scale = 1) {
INLINE INLINE
BLEND_ALPHA_MULP;
if(scale == 1) draw_text(_x, _y, _text); BLEND_ADD;
else draw_text_transformed(_x, _y, _text, scale, scale, 0); if(scale == 1) draw_text(_x, _y, _text); else draw_text_transformed(_x, _y, _text, scale, scale, 0);
BLEND_NORMAL; BLEND_NORMAL;
if(scale == 1) draw_text(_x, _y, _text); else draw_text_transformed(_x, _y, _text, scale, scale, 0);
} }
function draw_text_bm_add(_x, _y, _text, scale = 1) { function draw_text_bm_add(_x, _y, _text, scale = 1) {

View File

@ -37,10 +37,10 @@
globalvar HOTKEYS, HOTKEY_CONTEXT; globalvar HOTKEYS, HOTKEY_CONTEXT;
LATEST_VERSION = 11700; LATEST_VERSION = 11700;
VERSION = 11780; VERSION = 11790;
SAVE_VERSION = 11700; SAVE_VERSION = 11700;
VERSION_STRING = "1.17.9.007"; VERSION_STRING = "1.17.9";
BUILD_NUMBER = 11780; BUILD_NUMBER = 11790;
HOTKEYS = ds_map_create(); HOTKEYS = ds_map_create();
HOTKEY_CONTEXT = ds_list_create(); HOTKEY_CONTEXT = ds_list_create();

View File

@ -44,9 +44,6 @@ function LOAD_PATH(path, readonly = false, safe_mode = false) {
var _PROJECT = PROJECT; var _PROJECT = PROJECT;
PROJECT = new Project(); PROJECT = new Project();
var res = LOAD_AT(path, new __loadParams(readonly));
if(!res) return false;
if(_PROJECT == noone) { if(_PROJECT == noone) {
PROJECTS = [ PROJECT ]; PROJECTS = [ PROJECT ];
@ -66,6 +63,9 @@ function LOAD_PATH(path, readonly = false, safe_mode = false) {
array_push(PROJECTS, PROJECT); array_push(PROJECTS, PROJECT);
} }
var res = LOAD_AT(path, new __loadParams(readonly));
if(!res) return false;
PROJECT.safeMode = safe_mode; PROJECT.safeMode = safe_mode;
if(!IS_CMD) setFocus(PANEL_GRAPH.panel); if(!IS_CMD) setFocus(PANEL_GRAPH.panel);

View File

@ -873,5 +873,4 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
if(struct_has(attr, "layer_selectable")) if(struct_has(attr, "layer_selectable"))
attributes.layer_selectable = attr.layer_selectable; attributes.layer_selectable = attr.layer_selectable;
} }
} }

View File

@ -14,6 +14,7 @@ function Node_Display_Text(_x, _y, _group = noone) : Node(_x, _y, _group) constr
auto_height = false; auto_height = false;
name_hover = false; name_hover = false;
draw_scale = 1; draw_scale = 1;
init_size = true;
ta_editor = new textArea(TEXTBOX_INPUT.text, function(val) { inputs[| 1].setValue(val); }) ta_editor = new textArea(TEXTBOX_INPUT.text, function(val) { inputs[| 1].setValue(val); })
@ -37,20 +38,21 @@ function Node_Display_Text(_x, _y, _group = noone) : Node(_x, _y, _group) constr
.setDisplay(VALUE_DISPLAY.vector) .setDisplay(VALUE_DISPLAY.vector)
.rejectArray(); .rejectArray();
inputs[| 6] = nodeValue("Smooth transform", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true) inputs[| 6] = nodeValue("Line height", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0)
.rejectArray(); .rejectArray();
input_display_list = [1, input_display_list = [1,
["Styling", false], 2, 0, 4, ["Styling", false], 2, 0, 4, 6,
["Display", false], 5, 6, ["Display", false], 5,
]; ];
_prev_text = ""; _prev_text = "";
font = f_sdf_medium; font = f_sdf_medium;
fsize = 1; fsize = 1;
line_h = 0;
_lines = []; _lines = [];
draw_simple = false;
smooth = true;
pos_x = x; pos_x = x;
pos_y = y; pos_y = y;
@ -131,13 +133,22 @@ function Node_Display_Text(_x, _y, _group = noone) : Node(_x, _y, _group) constr
} }
static draw_text_style = function(_x, _y, txt, _s, _mx, _my) { static draw_text_style = function(_x, _y, txt, _s, _mx, _my) {
var _ss = _s * fsize;
if(draw_simple) {
draw_text_add_float(_x, _y, txt, _ss);
return string_width(txt) * fsize;
}
var _tx = _x; var _tx = _x;
var index = 1; var index = 1;
var _len = string_length(txt); var _len = string_length(txt);
var _ch = ""; var _ch = "";
var _ch_h = string_height("l") * _s * fsize; var _ch_h = string_height("l") * _ss;
var _mode = 0; var _mode = 0;
var _cmd = ""; var _cmd = "";
var _str = "";
var width = 0; var width = 0;
var _tw, _th; var _tw, _th;
@ -146,7 +157,7 @@ function Node_Display_Text(_x, _y, _group = noone) : Node(_x, _y, _group) constr
var _cc = draw_get_color(); var _cc = draw_get_color();
var _aa = draw_get_alpha(); var _aa = draw_get_alpha();
while(index <= _len) { repeat(_len) {
_ch = string_char_at(txt, index); _ch = string_char_at(txt, index);
index++; index++;
@ -166,14 +177,14 @@ function Node_Display_Text(_x, _y, _group = noone) : Node(_x, _y, _group) constr
var _bw = string_width(_bch); var _bw = string_width(_bch);
_tx += 4 * _s; _tx += 4 * _s;
_tw = _bw * _s * fsize; _tw = _bw * _ss;
_th = string_height(_bch) * _s * fsize; _th = string_height(_bch) * _ss;
draw_sprite_stretched_points(THEME.ui_panel_bg, 0, _tx - 4, _y - 4, _tx + _tw + 4, _y + _th + 4, COLORS._main_icon_light); draw_sprite_stretched_points(THEME.ui_panel_bg, 0, _tx - 4, _y - 4, _tx + _tw + 4, _y + _th + 4, COLORS._main_icon_light);
draw_sprite_stretched_points(THEME.ui_panel_fg, 0, _tx - 4, _y - 4, _tx + _tw + 4, _y + _th + 4); draw_sprite_stretched_points(THEME.ui_panel_fg, 0, _tx - 4, _y - 4, _tx + _tw + 4, _y + _th + 4);
draw_set_color(_cc); draw_set_color(_cc);
draw_text_add_float(_tx, _y, _bch, _s * fsize); draw_text_add_float(_tx, _y, _bch, _ss);
var _reac = button_reactive(string_to_var(_bch)); var _reac = button_reactive(string_to_var(_bch));
if(_reac > 0) { if(_reac > 0) {
@ -181,7 +192,7 @@ function Node_Display_Text(_x, _y, _group = noone) : Node(_x, _y, _group) constr
draw_set_color(merge_color(0, COLORS.panel_bg_clear_inner, 0.5)); draw_set_color(merge_color(0, COLORS.panel_bg_clear_inner, 0.5));
draw_set_alpha(_reac); draw_set_alpha(_reac);
draw_text_transformed(_tx, _y, _bch, _s * fsize, _s * fsize, 0); draw_text_transformed(_tx, _y, _bch, _ss, _ss, 0);
draw_set_alpha(_aa); draw_set_alpha(_aa);
draw_set_color(_cc); draw_set_color(_cc);
} }
@ -198,14 +209,14 @@ function Node_Display_Text(_x, _y, _group = noone) : Node(_x, _y, _group) constr
var _bw = string_width(_bch); var _bw = string_width(_bch);
_tx += 4 * _s; _tx += 4 * _s;
_tw = _bw * _s * fsize; _tw = _bw * _ss;
_th = string_height(_bch) * _s * fsize; _th = string_height(_bch) * _ss;
draw_sprite_stretched_ext(THEME.node_bg, 0, _tx - 4, _y - 4, _tw + 8, _th + 8, c_white, .75); draw_sprite_stretched_ext(THEME.node_bg, 0, _tx - 4, _y - 4, _tw + 8, _th + 8, c_white, .75);
draw_sprite_stretched_add(THEME.node_bg, 0, _tx - 4, _y - 4, _tw + 8, _th + 8, c_white, .10); draw_sprite_stretched_add(THEME.node_bg, 0, _tx - 4, _y - 4, _tw + 8, _th + 8, c_white, .10);
draw_set_color(_cc); draw_set_color(_cc);
draw_text_add_float(_tx, _y, _bch, _s * fsize); draw_text_add_float(_tx, _y, _bch, _ss);
_tx += _tw + 4 * _s; _tx += _tw + 4 * _s;
width += _bw * fsize + 8; width += _bw * fsize + 8;
@ -271,26 +282,34 @@ function Node_Display_Text(_x, _y, _group = noone) : Node(_x, _y, _group) constr
} }
switch(_mode) { switch(_mode) {
case 0 : case 0 :
_tw = string_width(_ch); _str += _ch;
_th = string_height(_ch);
gpu_set_colorwriteenable(1, 1, 1, 0);
BLEND_OVERRIDE
draw_text_add_float(_tx, _y, _ch, _s * fsize);
BLEND_NORMAL
gpu_set_colorwriteenable(1, 1, 1, 1);
draw_text_add_float(_tx, _y, _ch, _s * fsize);
_tx += _tw * _s * fsize;
width += _tw * fsize;
break; break;
case 1 : _cmd += _ch; break; case 1 :
if(_str != "") {
draw_text_add_float(_tx, _y, _str, _ss);
_tw = string_width(_str);
_tx += _tw * _ss;
width += _tw * fsize;
_str = "";
}
_cmd += _ch;
break;
} }
} }
if(_str != "") {
draw_text_add_float(_tx, _y, _str, _ss);
_tw = string_width(_str);
_tx += _tw * _ss;
width += _tw * fsize;
_str = "";
}
return width; return width;
} }
@ -378,6 +397,8 @@ function Node_Display_Text(_x, _y, _group = noone) : Node(_x, _y, _group) constr
} else } else
ss += _ps; ss += _ps;
} }
array_push(_lines, "/");
} }
if(ss != "") array_push(_lines, ss); if(ss != "") array_push(_lines, ss);
@ -416,15 +437,18 @@ function Node_Display_Text(_x, _y, _group = noone) : Node(_x, _y, _group) constr
} }
static drawNodeBase = function(xx, yy, mx, my, _s) { static drawNodeBase = function(xx, yy, mx, my, _s) {
if(draw_graph_culled && !init_size) return;
var color = getInputData(0); var color = getInputData(0);
var txt = getInputData(1); var txt = getInputData(1);
if(txt == "") txt = "..." if(txt == "") txt = "..."
draw_simple = string_pos("<", txt) == 0;
var sty = getInputData(2); var sty = getInputData(2);
var alp = _color_get_alpha(color); var alp = _color_get_alpha(color);
var wid = getInputData(4); var wid = getInputData(4);
var posi = getInputData(5); var posi = getInputData(5);
smooth = getInputData(6); line_h = getInputData(6);
pos_x = posi[0]; pos_x = posi[0];
pos_y = posi[1]; pos_y = posi[1];
@ -457,7 +481,13 @@ function Node_Display_Text(_x, _y, _group = noone) : Node(_x, _y, _group) constr
draw_set_text(font, fa_left, fa_top, color); draw_set_text(font, fa_left, fa_top, color);
for( var i = 0, n = array_length(_lines); i < n; i++ ) { for( var i = 0, n = array_length(_lines); i < n; i++ ) {
var _line = _lines[i]; var _line = _lines[i];
var _h = line_get_height(font) * fsize; if(_line == "/") {
hh += 8;
ty += 8 * _s;
continue;
}
var _h = line_get_height(font) * fsize + line_h;
var _w = draw_text_style(tx, ty, _line, _s, mx, my); var _w = draw_text_style(tx, ty, _line, _s, mx, my);
ww = max(ww, _w); ww = max(ww, _w);
@ -477,6 +507,8 @@ function Node_Display_Text(_x, _y, _group = noone) : Node(_x, _y, _group) constr
draw_scale = _s; draw_scale = _s;
w = ww + 8; w = ww + 8;
h = hh + 8; h = hh + 8;
init_size = false;
} }
static drawJunctions = function(_x, _y, _mx, _my, _s) { static drawJunctions = function(_x, _y, _mx, _my, _s) {
@ -495,21 +527,22 @@ function Node_Display_Text(_x, _y, _group = noone) : Node(_x, _y, _group) constr
return hover; return hover;
} }
static update = function() {
init_size = true;
}
static drawNode = function(_x, _y, _mx, _my, _s) { static drawNode = function(_x, _y, _mx, _my, _s) {
x = smooth? lerp_float(x, pos_x, 4) : pos_x;
y = smooth? lerp_float(y, pos_y, 4) : pos_y;
var xx = x * _s + _x; var xx = x * _s + _x;
var yy = y * _s + _y; var yy = y * _s + _y;
button_reactive_update();
drawNodeBase(xx, yy, _mx, _my, _s);
if(active_draw_index > -1) { if(active_draw_index > -1) {
draw_sprite_stretched_ext(bg_sel_spr, 0, xx, yy, w * _s, h * _s, COLORS._main_accent, 1); draw_sprite_stretched_ext(bg_sel_spr, 0, xx, yy, w * _s, h * _s, COLORS._main_accent, 1);
active_draw_index = -1; active_draw_index = -1;
} }
button_reactive_update();
drawNodeBase(xx, yy, _mx, _my, _s);
return drawJunctions(xx, yy, _mx, _my, _s); return drawJunctions(xx, yy, _mx, _my, _s);
} }
} }

View File

@ -1,5 +1,5 @@
{ {
"$GMScript":"v1", "$GMScript":"",
"%Name":"node_display_text", "%Name":"node_display_text",
"isCompatibility":false, "isCompatibility":false,
"isDnD":false, "isDnD":false,

View File

@ -248,7 +248,7 @@ function Node_Tunnel_In(_x, _y, _group = noone) : Node(_x, _y, _group) construct
static onClone = function() { onValueUpdate(0); } static onClone = function() { onValueUpdate(0); }
static postConnect = function() { onValueUpdate(0); } static postConnect = function() { step(); onValueUpdate(0); }
static onDestroy = function() { static onDestroy = function() {
if(error_notification != noone) if(error_notification != noone)

View File

@ -185,5 +185,5 @@ function Node_Tunnel_Out(_x, _y, _group = noone) : Node(_x, _y, _group) construc
static onClone = function() { onValueUpdate(0); } static onClone = function() { onValueUpdate(0); }
static postConnect = function() { onValueUpdate(0); } static postConnect = function() { step(); onValueUpdate(0); }
} }

View File

@ -184,6 +184,8 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor {
show_view_control = 1; show_view_control = 1;
bg_color = c_black; bg_color = c_black;
slider_width = 0;
#endregion #endregion
#region ---- position ---- #region ---- position ----
@ -609,12 +611,6 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor {
function getFocusingNode() { return array_empty(nodes_selecting)? noone : nodes_selecting[0]; } function getFocusingNode() { return array_empty(nodes_selecting)? noone : nodes_selecting[0]; }
function getCurrentContext() { return array_empty(node_context)? noone : node_context[array_length(node_context) - 1]; }
function getNodeList(cont = getCurrentContext()) { #region
return cont == noone? project.nodes : cont.getNodeList();
} #endregion
//// =========== Menus =========== //// =========== Menus ===========
menu_sent_to_preview = menuItem(__txtx("panel_graph_send_to_preview", "Send to preview"), function() /*=>*/ { setCurrentPreview(node_hover); }); menu_sent_to_preview = menuItem(__txtx("panel_graph_send_to_preview", "Send to preview"), function() /*=>*/ { setCurrentPreview(node_hover); });
@ -765,8 +761,10 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor {
nodes_list = project.nodes; nodes_list = project.nodes;
setTitle(); setTitle();
run_in(2, function() /*=>*/ { setSlideShow(0); }); run_in(2, function() /*=>*/ {
struct_override(display_parameter, project.graph_display_parameter); setSlideShow(0);
struct_override(display_parameter, project.graph_display_parameter);
});
} }
//// ============ Views ============ //// ============ Views ============
@ -934,9 +932,10 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor {
function setSlideShow(index, skip = false) { function setSlideShow(index, skip = false) {
var _targ = project.slideShowSet(index); var _targ = project.slideShowSet(index);
if(_targ == noone) return; if(_targ == noone) return;
setContext(_targ);
var _gx = w / 2 / graph_s; var _gx = w / 2 / graph_s;
var _gy = h / 2 / graph_s; var _gy = h / 2 / graph_s;
@ -966,6 +965,29 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor {
//// =========== Context ========== //// =========== Context ==========
function getCurrentContext() { return array_empty(node_context)? noone : node_context[array_length(node_context) - 1]; }
function getNodeList(cont = getCurrentContext()) { return cont == noone? project.nodes : cont.getNodeList(); }
function setContext(context) {
if(context.group == getCurrentContext()) return;
node_context = [];
nodes_list = project.nodes;
var _ctxs = [];
var _ctx = context;
while(_ctx.group != noone) {
array_insert(_ctxs, 0, _ctx.group);
_ctx = _ctx.group;
}
for (var i = 0, n = array_length(_ctxs); i < n; i++)
addContext(_ctxs[i]);
}
function resetContext() { function resetContext() {
node_context = []; node_context = [];
nodes_list = project.nodes; nodes_list = project.nodes;
@ -2336,17 +2358,18 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor {
var _sl_y = h - toolbar_height - ui(8) - _sl_h; var _sl_y = h - toolbar_height - ui(8) - _sl_h;
var _ss_y = _sl_y + _sl_h - ui(16); var _ss_y = _sl_y + _sl_h - ui(16);
if(cur != noone) { if(cur != noone && cur.slide_title != "") {
draw_set_text(f_p2, fa_center, fa_top, COLORS._main_icon_light); draw_set_text(f_p2, fa_center, fa_top, COLORS._main_icon_light);
var _txtw = string_width(cur.slide_title) + ui(32); var _txtw = string_width(cur.slide_title) + ui(32);
_sl_w = max(_sl_w, _txtw); _sl_w = max(_sl_w, _txtw);
_sl_h = _sl_h + ui(8 + 12); _sl_h = _sl_h + ui(8 + 12);
_sl_x = w / 2 - _sl_w / 2;
_sl_y = h - toolbar_height - ui(8) - _sl_h;
} }
draw_sprite_stretched(THEME.ui_panel_bg, 3, _sl_x, _sl_y, _sl_w, _sl_h); slider_width = slider_width == 0? _sl_w : lerp_float(slider_width, _sl_w, 10);
_sl_x = w / 2 - slider_width / 2;
_sl_y = h - toolbar_height - ui(8) - _sl_h;
draw_sprite_stretched(THEME.ui_panel_bg, 3, _sl_x, _sl_y, slider_width, _sl_h);
if(cur != noone) draw_text_add(round(w / 2), round(_sl_y + ui(8)), cur.slide_title); if(cur != noone) draw_text_add(round(w / 2), round(_sl_y + ui(8)), cur.slide_title);
@ -2374,12 +2397,12 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor {
draw_sprite_ext(THEME.circle, 0, _sx, _sy, ss, ss, 0, cc, aa); draw_sprite_ext(THEME.circle, 0, _sx, _sy, ss, ss, 0, cc, aa);
} }
if(point_in_rectangle(mx, my, _sl_x, _sl_y, _sl_x + _sl_w, _sl_y + _sl_h)) { if(point_in_rectangle(mx, my, _sl_x, _sl_y, _sl_x + slider_width, _sl_y + _sl_h)) {
mouse_on_graph = false; mouse_on_graph = false;
if(pHOVER && !_hv) { if(pHOVER && !_hv) {
draw_sprite_stretched_add(THEME.ui_panel_bg, 4, _sl_x, _sl_y, _sl_w, _sl_h, COLORS._main_icon, 0.05); draw_sprite_stretched_add(THEME.ui_panel_bg, 4, _sl_x, _sl_y, slider_width, _sl_h, COLORS._main_icon, 0.05);
draw_sprite_stretched_add(THEME.ui_panel_fg, 1, _sl_x, _sl_y, _sl_w, _sl_h, c_white, 0.1); draw_sprite_stretched_add(THEME.ui_panel_fg, 1, _sl_x, _sl_y, slider_width, _sl_h, c_white, 0.1);
if(mouse_press(mb_left, pFOCUS)) if(mouse_press(mb_left, pFOCUS))
setSlideShow((ind + 1) % amo); setSlideShow((ind + 1) % amo);