- [Code editor] Fix autocomplete show up from empty prompt.

This commit is contained in:
Tanasart 2024-07-19 12:25:21 +07:00
parent 773598d39d
commit a7fcefa5ef
6 changed files with 37 additions and 9 deletions

View file

@ -38,7 +38,7 @@
LATEST_VERSION = 11700; LATEST_VERSION = 11700;
VERSION = 11770; VERSION = 11770;
SAVE_VERSION = 11700; SAVE_VERSION = 11700;
VERSION_STRING = "1.17.8.003"; VERSION_STRING = "1.17.8.004";
BUILD_NUMBER = 11770; BUILD_NUMBER = 11770;
globalvar HOTKEYS, HOTKEY_CONTEXT; globalvar HOTKEYS, HOTKEY_CONTEXT;

View file

@ -117,6 +117,8 @@ function hlsl_document_parser(prompt, node = noone) {
function hlsl_autocomplete_server(prompt, params = []) { function hlsl_autocomplete_server(prompt, params = []) {
var res = []; var res = [];
if(string_trim(prompt) == "") return res;
var pr_list = ds_priority_create(); var pr_list = ds_priority_create();
////////////////////////////////// //////////////////////////////////

View file

@ -757,9 +757,9 @@ function __initNodes() {
addNodeObject(generator, "Pixel Sampler", s_node_pixel_sampler, "Node_Pixel_Sampler", [1, Node_Pixel_Sampler]).setVersion(11730); addNodeObject(generator, "Pixel Sampler", s_node_pixel_sampler, "Node_Pixel_Sampler", [1, Node_Pixel_Sampler]).setVersion(11730);
ds_list_add(generator, "Populate"); ds_list_add(generator, "Populate");
addNodeObject(generator, "Repeat", s_node_repeat, "Node_Repeat", [1, Node_Repeat],, "Repeat image multiple times linearly, or in grid pattern.").setVersion(1100); addNodeObject(generator, "Repeat", s_node_repeat, "Node_Repeat", [0, Node_create_Repeat], global.node_repeat_keys, "Repeat image multiple times linearly, or in grid pattern.").setVersion(1100);
addNodeObject(generator, "Scatter", s_node_scatter, "Node_Scatter", [1, Node_Scatter],, "Scatter image randomly multiple times."); addNodeObject(generator, "Scatter", s_node_scatter, "Node_Scatter", [1, Node_Scatter],, "Scatter image randomly multiple times.");
addNodeObject(generator, "Repeat Texture", s_node_repeat_texture, "Node_Repeat_Texture", [1, Node_Repeat_Texture],, "Repeat texture over larger surface without repeating patterns."); addNodeObject(generator, "Repeat Texture", s_node_repeat_texture, "Node_Repeat_Texture", [1, Node_Repeat_Texture],, "Repeat texture over larger surface without repeating patterns.");
ds_list_add(generator, "Simulation"); ds_list_add(generator, "Simulation");
addNodeObject(generator, "Particle", s_node_particle, "Node_Particle", [1, Node_Particle],, "Generate particle effect."); addNodeObject(generator, "Particle", s_node_particle, "Node_Particle", [1, Node_Particle],, "Generate particle effect.");

View file

@ -1,3 +1,21 @@
global.node_repeat_keys = [ "repeat polar", "repeat circular" ];
function Node_create_Repeat(_x, _y, _group = noone, _param = {}) {
var _node = new Node_Repeat(_x, _y, _group);
var query = struct_try_get(_param, "query", "");
switch(query) {
case "repeat polar" :
case "repeat circular" :
_node.inputs[| 3].setValue(2);
_node.inputs[| 9].unit.setMode(VALUE_UNIT.reference);
_node.inputs[| 9].setValueDirect([ 0.5, 0.5 ]);
break;
}
return _node;
}
function Node_Repeat(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { function Node_Repeat(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Repeat"; name = "Repeat";
dimension_index = 1; dimension_index = 1;
@ -95,11 +113,14 @@ function Node_Repeat(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) co
////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////
inputs[| 32] = nodeValue("Start rotation", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0)
.setDisplay(VALUE_DISPLAY.rotation);
outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone);
input_display_list = [ input_display_list = [
["Surfaces", true], 0, 1, 16, 17, ["Surfaces", true], 0, 1, 16, 17,
["Pattern", false], 3, 9, 2, 18, 7, 8, ["Pattern", false], 3, 9, 32, 2, 18, 7, 8,
["Path", true], 11, 12, 13, ["Path", true], 11, 12, 13,
["Position", false], 4, 26, 19, ["Position", false], 4, 26, 19,
["Rotation", false], 5, ["Rotation", false], 5,
@ -142,6 +163,7 @@ function Node_Repeat(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) co
inputs[| 18].setVisible( _pat == 1); inputs[| 18].setVisible( _pat == 1);
inputs[| 19].setVisible( _pat == 1); inputs[| 19].setVisible( _pat == 1);
inputs[| 26].setVisible( _pat == 0); inputs[| 26].setVisible( _pat == 0);
inputs[| 32].setVisible( _pat == 2);
inputs[| 14].mappableStep(); inputs[| 14].mappableStep();
} #endregion } #endregion
@ -154,6 +176,7 @@ function Node_Repeat(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) co
var _pat = _data[ 3]; var _pat = _data[ 3];
var _spos = _data[ 9]; var _spos = _data[ 9];
var _srot = _data[32];
var _rpos = _data[ 4]; var _rpos = _data[ 4];
var _rsta = _data[26]; var _rsta = _data[26];
@ -222,8 +245,9 @@ function Node_Repeat(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) co
posx = _spos[0] + _rpos[0] * col + _cls[0] * row; posx = _spos[0] + _rpos[0] * col + _cls[0] * row;
posy = _spos[1] + _rpos[1] * col + _cls[1] * row; posy = _spos[1] + _rpos[1] * col + _cls[1] * row;
} else if(_pat == 2) { } else if(_pat == 2) {
var aa = _aran[0] + (_aran[1] - _aran[0]) * i / _amo; var aa = _srot + lerp(_aran[0], _aran[1], i / _amo);
posx = _spos[0] + lengthdir_x(_arad, aa); posx = _spos[0] + lengthdir_x(_arad, aa);
posy = _spos[1] + lengthdir_y(_arad, aa); posy = _spos[1] + lengthdir_y(_arad, aa);
} }

View file

@ -453,10 +453,10 @@ function nodeValueUnit(_nodeValue) constructor {
triggerButton.tooltip = new tooltipSelector("Unit", ["Pixel", "Fraction"]); triggerButton.tooltip = new tooltipSelector("Unit", ["Pixel", "Fraction"]);
static setMode = function(type) { static setMode = function(type) {
if(type == "constant" && mode == VALUE_UNIT.constant) return; if((type == "constant" || type == VALUE_UNIT.constant) && mode == VALUE_UNIT.constant) return;
if(type == "relative" && mode == VALUE_UNIT.reference) return; if((type == "relative" || type == VALUE_UNIT.reference) && mode == VALUE_UNIT.reference) return;
mode = type == "constant"? VALUE_UNIT.constant : VALUE_UNIT.reference; mode = (type == "constant" || type == VALUE_UNIT.constant)? VALUE_UNIT.constant : VALUE_UNIT.reference;
_nodeValue.cache_value[0] = false; _nodeValue.cache_value[0] = false;
_nodeValue.unitConvert(mode); _nodeValue.unitConvert(mode);
_nodeValue.node.doUpdate(); _nodeValue.node.doUpdate();

View file

@ -25,6 +25,8 @@ function pxl_autocomplete_server(prompt, params = [], context = {}) {
if(isNumber(prompt)) return []; if(isNumber(prompt)) return [];
var res = []; var res = [];
if(string_trim(prompt) == "") return res;
var pr_list = ds_priority_create(); var pr_list = ds_priority_create();
////////////////////////////////// //////////////////////////////////