Перейти к основному содержанию

BowLib

BowLib — мод-библиотека, упрощающая создание собственного лука.

Использование через Bow

Инициализация

  1. Для начала работы импортируйте библиотеку:

    IMPORT("Bow");
  2. Теперь, создайте предмет и донастройте его:

    IDRegistry.genItemID("cbow");
    Item.createItem("cbow", "Custom Bow", { name: "Cbow", meta: 0 }, { stack: 1 });

    Item.describeItem(ItemID.cbow, {
    toolRender: true, // Рендерить как инструмент
    maxDamage: 385, // Максимальная прочность
    useAnimation: 4 // Анимация использования - 4:лук
    });
  3. Можете создать лук, описание которого будет установлено позже:

    var CustomBow = new Bow();
  4. Добавим само описание, что настроит наш лук:

    CustomBow.set({
    id: ItemID.cbow,
    texture: "Cbow",
    bullets: [262],
    skin: "entity/arrow.png",
    speed: 2,
    damage: 1.5,
    variations: 3,
    })

Отлично! Мы создали новый лук с нужными параметрами.

Методы Bow

МетодОписание
get()Возвращает объект лука
shoot()Принудительный выстрел
set(prototype)Создает описание для работы с луком

Объект описания prototype

{
// идентификатор предмета с которым будет работать библиотека
id: ItemID.test,
// текстура которая будет использоваться для того чтобы анимировать лук
texture: "test",
// массив с идентификаторами предметов которые будут использованы в качестве боеприпаса
bullets: [262],
// путь к папке с текстурой для для изменения текстуры стрелы
skin: "entity/arrow.png",
// скорость с которой будет лететь стрела
speed: 2,
// урон который будет нанесен сущности
damage: 1.5,
// сколько кадров анимации будет у лука. от 0 до n. Сменяются каждые 5 тиков при использовани.
variations: 3
}

Список калбеков

CallbackВозвращаемые значенияВозвращает
BowArrowEntityDamageatacker, victim, damageАтакующего; существо в которое попала стрела; нанесенный урон
BowArrowHitprojectile, item, targetКидаемый предмет; предмет; цель в которую попала стрела
BowOnShotbowПрототип лука в момент выстрела
BowStateChangebowПрототип лука когда меняется состояние лука

Использование через Bows

Позволяет использование методов, которые скрыты.

  1. Для начала работы импортируйте библиотеку:

    IMPORT("Bows");
  2. Теперь, создайте предмет и донастройте его:

    IDRegistry.genItemID("cbow");
    Item.createItem("cbow", "Custom Bow", { name: "Cbow", meta: 0 }, { stack: 1 });

    Item.describeItem(ItemID.cbow, {
    toolRender: true,
    maxDamage: 385,
    useAnimation: 4
    });
  3. Можете создать лук, описание которого будет установлено позже:

    var CustomBow = new Bow();
  4. Добавим само описание, что настроит наш лук:

    CustomBow.set({
    id: ItemID.cbow,
    texture: "Cbow",
    bullets: [262],
    skin: "entity/arrow.png",
    speed: 2,
    damage: 1.5,
    variations: 3,
    })

Отлично! Мы создали новый лук с нужными параметрами.

Объект Bows

МетодОписание
aimОтдает картинку прицела кодированную в base64
ingameОтдает значение true/false, Проверка того что игрок в игре
currentBowОтдает объект описания текущего лука
aimShownОтдает значение true/false когда показывается прицел
bowInfoОтдает список из BowId: info
dynamicPropsОтдает объекты bullets[] и hurt[]
windowAimОтдает окно PopupWindow с прицелом
addNewBow(prototype)Создает новый лук с прототипом prototype
setShoot(BowId, bool)Включает/Выключает луку с BowId режим стрельбы
getShoot(BowId)Отдает режим стрельбы: true/false или null
addBullet(bInfo)
addHurt(hInfo)
addUI()Устанавливает окно PopupWindow с прицелом в windowAim
getCurrentBow()Отдает текущий лук в руке или null
setCurrentBow(BowId)Устанавливает текущий лук BowId если он есть в bowInfo и возвращает currentBow
addBulletFilter(projectile, item, target)Добавляет в фильтр стрел - projectile, item, target
addCallbacks()Устанавливает калбеки: смены анимации, изменения интерфейса, начала разрушения блока
getBullet(bullets)Отдает id предмета используемого как боеприпас или null
shoot()Принудительный выстрел из текущего лука
animateShoot()Принудительная смена анимации
updateAim()Принудительное обновление состояния прицела