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

(Created page with " '''BackpackAPI '''- библиотека, позволяющая создавать рюкзаки. == Загрузка == {| border="1" cellpadding="1" cellspacing="1...")
 
Строка 11: Строка 11:
 
|-
 
|-
 
| style="white-space: nowrap; width: 200px; text-align: center;" | '''1'''
 
| style="white-space: nowrap; width: 200px; text-align: center;" | '''1'''
|  
+
| style="text-align: center;" | [https://vk.com/forestry_pe?w=wall-149493963_1420/all Скачать]
 
| Первая версия
 
| Первая версия
 
|}
 
|}
Строка 17: Строка 17:
 
== Условия использования ==
 
== Условия использования ==
  
*Запрещено распростанение на сторонних источниках без указания ссылки на официальное сообщество  
+
*Запрещено распространение на сторонних источниках без указания ссылки на официальное сообщество  
 
*Запрещено изменение кода библиотеки  
 
*Запрещено изменение кода библиотеки  
 
*Запрещено явное копирование кода в другие библиотеки или моды   
 
*Запрещено явное копирование кода в другие библиотеки или моды   
Строка 44: Строка 44:
  
 
В объекте можно объявить метод '''''isValidItem(id, data, count)''''', если он возвращает истину предмет перемещается в слот. Если его нет, будет задан стандартный, который разрешает перемещение всех предметов, кроме других рюкзаков. В данном примере можно положить только камень:
 
В объекте можно объявить метод '''''isValidItem(id, data, count)''''', если он возвращает истину предмет перемещается в слот. Если его нет, будет задан стандартный, который разрешает перемещение всех предметов, кроме других рюкзаков. В данном примере можно положить только камень:
<pre>BackpackRegistry.register(ItemID.backpackTest, {
+
<syntaxhighlight lang="Javascript">BackpackRegistry.register(ItemID.backpackTest, {
 
     slots: 20,
 
     slots: 20,
 
     isValidItem: function (id, data, count) {
 
     isValidItem: function (id, data, count) {
Строка 50: Строка 50:
 
     }
 
     }
 
});
 
});
</pre>
+
</syntaxhighlight>
  
 
Рюкзакам можно задавать кастомные интерфейсы, но в таком случае все поля описанные выше будут игнорироваться.
 
Рюкзакам можно задавать кастомные интерфейсы, но в таком случае все поля описанные выше будут игнорироваться.
<pre>let gui = new UI.StandartWindow({
+
<syntaxhighlight lang="Javascript">let gui = new UI.StandartWindow({
 
     standart: {
 
     standart: {
 
         header: {
 
         header: {
Строка 76: Строка 76:
 
BackpackRegistry.register(ItemID.backpackTest, {
 
BackpackRegistry.register(ItemID.backpackTest, {
 
     gui: gui
 
     gui: gui
});</pre>
+
});</syntaxhighlight>
  
 
=== Остальные методы ''BackpackRegistry'' ===
 
=== Остальные методы ''BackpackRegistry'' ===

Версия 17:14, 9 марта 2018

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

Загрузка

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

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

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

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

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

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

IMPORT("BackpackRegistry");

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

BackpackRegistry.register(ItemID.backpackTest, {
    slots: 80,
    slotsCenter: true,
    inRow: 10
});

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

  • slots - количество слотов в рюкзаки
  • inRow - количество слотов в ряду
  • slotsCenter - центрировать ли слоты по ширине

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

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 Течнический метод добавляет слотов в объект интерфейса