text manip

This commit is contained in:
Tanasart 2025-02-17 15:48:38 +07:00
parent 03e14d6e94
commit 72841cafe4
37 changed files with 783 additions and 27 deletions

View file

@ -881,7 +881,7 @@
{"name":"node_fn_wave_table","order":1,"path":"scripts/node_fn_wave_table/node_fn_wave_table.yy",},
{"name":"node_fn","order":2,"path":"scripts/node_fn/node_fn.yy",},
{"name":"node_fold_noise","order":32,"path":"scripts/node_fold_noise/node_fold_noise.yy",},
{"name":"node_font_bitmap","order":13,"path":"scripts/node_font_bitmap/node_font_bitmap.yy",},
{"name":"node_font_bitmap","order":18,"path":"scripts/node_font_bitmap/node_font_bitmap.yy",},
{"name":"node_frame","order":5,"path":"scripts/node_frame/node_frame.yy",},
{"name":"node_functions","order":8,"path":"scripts/node_functions/node_functions.yy",},
{"name":"node_FXAA","order":25,"path":"scripts/node_FXAA/node_FXAA.yy",},
@ -1041,7 +1041,7 @@
{"name":"node_path_sample","order":9,"path":"scripts/node_path_sample/node_path_sample.yy",},
{"name":"node_path_scatter","order":27,"path":"scripts/node_path_scatter/node_path_scatter.yy",},
{"name":"node_path_sdf","order":29,"path":"scripts/node_path_sdf/node_path_sdf.yy",},
{"name":"node_path_separate_folder","order":12,"path":"scripts/node_path_separate_folder/node_path_separate_folder.yy",},
{"name":"node_path_separate_folder","order":17,"path":"scripts/node_path_separate_folder/node_path_separate_folder.yy",},
{"name":"node_path_shape_3d","order":4,"path":"scripts/node_path_shape_3d/node_path_shape_3d.yy",},
{"name":"node_path_shape","order":3,"path":"scripts/node_path_shape/node_path_shape.yy",},
{"name":"node_path_shift","order":10,"path":"scripts/node_path_shift/node_path_shift.yy",},
@ -1183,15 +1183,21 @@
{"name":"node_strand_render_texture","order":7,"path":"scripts/node_strand_render_texture/node_strand_render_texture.yy",},
{"name":"node_strand_render","order":5,"path":"scripts/node_strand_render/node_strand_render.yy",},
{"name":"node_strand_update","order":3,"path":"scripts/node_strand_update/node_strand_update.yy",},
{"name":"node_string_get_char","order":5,"path":"scripts/node_string_get_char/node_string_get_char.yy",},
{"name":"node_string_change_case","order":12,"path":"scripts/node_string_change_case/node_string_change_case.yy",},
{"name":"node_string_count","order":9,"path":"scripts/node_string_count/node_string_count.yy",},
{"name":"node_string_delete","order":10,"path":"scripts/node_string_delete/node_string_delete.yy",},
{"name":"node_string_format","order":8,"path":"scripts/node_string_format/node_string_format.yy",},
{"name":"node_string_get_char","order":4,"path":"scripts/node_string_get_char/node_string_get_char.yy",},
{"name":"node_string_insert","order":11,"path":"scripts/node_string_insert/node_string_insert.yy",},
{"name":"node_string_join","order":5,"path":"scripts/node_string_join/node_string_join.yy",},
{"name":"node_string_length","order":7,"path":"scripts/node_string_length/node_string_length.yy",},
{"name":"node_string_merge","order":6,"path":"scripts/node_string_merge/node_string_merge.yy",},
{"name":"node_string_regex_match","order":10,"path":"scripts/node_string_regex_match/node_string_regex_match.yy",},
{"name":"node_string_regex_replace","order":9,"path":"scripts/node_string_regex_replace/node_string_regex_replace.yy",},
{"name":"node_string_regex_search","order":8,"path":"scripts/node_string_regex_search/node_string_regex_search.yy",},
{"name":"node_string_split","order":3,"path":"scripts/node_string_split/node_string_split.yy",},
{"name":"node_string_trim","order":4,"path":"scripts/node_string_trim/node_string_trim.yy",},
{"name":"node_string","order":2,"path":"scripts/node_string/node_string.yy",},
{"name":"node_string_regex_match","order":15,"path":"scripts/node_string_regex_match/node_string_regex_match.yy",},
{"name":"node_string_regex_replace","order":14,"path":"scripts/node_string_regex_replace/node_string_regex_replace.yy",},
{"name":"node_string_regex_search","order":13,"path":"scripts/node_string_regex_search/node_string_regex_search.yy",},
{"name":"node_string_split","order":2,"path":"scripts/node_string_split/node_string_split.yy",},
{"name":"node_string_trim","order":3,"path":"scripts/node_string_trim/node_string_trim.yy",},
{"name":"node_string","order":1,"path":"scripts/node_string/node_string.yy",},
{"name":"node_stripe","order":8,"path":"scripts/node_stripe/node_stripe.yy",},
{"name":"node_struct_get","order":1,"path":"scripts/node_struct_get/node_struct_get.yy",},
{"name":"node_struct_json_parse","order":2,"path":"scripts/node_struct_json_parse/node_struct_json_parse.yy",},
@ -1220,7 +1226,7 @@
{"name":"node_time_remap","order":6,"path":"scripts/node_time_remap/node_time_remap.yy",},
{"name":"node_timeline_preview","order":1,"path":"scripts/node_timeline_preview/node_timeline_preview.yy",},
{"name":"node_to_number","order":14,"path":"scripts/node_to_number/node_to_number.yy",},
{"name":"node_to_text","order":11,"path":"scripts/node_to_text/node_to_text.yy",},
{"name":"node_to_text","order":16,"path":"scripts/node_to_text/node_to_text.yy",},
{"name":"node_tonemap_ace","order":34,"path":"scripts/node_tonemap_ace/node_tonemap_ace.yy",},
{"name":"node_tool","order":12,"path":"scripts/node_tool/node_tool.yy",},
{"name":"node_trail","order":30,"path":"scripts/node_trail/node_trail.yy",},
@ -1229,7 +1235,6 @@
{"name":"node_trigger_bool","order":1,"path":"scripts/node_trigger_bool/node_trigger_bool.yy",},
{"name":"node_tunnel_out","order":1,"path":"scripts/node_tunnel_out/node_tunnel_out.yy",},
{"name":"node_twirl","order":8,"path":"scripts/node_twirl/node_twirl.yy",},
{"name":"node_unicode","order":1,"path":"scripts/node_unicode/node_unicode.yy",},
{"name":"node_value_area","order":11,"path":"scripts/node_value_area/node_value_area.yy",},
{"name":"node_value_atlas","order":7,"path":"scripts/node_value_atlas/node_value_atlas.yy",},
{"name":"node_value_audioBit","order":1,"path":"scripts/node_value_audioBit/node_value_audioBit.yy",},
@ -2408,7 +2413,11 @@
{"name":"s_node_strand_render_texture","order":5,"path":"sprites/s_node_strand_render_texture/s_node_strand_render_texture.yy",},
{"name":"s_node_strand_update","order":1,"path":"sprites/s_node_strand_update/s_node_strand_update.yy",},
{"name":"s_node_strand","order":3,"path":"sprites/s_node_strand/s_node_strand.yy",},
{"name":"s_node_string_count","order":18,"path":"sprites/s_node_string_count/s_node_string_count.yy",},
{"name":"s_node_string_delete","order":16,"path":"sprites/s_node_string_delete/s_node_string_delete.yy",},
{"name":"s_node_string_format","order":19,"path":"sprites/s_node_string_format/s_node_string_format.yy",},
{"name":"s_node_string_get_char","order":2,"path":"sprites/s_node_string_get_char/s_node_string_get_char.yy",},
{"name":"s_node_string_insert","order":17,"path":"sprites/s_node_string_insert/s_node_string_insert.yy",},
{"name":"s_node_string_join","order":5,"path":"sprites/s_node_string_join/s_node_string_join.yy",},
{"name":"s_node_string_length","order":9,"path":"sprites/s_node_string_length/s_node_string_length.yy",},
{"name":"s_node_string_merge","order":3,"path":"sprites/s_node_string_merge/s_node_string_merge.yy",},

View file

@ -1197,7 +1197,12 @@
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Values/Path/Node_Path","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Values/Path/Node_Segment_Filter","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Values/String/Node_Font_Bitmap","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Values/String/Node_String_Change_Case","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Values/String/Node_String_Count","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Values/String/Node_String_Delete","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Values/String/Node_String_Format","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Values/String/Node_String_Get_Char","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Values/String/Node_String_Insert","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Values/String/Node_String_Join","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Values/String/Node_String_Length","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Values/String/Node_String_Merge","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
@ -2404,7 +2409,12 @@
{"id":{"name":"node_strand_render_texture","path":"scripts/node_strand_render_texture/node_strand_render_texture.yy",},},
{"id":{"name":"node_strand_render","path":"scripts/node_strand_render/node_strand_render.yy",},},
{"id":{"name":"node_strand_update","path":"scripts/node_strand_update/node_strand_update.yy",},},
{"id":{"name":"node_string_change_case","path":"scripts/node_string_change_case/node_string_change_case.yy",},},
{"id":{"name":"node_string_count","path":"scripts/node_string_count/node_string_count.yy",},},
{"id":{"name":"node_string_delete","path":"scripts/node_string_delete/node_string_delete.yy",},},
{"id":{"name":"node_string_format","path":"scripts/node_string_format/node_string_format.yy",},},
{"id":{"name":"node_string_get_char","path":"scripts/node_string_get_char/node_string_get_char.yy",},},
{"id":{"name":"node_string_insert","path":"scripts/node_string_insert/node_string_insert.yy",},},
{"id":{"name":"node_string_join","path":"scripts/node_string_join/node_string_join.yy",},},
{"id":{"name":"node_string_length","path":"scripts/node_string_length/node_string_length.yy",},},
{"id":{"name":"node_string_merge","path":"scripts/node_string_merge/node_string_merge.yy",},},
@ -3769,7 +3779,11 @@
{"id":{"name":"s_node_strand_render","path":"sprites/s_node_strand_render/s_node_strand_render.yy",},},
{"id":{"name":"s_node_strand_update","path":"sprites/s_node_strand_update/s_node_strand_update.yy",},},
{"id":{"name":"s_node_strand","path":"sprites/s_node_strand/s_node_strand.yy",},},
{"id":{"name":"s_node_string_count","path":"sprites/s_node_string_count/s_node_string_count.yy",},},
{"id":{"name":"s_node_string_delete","path":"sprites/s_node_string_delete/s_node_string_delete.yy",},},
{"id":{"name":"s_node_string_format","path":"sprites/s_node_string_format/s_node_string_format.yy",},},
{"id":{"name":"s_node_string_get_char","path":"sprites/s_node_string_get_char/s_node_string_get_char.yy",},},
{"id":{"name":"s_node_string_insert","path":"sprites/s_node_string_insert/s_node_string_insert.yy",},},
{"id":{"name":"s_node_string_join","path":"sprites/s_node_string_join/s_node_string_join.yy",},},
{"id":{"name":"s_node_string_length","path":"sprites/s_node_string_length/s_node_string_length.yy",},},
{"id":{"name":"s_node_string_merge","path":"sprites/s_node_string_merge/s_node_string_merge.yy",},},

Binary file not shown.

View file

@ -0,0 +1,8 @@
{
"name":"Change Case",
"tooltip":"Change text to uppercase, lowercase, or titlecase.",
"spr":"s_node_string_insert",
"pxc_version":118090,
"baseNode":"Node_String_Change_Case",
"io":[ "text" ],
}

View file

@ -0,0 +1,8 @@
{
"name":"Count Text",
"tooltip":"Counts the number of times a subtext occurs in a text.",
"spr":"s_node_string_count",
"pxc_version":118090,
"baseNode":"Node_String_Count",
"io":[ "text" ],
}

View file

@ -0,0 +1,8 @@
{
"name":"Delete Text",
"tooltip":"Delete parts of a text.",
"spr":"s_node_string_delete",
"pxc_version":118090,
"baseNode":"Node_String_Delete",
"io":[ "text" ],
}

View file

@ -0,0 +1,8 @@
{
"name":"Format Text",
"tooltip":"Replace string with {var} format with a proper variable.",
"spr":"s_node_string_format",
"pxc_version":118090,
"baseNode":"Node_String_Format",
"io":[ "text" ],
}

View file

@ -0,0 +1,8 @@
{
"name":"Insert Text",
"tooltip":"Insert subtext into another text.",
"spr":"s_node_string_insert",
"pxc_version":118090,
"baseNode":"Node_String_Insert",
"io":[ "text" ],
}

View file

@ -1,10 +1,12 @@
{
"name":"RegEx Match",
"tooltip":"Check whether regular expression pattern exist in a string.",
"spr":"s_node_string_regex_match",
"pxc_version":1140.0,
"baseNode":"Node_String_Regex_Match",
"io":[
"text"
"io":[ "text" ],
"alias": [
"string match",
"text match",
],
"name":"RegEx Match"
}

View file

@ -1,4 +1,5 @@
{
"name":"RegEx Replace",
"tooltip":"Replace instances of a string with another using regular expression.",
"spr":"s_node_string_regex_replace",
"pxc_version":1140.0,
@ -6,5 +7,8 @@
"io":[
"text"
],
"name":"RegEx Replace"
"alias": [
"string replace",
"text replace",
],
}

View file

@ -1,4 +1,5 @@
{
"name":"RegEx Search",
"tooltip":"Search for instances in a string using regular expression.",
"spr":"s_node_string_regex_search",
"pxc_version":1140.0,
@ -6,5 +7,8 @@
"io":[
"text"
],
"name":"RegEx Search"
"alias": [
"string search",
"text search",
],
}

View file

@ -723,6 +723,10 @@
"Node_String_Join",
"Node_String_Split",
"Node_String_Trim",
"Node_String_Format",
"Node_String_Count",
"Node_String_Delete",
"Node_String_Change_Case",
{ "label": "/RegEx" },
"Node_String_Regex_Match",
"Node_String_Regex_Search",

View file

@ -577,12 +577,12 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor {
////- INSPECTOR
static onInspector1Update = noone;
static inspector1Update = function() { INLINE onInspector1Update(); }
static hasInspector1Update = function() { INLINE return onInspector1Update != noone; }
static inspector1Update = function() /*=>*/ { onInspector1Update(); }
static hasInspector1Update = function() /*=>*/ { return onInspector1Update != noone; }
static onInspector2Update = noone;
static inspector2Update = function() { INLINE onInspector2Update(); }
static hasInspector2Update = function() { INLINE return onInspector2Update != noone; }
static inspector2Update = function() /*=>*/ { onInspector2Update(); }
static hasInspector2Update = function() /*=>*/ { return onInspector2Update != noone; }
////- STEP

View file

@ -432,7 +432,14 @@ function Node_Rigid_Object(_x, _y, _group = noone) : Node(_x, _y, _group) constr
}
var _shp = getInputData(5);
if(_shp != 2) return active;
var _tex = getInputData(6);
var _dim = surface_get_dimension(_tex);
draw_set_color(COLORS._main_accent);
switch(_shp) {
case 0 : draw_rectangle(_x, _y, _x + _dim[0] * _s, _y + _dim[1] * _s, true); return active;
case 1 : draw_ellipse( _x, _y, _x + _dim[0] * _s, _y + _dim[1] * _s, true); return active;
}
var meshes = attributes.mesh;
var _hover = -1, _side = 0;
@ -714,7 +721,6 @@ function Node_Rigid_Object(_x, _y, _group = noone) : Node(_x, _y, _group) constr
static update = function(frame = CURRENT_FRAME) {
if(IS_FIRST_FRAME) reset();
outputs[0].setValue(object);
}

View file

@ -58,11 +58,6 @@ function Node_Rigid_Object_Spawner(_x, _y, _group = noone) : Node(_x, _y, _group
return inputs[1].drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
}
static reset = function() {
spawn_index = 0;
object = [];
}
static step = function() {
var _typ = getInputData(2);
@ -97,6 +92,8 @@ function Node_Rigid_Object_Spawner(_x, _y, _group = noone) : Node(_x, _y, _group
}
static update = function(frame = CURRENT_FRAME) {
if(IS_FIRST_FRAME) reset();
RETURN_ON_REST
var _obj = getInputData(0);
@ -120,6 +117,14 @@ function Node_Rigid_Object_Spawner(_x, _y, _group = noone) : Node(_x, _y, _group
outputs[0].setValue(object);
}
static reset = function() {
for( var i = 0, n = array_length(object); i < n; i++ )
if(instance_exists(object[i])) instance_destroy(object[i]);
spawn_index = 0;
object = [];
}
static getGraphPreviewSurface = function() /*=>*/ {
var _in = array_safe_get(inputs, 0, noone);
if(_in == noone) return noone;

View file

@ -0,0 +1,29 @@
function Node_String_Change_Case(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Change Case";
setDimension(96, 48);
newInput(0, nodeValue_Text("Text", self, ""))
.setVisible(true, true);
newInput(1, nodeValue_Enum_Scroll("Target", self, 0, [ "Lowercase", "Uppercase", "Titlecase" ]))
newOutput(0, nodeValue_Output("Text", self, VALUE_TYPE.text, ""));
static processData = function(_output, _data, _index = 0) {
switch(_data[1]) {
case 0 : return string_lower(_data[0]);
case 1 : return string_upper(_data[0]);
case 2 : return string_titlecase(_data[0]);
}
return _data[0];
}
static onDrawNode = function(xx, yy, _mx, _my, _s, _hover, _focus) {
var str = outputs[0].getValue();
var bbox = drawGetBbox(xx, yy, _s);
draw_set_text(f_sdf, fa_center, fa_center, COLORS._main_text);
draw_text_bbox(bbox, str);
}
}

View file

@ -0,0 +1,14 @@
{
"$GMScript":"v1",
"%Name":"node_string_change_case",
"isCompatibility":false,
"isDnD":false,
"name":"node_string_change_case",
"parent":{
"name":"text",
"path":"folders/nodes/data/value/text.yy",
},
"resourceType":"GMScript",
"resourceVersion":"2.0",
"tags":[],
}

View file

@ -0,0 +1,22 @@
function Node_String_Count(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Count Text";
setDimension(96, 48);
newInput(0, nodeValue_Text("Text", self, ""))
.setVisible(true, true);
newInput(1, nodeValue_Text("Count Text", self, ""))
newOutput(0, nodeValue_Output("Amount", self, VALUE_TYPE.integer, 0));
static processData = function(_output, _data, _index = 0) { return string_count(_data[1], _data[0]); }
static onDrawNode = function(xx, yy, _mx, _my, _s, _hover, _focus) {
var str = inputs[0].getValue();
var bbox = drawGetBbox(xx, yy, _s);
draw_set_text(f_sdf, fa_center, fa_center, COLORS._main_text);
draw_text_bbox(bbox, str);
}
}

View file

@ -0,0 +1,14 @@
{
"$GMScript":"v1",
"%Name":"node_string_count",
"isCompatibility":false,
"isDnD":false,
"name":"node_string_count",
"parent":{
"name":"text",
"path":"folders/nodes/data/value/text.yy",
},
"resourceType":"GMScript",
"resourceVersion":"2.0",
"tags":[],
}

View file

@ -0,0 +1,23 @@
function Node_String_Delete(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Delete Text";
setDimension(96, 48);
newInput(0, nodeValue_Text("Text", self, ""))
.setVisible(true, true);
newInput(1, nodeValue_Int("Index", self, 0))
newInput(2, nodeValue_Int("Amount", self, 1))
newOutput(0, nodeValue_Output("Text", self, VALUE_TYPE.text, ""));
static processData = function(_output, _data, _index = 0) { return string_delete(_data[0], _data[1] + 1, _data[2]); }
static onDrawNode = function(xx, yy, _mx, _my, _s, _hover, _focus) {
var str = outputs[0].getValue();
var bbox = drawGetBbox(xx, yy, _s);
draw_set_text(f_sdf, fa_center, fa_center, COLORS._main_text);
draw_text_bbox(bbox, str);
}
}

View file

@ -0,0 +1,14 @@
{
"$GMScript":"v1",
"%Name":"node_string_delete",
"isCompatibility":false,
"isDnD":false,
"name":"node_string_delete",
"parent":{
"name":"text",
"path":"folders/nodes/data/value/text.yy",
},
"resourceType":"GMScript",
"resourceVersion":"2.0",
"tags":[],
}

View file

@ -0,0 +1,141 @@
function Node_String_Format(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Format Text";
setDimension(96, 48);
newInput(0, nodeValue_Text("Text", self, ""))
.setVisible(true, true);
newOutput(0, nodeValue_Output("Text", self, VALUE_TYPE.text, ""));
attributes.size = 0;
argument_renderer = new Inspector_Custom_Renderer(function(_x, _y, _w, _m, _hover, _focus) {
argument_renderer.x = _x;
argument_renderer.y = _y;
argument_renderer.w = _w;
var bw = _w / 2 - ui(4);
var bh = ui(36);
if(buttonTextIconInstant(true, THEME.button_hide_fill, _x, _y + ui(8), bw, bh, _m, _focus, _hover, "", THEME.add, __txt("Add"), COLORS._main_value_positive) == 2) {
attributes.size++;
refreshDynamicInput();
update();
}
var amo = attributes.size;
if(buttonTextIconInstant(attributes.size > 0, THEME.button_hide_fill, _x + _w - bw, _y + ui(8), bw, bh, _m, _focus, _hover, "", THEME.minus, __txt("Remove"), COLORS._main_value_negative) == 2) {
attributes.size--;
refreshDynamicInput();
update();
}
var tx = _x + ui(8);
var ty = _y + bh + ui(16);
var hh = bh + ui(16);
var _th = TEXTBOX_HEIGHT;
for( var i = input_fix_len; i < array_length(inputs); i += data_length ) {
var _h = 0;
var _jName = inputs[i + 0];
_jName.editWidget.setFocusHover(_focus, _hover);
_jName.editWidget.draw(tx, ty, ui(128), _th, _jName.showValue(), _m, _jName.display_type);
draw_set_text(f_p1, fa_center, fa_top, COLORS._main_text_sub);
draw_text_add(tx + ui(128 + 12), ty + ui(6), "=");
var _jValue = inputs[i + 1];
_jValue.editWidget.setFocusHover(_focus, _hover);
_jValue.editWidget.draw(tx + ui(128 + 24), ty, _w - ui(128 + 24 + 16), _th, _jValue.showValue(), _m, _jValue.display_type);
_h += _th + ui(6);
hh += _h;
ty += _h;
}
argument_renderer.h = hh;
return hh;
});
argument_renderer.register = function(parent = noone) {
for( var i = input_fix_len; i < array_length(inputs); i++ )
inputs[i].editWidget.register(parent);
}
input_display_list = [
["Function", false], 0,
["Arguments", false], argument_renderer,
["Inputs", true],
]
static createNewInput = function() {
var index = array_length(inputs);
newInput(index + 0, nodeValue_Text("Argument name", self, "" ));
newInput(index + 1, nodeValue_Text("Argument value", self, "" ))
.setVisible(true, true);
return inputs[index + 0];
} setDynamicInput(2, false);
static refreshDynamicInput = function() {
var _l = [];
var amo = attributes.size;
for(var i = 0; i < input_fix_len; i++ )
array_push(_l, inputs[i]);
for(var i = 0; i < amo; i++ ) {
var _i = input_fix_len + i * data_length;
if(_i >= array_length(_l))
createNewInput();
for(var j = 0; j < data_length; j++)
array_push(_l, inputs[_i + j]);
}
input_display_list = array_clone(input_display_list_raw);
for( var i = input_fix_len; i < array_length(_l); i++ ) {
_l[i].index = i;
array_push(input_display_list, i);
}
for( var i = input_fix_len; i < array_length(_l) - 1; i += 2 )
inputs[i + 1].setName(inputs[i].getValue());
inputs = _l;
getJunctionList();
setHeight();
}
static processData = function(_output, _data, _index = 0) {
var _text = _data[0];
var _amo = getInputAmount();
var _outT = _text;
for( var i = 0; i < _amo; i++ ) {
var _in = input_fix_len + i * data_length;
var _key = "{" + string(_data[_in]) + "}";
var _rep = _data[_in + 1];
_outT = string_replace_all(_outT, _key, _rep);
}
return _outT;
}
static onDrawNode = function(xx, yy, _mx, _my, _s, _hover, _focus) {
var str = outputs[0].getValue();
var bbox = drawGetBbox(xx, yy, _s);
draw_set_text(f_sdf, fa_center, fa_center, COLORS._main_text);
draw_text_bbox(bbox, str);
}
}

View file

@ -0,0 +1,14 @@
{
"$GMScript":"v1",
"%Name":"node_string_format",
"isCompatibility":false,
"isDnD":false,
"name":"node_string_format",
"parent":{
"name":"text",
"path":"folders/nodes/data/value/text.yy",
},
"resourceType":"GMScript",
"resourceVersion":"2.0",
"tags":[],
}

View file

@ -0,0 +1,23 @@
function Node_String_Insert(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Insert Text";
setDimension(96, 48);
newInput(0, nodeValue_Text("Text", self, ""))
.setVisible(true, true);
newInput(1, nodeValue_Text("Insert Text", self, ""))
newInput(2, nodeValue_Int("Position", self, 0))
newOutput(0, nodeValue_Output("Text", self, VALUE_TYPE.text, ""));
static processData = function(_output, _data, _index = 0) { return string_insert(_data[1], _data[0], _data[2]); }
static onDrawNode = function(xx, yy, _mx, _my, _s, _hover, _focus) {
var str = outputs[0].getValue();
var bbox = drawGetBbox(xx, yy, _s);
draw_set_text(f_sdf, fa_center, fa_center, COLORS._main_text);
draw_text_bbox(bbox, str);
}
}

View file

@ -0,0 +1,14 @@
{
"$GMScript":"v1",
"%Name":"node_string_insert",
"isCompatibility":false,
"isDnD":false,
"name":"node_string_insert",
"parent":{
"name":"text",
"path":"folders/nodes/data/value/text.yy",
},
"resourceType":"GMScript",
"resourceVersion":"2.0",
"tags":[],
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

View file

@ -0,0 +1,90 @@
{
"$GMSprite":"",
"%Name":"s_node_string_count",
"bboxMode":0,
"bbox_bottom":61,
"bbox_left":6,
"bbox_right":58,
"bbox_top":1,
"collisionKind":1,
"collisionTolerance":0,
"DynamicTexturePage":false,
"edgeFiltering":false,
"For3D":false,
"frames":[
{"$GMSpriteFrame":"","%Name":"f6c2ee97-12ee-4371-a765-669275f0df88","name":"f6c2ee97-12ee-4371-a765-669275f0df88","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
],
"gridX":0,
"gridY":0,
"height":64,
"HTile":false,
"layers":[
{"$GMImageLayer":"","%Name":"8523380b-d87f-4054-ba6f-8a161d35456b","blendMode":0,"displayName":"default","isLocked":false,"name":"8523380b-d87f-4054-ba6f-8a161d35456b","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,},
],
"name":"s_node_string_count",
"nineSlice":null,
"origin":4,
"parent":{
"name":"string",
"path":"folders/nodes/icons/value/string.yy",
},
"preMultiplyAlpha":false,
"resourceType":"GMSprite",
"resourceVersion":"2.0",
"sequence":{
"$GMSequence":"",
"%Name":"s_node_string_count",
"autoRecord":true,
"backdropHeight":768,
"backdropImageOpacity":0.5,
"backdropImagePath":"",
"backdropWidth":1366,
"backdropXOffset":0.0,
"backdropYOffset":0.0,
"events":{
"$KeyframeStore<MessageEventKeyframe>":"",
"Keyframes":[],
"resourceType":"KeyframeStore<MessageEventKeyframe>",
"resourceVersion":"2.0",
},
"eventStubScript":null,
"eventToFunction":{},
"length":1.0,
"lockOrigin":false,
"moments":{
"$KeyframeStore<MomentsEventKeyframe>":"",
"Keyframes":[],
"resourceType":"KeyframeStore<MomentsEventKeyframe>",
"resourceVersion":"2.0",
},
"name":"s_node_string_count",
"playback":1,
"playbackSpeed":30.0,
"playbackSpeedType":0,
"resourceType":"GMSequence",
"resourceVersion":"2.0",
"showBackdrop":true,
"showBackdropImage":false,
"timeUnits":1,
"tracks":[
{"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore<SpriteFrameKeyframe>":"","Keyframes":[
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"f6c2ee97-12ee-4371-a765-669275f0df88","path":"sprites/s_node_string_count/s_node_string_count.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
},"Disabled":false,"id":"a697645c-c6e1-488e-a2b5-e4a087582025","IsCreationKey":false,"Key":0.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,
"volume":1.0,
"xorigin":32,
"yorigin":32,
},
"swatchColours":null,
"swfPrecision":0.5,
"textureGroupId":{
"name":"Default",
"path":"texturegroups/Default",
},
"type":0,
"VTile":false,
"width":64,
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View file

@ -0,0 +1,90 @@
{
"$GMSprite":"",
"%Name":"s_node_string_delete",
"bboxMode":0,
"bbox_bottom":38,
"bbox_left":3,
"bbox_right":60,
"bbox_top":25,
"collisionKind":1,
"collisionTolerance":0,
"DynamicTexturePage":false,
"edgeFiltering":false,
"For3D":false,
"frames":[
{"$GMSpriteFrame":"","%Name":"03f83f41-ebc8-4cdf-b2e0-a12dfb781abe","name":"03f83f41-ebc8-4cdf-b2e0-a12dfb781abe","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
],
"gridX":0,
"gridY":0,
"height":64,
"HTile":false,
"layers":[
{"$GMImageLayer":"","%Name":"3d4c5f4a-3d41-4539-90cd-5ecfb3a4ee71","blendMode":0,"displayName":"default","isLocked":false,"name":"3d4c5f4a-3d41-4539-90cd-5ecfb3a4ee71","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,},
],
"name":"s_node_string_delete",
"nineSlice":null,
"origin":4,
"parent":{
"name":"string",
"path":"folders/nodes/icons/value/string.yy",
},
"preMultiplyAlpha":false,
"resourceType":"GMSprite",
"resourceVersion":"2.0",
"sequence":{
"$GMSequence":"",
"%Name":"s_node_string_delete",
"autoRecord":true,
"backdropHeight":768,
"backdropImageOpacity":0.5,
"backdropImagePath":"",
"backdropWidth":1366,
"backdropXOffset":0.0,
"backdropYOffset":0.0,
"events":{
"$KeyframeStore<MessageEventKeyframe>":"",
"Keyframes":[],
"resourceType":"KeyframeStore<MessageEventKeyframe>",
"resourceVersion":"2.0",
},
"eventStubScript":null,
"eventToFunction":{},
"length":1.0,
"lockOrigin":false,
"moments":{
"$KeyframeStore<MomentsEventKeyframe>":"",
"Keyframes":[],
"resourceType":"KeyframeStore<MomentsEventKeyframe>",
"resourceVersion":"2.0",
},
"name":"s_node_string_delete",
"playback":1,
"playbackSpeed":30.0,
"playbackSpeedType":0,
"resourceType":"GMSequence",
"resourceVersion":"2.0",
"showBackdrop":true,
"showBackdropImage":false,
"timeUnits":1,
"tracks":[
{"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore<SpriteFrameKeyframe>":"","Keyframes":[
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"03f83f41-ebc8-4cdf-b2e0-a12dfb781abe","path":"sprites/s_node_string_delete/s_node_string_delete.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
},"Disabled":false,"id":"b184cc55-ac39-43ab-9b4c-9daf76c2a5de","IsCreationKey":false,"Key":0.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,
"volume":1.0,
"xorigin":32,
"yorigin":32,
},
"swatchColours":null,
"swfPrecision":0.5,
"textureGroupId":{
"name":"Default",
"path":"texturegroups/Default",
},
"type":0,
"VTile":false,
"width":64,
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View file

@ -0,0 +1,90 @@
{
"$GMSprite":"",
"%Name":"s_node_string_format",
"bboxMode":0,
"bbox_bottom":47,
"bbox_left":3,
"bbox_right":60,
"bbox_top":16,
"collisionKind":1,
"collisionTolerance":0,
"DynamicTexturePage":false,
"edgeFiltering":false,
"For3D":false,
"frames":[
{"$GMSpriteFrame":"","%Name":"09175abf-bf2a-4bb6-8ad7-f99262b0e804","name":"09175abf-bf2a-4bb6-8ad7-f99262b0e804","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
],
"gridX":0,
"gridY":0,
"height":64,
"HTile":false,
"layers":[
{"$GMImageLayer":"","%Name":"0415d089-01f0-43e4-b536-a9ddad91c90f","blendMode":0,"displayName":"default","isLocked":false,"name":"0415d089-01f0-43e4-b536-a9ddad91c90f","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,},
],
"name":"s_node_string_format",
"nineSlice":null,
"origin":4,
"parent":{
"name":"string",
"path":"folders/nodes/icons/value/string.yy",
},
"preMultiplyAlpha":false,
"resourceType":"GMSprite",
"resourceVersion":"2.0",
"sequence":{
"$GMSequence":"",
"%Name":"s_node_string_format",
"autoRecord":true,
"backdropHeight":768,
"backdropImageOpacity":0.5,
"backdropImagePath":"",
"backdropWidth":1366,
"backdropXOffset":0.0,
"backdropYOffset":0.0,
"events":{
"$KeyframeStore<MessageEventKeyframe>":"",
"Keyframes":[],
"resourceType":"KeyframeStore<MessageEventKeyframe>",
"resourceVersion":"2.0",
},
"eventStubScript":null,
"eventToFunction":{},
"length":1.0,
"lockOrigin":false,
"moments":{
"$KeyframeStore<MomentsEventKeyframe>":"",
"Keyframes":[],
"resourceType":"KeyframeStore<MomentsEventKeyframe>",
"resourceVersion":"2.0",
},
"name":"s_node_string_format",
"playback":1,
"playbackSpeed":30.0,
"playbackSpeedType":0,
"resourceType":"GMSequence",
"resourceVersion":"2.0",
"showBackdrop":true,
"showBackdropImage":false,
"timeUnits":1,
"tracks":[
{"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore<SpriteFrameKeyframe>":"","Keyframes":[
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"09175abf-bf2a-4bb6-8ad7-f99262b0e804","path":"sprites/s_node_string_format/s_node_string_format.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
},"Disabled":false,"id":"66cf7418-f45e-4c3d-a34d-9a4b729cd219","IsCreationKey":false,"Key":0.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,
"volume":1.0,
"xorigin":32,
"yorigin":32,
},
"swatchColours":null,
"swfPrecision":0.5,
"textureGroupId":{
"name":"Default",
"path":"texturegroups/Default",
},
"type":0,
"VTile":false,
"width":64,
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View file

@ -0,0 +1,90 @@
{
"$GMSprite":"",
"%Name":"s_node_string_insert",
"bboxMode":0,
"bbox_bottom":53,
"bbox_left":2,
"bbox_right":62,
"bbox_top":18,
"collisionKind":1,
"collisionTolerance":0,
"DynamicTexturePage":false,
"edgeFiltering":false,
"For3D":false,
"frames":[
{"$GMSpriteFrame":"","%Name":"26fe31e1-5e43-44ea-ba82-450db9d91039","name":"26fe31e1-5e43-44ea-ba82-450db9d91039","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
],
"gridX":0,
"gridY":0,
"height":64,
"HTile":false,
"layers":[
{"$GMImageLayer":"","%Name":"a88a30a1-50d3-4996-abfe-29342e338edc","blendMode":0,"displayName":"default","isLocked":false,"name":"a88a30a1-50d3-4996-abfe-29342e338edc","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,},
],
"name":"s_node_string_insert",
"nineSlice":null,
"origin":4,
"parent":{
"name":"string",
"path":"folders/nodes/icons/value/string.yy",
},
"preMultiplyAlpha":false,
"resourceType":"GMSprite",
"resourceVersion":"2.0",
"sequence":{
"$GMSequence":"",
"%Name":"s_node_string_insert",
"autoRecord":true,
"backdropHeight":768,
"backdropImageOpacity":0.5,
"backdropImagePath":"",
"backdropWidth":1366,
"backdropXOffset":0.0,
"backdropYOffset":0.0,
"events":{
"$KeyframeStore<MessageEventKeyframe>":"",
"Keyframes":[],
"resourceType":"KeyframeStore<MessageEventKeyframe>",
"resourceVersion":"2.0",
},
"eventStubScript":null,
"eventToFunction":{},
"length":1.0,
"lockOrigin":false,
"moments":{
"$KeyframeStore<MomentsEventKeyframe>":"",
"Keyframes":[],
"resourceType":"KeyframeStore<MomentsEventKeyframe>",
"resourceVersion":"2.0",
},
"name":"s_node_string_insert",
"playback":1,
"playbackSpeed":30.0,
"playbackSpeedType":0,
"resourceType":"GMSequence",
"resourceVersion":"2.0",
"showBackdrop":true,
"showBackdropImage":false,
"timeUnits":1,
"tracks":[
{"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore<SpriteFrameKeyframe>":"","Keyframes":[
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"26fe31e1-5e43-44ea-ba82-450db9d91039","path":"sprites/s_node_string_insert/s_node_string_insert.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
},"Disabled":false,"id":"49f1c478-4b25-43bb-9131-289af5df5593","IsCreationKey":false,"Key":0.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,
"volume":1.0,
"xorigin":32,
"yorigin":32,
},
"swatchColours":null,
"swfPrecision":0.5,
"textureGroupId":{
"name":"Default",
"path":"texturegroups/Default",
},
"type":0,
"VTile":false,
"width":64,
}