Non résolu 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