constructor(renderer, parent, {
        sourcesLoaded = 0,
        sourcesToLoad = 0,
        complete = false,

        onComplete = () => {},
    } = {}) {

        super(renderer, parent.crossOrigin);
        this.type = "PlaneTextureLoader";

        this._parent = parent;
        if(this._parent.type !== "Plane" && this._parent.type !== "PingPongPlane" && this._parent.type !== "ShaderPass") {
            throwWarning(this.type + ": Wrong parent type assigned to this loader");
            this._parent = null;
        }

        this.sourcesLoaded = sourcesLoaded;
        this.sourcesToLoad = sourcesToLoad;
        this.complete = complete;

        this.onComplete = onComplete;
    }
Extends our TextureLoader class to add sources loaded count, handle onComplete event
 Also adds the sources and textures to its defined parent

 params:
 @renderer (Curtains renderer or Renderer class object): our curtains object OR our curtains renderer object
 @parent (Plane or ShaderPass class object): The plane or shader pass that will use this loader

 @sourcesLoaded (int): Number of sources loaded
 @sourcesToLoad (int): Number of initial sources to load
 @complete (bool): Whether the loader has loaded all the initial sources
 @onComplete (function): Callback to execute when all the initial sources have been loaded

 returns :
 @this: our PlaneTextureLoader element
*