Bot213123

Untitled

Dec 15th, 2020
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function gridSwitchPage(page, container, ignore, dontMoveSlider){
  2.     var slots = container.slots;
  3.     var slotsKeys = gridData.slotsKeys;
  4.     var slots_count = gridData.slots_count;
  5.     var x_count = gridData.x_count;
  6.     var pages1 = gridFuncs.getPages(slotsKeys.length);
  7.     var pages = Math.max(1, pages1 + 1 - gridData.y_count);
  8.     page = Math.max(1, Math.min(page, pages)) - 1;
  9.     if(page == gridData.lastPage - 1 && !ignore) return false;
  10.     gridData.lastPage = page + 1;
  11.     var pages = gridFuncs.getPages(slotsKeys.length);
  12.     var ___y = gridFuncs.getCoordsFromPage(page + 1, pages);
  13.     if(!dontMoveSlider)container.getUiAdapter().getElement("slider_button").setPosition(_elementsGUI_grid['slider_button'].x, ___y);
  14.     if (!gridData.isWorkAllowed) {
  15.         for (var i = 0; i < slots_count; i++) {
  16.             container.setSlot("slot" + i, 0, 0, 0, null);
  17.             container.setText("slot" + i, "0");
  18.         }
  19.         return false;
  20.     }
  21.     for (var i = page * x_count; i < page * x_count + slots_count; i++) {
  22.         var a = i - (page * x_count);
  23.         var item = slots[slotsKeys[i]] || { id: 0, data: 0, count: 0, extra: null };
  24.         container.setSlot("slot" + a, item.id, item.count, item.data, item.extra || null);
  25.         container.setText("slot" + a, cutNumber(item.count));
  26.     }
  27.     return true;
  28. }
  29.  
  30. containerEvents: {
  31.             openGui: function(container, window, content, eventData){
  32.                 Object.assign(gridData, eventData);
  33.                 gridData.updateGui = function(refresh, updateFilters, nonlocal){
  34.                     if(!content || !window || !window.isOpened()) return;
  35.                     if(Config.dev)Logger.Log((nonlocal ? 'Server ' : 'Local ') + (refresh ? 'Updating' : 'Openning') + ' window: ' + JSON.stringify(eventData), 'RefinedStorageDebug');
  36.                     delete container.slots.bindings;
  37.                     delete container.slots.slots;
  38.                     gridData.networkData = SyncedNetworkData.getClientSyncedData(eventData.name);
  39.                     if(updateFilters){
  40.                         var _slotKeys = [];
  41.                         for(var i in container.slots)if(i[0] != 's')_slotKeys.push(i);
  42.                         gridData.slotsKeys = _slotKeys;//Object.keys(container.slots).splice(0, eventData.slotsLength);
  43.                         //alert(gridData.slotsKeys);
  44.                         //if(Config.dev)Logger.Log('Pre items: ' + _slotKeys.map(function(value){return JSON.stringify(container.slots[value].asScriptable())}), 'RefinedStorageDebug');
  45.                         if(!refresh)gridData.textSearch = false;
  46.                         if(gridData.textSearch){
  47.                             var textSearch = new RegExp(gridData.textSearch, "i");
  48.                             gridData.slotsKeys = gridData.slotsKeys.filter(function (value, index) {
  49.                                 var slot = container.slots[value];
  50.                                 if (getItemName(slot.id, slot.data).match(textSearch)) {
  51.                                     return true;
  52.                                 }
  53.                             })
  54.                         };
  55.                         gridData.slotsKeys.sort(gridFuncs.sort(eventData.sort, eventData.reverse_filter, container.slots));
  56.                         //if(Config.dev)Logger.Log('Post items: ' + _slotKeys.map(function(value){return JSON.stringify(container.slots[value].asScriptable())}), 'RefinedStorageDebug');
  57.                     }
  58.                     content.elements["image_filter"].bitmap = 'RS_filter' + (eventData.sort + 1);
  59.                     content.elements["image_filter"].x = content.elements["filter_button"].x + (content.elements["filter_button"].scale * 20 - filter_size_map[eventData.sort]) / 2;
  60.                     if (eventData.reverse_filter) {
  61.                         content.elements["image_reverse_filter"].bitmap = 'RS_arrow_up';
  62.                     } else {
  63.                         content.elements["image_reverse_filter"].bitmap = 'RS_arrow_down';
  64.                     }
  65.                     content.elements["search_text"].text = gridData.textSearch ? gridData.textSearch : Translation.translate('Search');
  66.                     content.elements["image_redstone"].bitmap = 'redstone_GUI_' + (eventData.redstone_mode || 0);
  67.                     var slots_count = content.elements.slots_count;
  68.                     content.elements["slider_button"].bitmap = gridData.slotsKeys.length <= gridData.slots_count ? 'slider_buttonOff' : 'slider_buttonOn';
  69.                     //if(refresh)window.getWindow('main').getElements().get("slider_button").setPosition(content.elements['slider_button'].x, gridFuncs.getCoordsFromPage(gridData.lastPage, gridFuncs.getPages(gridData.slotsKeys.length)));
  70.                     if (!eventData.isWorkAllowed) {
  71.                         for (var i = 0; i < slots_count; i++) {
  72.                             content.elements['slot' + i].bitmap = 'classic_darken_slot';
  73.                         }
  74.                         content.elements["slider_button"].bitmap = 'slider_buttonOff';
  75.                     } else if (content.elements['slot0'].bitmap == 'classic_darken_slot') {
  76.                         for (var i = 0; i < slots_count; i++) {
  77.                             content.elements['slot' + i].bitmap = 'classic_slot';
  78.                         }
  79.                     }
  80.                     gridSwitchPage(refresh ? gridData.lastPage : 1, container, true);
  81.                 }
  82.                 if(gridData.lowPriority){
  83.                     gridData.lowPriority = false;
  84.                     var craftsThread = java.lang.Thread({
  85.                         run: function(){
  86.                             try {
  87.                                 gridData.updateGui(eventData.refresh, eventData.updateFilters, true);
  88.                             } catch(err){
  89.                                 alert('Sorry, i broke :_(' + JSON.stringify(err));
  90.                             }
  91.                         }
  92.                     });
  93.                     craftsThread.setPriority(java.lang.Thread.MIN_PRIORITY);
  94.                     craftsThread.start();
  95.                 } else {
  96.                     gridData.updateGui(eventData.refresh, eventData.updateFilters, true);
  97.                 }
  98.             }
  99.         }
Add Comment
Please, Sign In to add comment