cubeTexture = ( value = EmptyTexture, uvNode = null, levelNode = null, biasNode = null ) => {

	let textureNode;

	if ( value && value.isCubeTextureNode === true ) {

		textureNode = nodeObject( value.clone() );
		textureNode.referenceNode = value.getSelf(); // Ensure the reference is set to the original node

		if ( uvNode !== null ) textureNode.uvNode = nodeObject( uvNode );
		if ( levelNode !== null ) textureNode.levelNode = nodeObject( levelNode );
		if ( biasNode !== null ) textureNode.biasNode = nodeObject( biasNode );

	} else {

		textureNode = cubeTextureBase( value, uvNode, levelNode, biasNode );

	}

	return textureNode;

}
TSL function for creating a cube texture uniform node.

@tsl
@function
@param {?CubeTexture|CubeTextureNode} [value=EmptyTexture] - The cube texture.
@param {?Node<vec3>} [uvNode=null] - The uv node.
@param {?Node<int>} [levelNode=null] - The level node.
@param {?Node<float>} [biasNode=null] - The bias node.
@returns {CubeTextureNode}