function Node_Atlas_Get(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
	name = "Atlas Get";
	previewable = true;
	dimension_index = -1;
	setDimension(96, 48);
	
	newInput(0, nodeValue_Atlas("Atlas", self))
		.setVisible(true, true);
	
	newOutput(0, nodeValue_Output("Surface", self, VALUE_TYPE.surface, []))
		.setArrayDepth(1);
	
	newOutput(1, nodeValue_Output("Position", self, VALUE_TYPE.float, []))
		.setDisplay(VALUE_DISPLAY.vector)
		.setArrayDepth(1);
	
	newOutput(2, nodeValue_Output("Rotation", self, VALUE_TYPE.float, []))
		.setArrayDepth(1);
	
	newOutput(3, nodeValue_Output("Scale", self, VALUE_TYPE.float, []))
		.setDisplay(VALUE_DISPLAY.vector)
		.setArrayDepth(1);
		
	newOutput(4, nodeValue_Output("Blend", self, VALUE_TYPE.color, []))
		.setArrayDepth(1);
		
	newOutput(5, nodeValue_Output("Alpha", self, VALUE_TYPE.float, []))
		.setArrayDepth(1);
	
	static processData = function(_outData, _data, _output_index, _array_index = 0) {
		var atl = _data[0];
		
		if(!is(atl, Atlas)) return _outData;

		_outData[0] = atl.getSurface();
		_outData[1] = [ atl.x, atl.y ];
		_outData[2] = atl.rotation;
		_outData[3] = [ atl.sx, atl.sy ];
		_outData[4] = atl.blend;
		_outData[5] = atl.alpha;
		
		return _outData;
	}
	
	static onDrawNode = function(xx, yy, _mx, _my, _s, _hover, _focus) {
		var bbox = drawGetBbox(xx, yy, _s);
		draw_sprite_bbox_uniform(s_node_atlas_get, 0, bbox);
	}
}