Créer un material de type Eau



  • Yellow tout le monde !

    Je cherche à faire un nouveau material de type "water", mais après quelques essais je suis parvenu à faire un "pseudo-liquide" mais il ne fait pas bouger mon personnage comme l'eau.
    C'est comme si j'était dans "l'air".

    Car mon but principal c'est d'enlever les particules bleues qui sont sur mon fluid "acide" donc vert et c'est pas beau !

    Si quelqu'un à la solution !
    Je PRENDS !

    Merci de votre aide !

    -ZeAmateis-


  • Moddeurs confirmés Rédacteurs Administrateurs

    Salut,
    Je peux avoir ton code actuel ?



  • Dans la classe principale après le constructeur,

    public static CommonProxy proxy […]
    
    public static final Material acid = new MaterialAcid(MapColor.waterColor).setReplaceable();
    

    Et la classe MaterialAcid:

    package viruz.zeamateis.material;
    
    import net.minecraft.block.material.MapColor;
    import net.minecraft.block.material.MaterialLiquid;
    
    public class MaterialAcid extends MaterialLiquid {
    
    public MaterialAcid(MapColor par1MapColor)
    {
    super(par1MapColor);
    }
    
    }
    
    

  • Moddeurs confirmés Rédacteurs Administrateurs

    J'ai regardé rapidement ton code et celui des autres matériels, en fait on dirait qu'il n'y a pas presque rien dans les matériels, ça doit être géré ailleurs.
    Visiblement oui :

    public void addMovementStat(double par1, double par3, double par5)
    {
    if (this.ridingEntity == null)
    {
    int i;
    
    if (this.isInsideOfMaterial(Material.water))
    {
    i = Math.round(MathHelper.sqrt_double(par1 * par1 + par3 * par3 + par5 * par5) * 100.0F);
    
    if (i > 0)
    {
    this.addStat(StatList.distanceDoveStat, i);
    this.addExhaustion(0.015F * (float)i * 0.01F);
    }
    }
    else if (this.isInWater())
    {
    i = Math.round(MathHelper.sqrt_double(par1 * par1 + par5 * par5) * 100.0F);
    
    if (i > 0)
    {
    this.addStat(StatList.distanceSwumStat, i);
    this.addExhaustion(0.015F * (float)i * 0.01F);
    }
    }
    else if (this.isOnLadder())
    {
    if (par3 > 0.0D)
    {
    this.addStat(StatList.distanceClimbedStat, (int)Math.round(par3 * 100.0D));
    }
    }
    else if (this.onGround)
    {
    i = Math.round(MathHelper.sqrt_double(par1 * par1 + par5 * par5) * 100.0F);
    
    if (i > 0)
    {
    this.addStat(StatList.distanceWalkedStat, i);
    
    if (this.isSprinting())
    {
    this.addExhaustion(0.099999994F * (float)i * 0.01F);
    }
    else
    {
    this.addExhaustion(0.01F * (float)i * 0.01F);
    }
    }
    }
    else
    {
    i = Math.round(MathHelper.sqrt_double(par1 * par1 + par5 * par5) * 100.0F);
    
    if (i > 25)
    {
    this.addStat(StatList.distanceFlownStat, i);
    }
    }
    }
    }
    

    Dans EntityPlayer.
    Il suffit de faire une recherche java avec net.minecraft.block.material.Material.water
    pour se rendre compte que tout est géré ailleurs, la façon dont les matériel sont gérés dans minecraft n'est pas du tout prévu pour qu'on rajoute des matériels customs.
    Je me demande si il ne serait pas plus simple de supprimer les particules d'eau, il faut voir si EntityJoinWorldEvent détecte aussi les particules mais je crains que non 😕



  • Changer la couleur des particules?

    • CF code source de buildcraft?


  • Ouais donc pas de possibilité de créer de nouveau material… c'est chia... embêtant !

    Une autre solution alors ?

    @'totos51':

    Changer la couleur des particules?

    • CF code source de buildcraft?

    Faut que j'aille voir ça


    Je ne le trouve pas dans le github de BuildCraft


  • Moddeurs confirmés Rédacteurs Administrateurs


Log in to reply