Guest User

Untitled

a guest
Jun 21st, 2020
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. window.addEventListener("load",function(){
  3.   errdiv = document.createElement("div");
  4.   if(true){ //debug
  5.     errdiv.classList.add("console");
  6.     document.body.appendChild(errdiv);
  7.     window.onerror = function(errorMsg, url, lineNumber, column, errorObj){
  8.         errdiv.innerHTML += '<br />Error: ' + errorMsg + ' Script: ' + url + ' Line: ' + lineNumber
  9.                 + ' Column: ' + column + ' StackTrace: ' +  errorObj;
  10.     }
  11.   }
  12.  
  13.   log = function(txt)
  14.   {
  15.     errdiv.innerHTML += "<br />log: "+txt;
  16.   }
  17.  
  18.   //init dynamic menu
  19.   var dynamic_menu = new Menu();
  20.   var wprompt = new WPrompt();
  21.   var requestmgr = new RequestManager();
  22.   var announcemgr = new AnnounceManager();
  23.  
  24.   requestmgr.onResponse = function(id,ok){ $.post("http://vrp/request",JSON.stringify({act: "response", id: id, ok: ok})); }
  25.   wprompt.onClose = function(){ $.post("http://vrp/prompt",JSON.stringify({act: "close", result: wprompt.result})); }
  26.   dynamic_menu.onClose = function(){ $.post("http://vrp/menu",JSON.stringify({act: "close", id: dynamic_menu.id})); }
  27.   dynamic_menu.onValid = function(choice,mod){ $.post("http://vrp/menu",JSON.stringify({act: "valid", id: dynamic_menu.id, choice: choice, mod: mod})); }
  28.  
  29.  //request config
  30.  $.post("http://vrp/cfg","");
  31.  
  32.   var current_menu = dynamic_menu;
  33.   var pbars = {}
  34.   var divs = {}
  35.  
  36.   //progress bar ticks (25fps)
  37.   setInterval(function(){
  38.     for(var k in pbars){
  39.       pbars[k].frame(1/25.0*1000);
  40.     }
  41.  
  42.   }, 1/25.0*1000);
  43.  
  44.   //MESSAGES
  45.   window.addEventListener("message",function(evt){ //lua actions
  46.     var data = evt.data;
  47.  
  48.     if(data.act == "cfg"){
  49.       cfg = data.cfg
  50.     }
  51.     else if(data.act == "pause_change"){
  52.       if(data.paused)
  53.         $(document.body).hide();
  54.       else
  55.         $(document.body).show();
  56.     }
  57.     else if(data.act == "open_menu"){ //OPEN DYNAMIC MENU
  58.       current_menu.close();
  59.       dynamic_menu.open(data.menudata.name,data.menudata.choices);
  60.       dynamic_menu.id = data.menudata.id;
  61.  
  62.       //customize menu
  63.       var css = data.menudata.css
  64.       if(css.top)
  65.         dynamic_menu.div.style.top = css.top;
  66.       if(css.header_color)
  67.         dynamic_menu.div_header.style.backgroundColor = css.header_color;
  68.  
  69.       current_menu = dynamic_menu;
  70.     }
  71.     else if(data.act == "close_menu"){ //CLOSE MENU
  72.       current_menu.close();
  73.     }
  74.     // PROGRESS BAR
  75.     else if(data.act == "set_pbar"){
  76.       var pbar = pbars[data.pbar.name];
  77.       if(pbar)
  78.         pbar.removeDom();
  79.  
  80.       pbars[data.pbar.name] = new ProgressBar(data.pbar);
  81.       pbars[data.pbar.name].addDom();
  82.     }
  83.     else if(data.act == "set_pbar_val"){
  84.       var pbar = pbars[data.name];
  85.       if(pbar)
  86.         pbar.setValue(data.value);
  87.     }
  88.     else if(data.act == "set_pbar_text"){
  89.       var pbar = pbars[data.name];
  90.       if(pbar)
  91.         pbar.setText(data.text);
  92.     }
  93.     else if(data.act == "remove_pbar"){
  94.       var pbar = pbars[data.name]
  95.       if(pbar){
  96.         pbar.removeDom();
  97.         delete pbars[data.name];
  98.       }
  99.     }
  100.     // PROMPT
  101.     else if(data.act == "prompt"){
  102.       wprompt.open(data.title,data.text);
  103.     }
  104.     // REQUEST
  105.     else if(data.act == "request"){
  106.       requestmgr.addRequest(data.id,data.text,data.time);
  107.     }
  108.     // ANNOUNCE
  109.     else if(data.act == "announce"){
  110.       announcemgr.addAnnounce(data.background,data.content);
  111.     }
  112.     // DIV
  113.     else if(data.act == "set_div"){
  114.       var div = divs[data.name];
  115.       if(div)
  116.         div.removeDom();
  117.  
  118.       divs[data.name] = new Div(data)
  119.       divs[data.name].addDom();
  120.     }
  121.     else if(data.act == "set_div_css"){
  122.       var div = divs[data.name];
  123.       if(div)
  124.         div.setCss(data.css);
  125.     }
  126.     else if(data.act == "set_div_content"){
  127.       var div = divs[data.name];
  128.       if(div)
  129.         div.setContent(data.content);
  130.     }
  131.     else if(data.act == "div_execjs"){
  132.       var div = divs[data.name];
  133.       if(div)
  134.         div.executeJS(data.js);
  135.     }
  136.     else if(data.act == "remove_div"){
  137.       var div = divs[data.name];
  138.       if(div)
  139.         div.removeDom();
  140.  
  141.       delete divs[data.name];
  142.     }
  143.     // CONTROLS
  144.     else if(data.act == "event"){ //EVENTS
  145.       if(data.event == "UP"){
  146.         if(!wprompt.opened)
  147.           current_menu.moveUp();
  148.       }
  149.       else if(data.event == "DOWN"){
  150.         if(!wprompt.opened)
  151.           current_menu.moveDown();
  152.       }
  153.       else if (data.event == "LEFT") {
  154.                 if (!wprompt.opened)
  155.                     current_menu.valid(-1);
  156.       }
  157.     else if (data.event == "RIGHT") {
  158.                 if (!wprompt.opened)
  159.                     current_menu.valid(1);
  160.       }
  161.       else if(data.event == "SELECT"){
  162.         if(!wprompt.opened)
  163.           current_menu.valid(0);
  164.       }
  165.       else if(data.event == "CANCEL"){
  166.         if(wprompt.opened)
  167.           wprompt.close();
  168.         else
  169.           current_menu.close();
  170.  
  171.       }
  172.       else if(data.event == "F5"){
  173.         requestmgr.respond(true);
  174.       }
  175.       else if(data.event == "F6"){
  176.         requestmgr.respond(false);
  177.       }
  178.     }
  179.   });
  180. });
Add Comment
Please, Sign In to add comment