BackpackAPI — различия между версиями

Строка 23: Строка 23:
 
Используя данный продукт вы автоматически соглашаетесь с этими правилами
 
Используя данный продукт вы автоматически соглашаетесь с этими правилами
  
 +
<div class="mw-parser-output">
 
<div class="mw-parser-output">
 
<div class="mw-parser-output">
 
== Документация ==
 
== Документация ==
Строка 33: Строка 34:
  
 
BackpackRegistry.register(ItemID.backpackTest, {
 
BackpackRegistry.register(ItemID.backpackTest, {
 +
   title: "My Backpack",
 
     slots: 80,
 
     slots: 80,
 
     slotsCenter: true,
 
     slotsCenter: true,
     inRow: 10
+
     inRow: 10,
 +
   items: [
 +
        "^ore.+",
 +
       "^ingot.+",
 +
       1
 +
       {id: 345, data: "^[1-3]$"}
 +
   ]
 
});</syntaxhighlight>
 
});</syntaxhighlight>
  
 
Первым аргумент - айди предмета, при клике которым будет открываться интерфейс рюкзака. Второй - объект, который может содержать следующие поля:
 
Первым аргумент - айди предмета, при клике которым будет открываться интерфейс рюкзака. Второй - объект, который может содержать следующие поля:
  
 +
*<u>''title''</u> - заголовок окна
 
*''<u>slots&nbsp;</u>''- количество слотов в рюкзаки  
 
*''<u>slots&nbsp;</u>''- количество слотов в рюкзаки  
 
*''<u>inRow&nbsp;</u>''- количество слотов в ряду  
 
*''<u>inRow&nbsp;</u>''- количество слотов в ряду  
 
*''<u>slotsCenter&nbsp;</u>''- центрировать ли слоты по ширине  
 
*''<u>slotsCenter&nbsp;</u>''- центрировать ли слоты по ширине  
 +
*<u>''items''</u>- массив предметов, которые&nbsp;можно положить в рюкзак. Описывается&nbsp;регулярными&nbsp;выражениями, айди или&nbsp;объектом с айди и датой (причем оба свойства могут быть заданы&nbsp;регуляркой)
  
В объекте можно объявить метод '''''isValidItem(id, data, count)''''', если он возвращает истину предмет перемещается в слот. Если его нет, будет задан стандартный, который разрешает перемещение всех предметов, кроме других рюкзаков.&nbsp;В данном примере можно положить только камень:
+
В объекте можно объявить метод '''''isValidItem(id, data, count)''''', если он возвращает истину предмет перемещается в слот. Если его нет, будет задан стандартный, который разрешает перемещение всех предметов, описанных в массиве&nbsp;'''''items''''',&nbsp;кроме других рюкзаков.&nbsp;В данном примере можно положить только камень:
 
<syntaxhighlight lang="Javascript">BackpackRegistry.register(ItemID.backpackTest, {
 
<syntaxhighlight lang="Javascript">BackpackRegistry.register(ItemID.backpackTest, {
 
     slots: 20,
 
     slots: 20,
Строка 100: Строка 110:
 
|}
 
|}
  
&nbsp;
+
&nbsp; </div>
 
</div>
 
</div>

Версия 21:24, 10 сентября 2019

BackpackAPI - библиотека, позволяющая создавать рюкзаки.

Загрузка

Версия Ссылка Список изменений
1 Скачать Первая версия

Условия использования

  • Запрещено распространение на сторонних источниках без указания ссылки на официальное сообщество
  • Запрещено изменение кода библиотеки
  • Запрещено явное копирование кода в другие библиотеки или моды 

Используя данный продукт вы автоматически соглашаетесь с этими правилами

Документация

Для регистрации рюкзака необходимо использовать метод register из объекта BackpackRegistry, импортируемый из библиотеки

IMPORT("BackpackAPI");

IDRegistry.genItemID("backpackTest");
Item.createItem("backpackTest", "Test Backpack", {name: "backpackMiners", meta: 0}, {stack: 1});

BackpackRegistry.register(ItemID.backpackTest, {
    title: "My Backpack",
    slots: 80,
    slotsCenter: true,
    inRow: 10,
    items: [
        "^ore.+",
        "^ingot.+",
        1
        {id: 345, data: "^[1-3]$"}
    ]
});

Первым аргумент - айди предмета, при клике которым будет открываться интерфейс рюкзака. Второй - объект, который может содержать следующие поля:

  • title - заголовок окна
  • slots - количество слотов в рюкзаки
  • inRow - количество слотов в ряду
  • slotsCenter - центрировать ли слоты по ширине
  • items- массив предметов, которые можно положить в рюкзак. Описывается регулярными выражениями, айди или объектом с айди и датой (причем оба свойства могут быть заданы регуляркой)

В объекте можно объявить метод isValidItem(id, data, count), если он возвращает истину предмет перемещается в слот. Если его нет, будет задан стандартный, который разрешает перемещение всех предметов, описанных в массиве items, кроме других рюкзаков. В данном примере можно положить только камень:

BackpackRegistry.register(ItemID.backpackTest, {
    slots: 20,
    isValidItem: function (id, data, count) {
        return id === 1;
    }
});

Рюкзакам можно задавать кастомные интерфейсы, но в таком случае все поля описанные выше будут игнорироваться.

let gui = new UI.StandartWindow({
    standart: {
        header: {
            text: {
                text: "Custom Gui"
            }
        },
        inventory: {
            standart: true
        },
        background: {
            standart: true
        }
    },
    drawing: [],
    elements: {}
});

IDRegistry.genItemID("backpackTest");
Item.createItem("backpackTest", "Test Backpack", {name: "backpackMiners", meta: 0}, {stack: 1});

BackpackRegistry.register(ItemID.backpackTest, {
    gui: gui
});

Остальные методы BackpackRegistry

Название Аргументы Описание
openGuiFor id, data, notUpdateData Открывает интерфейс рюкзака. Если notUpdateData равен false и для переданной даты не заригестрирован контейнер, в руку игрока будет установлен новый предмет. Возвращает дату, которая может отличаться от переданной.
isBackpack id Возвращает истину, если предмет с переданным айди - рюкзак
addSlotsToGui gui, slots, isValidFunc, inRow, center, x, y Течнический метод добавляет слотов в объект интерфейса