Créer une plante cultivable avec un taux de drop random



  • Je suis en train de développer un mod et je souhaite creer des graines qui feront pousser des plantes permettant de récolter des minerais. Cependant je n'arrive pas à faire en sorte que les graines donnent aléatoirement un loot. Aidez moi s'il vous plait
    Merci d'avance

    Code :

    package fr.exatium.examod.exablocks;
    
    
    import java.util.Random;
    
    import fr.exatium.examod.ExaMod;
    import fr.exatium.examod.exainit.ExaItemsMods;
    import net.minecraft.block.BlockCrops;
    import net.minecraft.block.material.Material;
    import net.minecraft.block.properties.PropertyInteger;
    import net.minecraft.block.state.IBlockState;
    import net.minecraft.client.renderer.BufferBuilder.State;
    import net.minecraft.item.Item;
    import net.minecraft.util.math.BlockPos;
    import net.minecraft.world.World;
    
    public class ExaExatiumCrop extends BlockCrops 
    {
    	
    	public ExaExatiumCrop(String name,Material materialIn) 
    	{
    		setUnlocalizedName(name);
    		setRegistryName(name);
    		setResistance(0.0F);
    		setHardness(0.0F);
    	}
    	//les null sont temporaires le temps que je trouve la solution a mon probleme
        protected Item getSeed() 
        {
        	return null;
        }
    	
    	protected Item getCrop() 
        {    	
    		return null;
        }
    	protected Item getSeedEn() 
        {
    		return null;
    	}
    }
    
    


  • c'est très simple, il te suffit d'utiliser le Random de java :

    protected Item getSeed() 
    		{
    			int rand = new Random().nextInt(4);
    			
    			switch(rand)
    			{
    				case 0:
    					return Items.BEETROOT_SEEDS;
    				case 1:
    					return Items.MELON_SEEDS;
    				case 2:
    					return Items.PUMPKIN_SEEDS;
    				case 3:
    					return Items.WHEAT_SEEDS;
    				default:
    					return Items.APPLE;
    			}
    		}
    

    Ici, ce code te donnera aleatoirement une graine mais si le random donne 4, il droppera une pomme 🙂
    (quand il y a default dans un switch, cela veut dire que pour n'importe quelle valeur qui n'est pas en case, il te donnera la cette valeur)



  • Oui je sais faire un switch mais je savais pas trop comment faire parce que en fait moi j'avais fais

    int chance = (int) Math.random() * (200 - 1);
    if(chance == 200) return monitem
    else return null
    

Log in to reply