Résolu Restaurer la barre d'oxygène ( Et quelques demandes pour potions )
-
je vais faire simple : je pensait que pour restaurer une barre d’oxygène, il suffisait d’avoir un effet de respiration aquatique très élevé pendent un très court instant mais non
Aurait-il une méthode, ou autre pour restaurer à 100% la jauge d’oxygène ? -
je suppose que c’est si tu a un casque cela fait regen la barre?
-
Non, j’ai crée une bouteille d’air, et j’aimerai que le fait de la boire te regen la totalité de ta barre
( Désolé de ne pas l’avoir précisé ) -
player.setAir(300);
-
ça fonctionne
Je vais demander quelques petits truc
C’est de l’air, ca se boit pas en 1sec, mais bcp plus rapidement. Serait-ce possible d’accelerer enormément la vitesse de consomation ?
Et j’aime pas trop le fait que Steve MANGE la fiole… J’aimerai la récupérer tout de même…
J’ai pourtant mis la fonction this.setContainerItem(BottleHerm.bottleherm); -
Envoie ton code.
Par contre aucun idée de comment accélérer. (ah, peut être avec la fonction getItemDuration ou un truc du genre). -
package eryah.usefulthings.init; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumAction; import net.minecraft.item.Item; import net.minecraft.item.ItemFood; import net.minecraft.item.ItemStack; import net.minecraft.world.World; import net.minecraftforge.fml.common.registry.GameRegistry; import eryah.usefulthings.Reference; import eryah.usefulthings.UsefulthingsMod; public class AirBottle extends ItemFood { public static Item air_bottle; private int potionId; private int potionDuration; private static int potionAmplifier; private static boolean alwaysEdible; private float potionEffectProbability; public AirBottle() { super(potionAmplifier, alwaysEdible); this.setFull3D(); this.setContainerItem(BottleHerm.bottleherm); } public static void init(){ air_bottle = new AirBottle().setUnlocalizedName("air_bottle").setCreativeTab(UsefulthingsMod.UTTab); } public static void register() { GameRegistry.registerItem(air_bottle, air_bottle.getUnlocalizedName().substring(5)); } public static void registerRenders() { registerRender(air_bottle); } public static void registerRender(Item item) { Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(Reference.MOD_ID + ":" + item.getUnlocalizedName().substring(5), "inventory")); } public EnumAction getItemUseAction(ItemStack par1ItemStack) { return EnumAction.DRINK; } @Override protected void onFoodEaten(ItemStack stack, World worldIn, EntityPlayer player) { super.onFoodEaten(stack, worldIn, player); player.setAir(300); } }
-
Il faut ajouter :
playerIn.inventory.addItemStackToInventory(new ItemStack(Items.glass_bottle));
Dans ta fonction onFoodEaten.
Pour le temps :
public int getMaxItemUseDuration(ItemStack stack) { return 32; }
-
C’est bon
Mais encore un problème : Il faut avoir faim pour boire la potion.
Pourtant, il y a la méthode alwaysEdiblepackage eryah.usefulthings.init; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumAction; import net.minecraft.item.Item; import net.minecraft.item.ItemFood; import net.minecraft.item.ItemStack; import net.minecraft.world.World; import net.minecraftforge.fml.common.registry.GameRegistry; import eryah.usefulthings.Reference; import eryah.usefulthings.UsefulthingsMod; public class AirBottle extends ItemFood { public static Item air_bottle; private int potionId; private int potionDuration; private static int potionAmplifier; private static boolean alwaysEdible; private float potionEffectProbability; public AirBottle() { super(potionAmplifier, alwaysEdible); this.setFull3D(); this.setContainerItem(BottleHerm.bottleherm); } public static void init(){ air_bottle = new AirBottle().setUnlocalizedName("air_bottle").setCreativeTab(UsefulthingsMod.UTTab); } public static void register() { GameRegistry.registerItem(air_bottle, air_bottle.getUnlocalizedName().substring(5)); } public static void registerRenders() { registerRender(air_bottle); } public static void registerRender(Item item) { Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(Reference.MOD_ID + ":" + item.getUnlocalizedName().substring(5), "inventory")); } public EnumAction getItemUseAction(ItemStack par1ItemStack) { return EnumAction.DRINK; } @Override protected void onFoodEaten(ItemStack stack, World worldIn, EntityPlayer player) { super.onFoodEaten(stack, worldIn, player); player.setAir(300); player.inventory.addItemStackToInventory(new ItemStack(BottleHerm.bottleherm)); } public int getMaxItemUseDuration(ItemStack stack) { return 10; } **@Override** ** public ItemFood setAlwaysEdible() {** ** return super.setAlwaysEdible();** ** }** }
-
Faut faire comme ça :
package eryah.usefulthings.init; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumAction; import net.minecraft.item.Item; import net.minecraft.item.ItemFood; import net.minecraft.item.ItemStack; import net.minecraft.world.World; import net.minecraftforge.fml.common.registry.GameRegistry; import eryah.usefulthings.Reference; import eryah.usefulthings.UsefulthingsMod; public class AirBottle extends ItemFood { public static Item air_bottle; public AirBottle() { super(0, false); this.setFull3D(); this.setContainerItem(BottleHerm.bottleherm); this.setAlwaysEdible(); } public static void init(){ air_bottle = new AirBottle().setUnlocalizedName("air_bottle").setCreativeTab(UsefulthingsMod.UTTab); } public static void register() { GameRegistry.registerItem(air_bottle, air_bottle.getUnlocalizedName().substring(5)); } public static void registerRenders() { registerRender(air_bottle); } public static void registerRender(Item item) { Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(Reference.MOD_ID + ":" + item.getUnlocalizedName().substring(5), "inventory")); } public EnumAction getItemUseAction(ItemStack par1ItemStack) { return EnumAction.DRINK; } @Override protected void onFoodEaten(ItemStack stack, World worldIn, EntityPlayer player) { super.onFoodEaten(stack, worldIn, player); player.setAir(300); player.inventory.addItemStackToInventory(new ItemStack(BottleHerm.bottleherm)); } public int getMaxItemUseDuration(ItemStack stack) { return 10; } }
-
Tout fonctionne
Merci beaucoup robin -
Balise résolu ?
-
Étrange qu’elle ne soit pas l’à…
Je l’ai pourtant mise hier soir. Des que j’allume le PC je l’à changeEnvoyé de mon SM-G357FZ en utilisant Tapatalk
-
C’est bon je m’en suis chargé.