MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    Récupérer le "stage" d'une plante

    Planifier Épinglé Verrouillé Déplacé Résolu 1.12.x
    1.12.2
    4 Messages 3 Publieurs 300 Vues 2 Watching
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • CiolgamingC Hors-ligne
      Ciolgaming
      dernière édition par

      Bonjour, pouvez-vous me donner le petit morceau de code que je cherche en vain svp, voici ce que j’ai fait, c’est un pnj qui plante des graines, et je souhaiterait récupérer le “stage” d’une plante afin de la remplaçer quand elle a poussé.

      	@Override
      	public void onLivingUpdate() {
      		super.onLivingUpdate();
      		if(timer == 5) {
      			setAIMoveSpeed(0F);
      			int x = getPosition().getX();
      			int y = getPosition().getY()-1;
      			int y1 = getPosition().getY();
      			int z = getPosition().getZ();
      			BlockPos posfarm = new BlockPos(x, y, z);
      			BlockPos pos = new BlockPos(x, y1, z);
      		    int[] xi = {-1,0,1,-1,0,1,-1,0,1};
      		    int[] zi = {1,1,1,0,0,0,-1,-1,-1};
      		    int resultat = 0;
      		    for(int i=0; i < zi.length; i++) {
      		    	BlockPos poss = new BlockPos(x + xi[i], y, z + zi[i]);
      		    	BlockPos poss1 = new BlockPos(x + xi[i], y1, z + zi[i]);
      		    	if(getEntityWorld().getBlockState(poss).getBlock().equals(Blocks.FARMLAND)) {
      			    	if(!getEntityWorld().getBlockState(poss1).getBlock().equals(Blocks.WHEAT)) {
      			    		BlockPos poss2 = new BlockPos(x + xi[i], y1, z + zi[i]);
      			    		moveToBlockPosAndAngles(poss2, getPitchYaw().x, getPitchYaw().y);
      						timermove = 120;
      						setAIMoveSpeed(0F);
      			    	}
      		    	}
      		    }
      			if(getEntityWorld().getBlockState(posfarm).getBlock().equals(Blocks.FARMLAND)) {
      				if(!getEntityWorld().getBlockState(pos).getBlock().equals(Blocks.WHEAT)) {
      					getEntityWorld().setBlockState(pos, Blocks.WHEAT.getDefaultState());
      				}
      			}
      			timer = 0;
      		//	getEntityWorld().setBlockState(pos, Blocks.OBSIDIAN.getDefaultState());
      			getEntityWorld().getBlockState(posfarm);
      			
      		}else {
      			timer++;
      		}
      		
      		if(timermove!=0) {
      			timermove--;
      		}else {
      			setAIMoveSpeed(0.2F);
      		}
      	}
      

      Merci de votre réponse et bonne journée 🙂

      1 réponse Dernière réponse Répondre Citer 0
      • JustAnDevJ Hors-ligne
        JustAnDev
        dernière édition par

        Si ta plante change de block quand elle pousse c’est easy je pense pour toi.Mais si c’est avec les BlockStates je vais verif quel est la variable qui interesse et je reviens

        s

        1 réponse Dernière réponse Répondre Citer 0
        • LeBossMax2L Hors-ligne
          LeBossMax2
          dernière édition par

          Dans BlockCrops, il y a la méthode isMaxAge qui te permet de savoir si une plante est poussé au max ou pas à partir du blockstate

          1 réponse Dernière réponse Répondre Citer 0
          • CiolgamingC Hors-ligne
            Ciolgaming
            dernière édition par

            Merci pour vos réponses, j’ai trouvé la solution qui étais

            getEntityWorld().getBlockState(poss1).getValue(BlockCrops.AGE).intValue() == 7
            
            1 réponse Dernière réponse Répondre Citer 0
            • 1 / 1
            • Premier message
              Dernier message
            Design by Woryk
            ContactMentions Légales

            MINECRAFT FORGE FRANCE © 2024

            Powered by NodeBB