mirror of
https://github.com/Ttanasart-pt/Pixel-Composer.git
synced 2025-02-13 21:55:16 +01:00
New Delay Value node.
This commit is contained in:
parent
968b2e4f9c
commit
447ed392ea
12 changed files with 203 additions and 2 deletions
|
@ -824,6 +824,7 @@
|
|||
{"name":"node_custom_shader","order":1,"path":"scripts/node_custom_shader/node_custom_shader.yy",},
|
||||
{"name":"node_data","order":1,"path":"scripts/node_data/node_data.yy",},
|
||||
{"name":"node_de_stray","order":2,"path":"scripts/node_de_stray/node_de_stray.yy",},
|
||||
{"name":"node_delay_value","order":6,"path":"scripts/node_delay_value/node_delay_value.yy",},
|
||||
{"name":"node_delay","order":5,"path":"scripts/node_delay/node_delay.yy",},
|
||||
{"name":"node_differential","order":17,"path":"scripts/node_differential/node_differential.yy",},
|
||||
{"name":"node_diffuse","order":7,"path":"scripts/node_diffuse/node_diffuse.yy",},
|
||||
|
@ -2046,6 +2047,7 @@
|
|||
{"name":"s_node_curve","order":27,"path":"sprites/s_node_curve/s_node_curve.yy",},
|
||||
{"name":"s_node_de_corner","order":28,"path":"sprites/s_node_de_corner/s_node_de_corner.yy",},
|
||||
{"name":"s_node_de_stray","order":29,"path":"sprites/s_node_de_stray/s_node_de_stray.yy",},
|
||||
{"name":"s_node_delay_value","order":13,"path":"sprites/s_node_delay_value/s_node_delay_value.yy",},
|
||||
{"name":"s_node_delay","order":7,"path":"sprites/s_node_delay/s_node_delay.yy",},
|
||||
{"name":"s_node_differential","order":13,"path":"sprites/s_node_differential/s_node_differential.yy",},
|
||||
{"name":"s_node_diffuse","order":41,"path":"sprites/s_node_diffuse/s_node_diffuse.yy",},
|
||||
|
|
|
@ -558,6 +558,7 @@
|
|||
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Animation/Node_Audio_Loudness","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
||||
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Animation/Node_Audio_Window","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
||||
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Animation/Node_Counter","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
||||
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Animation/Node_Delay_Value","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
||||
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Animation/Node_Delay","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
||||
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Animation/Node_Fn_Ease","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
||||
{"$GMIncludedFile":"","%Name":"info.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Internal/Animation/Node_Fn_Math","name":"info.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
||||
|
@ -2004,6 +2005,7 @@
|
|||
{"id":{"name":"node_data","path":"scripts/node_data/node_data.yy",},},
|
||||
{"id":{"name":"node_de_corner","path":"scripts/node_de_corner/node_de_corner.yy",},},
|
||||
{"id":{"name":"node_de_stray","path":"scripts/node_de_stray/node_de_stray.yy",},},
|
||||
{"id":{"name":"node_delay_value","path":"scripts/node_delay_value/node_delay_value.yy",},},
|
||||
{"id":{"name":"node_delay","path":"scripts/node_delay/node_delay.yy",},},
|
||||
{"id":{"name":"node_differential","path":"scripts/node_differential/node_differential.yy",},},
|
||||
{"id":{"name":"node_diffuse","path":"scripts/node_diffuse/node_diffuse.yy",},},
|
||||
|
@ -3386,6 +3388,7 @@
|
|||
{"id":{"name":"s_node_curve","path":"sprites/s_node_curve/s_node_curve.yy",},},
|
||||
{"id":{"name":"s_node_de_corner","path":"sprites/s_node_de_corner/s_node_de_corner.yy",},},
|
||||
{"id":{"name":"s_node_de_stray","path":"sprites/s_node_de_stray/s_node_de_stray.yy",},},
|
||||
{"id":{"name":"s_node_delay_value","path":"sprites/s_node_delay_value/s_node_delay_value.yy",},},
|
||||
{"id":{"name":"s_node_delay","path":"sprites/s_node_delay/s_node_delay.yy",},},
|
||||
{"id":{"name":"s_node_differential","path":"sprites/s_node_differential/s_node_differential.yy",},},
|
||||
{"id":{"name":"s_node_diffuse","path":"sprites/s_node_diffuse/s_node_diffuse.yy",},},
|
||||
|
|
Binary file not shown.
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"name":"Delay Value",
|
||||
"spr":"s_node_delay_value",
|
||||
"tooltip":"Delay value by fix amount of frames.",
|
||||
"pxc_version":118080,
|
||||
"baseNode":"Node_Delay_Value",
|
||||
"io":[],
|
||||
}
|
|
@ -873,6 +873,7 @@
|
|||
{ "label": "Animations" },
|
||||
"Node_Rate_Remap",
|
||||
"Node_Delay",
|
||||
"Node_Delay_Value",
|
||||
"Node_Stagger",
|
||||
"Node_Revert",
|
||||
|
||||
|
|
|
@ -1253,7 +1253,7 @@ event_inherited();
|
|||
tx += string_width(_node.getName());
|
||||
}
|
||||
|
||||
if(_hover && MOUSE_MOVED && point_in_rectangle(_m[0], _m[1], 0, yy, pd + ui(32), yy + list_height - 1)) {
|
||||
if(_hover && point_in_rectangle(_m[0], _m[1], 0, yy, pd + ui(32), yy + list_height - 1)) {
|
||||
node_selecting = noone;
|
||||
|
||||
gpu_set_tex_filter(true); BLEND_ADD
|
||||
|
|
|
@ -1393,7 +1393,6 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor {
|
|||
}
|
||||
|
||||
var _prev = getPreviousNodes();
|
||||
|
||||
for( var i = 0, n = array_length(_prev); i < n; i++ ) {
|
||||
if(_prev[i].__getNodeChildList(_node, _arr)) {
|
||||
array_push(_arr, self);
|
||||
|
|
84
scripts/node_delay_value/node_delay_value.gml
Normal file
84
scripts/node_delay_value/node_delay_value.gml
Normal file
|
@ -0,0 +1,84 @@
|
|||
#region create
|
||||
FN_NODE_CONTEXT_INVOKE {
|
||||
addHotkey("Node_Delay_Value", "Overflow > Toggle", "O", MOD_KEY.none, function() /*=>*/ { PANEL_GRAPH_FOCUS_STR _n.inputs[2].setValue((_n.inputs[2].getValue() + 1) % 3); });
|
||||
});
|
||||
#endregion
|
||||
|
||||
function Node_Delay_Value(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
|
||||
name = "Delay Value";
|
||||
is_simulation = true;
|
||||
setDimension(96, 32 + 24);
|
||||
|
||||
newInput(0, nodeValue("Value", self, CONNECT_TYPE.input, VALUE_TYPE.any, noone))
|
||||
.setVisible(true, true);
|
||||
|
||||
newInput(1, nodeValue_Int("Frames", self, 1));
|
||||
|
||||
newInput(2, nodeValue_Enum_Scroll("Overflow", self, 0, [ "Hold", "Loop", "Value" ]));
|
||||
|
||||
newInput(3, nodeValue("Default", self, CONNECT_TYPE.input, VALUE_TYPE.any, noone));
|
||||
|
||||
newOutput(0, nodeValue_Output("Value", self, VALUE_TYPE.any, noone));
|
||||
|
||||
input_display_list = [ 0,
|
||||
["Delay", false], 1, 2, 3,
|
||||
];
|
||||
|
||||
data_indexes = [];
|
||||
curr_frame = 0;
|
||||
|
||||
static processData_prebatch = function() {
|
||||
data_indexes = array_verify(data_indexes, process_amount);
|
||||
for( var i = 0; i < process_amount; i++ )
|
||||
data_indexes[i] = array_verify(data_indexes[i], TOTAL_FRAMES);
|
||||
|
||||
var _ovr = getSingleValue(2);
|
||||
inputs[3].setVisible(_ovr == 2, _ovr == 2);
|
||||
|
||||
var _frm = inputs[0].value_from;
|
||||
var _typ = _frm == noone? VALUE_TYPE.any : _frm.type;
|
||||
|
||||
inputs[0].setType(_typ);
|
||||
outputs[0].setType(_typ);
|
||||
}
|
||||
|
||||
static processData = function(_output, _data, _output_index, _array_index = 0) {
|
||||
var _val = _data[0];
|
||||
var _frme = _data[1];
|
||||
var _ovrf = _data[2];
|
||||
var _def = _data[3];
|
||||
|
||||
var _time = CURRENT_FRAME;
|
||||
var _totl = TOTAL_FRAMES;
|
||||
|
||||
var _frtm = _time - _frme;
|
||||
switch(_ovrf) {
|
||||
case 0 : _frtm = clamp(_frtm, 0, _totl - 1); break;
|
||||
case 1 : _frtm = (_frtm + _totl) % _totl; break;
|
||||
}
|
||||
curr_frame = _frtm;
|
||||
|
||||
var _surfA = data_indexes[_array_index];
|
||||
_surfA[_time] = variable_clone(_val);
|
||||
|
||||
return array_safe_get(_surfA, _frtm, _def);
|
||||
}
|
||||
|
||||
static onDrawNode = function(xx, yy, _mx, _my, _s, _hover, _focus) {
|
||||
var str = getSingleValue(0, preview_index, true);
|
||||
var bbox = drawGetBbox(xx, yy, _s);
|
||||
|
||||
draw_set_text(f_sdf, fa_center, fa_center, COLORS._main_text);
|
||||
draw_text_bbox(bbox, str);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
}
|
14
scripts/node_delay_value/node_delay_value.yy
Normal file
14
scripts/node_delay_value/node_delay_value.yy
Normal file
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"$GMScript":"v1",
|
||||
"%Name":"node_delay_value",
|
||||
"isCompatibility":false,
|
||||
"isDnD":false,
|
||||
"name":"node_delay_value",
|
||||
"parent":{
|
||||
"name":"animation",
|
||||
"path":"folders/nodes/data/animation.yy",
|
||||
},
|
||||
"resourceType":"GMScript",
|
||||
"resourceVersion":"2.0",
|
||||
"tags":[],
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 2 KiB |
Binary file not shown.
After Width: | Height: | Size: 2 KiB |
90
sprites/s_node_delay_value/s_node_delay_value.yy
Normal file
90
sprites/s_node_delay_value/s_node_delay_value.yy
Normal file
|
@ -0,0 +1,90 @@
|
|||
{
|
||||
"$GMSprite":"",
|
||||
"%Name":"s_node_delay_value",
|
||||
"bboxMode":0,
|
||||
"bbox_bottom":56,
|
||||
"bbox_left":5,
|
||||
"bbox_right":58,
|
||||
"bbox_top":6,
|
||||
"collisionKind":1,
|
||||
"collisionTolerance":0,
|
||||
"DynamicTexturePage":false,
|
||||
"edgeFiltering":false,
|
||||
"For3D":false,
|
||||
"frames":[
|
||||
{"$GMSpriteFrame":"","%Name":"0b4ceeea-7b66-42b6-bf1a-6b2b50022500","name":"0b4ceeea-7b66-42b6-bf1a-6b2b50022500","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||
],
|
||||
"gridX":0,
|
||||
"gridY":0,
|
||||
"height":64,
|
||||
"HTile":false,
|
||||
"layers":[
|
||||
{"$GMImageLayer":"","%Name":"2ea190d2-0b79-4fea-ac50-881f6c20ca51","blendMode":0,"displayName":"default","isLocked":false,"name":"2ea190d2-0b79-4fea-ac50-881f6c20ca51","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,},
|
||||
],
|
||||
"name":"s_node_delay_value",
|
||||
"nineSlice":null,
|
||||
"origin":4,
|
||||
"parent":{
|
||||
"name":"animation",
|
||||
"path":"folders/nodes/icons/animation.yy",
|
||||
},
|
||||
"preMultiplyAlpha":false,
|
||||
"resourceType":"GMSprite",
|
||||
"resourceVersion":"2.0",
|
||||
"sequence":{
|
||||
"$GMSequence":"",
|
||||
"%Name":"s_node_delay_value",
|
||||
"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_delay_value",
|
||||
"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":"0b4ceeea-7b66-42b6-bf1a-6b2b50022500","path":"sprites/s_node_delay_value/s_node_delay_value.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||
},"Disabled":false,"id":"d77e5fe2-f346-4187-ab5c-2e4438436dc5","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,
|
||||
}
|
Loading…
Reference in a new issue