[1.6.4] livingUpdateEvent

Статус
В этой теме нельзя размещать новые ответы.
1,990
18
109
Я под фордж пишу недавно, всего пару дней, возник такой вопрос.
Покопался я в инете, на форумах, да в сурсах форджа, нашел только событие из сабжа - livingUpdateEvent.
В нем определяю игрок ли наша сущность, дальше проверяю слоты брони, ну и если надета нужная мне броня - делаю с ней то, что хочу.
Сам вопрос: может быть есть какой хук получше, который не будет использовать кучу ненужных проверок? Или мой вариант вполне пойдет?
В 1.7+ вроде ввели armorUpdateTick, тут такого нет.
Короче задавайте свои ответы.
 
Я типа не догоняю суть вопроса, но я типа использую так:
Код:
@ForgeSubscribe
public void onEntityUpdate(LivingUpdateEvent e){
ItemStack helmet = e.entityLiving.getCurrentItemOrArmor(4);
ItemStack chestplate = e.entityLiving.getCurrentItemOrArmor(3);
ItemStack leggings = e.entityLiving.getCurrentItemOrArmor(2);
ItemStack boots = e.entityLiving.getCurrentItemOrArmor(1);
ItemStack actHBI = e.entityLiving.getCurrentItemOrArmor(0);//active HotBar Item
ItemStack helmetI;
ItemStack chestplateI;
ItemStack leggingsI;
ItemStack bootsI;
if (helmet != null && chestplate != null && leggings != null && boots != null){
//--------------------------------------------------------------

helmetI = new ItemStack(PackMagic.proxy.armorMagicBoot);
chestplateI = new ItemStack(PackMagic.proxy.armorMagicLeggin);
leggingsI = new ItemStack(PackMagic.proxy.armorMagicChest);
bootsI = new ItemStack(PackMagic.proxy.armorMagicHelmet);
if (boots.itemID == helmetI.itemID && leggings.itemID == chestplateI.itemID && chestplate.itemID == leggingsI.itemID && helmet.itemID == bootsI.itemID) {

if (e.entityLiving.isSneaking()) {

}

if (e.entityLiving.isAirBorne) {

}

if (e.entityLiving.isSprinting()) {
e.entityLiving.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 20 * 1, 3));
}

if (e.entityLiving.isEating()) {
e.entityLiving.addPotionEffect(new PotionEffect(Potion.digSpeed.id, 20 * 1, 3));
}

e.entityLiving.fallDistance -= 0.1F;
}

//--------------------------------------------------------------

}
}
 
Угум, ну у меня так же, только я пренебрег несделанной инкапсуляцией и пошел по прямым переменным.

Код:
@ForgeSubscribe
public void livingUpdateEvent(LivingUpdateEvent event) {
    if (event.entityLiving instanceof EntityPlayer) {
        EntityPlayer player = (EntityPlayer)event.entityLiving;
        ItemStack itemStack = player.inventory.armorInventory[3];

        if (itemStack != null) {
            if (itemStack.getItem() instanceof ItemGlasses) {
                if (itemStack.getItemDamage() < itemStack.getMaxDamage()) {
                    itemStack.setItemDamage(itemStack.getItemDamage()+1);
                }
            }
        }
    }
}

Значит нельзя?
Печальненько.
 
Ну есть же в броне onArmorTickUpdate, он уже очень давно появился.
 
Прикольно, я не ожидал, что его запихают в сраный Item, такой метод было бы логичнее в ItemArmor пихать.
Спасибо First1k, короче, поиск по всем пакетам решает.
Темку можно прикрыть.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху