Résolu Custom Fuel en 1.13.2
-
Bonjour, du au faite que la forge 1.13.2 et ressente je n’arrive pas a trouve comme faire un
Custom Fuel
, car apparemment lesInterface
etClass
, de la version 1.12.2 ne sont plus pressent.
Des idée sur comment faire unCustom Fuel
? Car je ne trouve pas d’info a propos de ça… -
C’est bon j’ai trouvé, en fessant un peux de rétro-ingénierie.
Enfaite la classItem
implemente l’interfaceIForgeItem
et dans cette interface on a une fonctiondefault int getBurnTime(ItemStack itemStack)
, il sufi juste de l’override.
Sa donne ça.import net.minecraft.item.Item; import net.minecraft.item.ItemStack; public class CustomItem extends Item { private int burnTime; public CustomItem(Properties p_i48487_1_, String name, int burnTime) { super(p_i48487_1_); this.setRegistryName(name); this.burnTime = burnTime; } @Override public int getBurnTime(ItemStack itemStack) { return this.burnTime; } }
Je passe le topic en résolu.
-
Salut,
Tu veux faire un fluide ou tu parles d’ajouter un item utilisable comme carburant pour le four ?
-
je veux juste faire un item utilisable comme carburant, c’est tous.
-
Visiblement cela a été remplacé par l’événement FurnaceFuelBurnTimeEvent.
Avec event.getItemStack() tu peux récupérer l’item qui a été mis dans le four, donc fait une condition dessus, si l’item est celui voulu appeles la fonction event.setBurnTime(temps) pour donner le temps.
-
Je vien de faire ceci mais je ne peux pas mettre l’item dans le slot du four.
Au niveau code j’ai ceci.
j’ai un doute dans mes equalité dans le FurnaceEvent on mes un==
ou un.equals(objet)
import net.minecraft.item.ItemStack; import net.minecraftforge.event.furnace.FurnaceFuelBurnTimeEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; @Mod.EventBusSubscriber(modid = SomeCoal.MOD_ID) public class FurnaceEvent { @SubscribeEvent public static void onFurnaceFuelBurnTime(FurnaceFuelBurnTimeEvent event) { if (event.getItemStack() == new ItemStack(ItemInit.blaze_coal)) { event.setBurnTime(4000); } if (event.getItemStack() == new ItemStack(ItemInit.sugar_coal)) { event.setBurnTime(800); } if (event.getItemStack() == new ItemStack(BlockInit.blaze_coal_block)) { event.setBurnTime(36000); } if (event.getItemStack() == new ItemStack(BlockInit.sugar_coal_block)) { event.setBurnTime(7200); } } }
et
public SomeCoal() { [...] MinecraftForge.EVENT_BUS.register(FurnaceEvent.class); }
-
C’est bon j’ai trouvé, en fessant un peux de rétro-ingénierie.
Enfaite la classItem
implemente l’interfaceIForgeItem
et dans cette interface on a une fonctiondefault int getBurnTime(ItemStack itemStack)
, il sufi juste de l’override.
Sa donne ça.import net.minecraft.item.Item; import net.minecraft.item.ItemStack; public class CustomItem extends Item { private int burnTime; public CustomItem(Properties p_i48487_1_, String name, int burnTime) { super(p_i48487_1_); this.setRegistryName(name); this.burnTime = burnTime; } @Override public int getBurnTime(ItemStack itemStack) { return this.burnTime; } }
Je passe le topic en résolu.
-
Ah oui ça fonctionne aussi comme cela.
Pour ton code avec l’event, il aurait fallut utiliser
ItemStack.areItemsEqual(event.getItemStack(), new ItemStack(ItemInit.sugar_coal))
ou tout simplementevent.getItemStack().getItem() == ItemInit.sugar_coal
et cela aurait été bon.