Porte ouvrir avec les clefs



  • Bonjour j'ai créer des porte et j'aimerais qu'elle s'ouvre avec une clef et se referme avec la meme clef comment faire?

    package fr.r0x4s.cite4.blocks;
    
    import java.util.Random;
    
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    import fr.r0x4s.cite4.Cite4;
    import net.minecraft.block.BlockDoor;
    import net.minecraft.block.material.Material;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.item.Item;
    import net.minecraft.world.World;
     
    public class Porte extends BlockDoor
    {
     
        public Porte(Material iron)
        {
            super(Material.iron);
            this.setHardness(3.0F);
            this.setResistance(5.0F);
            this.disableStats();
        }
     
        @Override
        public Item getItemDropped(int par1, Random rand, int par3)
        {
            return Cite4.ItemPorte;
        }
     
        @Override
        @SideOnly(Side.CLIENT)
        public Item getItem(World world, int x, int y, int z)
        {
            return Cite4.ItemPorte;
        }
     
        @Override
        public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ)
        {
        	if (this.blockMaterial == Material.iron)
            {
                return false; //Allow items to interact with the door
            }
            else
            {
            	int i1 = this.func_150012_g(world, x, y, z);
            	int j1 = i1 & 7;
            	j1 ^= 4;
    //ouvre la porte
            	if ((i1 & 8) == 0)
            	{
            		world.setBlockMetadataWithNotify(x, y, z, j1, 2);
            		world.markBlockRangeForRenderUpdate(x, y, z, x, y, z);
            	}
            	else
            	{
            		world.setBlockMetadataWithNotify(x, y - 1, z, j1, 2);
            		world.markBlockRangeForRenderUpdate(x, y - 1, z, x, y, z);
            	}
            	//jouer le son
            	world.playAuxSFXAtEntity(player, 1003, x, y, z, 0);
     
            return true;
            }
        }
    }
    
    package fr.r0x4s.cite4.items;
    
    import net.minecraft.client.renderer.texture.IIconRegister;
    import net.minecraft.creativetab.CreativeTabs;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.item.Item;
    import net.minecraft.item.ItemStack;
    import net.minecraft.util.IIcon;
    
    public class Clef extends Item
    {
    	public Clef()
    	{
    		super();
    	}
    
    	@Override
    	public void registerIcons(IIconRegister iconregister)
    	{
    		this.itemIcon = iconregister.registerIcon("cite4:clef");
    	}
    
    	@Override
    	public IIcon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining)
    	{
    		return this.itemIcon;
    	}
    }
    
    


  • tu vérifies quand ta porte se fait cliquer dessus que :

    • si c'est la main/autre objet que la clé -> fais rien
    • si c'est la clé en question -> ouvrir la porte

Log in to reply