2024-08-07 13:20:45 +02:00
|
|
|
function nodeValue_Vec2(_name, _node, _value, _data = {}) { return new NodeValue_Vec2(_name, _node, _value, _data); }
|
2024-08-07 11:48:39 +02:00
|
|
|
|
2024-08-20 10:15:53 +02:00
|
|
|
function NodeValue_Vec2(_name, _node, _value, _data = {}) : NodeValue(_name, _node, CONNECT_TYPE.input, VALUE_TYPE.float, _value, "") constructor {
|
2024-08-07 13:20:45 +02:00
|
|
|
setDisplay(VALUE_DISPLAY.vector, _data);
|
2024-09-02 03:27:14 +02:00
|
|
|
def_length = 2;
|
2024-08-07 11:48:39 +02:00
|
|
|
|
|
|
|
/////============== GET =============
|
|
|
|
|
|
|
|
static valueProcess = function(value, nodeFrom = undefined, applyUnit = true, arrIndex = 0) {
|
|
|
|
var typeFrom = nodeFrom == undefined? VALUE_TYPE.any : nodeFrom.type;
|
|
|
|
|
|
|
|
if(typeFrom == VALUE_TYPE.text) value = toNumber(value);
|
|
|
|
if(validator != noone) value = validator.validate(value);
|
|
|
|
|
|
|
|
return applyUnit? unit.apply(value, arrIndex) : value;
|
|
|
|
}
|
|
|
|
|
|
|
|
static getValue = function(_time = CURRENT_FRAME, applyUnit = true, arrIndex = 0, useCache = false, log = false) { //// Get value
|
|
|
|
getValueRecursive(self.__curr_get_val, _time);
|
|
|
|
var val = __curr_get_val[0];
|
|
|
|
var nod = __curr_get_val[1];
|
2024-08-09 13:30:09 +02:00
|
|
|
var typ = nod.type;
|
2024-08-07 11:48:39 +02:00
|
|
|
|
|
|
|
if(typ != VALUE_TYPE.surface) {
|
2024-08-09 13:30:09 +02:00
|
|
|
var _d = array_get_depth(val);
|
2024-09-04 06:14:10 +02:00
|
|
|
|
|
|
|
__nod = nod;
|
|
|
|
__applyUnit = applyUnit;
|
|
|
|
__arrIndex = arrIndex;
|
|
|
|
|
|
|
|
if(_d == 0) return valueProcess([ val, val ], nod, applyUnit, arrIndex);
|
2024-08-09 13:30:09 +02:00
|
|
|
if(_d == 1) return valueProcess(val, nod, applyUnit, arrIndex);
|
2024-09-04 06:14:10 +02:00
|
|
|
if(_d == 2) return array_map(val, function(v, i) /*=>*/ {return valueProcess(array_verify(v, 2), __nod, __applyUnit, __arrIndex)});
|
2024-08-09 13:30:09 +02:00
|
|
|
|
|
|
|
return val;
|
2024-08-07 11:48:39 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
// Dimension conversion
|
|
|
|
if(is_array(val)) {
|
|
|
|
var eqSize = true;
|
|
|
|
var sArr = [];
|
|
|
|
var _osZ = 0;
|
|
|
|
|
|
|
|
for( var i = 0, n = array_length(val); i < n; i++ ) {
|
|
|
|
if(!is_surface(val[i])) continue;
|
|
|
|
|
|
|
|
var surfSz = surface_get_dimension(val[i]);
|
|
|
|
array_push(sArr, surfSz);
|
|
|
|
|
|
|
|
if(i && !array_equals(surfSz, _osZ))
|
|
|
|
eqSize = false;
|
|
|
|
|
|
|
|
_osZ = surfSz;
|
|
|
|
}
|
|
|
|
|
|
|
|
if(eqSize) return _osZ;
|
|
|
|
return sArr;
|
2024-08-09 13:30:09 +02:00
|
|
|
|
2024-08-07 11:48:39 +02:00
|
|
|
} else if (is_surface(val))
|
2024-09-01 05:02:56 +02:00
|
|
|
return surface_get_dimension(val);
|
2024-08-09 13:30:09 +02:00
|
|
|
|
2024-08-07 11:48:39 +02:00
|
|
|
return [ 1, 1 ];
|
|
|
|
}
|
|
|
|
|
|
|
|
static __getAnimValue = function(_time = CURRENT_FRAME) {
|
|
|
|
if(!is_anim) {
|
2024-08-08 08:04:25 +02:00
|
|
|
if(sep_axis) return array_create_ext(2, function(i) /*=>*/ {return animators[i].processType(animators[i].values[0].value)});
|
|
|
|
return array_empty(animator.values)? 0 : animator.processType(animator.values[0].value);
|
2024-08-07 11:48:39 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
if(sep_axis) {
|
|
|
|
__temp_time = _time;
|
|
|
|
return array_create_ext(2, function(i) /*=>*/ {return animators[i].getValue(__temp_time)});
|
|
|
|
}
|
|
|
|
|
|
|
|
return animator.getValue(_time);
|
|
|
|
}
|
|
|
|
}
|