Advertisement
jargon

Roe2Js :: "canvasRenderView.js"

Jul 2nd, 2024 (edited)
876
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function canvasViewPortal ( ){
  2.  
  3.     var [ px, py, pz ] = cursorState ( layers.gui );
  4.    
  5.     drawRectangle(gutterW, gutterH, viewConstraints.viewSpanX * tileW, viewConstraints.viewSpanY * tileH, 'black', 'black');
  6.    
  7.     let buffer = [];
  8.            
  9.     for(let y = viewConstraints.viewMinY; y <= viewConstraints.viewMaxY; y++){
  10.         for(let x = viewConstraints.viewMinX; x <= viewConstraints.viewMaxX; x++){
  11.            
  12.             buffer = [];
  13.            
  14.             px = cx + x;
  15.             py = cy + y;
  16.            
  17.             if(oobMap([px,py]) !== true){
  18.                 buffer.push(special.stonwall);
  19.             }
  20.            
  21.             if(oobMap([px,py]) === true){
  22.                
  23.                 for(let z = 0; z <= pz; z++){
  24.                     buffer.push(`${sections(full_map[px][py][z])[0]}____`);
  25.                 }
  26.                
  27.                 if( ( x === 0 ) && ( y === 0 ) ){
  28.                     buffer.push(special.sel1dash);
  29.                 }
  30.             }
  31.            
  32.             // logFeats(hover);
  33.            
  34.             if( ( x === viewCursor.hover.x ) && ( y === viewCursor.hover.y ) ){
  35.                 buffer.push(special.sel2dash);
  36.             }
  37.            
  38.             buffer.push(special.sel2dots);
  39.            
  40.             drawImageStack(buffer,gutterW+(x - viewConstraints.viewMinX)*tileW,gutterH+(y - viewConstraints.viewMinY)*tileH,tileW,tileH);
  41.         }
  42.     }
  43.    
  44.     return true;
  45. }
  46.  
  47. function canvasScrollBars ( ) {
  48.  
  49.     var [ px, py, pz ] = cursorState ( layers.gui );
  50.  
  51.     var gutterW = 0;
  52.     var gutterH = 0;
  53.  
  54.     let scrollX1 = ( cx - viewSpanX / 2 ) / full_map.length;
  55.     let scrollX2 = ( cx + viewSpanX / 2 ) / full_map.length;
  56.  
  57.     let scrollY1 = ( cy - viewSpanY / 2 ) / full_map[0].length;
  58.     let scrollY2 = ( cy + viewSpanY / 2 ) / full_map[0].length;
  59.  
  60.     scrollX1 = viewSpanX * tileW * scrollX1;
  61.     scrollX2 = viewSpanX * tileW * scrollX2;
  62.  
  63.     scrollY1 = viewSpanY * tileH * scrollY1;
  64.     scrollY2 = viewSpanY * tileH * scrollY2;
  65.    
  66.     if( scrollX1 < 0 ){
  67.         scrollX1 = 0;
  68.     }
  69.     if( scrollY1 < 0 ){
  70.         scrollY1 = 0;
  71.     }
  72.     if( scrollX1 > viewSpanX * tileW ){
  73.         scrollX1 = viewSpanX * tileW;
  74.     }
  75.     if( scrollY1 > viewSpanY * tileH ){
  76.         scrollY1 = viewSpanY * tileH;
  77.     }
  78.  
  79.     if( scrollX2 < 0 ){
  80.         scrollX2 = 0;
  81.     }
  82.     if( scrollY2 < 0 ){
  83.         scrollY2 = 0;
  84.     }
  85.     if( scrollX2 > viewSpanX * tileW ){
  86.         scrollX2 = viewSpanX * tileW;
  87.     }
  88.     if( scrollY2 > viewSpanY * tileH ){
  89.         scrollY2 = viewSpanY * tileH;
  90.     }
  91.    
  92.     scrollW = scrollX2 - scrollX1;
  93.     scrollH = scrollY2 - scrollY1;
  94.  
  95.    
  96.     // left backbar
  97.     drawRectangle(
  98.         gutterW,
  99.         gutterH,
  100.         8,
  101.         viewSpanY*tileH,
  102.         'rgba(0,0,0,0.0)',
  103.         'red'
  104.     );
  105.    
  106.     // top backbar
  107.     drawRectangle(
  108.         gutterW,
  109.         gutterH,
  110.         viewSpanX*tileW,
  111.         8,
  112.         'rgba(0,0,0,0.0)',
  113.         'red'
  114.     );
  115.    
  116.     gutterW = 0;
  117.     gutterH = 0;
  118.  
  119.     // right backbar
  120.     drawRectangle(
  121.         gutterW+viewSpanX*tileW,
  122.         gutterH,
  123.         8,
  124.         viewSpanY*tileH,
  125.         'rgba(0,0,0,0.0)',
  126.         'red'
  127.     );
  128.    
  129.     // bottom backbar
  130.     drawRectangle(
  131.         gutterW,
  132.         gutterH+viewSpanY*tileH,
  133.         viewSpanX*tileW,
  134.         8,
  135.         'rgba(0,0,0,0.0)',
  136.         'red'
  137.     );
  138.  
  139.     // right scrollbar
  140.     drawRectangle(
  141.         gutterW*2+viewSpanX*tileW,
  142.         gutterH*2+scrollY1,
  143.         8,
  144.         scrollH,
  145.         'black',
  146.         '#00ff00'
  147.     );
  148.    
  149.     // bottom scrollbar
  150.     drawRectangle(
  151.         gutterW*2+scrollX1,
  152.         gutterH*2+viewSpanY*tileH,
  153.         scrollW,
  154.         8,
  155.         'black',
  156.         '#00ff00'
  157.     );
  158.    
  159.     return true;
  160.  
  161. }
  162.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement