Hammer
-
Pas aussi de workspace en 1.13
-
Beuh
-
Déjà tu peux tenter de reprendre quelque chose qui marche en 1.12 et tu nous dit ce qui ne pose problème
-
Après avoir repris un code en 1.12, voila les erreurs :
EntityLivingBase,getPositionEyes(ligne 3),getLook(ligne 4),addVector(ligne 5),typeOfHit(ligne 16),EnumFacing,sideHit(ligne 21) etsetBlockToAir(ligne 73)Et voila le code ou il y a les erreurs pour que vous sachiez ou elle se trouve :
public RayTraceResult rayTrace(double blockReachDistance, float partialTicks, World w, EntityLivingBase e) { Vec3d vec3d = e.getPositionEyes(partialTicks); Vec3d vec3d1 = e.getLook(partialTicks); Vec3d vec3d2 = vec3d.addVector(vec3d1.x * blockReachDistance, vec3d1.y * blockReachDistance, vec3d1.z * blockReachDistance); return w.rayTraceBlocks(vec3d, vec3d2, false, false, true); } @Override public boolean onBlockDestroyed(ItemStack breaker, World w, BlockState state, BlockPos pos, EntityLivingBase e) { if (e instanceof PlayerEntity && !w.isRemote) { PlayerEntity p = (PlayerEntity) e; RayTraceResult r = this.rayTrace(5.0D, 0.0F, w, e); if (r.typeOfHit == RayTraceResult.Type.BLOCK) { int x = pos.getX(); int y = pos.getY(); int z = pos.getZ(); EnumFacing side = r.sideHit; // Y // UP - DOWN if (side == EnumFacing.DOWN || side == EnumFacing.UP) { this.destroyAndDropBlock(w, p, breaker, x + 1, y, z - 1); this.destroyAndDropBlock(w, p, breaker, x + 1, y, z); this.destroyAndDropBlock(w, p, breaker, x + 1, y, z + 1); this.destroyAndDropBlock(w, p, breaker, x, y, z - 1); // Middle block this.destroyAndDropBlock(w, p, breaker, x, y, z + 1); this.destroyAndDropBlock(w, p, breaker, x - 1, y, z - 1); this.destroyAndDropBlock(w, p, breaker, x - 1, y, z); this.destroyAndDropBlock(w, p, breaker, x - 1, y, z + 1); } // Z // NORTH - SOUTH else if (side == EnumFacing.NORTH || side == EnumFacing.SOUTH) { this.destroyAndDropBlock(w, p, breaker, x + 1, y + 1, z); this.destroyAndDropBlock(w, p, breaker, x, y + 1, z); this.destroyAndDropBlock(w, p, breaker, x - 1, y + 1, z); this.destroyAndDropBlock(w, p, breaker, x + 1, y, z); // Middle block this.destroyAndDropBlock(w, p, breaker, x - 1, y, z); this.destroyAndDropBlock(w, p, breaker, x + 1, y - 1, z); this.destroyAndDropBlock(w, p, breaker, x, y - 1, z); this.destroyAndDropBlock(w, p, breaker, x - 1, y - 1, z); } // X // EAST - WEST else if (side == EnumFacing.EAST || side == EnumFacing.WEST) { this.destroyAndDropBlock(w, p, breaker, x, y + 1, z + 1); this.destroyAndDropBlock(w, p, breaker, x, y + 1, z); this.destroyAndDropBlock(w, p, breaker, x, y + 1, z - 1); this.destroyAndDropBlock(w, p, breaker, x, y, z + 1); // Middle block this.destroyAndDropBlock(w, p, breaker, x, y, z - 1); this.destroyAndDropBlock(w, p, breaker, x, y - 1, z + 1); this.destroyAndDropBlock(w, p, breaker, x, y - 1, z); this.destroyAndDropBlock(w, p, breaker, x, y - 1, z - 1); } return true; } } return super.onBlockDestroyed(breaker, w, state, pos, e); } private void destroyAndDropBlock(World w, PlayerEntity p, ItemStack breaker, int x, int y, int z) { BlockPos pos = new BlockPos(x, y, z); w.getBlockState(pos).getBlock().harvestBlock(w, p, pos, w.getBlockState(pos), w.getTileEntity(pos), breaker); w.setBlockToAir(pos); } -
Je viens de resoudre
EntityLivingBaseenLivingEntity,EnumFacingenDirection,getPositionEyesengetEyePosition,setBlockToAirenisAirBlock,addVectorenadd,typeOfHitengetType(),getLookn’est plus détecté en tant qu’erreurPouvez-vous dire si j’ai fais de bonne traduction
J’avais oublié mais
w.rayTraceBlocksne demande que un argument pas cinq -
Alors quelqu’un peut m’aider ?
-
isAirBlock est pas bon (cette fonction permet de savoir si le block c’est de l’aire alors que toi tu veux remplacer le block par de l’aire) (C’est peut-être setAir la méthode que tu veux). Sur rayTraceBlocks c’est quoi l’erreur exacte que tu as ?
-
oui mais quand je marque
airça me propose que ça, donc pas de setAir et pourRayTraceBlocks, il nous demande unRayTraceContextdonc j’ai faisnew RayTraceContext()et là il me demande unVec3d, Vec3d, BlockMode, FluidMode, Entitydonc j’ai mis :return w.rayTraceBlocks(new RayTraceContext(vec3d, vec3d2, RayTraceContext.BlockMode.COLLIDER, RayTraceContext.FluidMode.NONE, e));PS : il reste encore
sideHitcomme erreur -
sideHit a peut-être été remplacé par un getter ou par autre nom. Pour setBlockToAir, c’est paut-être quelque chose comme removeBlock
-
Faut simplement faire un setBlockState avec
Blocks.AIR.getDefaultState() -
Ah ok merci de ses réponses mais c’est quoi un guetter (oui je vais paraitre con)
-
up ?
-
Un getter c’est une fonction qui renvoies la valeur d’une variable.
-
Ok mais même en cherchant un getter ou un autre nom, je n’arrive pas à trouver ce qu’il faut mettre
