Advertisement
KyleCypher

LineDrawer

Sep 25th, 2019
294
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (function(b) {
  2.     var d = b('<div style="position:fixed;width:300px;padding:4px;z-index:10;background-color:rgba(255,255,255,0.9);border-radius:3px;box-shadow:#222 1px 1px 5px 1px;font: 11pt/12pt sans-serif;color:#555;pointer-events:none;"><p style="margin:3px;font:12pt/16pt monospace;text-align:center;color:#777;">Line Drawer</p><p style="margin:4px;"><br>1. Draw lines with arrow keys</br><br>2. Click a line and press a direction to create a "T" junction</br><br>3. Be kind :)</br><p style="margin:4px;"><p style="margin:4px;"><b></b></p><p style="margin:4px;float:right;color:#777;"><i>~Poopman</i></p></div>').appendTo("body");
  3.     d.css({
  4.         top: b(window).height() / 2 - d.height() / 2,
  5.         left: b(window).width() / 2 - d.width() / 2
  6.     });
  7.     b(document).one("mousedown.colibri-jslink", function() {
  8.         d.fadeOut(100, function() {
  9.             d.remove()
  10.         })
  11.     })
  12. })(window.jQuery);
  13. var char = {
  14. vertical:"│",
  15. horizontal: "─",
  16. cross: "┼",
  17. corner: {
  18. topleft: "┌",
  19. topright: "┐",
  20. bottomleft: "└",
  21. bottomright: "┘",
  22. },
  23. t:{
  24. right:"├",
  25. left:"┤",
  26. up:"┴",
  27. down:"┬"
  28. }
  29. };
  30. var clickChar = ""
  31. var firstMove = true;
  32.     var none = jQuery.Event("keydown");
  33.     var left = jQuery.Event("keydown");
  34.     left.which = $.ui.keyCode.LEFT
  35.     left.keyCode = $.ui.keyCode.LEFT
  36.     var right = jQuery.Event("keydown");
  37.     right.which = $.ui.keyCode.RIGHT
  38.     right.keyCode = $.ui.keyCode.RIGHT
  39.     var up = jQuery.Event("keydown");
  40.     up.which = $.ui.keyCode.UP
  41.     up.keyCode = $.ui.keyCode.UP
  42.     var down = jQuery.Event("keydown");
  43.     down.which = $.ui.keyCode.DOWN
  44.     down.keyCode = $.ui.keyCode.DOWN
  45. var previousDir =""
  46. var typeChar = function(c){$($("textarea")[0]).val(c);}
  47.  
  48.     $(document).on("keyup.funky", function(e) {
  49.    
  50. var h = ($(".active-cursor")[0].innerText);
  51.  
  52.         if (e.key == "ArrowRight")
  53.  
  54. {setLine(h,e.key,char.vertical,char.corner.topleft,char.corner.bottomleft,char.horizontal,char.horizontal,char.horizontal,left,left,left,none,none)}
  55.         if (e.key == "ArrowLeft")
  56. {setLine(h,e.key,char.vertical,char.corner.topright,char.corner.bottomright,char.horizontal,char.horizontal,char.horizontal,left,right,right,none,none)}
  57.         if (e.key == "ArrowUp")
  58. {setLine(h,e.key,char.horizontal,char.vertical,char.vertical,char.corner.bottomleft,char.corner.bottomright,char.vertical,left,none,none,down,down)}
  59.         if (e.key == "ArrowDown")
  60. {setLine(h,e.key,char.horizontal,char.vertical,char.vertical,char.corner.topleft,char.corner.topright,char.vertical,left,none,none,up,up)}
  61.    
  62. })
  63.  
  64. var setLine = function(h,key,crosskey,u,d,l,r,a,dir,uu,dd,ll,rr){
  65.     var cc;
  66. if(!firstMove){
  67.     if(h == crosskey ){ cc = char.cross }
  68.     else if( previousDir == "ArrowUp" ) { cc = u;  setTimeout(function() {$($("textarea")[0]).trigger(uu);}, 20)    }
  69.     else if( previousDir == "ArrowDown" ) { cc = d;  setTimeout(function() {$($("textarea")[0]).trigger(dd);}, 20)   }
  70.     else if( previousDir == "ArrowLeft" ) { cc = l;  setTimeout(function() {$($("textarea")[0]).trigger(ll);}, 20)   }
  71.     else if( previousDir == "ArrowRight" ) { cc = r;  setTimeout(function() {$($("textarea")[0]).trigger(rr);}, 20)  }
  72.     else { cc = a}    }  
  73. else {
  74. console.log(clickChar)
  75. if(key == "ArrowLeft" && clickChar == char.vertical || clickChar == char.cross ||clickChar == char.corner.topleft ||clickChar == char.corner.topright ||clickChar == char.corner.bottomleft ||clickChar == char.corner.bottomright ){
  76.     $($("textarea")[0]).trigger(right);
  77.    cc=(char.t.left)
  78.  
  79. }
  80. else if(key == "ArrowRight" && clickChar == char.vertical || clickChar == char.cross ||clickChar == char.corner.topleft ||clickChar == char.corner.topright ||clickChar == char.corner.bottomleft ||clickChar == char.corner.bottomright ){
  81. $($("textarea")[0]).trigger(left);
  82.    cc=(char.t.right)
  83.  
  84. }
  85. else if(key == "ArrowUp" && clickChar == char.horizontal || clickChar == char.cross ||clickChar == char.corner.topleft ||clickChar == char.corner.topright ||clickChar == char.corner.bottomleft ||clickChar == char.corner.bottomright ){
  86. $($("textarea")[0]).trigger(down);
  87.    cc=(char.t.up)
  88.  
  89. }
  90. else if(key == "ArrowDown" && clickChar == char.horizontal || clickChar == char.cross ||clickChar == char.corner.topleft ||clickChar == char.corner.topright ||clickChar == char.corner.bottomleft ||clickChar == char.corner.bottomright ){
  91. $($("textarea")[0]).trigger(up);
  92.   cc=(char.t.down)
  93.  
  94. }
  95. else{firstMove = false; return}
  96.  
  97. }    
  98.  
  99.  
  100.   setTimeout(function() {typeChar(cc)}, 20)
  101.    
  102.     previousDir = key
  103.  
  104.   setTimeout(function() {$($("textarea")[0]).trigger(dir);}, 30)
  105.            
  106.   firstMove = false;      
  107. }
  108. $(document).on("click",function(){
  109. previousDir = ""
  110. if( $(".active-cursor")[0]){
  111. clickChar =  $(".active-cursor")[0].innerText}
  112. firstMove = true;
  113. })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement