WeightAPI - единый апи для весовых инвентарей

WeightAPI - единый апи для весовых инвентарей 0.2.0

Нет прав для скачивания
Версия(и) Minecraft
1.7.10
Вы хотите добавить в игру ограничение переносимых вещей, но хотите сделать это на свой лад? Хотите сами определять как должен рассчитываться вес итемов, свободное место, перегруз и т.д.? Хотите сами решать как перегруз должен влиять на гейплей? Возьмите контроль в свои руки с WeightAPI!

FAQ
Все что вам нужно - выбрасывать WeightChangedEvent при изменении содержимого вашего инвентаря. Вот так просто.
Релизуйте интерфейс IWeightProvider и зарегистрируйте ваш класс в WeightRegistry. Теперь все остальный моды, использующие WeightAPI будут обращаться к вашему классу. Но не забудьте посылать соответствующие евенты (вы найдете их в пакете ru.rarescrap.weightapi.event)
Подпишитесь на евент WeightChangedEvent и реализуйте добавление эффекта замедления:
Код:
@SubscribeEvent
public void onOverload(WeightChangedEvent event) {
    // Накладываем эффект только на сервере и только для игроков
    if (event.entity.worldObj.isRemote || !(event.entity instanceof EntityPlayer)) return;

    EntityPlayer player = (EntityPlayer) event.entity;
    // Определяем, был ли игрок уже замедлен
    boolean isSlowdown = ((EntityPlayer) event.entity).isPotionActive(Potion.moveSlowdown);
    if (event.isOverloaded) { // Определяем, перегружен ли игрок
        if (!isSlowdown) player.addPotionEffect(new EndlessPotionEffect(Potion.moveSlowdown.id, 2));
    } else if (isSlowdown && player.getActivePotionEffect(Potion.moveSlowdown) instanceof EndlessPotionEffect) {
        player.removePotionEffect(Potion.moveSlowdown.id); // Удаляем эффект при снятии перегрузки
    }
}

Чтобы добавить WeightAPI в ваш мод вам следует
1) Добавить maven-репозиторий либы в ваш build.gradle
Gradle (Groovy):
repositories {
    maven {
        url = "https://dl.bintray.com/rarescrap/minecraft"
    }
}
2) Добавить WeightAPI в зависимости:
Gradle (Groovy):
dependencies {
    compile 'ru.rarescrap.weightapi:weightapi:0.2.0_1.7.10'
}
3) Обновить проект командой gradlew build --refresh-dependencies

4) Добавить "weightapi" в пункт dependencies вашего mcmod.info

И все. Вы увидите WeightAPI при следующем запуске игры в окне Mods.

DISCLAMER:
Этот API еще разрабатывается. Сейчас я занят написанием документации, тестированием, портированием на новый версии и т.д. Так что до v1.0.0 прошу тапками не кидаться. Если у вас есть вопрос/пожелание - напишите его тут. Если же вы нашли ошибку или плохое архитектурное решение - прошу, немедленно дайте об это знать. Всяческий анализ кода категорически приветствуется!
Автор
RareScrap
Скачивания
10
Просмотры
71
Первый выпуск
Обновление
Оценка
4.00 звёзд 2 оценок

Другие ресурсы пользователя RareScrap

Последние рецензии

ЛЮДИ, ОДУМАЙТЕСЬ! Перестаньте писать "I" перед интерфейсами в джаве...
RareScrap
RareScrap
А ну держите его! Он общественный строй подрывает! Нехристь
Хорошая работа! Только вот регистрацию лучше сделать через новомодные события
RareScrap
RareScrap
А вот почему это лучше?
Сверху