Testforblock
-
Ce message a été supprimé ! -
Un testfor ?
Sans l’exemple j’aurai pas compris …
Dans ce cas précis, dans le code de ton il te faudra découper ton modèle en plusieurs morceaux, et rendre les différentes morceaux en fonction des blocs qui se trouve autour. Pour ça il suffit d’utiliser if(world.getBlock(x + 1, y, z) == Blocks.chest) -> faire le rendu
Et il faut le faire 4 ou 6 fois pour toutes les directions ( x - 1, y, z ; x , y, z + 1 ; x , y, z - 1 et si tu veux aussi le bas et le haut même chose avec y).Cherches un peu dans les posts résolu, cette question à déjà été posé.
-
@‘robin4002’:
Un testfor ?
Sans l’exemple j’aurai pas compris …
Dans ce cas précis, dans le code de ton il te faudra découper ton modèle en plusieurs morceaux, et rendre les différentes morceaux en fonction des blocs qui se trouve autour. Pour ça il suffit d’utiliser if(world.getBlock(x + 1, y, z) == Blocks.chest) -> faire le rendu
Et il faut le faire 4 ou 6 fois pour toutes les directions ( x - 1, y, z ; x , y, z + 1 ; x , y, z - 1 et si tu veux aussi le bas et le haut même chose avec y).Cherches un peu dans les posts résolu, cette question à déjà été posé.
Ce serais pas cette partie du code de la redstone ?
public void onBlockAdded(World p_149726_1_, int p_149726_2_, int p_149726_3_, int p_149726_4_) { super.onBlockAdded(p_149726_1_, p_149726_2_, p_149726_3_, p_149726_4_); if (!p_149726_1_.isRemote) { this.func_150177_e(p_149726_1_, p_149726_2_, p_149726_3_, p_149726_4_); p_149726_1_.notifyBlocksOfNeighborChange(p_149726_2_, p_149726_3_ + 1, p_149726_4_, this); p_149726_1_.notifyBlocksOfNeighborChange(p_149726_2_, p_149726_3_ - 1, p_149726_4_, this); this.func_150172_m(p_149726_1_, p_149726_2_ - 1, p_149726_3_, p_149726_4_); this.func_150172_m(p_149726_1_, p_149726_2_ + 1, p_149726_3_, p_149726_4_); this.func_150172_m(p_149726_1_, p_149726_2_, p_149726_3_, p_149726_4_ - 1); this.func_150172_m(p_149726_1_, p_149726_2_, p_149726_3_, p_149726_4_ + 1); if (p_149726_1_.getBlock(p_149726_2_ - 1, p_149726_3_, p_149726_4_).isNormalCube()) { this.func_150172_m(p_149726_1_, p_149726_2_ - 1, p_149726_3_ + 1, p_149726_4_); } else { this.func_150172_m(p_149726_1_, p_149726_2_ - 1, p_149726_3_ - 1, p_149726_4_); } if (p_149726_1_.getBlock(p_149726_2_ + 1, p_149726_3_, p_149726_4_).isNormalCube()) { this.func_150172_m(p_149726_1_, p_149726_2_ + 1, p_149726_3_ + 1, p_149726_4_); } else { this.func_150172_m(p_149726_1_, p_149726_2_ + 1, p_149726_3_ - 1, p_149726_4_); } if (p_149726_1_.getBlock(p_149726_2_, p_149726_3_, p_149726_4_ - 1).isNormalCube()) { this.func_150172_m(p_149726_1_, p_149726_2_, p_149726_3_ + 1, p_149726_4_ - 1); } else { this.func_150172_m(p_149726_1_, p_149726_2_, p_149726_3_ - 1, p_149726_4_ - 1); } if (p_149726_1_.getBlock(p_149726_2_, p_149726_3_, p_149726_4_ + 1).isNormalCube()) { this.func_150172_m(p_149726_1_, p_149726_2_, p_149726_3_ + 1, p_149726_4_ + 1); } else { this.func_150172_m(p_149726_1_, p_149726_2_, p_149726_3_ - 1, p_149726_4_ + 1); } } }
-
sa marche pas
package com.XDoctorX.block; import com.XDoctorX.TileEntity.TileEntityCable; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.init.Blocks; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; public class BlockCable extends Block { public BlockCable(Material p_i45394_1_) { super(p_i45394_1_); // TODO Auto-generated constructor stub } public void onBlockAdded(World p_149726_1_, int p_149726_2_, int p_149726_3_, int p_149726_4_){ super.onBlockAdded(p_149726_1_, p_149726_2_, p_149726_3_, p_149726_4_); if (!p_149726_1_.isRemote){ if(p_149726_1_.getBlock(p_149726_2_ + 1, p_149726_3_, p_149726_4_) != Blocks.chest){ p_149726_1_.setBlock(p_149726_2_, p_149726_3_ + 1, p_149726_4_, Blocks.bedrock); } } } @Override public TileEntity createTileEntity(World world, int metadata) { return new TileEntityCable(); } @Override public boolean hasTileEntity(int metadata) { return true; } public boolean isOpaqueCube() { return false; } public boolean renderAsNormalBlock() { return false; } public int getRenderType() { return -1; } public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); } }
-
{
if(p_149726_1_.getBlock(p_149726_2_ + 1, p_149726_3_, p_149726_4_) != Blocks.chest){
p_149726_1_.setBlock(p_149726_2_, p_149726_3_ + 1, p_149726_4_, Blocks.bedrock);
}
Là ce que tu fais c’est poser un bloc en haut du tient lorsque le bloc à l’est n’est pas un coffre. -
sa marche pas avec
{
if(p_149726_1_.getBlock(p_149726_2_ + 1, p_149726_3_, p_149726_4_) == Blocks.chest){
p_149726_1_.setBlock(p_149726_2_, p_149726_3_ + 1, p_149726_4_, Blocks.bedrock);
} -
Pourtant cela devrait …
Vérifies que la méthode est bien appelé avec un system.out.println. -
je lais regler maintenant sa marche .
Maintenant je veux tranporter des items comme a hopper mais le code du hopper est compliquer .
-
Tu veux créer un hopper ou un bloc qui accepte des Items venant d’un hopper ?
-
Un hopper avec mon cable
-
Si tu as regardé la classe TileEntityHopper, tu as du voir que la tileEntity implémente IHopper, donc tu implémentes cette interface et tu changes le fonctionnement dans la fonction onEntityUpdate