- 737
- 2
Как в печи, все оттуда. Токо там метод func_151397_a что-лиAsd73 написал(а):В методе func_1_a:
https://github.com/VovaMaster/RCServMod/blob/master/src/main/java/ru/vovamaster99/rcservmod/ob/crafts/MHRecipes.java#L54
itemStack.getItem() == itemstack.getItem()
itemStack.getItemDamage() == itemstack.getItemDamage()
Это же всегда будет возвращать истину. И тогда цикл while (func_1_a(itemstack, (ItemStack)entry.getKey())); все повесит.
Я так и не понял какого вида нужно сделать рецепты.
Я имел ввиду, сделать, что бы при покладывании итема в слот(указанного в рецепте) по прошествии определенного времени срабатывала смена итема. Сложно, проще обьяснить на примере печи.Agravaine написал(а):Работает и так, по идее.
Перед тем как что-то делать, нужно поточнее сформулировать задачу.Vova_master написал(а):Сложно, проще обьяснить на примере печи.
Да, не заметил что сравниваются разные итемы, слишком уж похожие у них имена.Vova_master написал(а):Как в печи, все оттуда. Токо там метод func_151397_a что-ли
1 рецепт, может, позже будет еще и изменение их возможностей(смешивая с зельями). И про материю ты прав. Но мне хотя бы что бы оно просто по истечении какого-то времени убирало из слота 0 и добавляло в слот 1Asd73 написал(а):Перед тем как что-то делать, нужно поточнее сформулировать задачу.Vova_master написал(а):Сложно, проще обьяснить на примере печи.
Сколько будет рецептов, один, два или больше? Если будет несколько разных крафтов, то предметы будут крафтится одинаковое или разное время?
Или как в грегтехе сначала удалять предметы из входных слотов, а только потом запускать процесс обработки?
Крафтится все будет из одного вида предмета (какой-то материи) или из разных предметов?
Может быть результат крафта выбирать из списка в гуи, как в конденсаторе из Applied Energistics?
В любом случае не стоит брать код из печки. Попробуй нарисовать блок-схему алгоритма или описать каким-нибудь псевдокодом (или просто словами по пунктам).
Да, не заметил что сравниваются разные итемы, слишком уж похожие у них имена.Vova_master написал(а):Как в печи, все оттуда. Токо там метод func_151397_a что-ли
@Override
public void updateEntity() {
if (!getWorldObj().isRemote) {
ItemStack istack = getStackInSlot(0);
if (istack != null) {
if (handlingTime != 20) handlingTime++;
if (handlingTime == 20) {
handlingTime = 0;
decrStackSize(0, 1);
if (getStackInSlot(1) != null)
setInventorySlotContents(1, new ItemStack(Blocks.stone, ++getStackInSlot(1).stackSize));
else
setInventorySlotContents(1, new ItemStack(Blocks.stone));
markDirty();
}
} else {
handlingTime = 0;
}
}
}
Может, for или while? что-то не пашет. Ща пробну, отпишусьAsd73 написал(а):Код:if (handlingTime != 20) handlingTime++;