MFF

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

    Ajouter un gui et un container à un bloc

    Planifier Épinglé Verrouillé Déplacé Les interfaces (GUI) et les container
    1.7.x
    129 Messages 21 Publieurs 31.6k Vues 8 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.
    • H Hors-ligne
      Havzen @robin4002
      dernière édition par

      @robin4002 C bon ca a marcher mais maintenant quand je pose mon block et que je click droit Il ne se passe rien (je viens de commencer les dev jsuis un gros noob mdrrr)

      1 réponse Dernière réponse Répondre Citer 0
      • H Hors-ligne
        Havzen
        dernière édition par robin4002

        Voici mes class:

        package fr.havzen.irizium.tileentity;
        
        
        import fr.havzen.irizium.IriMod;
        import fr.havzen.irizium.Reference;
        import net.minecraft.block.Block;
        import net.minecraft.block.material.Material;
        import net.minecraft.entity.EntityLivingBase;
        import net.minecraft.entity.item.EntityItem;
        import net.minecraft.entity.player.EntityPlayer;
        import net.minecraft.inventory.IInventory;
        import net.minecraft.item.ItemStack;
        import net.minecraft.nbt.NBTTagCompound;
        import net.minecraft.tileentity.TileEntity;
        import net.minecraft.tileentity.TileEntityChest;
        import net.minecraft.util.ChatComponentText;
        import net.minecraft.util.ChatComponentTranslation;
        import net.minecraft.util.MathHelper;
        import net.minecraft.world.World;
        
        public class BlockEntity1 extends Block
        {
        
        	public BlockEntity1(Material p_i45394_1_) 
        	{
        		super(p_i45394_1_);
        		
        	}
        
        	@Override
        	public boolean hasTileEntity(int metadata) {
        		
        		return true;
        	}
        
        	@Override
        	public TileEntity createTileEntity(World world, int metadata) {
        		
        		return new TileEntityIrizium();
        	}
        	   public boolean onBlockActivated1(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ)
        	    {
        	        if (world.isRemote)
        	        {
        	            return true;
        	        }
        	        else
        	        {
        	            {
        	                player.openGui(IriMod.modinstance, 0, world, x, y, z);;
        	            }
        
        	            return true;
        	        }
        	    }
        	
        	 public void breakBlock(World world, int x, int y, int z, Block block, int metadata)
        	    {
        	        TileEntity tileentity = world.getTileEntity(x, y, z);
        	        
        	        IInventory inv = (IInventory)tileentity;
        	        if (tileentity instanceof IInventory)
        	        {
        	            for (int i1 = 0; i1 < inv.getSizeInventory(); ++i1)
        	            {
        	                ItemStack itemstack = inv.getStackInSlot(i1);
        
        	                if (itemstack != null)
        	                {
        	                    float f = world.rand.nextFloat() * 0.8F + 0.1F;
        	                    float f1 = world.rand.nextFloat() * 0.8F + 0.1F;
        	                    EntityItem entityitem;
        
        	                    for (float f2 = world.rand.nextFloat() * 0.8F + 0.1F; itemstack.stackSize > 0; world.spawnEntityInWorld(entityitem))
        	                    {
        	                        int j1 = world.rand.nextInt(21) + 10;
        
        	                        if (j1 > itemstack.stackSize)
        	                        {
        	                            j1 = itemstack.stackSize;
        	                        }
        
        	                        itemstack.stackSize -= j1;
        	                        entityitem = new EntityItem(world, (double)((float)x + f), (double)((float)y + f1), (double)((float)z + f2), new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage()));
        	                        float f3 = 0.05F;
        	                        entityitem.motionX = (double)((float)world.rand.nextGaussian() * f3);
        	                        entityitem.motionY = (double)((float)world.rand.nextGaussian() * f3 + 0.2F);
        	                        entityitem.motionZ = (double)((float)world.rand.nextGaussian() * f3);
        
        	                        if (itemstack.hasTagCompound())
        	                        {
        	                            entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy());
        	                        }
        	                    }
        	                }
        	            }
        
        	            world.func_147453_f(x, y, z, block);
        	        }
        
        	        super.breakBlock(world, x, y, z, block, metadata);
        	    }
        	 public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase living, ItemStack stack)
        	 {
        		 if(stack.getItemDamage() == 0)
        		 {
        			 TileEntity tile = world.getTileEntity(x, y, z);
        			 if(tile instanceof TileEntityIrizium)
        			 {
        				 int direction = MathHelper.floor_double((double)(living.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;
        				 ((TileEntityIrizium)tile).setDirection((byte)direction);
        				 if(stack.hasDisplayName())
        				 {
        					 ((TileEntityIrizium)tile).setCustomName(stack.getDisplayName()); 
        				 }
        			 }
        		 }
        	 }
        	
            public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ)
            
            {
            	TileEntity tile = world.getTileEntity(x, y, z);
            	if(tile instanceof TileEntityIrizium)
            	{
            		TileEntityIrizium BlockEntityTest = (TileEntityIrizium)tile;	
            	}
                return false;
            }
        }
        
        1 réponse Dernière réponse Répondre Citer 0
        • H Hors-ligne
          Havzen
          dernière édition par robin4002

          package fr.havzen.irizium.tileentity;
          
          import net.minecraft.entity.player.EntityPlayer;
          import net.minecraft.inventory.IInventory;
          import net.minecraft.item.ItemStack;
          import net.minecraft.nbt.NBTTagCompound;
          import net.minecraft.nbt.NBTTagList;
          import net.minecraft.tileentity.TileEntity;
          import net.minecraftforge.common.util.Constants;
          
          
          public class TileEntityIrizium extends TileEntity implements IInventory
          {
          	private int number;
          	private byte direction;
          	private ItemStack[] contents = new ItemStack [108];
          	private String customName;
          
          	@Override
          	public void readFromNBT(NBTTagCompound compound) 
          	{
          		
          		super.readFromNBT(compound);
          		this.direction = compound.getByte("Direction");
          		
          		 
          		if (compound.hasKey("CustomName", Constants.NBT.TAG_STRING))
          	        {
          	            this.customName = compound.getString("CustomName");
          	        }
                      
          		NBTTagList nbttaglist = compound.getTagList("Items", Constants.NBT.TAG_COMPOUND);
          	        this.contents = new ItemStack[this.getSizeInventory()];
          
          	        if (compound.hasKey("CustomName", 8))
          	        {
          	            this.customName = compound.getString("CustomName");
          	        }
          
          	        for (int i = 0; i < nbttaglist.tagCount(); ++i)
          	        {
          	            NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i);
          	            int j = nbttagcompound1.getByte("Slot") & 255;
          
          	            if (j >= 0 && j < this.contents.length)
          	            {
          	                this.contents[j] = ItemStack.loadItemStackFromNBT(nbttagcompound1);
          	            }
          	        }
          	}
          
          	@Override
          	public void writeToNBT(NBTTagCompound compound)
          	{
          		
          		super.writeToNBT(compound);
          		compound.setByte("Direction", this.direction);
          		
          		 if (this.hasCustomInventoryName())
          	        {
          			 compound.setString("CustomName", this.customName);
          	        }
          		
          		NBTTagList nbttaglist = new NBTTagList();
          
                  for (int i = 0; i < this.contents.length; ++i)
                  {
                      if (this.contents[i] != null)
                      {
                          NBTTagCompound nbttagcompound1 = new NBTTagCompound();
                          nbttagcompound1.setByte("Slot", (byte)i);
                          this.contents[i].writeToNBT(nbttagcompound1);
                          nbttaglist.appendTag(nbttagcompound1);
                      }
                  }
          
                  compound.setTag("Items", nbttaglist);
          
                  if (this.hasCustomInventoryName())
                  {
                  	compound.setString("CustomName", this.customName);
                  }
          	}
          	
          
          
          	public byte getDirection() {
          		return direction;
          	}
          
          	public void setDirection(byte direction) {
          		this.direction = direction;
          	}
          
          	@Override
          	public int getSizeInventory() {
          		
          		return this.contents.length;
          	}
          
          	@Override
          	public ItemStack getStackInSlot(int slotIndex) {
          
          		return this.contents[slotIndex];
          	}
          
          	@Override
          	public ItemStack decrStackSize(int slotIndex, int amount) {
                  if (this.contents[slotIndex] != null)
                  {
                      ItemStack itemstack;
          
                      if (this.contents[slotIndex].stackSize <= amount)
                      {
                          itemstack = this.contents[slotIndex];
                          this.contents[slotIndex] = null;
                          this.markDirty();
                          return itemstack;
                      }
                      else
                      {
                          itemstack = this.contents[slotIndex].splitStack(amount);
          
                          if (this.contents[slotIndex].stackSize == 0)
                          {
                              this.contents[slotIndex] = null;
                          }
          
                          this.markDirty();
                          return itemstack;
                      }
                  }
                  else
                  {
                      return null;
                  }
          	}
          	@Override
          	public ItemStack getStackInSlotOnClosing(int slotIndex) 
          	{
          		 if (this.contents[slotIndex] != null)
          	        {
          	            ItemStack itemstack = this.contents[slotIndex];
          	            this.contents[slotIndex] = null;
          	            return itemstack;
          	        }
          	        else
          	        {
          	            return null;
          	        }
          	}
          	
          	
          
          	@Override
          	public void setInventorySlotContents(int slotIndex, ItemStack stack) 
          	{
          		this.contents[slotIndex] = stack;
          
                  if (stack != null && stack.stackSize > this.getInventoryStackLimit())
                  {
                  	stack.stackSize = this.getInventoryStackLimit();
                  }
          
                  this.markDirty();
          		
          	}
          
          	@Override
          	public String getInventoryName() 
          	{
          		return this.hasCustomInventoryName() ? this.customName : "tile.irizium.chest";
          	}
          
          
          	@Override
          	public boolean hasCustomInventoryName() {
          
          		return this.customName != null && !this.customName.isEmpty();
          	}
          
          	public void setCustomName(String customName) 
          	{
          		this.customName = customName;
          	}
          
          	@Override
          	public int getInventoryStackLimit() 
          	{
          
          		return 240;
          	}
          
          	@Override
          	public boolean isUseableByPlayer(EntityPlayer player) 
          	{
                  return this.worldObj.getTileEntity(this.xCoord, this.yCoord, this.zCoord) != this ? false : player.getDistanceSq((double)this.xCoord + 0.5D, (double)this.yCoord + 0.5D, (double)this.zCoord + 0.5D) <= 64.0D;
              }
          
          	@Override
          	public void openInventory() {
          		
          		
          	}
          
          	@Override
          	public void closeInventory() 
          	{
          
          	}
          
          	@Override
          	public boolean isItemValidForSlot(int slotIndex, ItemStack stack) 
          	{
          		return true;
          	}
          }
          
          1 réponse Dernière réponse Répondre Citer 0
          • H Hors-ligne
            Havzen
            dernière édition par robin4002

            package fr.havzen.irizium.tileentity;
            
            import net.minecraft.entity.player.EntityPlayer;
            import net.minecraft.tileentity.TileEntity;
            import net.minecraft.world.World;
            import cpw.mods.fml.common.network.IGuiHandler;
            
            public class GuiHandlerIri implements IGuiHandler {
            
            	@Override
            	public Object getServerGuiElement(int ID, EntityPlayer player, World world,int x, int y, int z) 
            	{
            		TileEntity tile = world.getTileEntity(x, y, z);
            		if(tile instanceof TileEntityIrizium)
            		{
            			return new ContainerIrizium((TileEntityIrizium)tile, player.inventory);
            		}
            		return null;
            	}
            
            	@Override
            	public Object getClientGuiElement(int ID, EntityPlayer player, World world,int x, int y, int z) 
            	{
            		TileEntity tile = world.getTileEntity(x, y, z);
            		if(tile instanceof TileEntityIrizium)
            		{
            			return new GuiIrizium((TileEntityIrizium)tile, player.inventory);
            		}
            		return null;
            	}
            }
            
            1 réponse Dernière réponse Répondre Citer 0
            • H Hors-ligne
              Havzen
              dernière édition par robin4002

              package fr.havzen.irizium.tileentity;
              
              import net.minecraft.client.gui.inventory.GuiContainer;
              import net.minecraft.entity.player.InventoryPlayer;
              import net.minecraft.inventory.Container;
              
              public class GuiIrizium extends GuiContainer {
              
              
              	public GuiIrizium(TileEntityIrizium tile, InventoryPlayer inventory)
                  {
              		super(new ContainerIrizium(tile, inventory));
              	}
              
              	@Override
              	protected void drawGuiContainerBackgroundLayer(float p_146976_1_,int p_146976_2_, int p_146976_3_) 
              	{
              		
                  }
              }
              
              1 réponse Dernière réponse Répondre Citer 0
              • H Hors-ligne
                Havzen
                dernière édition par robin4002

                Et ma classe init:

                public class BlockMod
                {
                    public static Block Irizium_Block, Irizium_Ore, Cave_Block, testChest, BlockEntityTest;
                
                    public static void init()
                    {
                    	Irizium_Block = new BlockBasic(Material.iron).setBlockName("Irizium_Block").setCreativeTab(CreativeTabs.tabBlock).setBlockTextureName(Reference.IR_ID + ":Irizium_Block").setHardness(3.0f);
                    	Irizium_Ore = new BlockBasic(Material.iron).setBlockName("Irizium_Ore").setCreativeTab(CreativeTabs.tabBlock).setBlockTextureName(Reference.IR_ID + ":Irizium_Ore");
                    	Cave_Block = new BlockBasic(Material.glass).setBlockName("Cave_Block").setCreativeTab(CreativeTabs.tabBlock).setBlockTextureName(Reference.IR_ID + ":Cave_Block");
                    	BlockEntityTest = new BlockEntity1(Material.iron).setBlockName("BlockEntityTest").setCreativeTab(CreativeTabs.tabBlock);
                    }
                    
                    public  static void register()
                    {
                    	GameRegistry.registerBlock(Irizium_Block, Irizium_Block.getUnlocalizedName().substring(5));
                    	GameRegistry.addRecipe(new ItemStack(BlockMod.Irizium_Block, 1), new Object[]{"###", "###", "###", '#', ItemMod.Irizium_Ingot});
                    	GameRegistry.registerBlock(Cave_Block, "Cave_Block");
                    	GameRegistry.registerBlock(Irizium_Ore, "Irizium_Ore");
                    	GameRegistry.registerBlock(BlockEntityTest, "BlockEntityTest");
                    	GameRegistry.registerTileEntity(TileEntityIrizium.class, "BlockEntityTest");
                    	
                    }
                    
                }
                
                1 réponse Dernière réponse Répondre Citer 0
                • H Hors-ligne
                  Havzen
                  dernière édition par

                  @robin4002

                  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

                    Un seul message aurait suffit et avec les balises code c’est mieux.
                    Aussi évites de spammer de mention …

                    Et sinon je t’ai déjà dit que MFF ne fait plus de support pour la 1.7.10 : soit tu utilises une version moderne, soit tu te débrouilles.

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

                      Ok jsuis desolé mais juste aide moi sur ce truc et jte fais plus chier
                      je na sais pas quoi faire

                      1 réponse Dernière réponse Répondre Citer 0
                      • BrokenSwingB BrokenSwing a fait référence à ce sujet sur
                      • robin4002R robin4002 a fait référence à ce sujet sur
                      • robin4002R robin4002 a fait référence à ce sujet sur
                      • robin4002R robin4002 a fait référence à ce sujet sur
                      • 1
                      • 2
                      • 3
                      • 4
                      • 5
                      • 6
                      • 7
                      • 7 / 7
                      • Premier message
                        Dernier message
                      Design by Woryk
                      ContactMentions Légales

                      MINECRAFT FORGE FRANCE © 2024

                      Powered by NodeBB