Параметры

Версия Minecraft
1.7.10
API
Forge
33
3
6
В IEEP есть параметры защиты от разных условий, эти параметры защиты должны давать предметы находящиеся в нескольких слотах.
IEEP:
    private int OneDamageProtection;
    private int TwoDamageProtection;
Предмет:
    public int OneDamageProtection;
    public int TwoDamageProtection;

    public Items(Items items) {
        super();
        this.setMaxStackSize(1);
        this.setCreativeTab(CreativeTabs.tabCombat);
        this.setOneDamageProtection(items.OneDamageProtection);
        this.setTwoDamageProtection(items.TwoDamageProtection);
        GameRegistry.registerItem(this, items.name, Core.MODID);
    }

    public int getOneDamageProtection() {
        return OneDamageProtection;
    }

    public void setOneDamageProtection(int OneDamageProtection) {
        this.OneDamageProtection = OneDamageProtection;
    }

    public int getTwoDamageProtection() {
        return TwoDamageProtection;
    }

    public void setTwoDamageProtection(int TwoDamageProtection) {
        this.TwoDamageProtection = TwoDamageProtection;
    }

}
Прибавляю параметры таким образом
Прибавление параметров:
public void setAttributes(Items items, EntityPlayer player) {
        ExtendedPlayer exp = ExtendedPlayer.get(player);
        if (items.getOneDamageProtection() > 0) {
            exp.setOneDamageProtection(exp.getOneDamageProtection() + items.getOneDamageProtection());
        }
        if (items.getTwoDamageProtection() > 0) {
            exp.setTwoDamageProtection(
                    exp.getTwoDamageProtection() + items.getTwoDamageProtection());
        }
}
Думал поместить в тикер или апдейт игрока, но понимаю, что каждый раз значение будет бесконечно прибавляться.
Вопрос в том, как сделать обновление параметра в том случае, когда предмет/предметы появляется в инвентаре и смена значения на 0, если в инвентаре нет таких предметов которые обновляют параметр
 
Решение
Решил проблему с помощью
Решение:
                         if (exp.oldItemEquipment[i] != slot) {
                        checkItem(player, exp.oldItemEquipment[i], slot, i);
                        if (exp.oldItemEquipment[i] != null) {
                            Clothes cl = (Clothes) exp.oldItemEquipment[i].getItem();
                            if (!player.worldObj.isRemote) {
                                exp.setRadiationDamageProtection(
                                        exp.getRadiationDamageProtection() - cl.getRadiationDamageProtection());
                                exp.syncData();
                            }
                        }
                        exp.oldItemEquipment[i] = slot;
                        if...
33
3
6
Для чего тебе доп слоты, если ты в них кидаешь предмет одного типа?
Все доп. слоты только для вещей, перчатки, ботинки, маска и т.д. Два шлема к примеру не оденутся. Каждый из предметов дает определенную защиту от ударов, укусов, выстрелов, радиации и температуры. Т.К. сказать Rust в майнкрафте
 
33
3
6
Ну так... Запрети просто ложить их туда....
Не понял, кого куда запрещать ложить, зачем?
У меня сделано так, что в файле задается все, включая индекс рендера и индекс конфликтующих предметов. Если индекс предметов одинаковый, то вещь которая была в слотах брони переместиться в инвентарь, а та которая была только что одета, будет на игроке.
Проблема была в том, что я не знал, как правильно поместить показатели, чтобы они постоянно не суммировались и при снятии они отнимались.
 
Сверху