Code viewer for World: Joe's One Cube World

// Cloned by Joe Rathborne on 6 Nov 2018 from World "One Cube World" by Starter user 
// Please leave this clone trail here.
 

const skycolor          = 'Cyan';               // sky color

const objectsize        = 200;                  // size of object   

const startRadius       = 1500;                 // distance from centre we start the camera at

const maxRadius         = startRadius * 10;     // maximum distance from camera we render things 

const skycolorObject    = new THREE.Color ( skycolor.toLowerCase() ); 


const MUSICFILE = '/uploads/starter/SuspenseStrings.mp3';
var music = new Audio ( MUSICFILE );
music.loop = true;                   // loop music forever            
music.play();
AB.standardAudioButtons ( music );   // create standard play and pause buttons


function World() 
{ 
  // the object is a cube (each dimension equal): 
  var shape             = new THREE.BoxGeometry ( objectsize, objectsize, objectsize );
  var theobject         = new THREE.Mesh ( shape );

  this.newRun = function() 
  {
    // start a 3D scene: 
    ABWorld.init3d ( startRadius, maxRadius, skycolorObject ); 

    // add the object to the scene:
    ABWorld.scene.add(theobject);
    
    AB.clockTick       = 500; 
    
    const texturefile  = "/uploads/joerathborne/0.jpg";
    var   loader       = new THREE.TextureLoader();
    
    loader.load ( texturefile, function ( thetexture ) 
    // this defines a function to be called whenever the file is loaded 
    {                    
        thetexture.minFilter  = THREE.LinearFilter;
        theobject.material    = new THREE.MeshBasicMaterial ( { map: thetexture } );
        
    }); 
    
    
  };
  
  var i = 0;
  
  this.nextStep = function()
  {
      if (i < 1)
      {
          theobject.position.x = theobject.position.x + 700;
          
          const texturefile  = "/uploads/joerathborne/1.jpg";
          var   loader       = new THREE.TextureLoader();
          
          loader.load ( texturefile, function ( thetexture ) 
          // this defines a function to be called whenever the file is loaded 
          {                    
              thetexture.minFilter  = THREE.LinearFilter;
              theobject.material    = new THREE.MeshBasicMaterial ( { map: thetexture } );
              
          });
          
          
      }
      else if (i == 1)
      {
          theobject.position.y = theobject.position.y + 700;
          
          const texturefile  = "/uploads/joerathborne/2.jpg";
          var   loader       = new THREE.TextureLoader();
          
          loader.load ( texturefile, function ( thetexture ) 
          // this defines a function to be called whenever the file is loaded 
          {                    
              thetexture.minFilter  = THREE.LinearFilter;
              theobject.material    = new THREE.MeshBasicMaterial ( { map: thetexture } );
              
          });
          
      }
      else if (i == 2)
      {
          theobject.position.z = theobject.position.z + 700;
          
          const texturefile  = "/uploads/joerathborne/3.jpg";
          var   loader       = new THREE.TextureLoader();
          
          loader.load ( texturefile, function ( thetexture ) 
          // this defines a function to be called whenever the file is loaded 
          {                    
              thetexture.minFilter  = THREE.LinearFilter;
              theobject.material    = new THREE.MeshBasicMaterial ( { map: thetexture } );
              
          });
          
      }
      else if (i % 6 == 3)
      {
          theobject.position.x = theobject.position.x - 1400;
          
          const texturefile  = "/uploads/joerathborne/4.jpg";
          var   loader       = new THREE.TextureLoader();
          
          loader.load ( texturefile, function ( thetexture ) 
          // this defines a function to be called whenever the file is loaded 
          {                    
              thetexture.minFilter  = THREE.LinearFilter;
              theobject.material    = new THREE.MeshBasicMaterial ( { map: thetexture } );
              
          });
          
      }
      else if (i % 6 == 4)
      {
          theobject.position.y = theobject.position.y - 1400;
          
          const texturefile  = "/uploads/joerathborne/5.jpg";
          var   loader       = new THREE.TextureLoader();
          
          loader.load ( texturefile, function ( thetexture ) 
          // this defines a function to be called whenever the file is loaded 
          {                    
              thetexture.minFilter  = THREE.LinearFilter;
              theobject.material    = new THREE.MeshBasicMaterial ( { map: thetexture } );
              
          });
          
      }
      else if (i % 6 == 5)
      {
          theobject.position.z = theobject.position.z - 1400;
          
          const texturefile  = "/uploads/joerathborne/6.jpg";
          var loader       = new THREE.TextureLoader();
          
          loader.load ( texturefile, function ( thetexture ) 
          // this defines a function to be called whenever the file is loaded 
          {                    
              thetexture.minFilter  = THREE.LinearFilter;
              theobject.material    = new THREE.MeshBasicMaterial ( { map: thetexture } );
              
          });
          
      }
      else if (i % 6 === 0)
      {
          theobject.position.x = theobject.position.x + 1400;
          
          const texturefile  = "/uploads/joerathborne/7.jpg";
          var   loader       = new THREE.TextureLoader();
          
          loader.load ( texturefile, function ( thetexture ) 
          // this defines a function to be called whenever the file is loaded 
          {                    
              thetexture.minFilter  = THREE.LinearFilter;
              theobject.material    = new THREE.MeshBasicMaterial ( { map: thetexture } );
              
          });
          
      }
      else if (i % 6 == 1)
      {
          theobject.position.y = theobject.position.y + 1400;
          
          const texturefile  = "/uploads/joerathborne/8.jpg";
          var   loader       = new THREE.TextureLoader();
          
          loader.load ( texturefile, function ( thetexture ) 
          // this defines a function to be called whenever the file is loaded 
          {                    
              thetexture.minFilter  = THREE.LinearFilter;
              theobject.material    = new THREE.MeshBasicMaterial ( { map: thetexture } );
              
          });
          
      }
      else if (i % 6 == 2)
      {
          theobject.position.z = theobject.position.z + 1400;
          
          const texturefile  = "/uploads/joerathborne/9.jpg";
          var   loader       = new THREE.TextureLoader();
          
          loader.load ( texturefile, function ( thetexture ) 
          // this defines a function to be called whenever the file is loaded 
          {                    
              thetexture.minFilter  = THREE.LinearFilter;
              theobject.material    = new THREE.MeshBasicMaterial ( { map: thetexture } );
              
          });
          
      }
      
      i++;
      
  };

}