pasha2004 написал(а):А зачем делать костыли, если есть FishingHooks.removeFish(...)?
Только что нужно писать в скобках - неизвестно.
for (WeightedRandomFishable loot : (List<WeightedRandomFishable>) EntityFishHook.field_146036_f)
FishingHooks.removeFish(Predicates.not(Predicates.equalTo(loot)));
for (WeightedRandomFishable loot : (List<WeightedRandomFishable>) EntityFishHook.field_146041_e)
FishingHooks.removeTreasure(Predicates.not(Predicates.equalTo(loot)));
for (WeightedRandomFishable loot : (List<WeightedRandomFishable>) EntityFishHook.field_146039_d)...
hohserg написал(а):Почитай про Predicate. Если коротко, то это такой объект, который принимает другие объекты и говорит: этот подходит ,а этот нет.
pasha2004 написал(а):так писал, пишет ошибку, что Item не может быть Predicate<WeightedRandomFishable> (или как то так)
UPD: The method removeTreasure(Predicate<WeightedRandomFishable>) in the type FishingHooks is not applicable for the arguments (Item)
junkil335 написал(а):pasha2004 написал(а):так писал, пишет ошибку, что Item не может быть Predicate<WeightedRandomFishable> (или как то так)
UPD: The method removeTreasure(Predicate<WeightedRandomFishable>) in the type FishingHooks is not applicable for the arguments (Item)
Код покажи, указывать нужно так Items.stick
pasha2004 написал(а):UP'чхи
Garik1303 написал(а):pasha2004 написал(а):UP'чхи
Посмотри как сделана в моде "Невермайн"(Сорри ту май инглешь)
И да! Будьте здоровы!
MJaroslav написал(а):Если так хочешь, могу поковыряться в удочке
Это же лучше, чем мне свой мод писать)0)
pasha2004 написал(а):MJaroslav написал(а):Если так хочешь, могу поковыряться в удочке
Это же лучше, чем мне свой мод писать)0)
Не совсем понял о чём ты. А если будешь ковыряться, то ничего, кроме ДОБАВЛЕНИЯ итемов в улов ты не найдёшь. Мне же,как говорил, нужно снести старый ДРОП и установить свой. С первым действием у меня проблемы.
MJaroslav написал(а):pasha2004 написал(а):MJaroslav написал(а):Если так хочешь, могу поковыряться в удочке
Это же лучше, чем мне свой мод писать)0)
Не совсем понял о чём ты. А если будешь ковыряться, то ничего, кроме ДОБАВЛЕНИЯ итемов в улов ты не найдёшь. Мне же,как говорил, нужно снести старый ДРОП и установить свой. С первым действием у меня проблемы.
Ну... у меня появилась задумка для костыля, но делать его буду днём
pasha2004 написал(а):А зачем делать костыли, если есть FishingHooks.removeFish(...)?
Только что нужно писать в скобках - неизвестно.
for (WeightedRandomFishable loot : (List<WeightedRandomFishable>) EntityFishHook.field_146036_f)
FishingHooks.removeFish(Predicates.not(Predicates.equalTo(loot)));
for (WeightedRandomFishable loot : (List<WeightedRandomFishable>) EntityFishHook.field_146041_e)
FishingHooks.removeTreasure(Predicates.not(Predicates.equalTo(loot)));
for (WeightedRandomFishable loot : (List<WeightedRandomFishable>) EntityFishHook.field_146039_d)
FishingHooks.removeJunk(Predicates.not(Predicates.equalTo(loot)));
FishingHooks.addFish(new WeightedRandomFishable(new ItemStack(Items.apple), 1));
FishingHooks.addTreasure(new WeightedRandomFishable(new ItemStack(Items.diamond), 1));
FishingHooks.addJunk(new WeightedRandomFishable(new ItemStack(Items.bone), 1));
FishingHooks.removeJunk(Predicates.not(Predicates.equalTo(копия нужного для удаления WeightedRandomFishable)));
MJaroslav написал(а):pasha2004 написал(а):А зачем делать костыли, если есть FishingHooks.removeFish(...)?
Только что нужно писать в скобках - неизвестно.
Всё известно, недокодер (я) разобрался:
Вот, я экспериментировал с полным удалением улова и добавлением своего (ибо при пустых списках улова - краш):
Код:for (WeightedRandomFishable loot : (List<WeightedRandomFishable>) EntityFishHook.field_146036_f) FishingHooks.removeFish(Predicates.not(Predicates.equalTo(loot))); for (WeightedRandomFishable loot : (List<WeightedRandomFishable>) EntityFishHook.field_146041_e) FishingHooks.removeTreasure(Predicates.not(Predicates.equalTo(loot))); for (WeightedRandomFishable loot : (List<WeightedRandomFishable>) EntityFishHook.field_146039_d) FishingHooks.removeJunk(Predicates.not(Predicates.equalTo(loot))); FishingHooks.addFish(new WeightedRandomFishable(new ItemStack(Items.apple), 1)); FishingHooks.addTreasure(new WeightedRandomFishable(new ItemStack(Items.diamond), 1)); FishingHooks.addJunk(new WeightedRandomFishable(new ItemStack(Items.bone), 1));
А если короче, то юзай вот это:
Код:FishingHooks.removeJunk(Predicates.not(Predicates.equalTo(копия нужного для удаления WeightedRandomFishable)));
/Но так как там проверка просто equals, то есть шанс, что это нифига не заработает, ибо нужна точная копия (да.. ну и берд я сморозил)/
Ну... ты может свой Predicate написать, главное, чтобы он возвращал false в методе apply, если input равен тому, что надо удалить (ну я это так понял ¯\_(ツ)_/¯)
Хм... может написать костыльный мод, чтобы весь улов настраивался конфигом? (Да, злюкой-Json'ом)