MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    [1.12] Créer un four

    Planifier Épinglé Verrouillé Déplacé Les interfaces (GUI) et les container
    1.11.x
    58 Messages 13 Publieurs 15.9k Vues 7 Watching
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • T Hors-ligne
      TionebBen3119 @robin4002
      dernière édition par robin4002

      @robin4002

      package com.ben.heaven.blocks;
      
      import com.ben.heaven.Heaven;
      import com.ben.heaven.tileentity.TileMachineBuilder;
      
      import net.minecraft.block.BlockContainer;
      import net.minecraft.block.material.Material;
      import net.minecraft.block.state.IBlockState;
      import net.minecraft.entity.EntityLivingBase;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.inventory.InventoryHelper;
      import net.minecraft.item.ItemStack;
      import net.minecraft.tileentity.TileEntity;
      import net.minecraft.util.EnumBlockRenderType;
      import net.minecraft.util.EnumFacing;
      import net.minecraft.util.EnumHand;
      import net.minecraft.util.math.BlockPos;
      import net.minecraft.world.World;
      
      public class MachineBuilder extends BlockContainer {
      	
      	public MachineBuilder(String name, Material materialIn) {
      		
      		super(materialIn);
      		setUnlocalizedName(name);
      		setRegistryName(name);
      		
      	}
      
      	@Override
      	public boolean hasTileEntity() {
      		return true;
      	}
      	@Override
      	public TileEntity createNewTileEntity(World world, int metadata) {
      		return new TileMachineBuilder();
      	}
      
      	@Override
      	public void breakBlock(World worldIn, BlockPos pos, IBlockState state) {
      	    TileEntity tileentity = worldIn.getTileEntity(pos);
      	 
      	    if (tileentity instanceof TileMachineBuilder) {
      	        InventoryHelper.dropInventoryItems(worldIn, pos,
      	                (TileMachineBuilder) tileentity);
      	    }
      	 
      	    super.breakBlock(worldIn, pos, state);
      	}
      	
      	@Override
      	public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {
      	    if (world.isRemote) {
      	        return true;
      	    } else {
      	        TileEntity tileentity = world.getTileEntity(pos);
      	 
      	        if (tileentity instanceof TileMachineBuilder) {
      	            player.openGui(Heaven.instance, 0, world, pos.getX(),
      	                    pos.getY(), pos.getZ());
      	        }
      	 
      	        return true;
      
      	    }
      
      	}
      	
      	@Override
      	public EnumBlockRenderType getRenderType(IBlockState state) {
      	    return EnumBlockRenderType.MODEL;
      
      	}
      	
      	@Override
      	public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack) {
      	    if (stack.hasDisplayName()) {
      	        TileEntity tileentity = worldIn.getTileEntity(pos);
      	 
      	        if (tileentity instanceof TileMachineBuilder) {
      	            ((TileMachineBuilder) tileentity).setCustomName(stack
      	                    .getDisplayName());
      	        }
      	    }
      	}
      }
      
      1 réponse Dernière réponse Répondre Citer 0
      • robin4002R Hors-ligne
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs
        dernière édition par robin4002

        at com.ben.heaven.init.MachineBlock.registerBlocks(MachineBlock.java:32)

        C’est MachineBlock qu’il me faut, pas MachineBuilder.

        T 2 réponses Dernière réponse Répondre Citer 0
        • T Hors-ligne
          TionebBen3119 @robin4002
          dernière édition par

          @robin4002 en fait c’est bon l’erreur etait du a la mauvaise nomination de la fonction merci beaucoup^^

          1 réponse Dernière réponse Répondre Citer 0
          • T Hors-ligne
            TionebBen3119 @robin4002
            dernière édition par robin4002

            @robin4002 par contre g verifie la classe recipe je ne vois pas ce qui ne va pas mais la machine ne transforme pas les pommes et fleche en patate cuite (j’ai repris l’exemple du tuto pour test)065b9b92-f30e-48f7-bc5b-808b4b713b8b-image.png voici egalement ma classe recipe

            package com.ben.heaven.recipes;
            
            import java.util.HashMap;
            import java.util.Iterator;
            import java.util.Map.Entry;
            
            import net.minecraft.init.Items;
            import net.minecraft.item.Item;
            import net.minecraft.item.ItemStack;
            
            public class RecipesMachineBuilder
            {
            	private static final HashMap <ItemStack[], ItemStack>recipes = new HashMap<ItemStack[], ItemStack>();
            	static {
            	    addRecipe(Items.APPLE, Items.ARROW, Items.BAKED_POTATO);
            	}
            	
            	private static void addRecipe(Item ingredient1, Item ingredient2, Item resultat1) {
            	    addRecipe(new ItemStack(ingredient1), new ItemStack(ingredient2), new ItemStack(resultat1));
            	}
            	 
            	private static void addRecipe(ItemStack ingredient1, ItemStack ingredient2, ItemStack resultat1) {
            	    recipes.put(new ItemStack[]{ingredient1, ingredient2}, resultat1);
            	}
            	
            	private static boolean areKeysEqual(ItemStack[] key1, ItemStack[] key2) {
            	    if(key1.length != key2.length) return false;
            	 
            	    for(int i = 0; i < key1.length; i++) {
            	        ItemStack s1 = key1[i];
            	        ItemStack s2 = key2[i];
            	        if(s1.isEmpty() && !s2.isEmpty()) return false;
            	        if(!s1.isEmpty() && s2.isEmpty()) return false;
            	        if(s1.getItem() != s2.getItem()) return false;
            	        if(s1.getItemDamage() != s2.getItemDamage()) return false;
            	    }
            	    return true;
            	}
            	
            	public static ItemStack getRecipeResult(ItemStack[] ingredients) {
            	    Iterator<Entry<ItemStack[], ItemStack>> it = recipes.entrySet().iterator();
            	    while(it.hasNext()) {
            	        Entry <ItemStack[], ItemStack>entry = it.next();
            	        if(areKeysEqual(entry.getKey(), ingredients)) {
            	            return entry.getValue();
            	        }
            	    }
            	    return null;
            	}
            }
            
            T 1 réponse Dernière réponse Répondre Citer 0
            • T Hors-ligne
              TionebBen3119 @TionebBen3119
              dernière édition par

              @robin4002 saurais tu pourquoi la recette ne fonctionne pas ?

              1 réponse Dernière réponse Répondre Citer 0
              • robin4002R Hors-ligne
                robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                dernière édition par

                Non, sinon j’aurai déjà répondu.

                T 1 réponse Dernière réponse Répondre Citer 0
                • T Hors-ligne
                  TionebBen3119 @robin4002
                  dernière édition par

                  @robin4002 d’accord excuse moi ^^

                  1 réponse Dernière réponse Répondre Citer 0
                  • robin4002R Hors-ligne
                    robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                    dernière édition par

                    Il faut que tu debug ton code de ton côté.

                    Lances le jeu en mode debug (icône de scarabée) puis mets des points d’arrêt aux endroits pertinent dans le code (par exemple dans la fonction tick, c’est ici qu’il vérifie s’il y a quelque chose à faire).

                    Quand l’exécution arrive sur un point d’arrêt cela mets en pause le jeu et tu peux observer le contenu des variables.

                    T 1 réponse Dernière réponse Répondre Citer 0
                    • T Hors-ligne
                      TionebBen3119 @robin4002
                      dernière édition par

                      @robin4002 D’accord pour le debug pas de probleme mais les points d’arret et la suite je comprends ce qu’il faut faire mais je ne comprends pas comment ^^

                      1 réponse Dernière réponse Répondre Citer 0
                      • robin4002R Hors-ligne
                        robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                        dernière édition par

                        Premier lien après recherche google : https://pierrejean.wp.imt.fr/2014/02/17/eclipse-debogage-et-points-darrets/

                        Un jour je ferai une vidéo sur l’utilisation du debogguer.

                        1 réponse Dernière réponse Répondre Citer 0
                        • ZunF1xZ Hors-ligne
                          ZunF1x
                          dernière édition par

                          Dans la classe du Gui tu peux supprimer la ligne drawDefaultBackground() et ajouter a la place dans la classe ceci:

                              public void drawScreen(int mouseX, int mouseY, float partialTicks)
                              {
                                  this.drawDefaultBackground();
                                  super.drawScreen(mouseX, mouseY, partialTicks);
                                  this.renderHoveredToolTip(mouseX, mouseY);
                              }
                          

                          comme ca en plus sa rend les tooltips des items quand tu passes dessus 😉

                          1 réponse Dernière réponse Répondre Citer 0
                          • 1
                          • 2
                          • 3
                          • 2 / 3
                          • Premier message
                            Dernier message
                          Design by Woryk
                          ContactMentions Légales

                          MINECRAFT FORGE FRANCE © 2024

                          Powered by NodeBB