SOLVED Problème de direction quand ont pose le block à terre.


  • Bonjour à tous,

    je suis toujours à la recherche d’une solution pour la direction de mon block, c’est a dire quand je pose mon block a terre et que sa soit le nord, ouest, est ou sud et que la texture (devant)soit en face à moi.Je sais que c’est un problème de metadata (et j’ai du mal avec les metadata justement), donc je viens recueillir votre aide.
    Quelles photo pour info de ce que je veut :

    ![](http://bountycraft.power-heberg.com/Images perso/mods.png)

    ![](http://bountycraft.power-heberg.com/Images perso/mods1.png) ![](http://bountycraft.power-heberg.com/Images perso/mods2.png)

    Merci d’avance…

    [mon code]

    package crepi.mod;
    
    import java.util.List;
    
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    import net.minecraft.block.Block;
    import net.minecraft.block.material.Material;
    import net.minecraft.client.renderer.texture.IconRegister;
    import net.minecraft.creativetab.CreativeTabs;
    import net.minecraft.item.ItemStack;
    import net.minecraft.util.Icon;
    
    public class BlockComptoir1 extends Block
    {
    public BlockComptoir1(int par1, Material par2Material)
    {
    super(par1, par2Material);
    this.setCreativeTab(ModBuild.CreativeTabAccessoire);
    }
    
    private Icon bottomIcon; // dessus
    private Icon topIcon; // dessous
    private Icon sideIcon; // face
    private Icon frontIcon; // devant
    private Icon rearIcon; // dos
    
    @SideOnly(Side.CLIENT)
    public Icon getIcon(int par1, int par2)
    {
    if(par1 == 0 && par2 == 0){return this.bottomIcon; // dessous
    } else if
    (par1 == 1 && par2 == 0){return this.topIcon; // dessus
    } else if
    (par1 == 2 && par2 == 0){return this.rearIcon; // dos
    } else if
    (par1 == 3 && par2 == 0){return this.frontIcon; // devant
    } else if
    (par1 == 4 && par2 == 0){return this.bottomIcon; // gauche
    } else if
    (par1 == 5 && par2 == 0){return this.bottomIcon; // droite
    } else{
    return this.sideIcon;}
    }
    
    @Override
    @SideOnly(Side.CLIENT)
    
    public void registerIcons(IconRegister reg)
    {
    
    this.blockIcon = reg.registerIcon("comptoir1");
    this.topIcon = reg.registerIcon("comptoir_dessus"); // haut
    this.bottomIcon = reg.registerIcon("comptoir_coter"); // bas
    this.sideIcon = reg.registerIcon("comptoir_coter"); // droite & gauche
    this.frontIcon = reg.registerIcon("comptoir1"); // devant
    this.rearIcon = reg.registerIcon("comptoir_logo1"); // dos
    }
    
    public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase living, ItemStack stack)
    {
    int direction = MathHelper.floor_double((double)(living.rotationYaw * 4.0F / 360.0F) + 2.5D) & 3;
    world.setBlockMetadataWithNotify(x, y, z, direction, 2);
    }
    
    }
    

    Merci d’avance pour votre aide.
    Je vais encore survoler le forum voir si j’aurais pas oublié de voir quelques info à ce sujet.

    Bounty…

  • Administrateurs Rédacteurs Moddeurs confirmés

    public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase living, ItemStack stack)
    {
    int direction = MathHelper.floor_double((double)(living.rotationYaw * 4.0F / 360.0F) + 2.5D) & 3;
    world.setBlockMetadataWithNotify(x, y, z, direction, 2);
    }
    

    Sans ce code ça peut pas fonctionner.
    Et sinon => http://www.minecraftforgefrance.fr/showthread.php?tid=115


  • Re,

    J’ai placer le code suivant le topic Direction de bloc à l’adresse que tu ma donné, mais il me souligne en rouge EntityLivingBase et la je vois pas il me demande de créer la class EntityLivingBase ou de refaire les paramètre.

    ![](http://bountycraft.power-heberg.com/Images perso/entity.png).

    Je suis encore en ver. 1.5.1

    Bounty…

  • Administrateurs

    Clique sur “Change to ‘EntityLiving’”


  • Re bonjour à tous,

    Merci tout d’abord à Robin4002 et Elias54 pour leur aide qui ma été d’un grand secours,
    sans les quelles je devrait dire que j’y serait encore sur mon script.

    je me suis permis de reposer mon (code) rectifier car je ne savez pas trop s’il fallait
    le rééditer.

    
    package crepi.mod;
    
    import java.util.List;
    
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    import net.minecraft.block.Block;
    import net.minecraft.block.BlockDirectional;
    import net.minecraft.block.material.Material;
    import net.minecraft.client.renderer.texture.IconRegister;
    import net.minecraft.creativetab.CreativeTabs;
    import net.minecraft.entity.EntityLiving;
    import net.minecraft.item.ItemStack;
    import net.minecraft.util.Icon;
    import net.minecraft.util.MathHelper;
    import net.minecraft.world.World;
    
    public class BlockComptoir1 extends BlockDirectional{
    
    public BlockComptoir1(int par1, Material par2Material)
    {
    super(par1, par2Material);
    this.setCreativeTab(ModBuild.CreativeTabAccessoire);
    }
    // - Mes4Texures - //
    private Icon iconfront; // LeDevant
    private Icon icontop; // LeDessous
    private Icon iconbottom; // LeDessus
    private Icon iconrear; // LeDos
    
    @SideOnly(Side.CLIENT)
    public Icon getIcon(int side, int metadata)
    {
    return side == 1 ? this.icontop : (side == 0 ? this.iconbottom : (metadata == 2 && side == 2 ?
    this.iconfront : (metadata == 3 && side == 5 ? this.iconfront : (metadata == 0 && side == 3 ?
    this.iconfront : (metadata == 1 && side == 4 ? this.iconfront : this.blockIcon)))));
    }
    
    @Override
    @SideOnly(Side.CLIENT)
    public void registerIcons(IconRegister iconRegister)
    {
    blockIcon = iconRegister.registerIcon("comptoir_coter");
    iconfront = iconRegister.registerIcon("comptoir1"); // LeDevant
    icontop = iconRegister.registerIcon("comptoir_dessus"); // LeHaut
    iconbottom = iconRegister.registerIcon("comptoir_coter"); // LeBas
    iconrear = iconRegister.registerIcon("comptoir_logo1"); // LeDos
    }
    
    public void onBlockPlacedBy(World world, int x, int y, int z, EntityLiving living, ItemStack stack)
    {
    int direction = MathHelper.floor_double((double)(living.rotationYaw * 4.0f / 360.0f) + 2.5D) & 3;
    world.setBlockMetadataWithNotify(x, y, z, direction, 2);
    }
    }
    
    

    Une dernière chose encore sur mon code j’aurais voulu que le derrière de mon cube est un autre
    texture (iconrear), car la elle la (blockIcon) et je ne vois pas entre qui je dois la mettre.
    Et si vous pouviez m’aider encore une fois svp.

    
    public Icon getIcon(int side, int metadata)
    {
    return side == 1 ? this.icontop : (side == 0 ? this.iconbottom : (metadata == 2 && side == 2 ?
    this.iconfront : (metadata == 3 && side == 5 ? this.iconfront : (metadata == 0 && side == 3 ?
    this.iconfront : (metadata == 1 && side == 4 ? this.iconfront : this.blockIcon)))));
    }
    
    

    Merci d’avance.

    Bounty…

  • Administrateurs Rédacteurs Moddeurs confirmés

    public Icon getIcon(int side, int metadata)
    {
    return side == 1 ? this.icontop : (side == 0 ? this.iconbottom : (metadata == 2 && side == 2 ? this.iconfront : (metadata == 3 && side == 5 ? this.iconfront : (metadata == 0 && side == 3 ? this.iconfront : (metadata == 1 && side == 4 ? this.iconfront : (metadata == 2 && side == 3 ? this.iconbehind : (metadata == 3 && side == 4 ? this.iconbehind : (metadata == 0 && side == 2 ? this.iconbehind : (metadata == 1 && side == 5 ? this.iconbehind : this.blockIcon)))))))));
    }
    

  • Bonjour à tous,

    Merci encore, problème entièrement résolu.

    Bounty…