что делать если мало переопределения методов

Версия Minecraft
1.7.10
235
3
21
вечер добрый
допустим у меня есть обычный класс ItemFood в нем предусмотрен метод .setPotionEffect(...), он дает игроку эффект зелья при использовании еды, но если я хочу сделать 2 эффекта, так же есть метод .onFoodEaten(...)
Java:
protected void onFoodEaten(ItemStack p_77849_1_, World p_77849_2_, EntityPlayer p_77849_3_)
{
    if (!p_77849_2_.isRemote && this.potionId > 0 && p_77849_2_.rand.nextFloat() < this.potionEffectProbability)
    {
        p_77849_3_.addPotionEffect(new PotionEffect(this.potionId, this.potionDuration * 20, this.potionAmplifier));
    }
}
его можно переопределить и напрямую игроку впихнуть несколько эффектов
НО появляется проблема в "this.potionId > 0" ибо данная переменная находящаяся в классе ItemFood приватная и для нее предусмотрен сеттер через .setPotionEffect(...), но нет геттера и проверить ее никак нельзя
и таких ситуация у меня уже несколько, есть ли какое-то решение для этого, можно ли допустим создать свой класс MyItemFood схожий по структуре с оригиналом, но модифицированный мной и использовать его?
также допустим если мне нужно изменить простого зомби больше чем на половину, начиная от логики, заканчивая рандомными текстурами, новвыми приемами и прочим как это реализовать, как то менять его класс или создать свой, а простого зомби просто не спавнить?

заренее спасибо, надеюсь понятно)
 
Решение
можно ли допустим создать свой класс MyItemFood схожий по структуре с оригиналом, но модифицированный мной и использовать его?
Можно.
также допустим если мне нужно изменить простого зомби больше чем на половину, начиная от логики, заканчивая рандомными текстурами, новвыми приемами и прочим как это реализовать, как то менять его класс или создать свой, а простого зомби просто не спавнить?
Ванильный изменить - типа через хуки, к примеру от GloomyFolken, но это не очень особенно когда можно заменить на своего.
Создаёшь своего, регистрируешь и через эвент спавна Entity - EntityJoinWorldEvent, проверяешь что это ванильный зомби, не даёшь ему спавниться типа отменяя спавн и добавляешь спаван своего. Но если ты...
можно ли допустим создать свой класс MyItemFood схожий по структуре с оригиналом, но модифицированный мной и использовать его?
Можно.
также допустим если мне нужно изменить простого зомби больше чем на половину, начиная от логики, заканчивая рандомными текстурами, новвыми приемами и прочим как это реализовать, как то менять его класс или создать свой, а простого зомби просто не спавнить?
Ванильный изменить - типа через хуки, к примеру от GloomyFolken, но это не очень особенно когда можно заменить на своего.
Создаёшь своего, регистрируешь и через эвент спавна Entity - EntityJoinWorldEvent, проверяешь что это ванильный зомби, не даёшь ему спавниться типа отменяя спавн и добавляешь спаван своего. Но если ты своего Entity унаследуешь от EntityZombie, то сделай в условии исключение на твоего Entity.
 
Для своих поушенов можно указывать предметы, которые снимают твой эффект.
Java:
public java.util.List<net.minecraft.item.ItemStack> getCurativeItems()
    {
        java.util.ArrayList<net.minecraft.item.ItemStack> ret = new java.util.ArrayList<net.minecraft.item.ItemStack>();
        ret.add(new net.minecraft.item.ItemStack(net.minecraft.init.Items.MILK_BUCKET));
        return ret;
    }
 
Назад
Сверху