Pour faire ce tuto il vous faut avoir fait cette page(ModLoader /Forge )
[ML]Un bloc #4 Une mine(explosive)
Sommaire:
I. Situer ce qu'il faut changer
II. configurer
I : S ituer ce qu'il faut changer
Bonjour,
aujourd'hui je vais vous montrez comment créer une mine qui, lorsque l'on marche dessus fait BOOM !(que avec joueur)
Tous d’abord il ni Rien à changer dans la classe de votre mod sauf pour ce tutoriel le bloc se nommera BlockMine et non Bloc_Tutoriel/BlockMonBloc et sous modLoader changer le code
Code (java):
BlockMine( 150 , 0 , Material.rock , 150 , 1 )
par :
Code (java):
BlockMine( 150 )
Vous allez dans votre classe BlockMine.java et remplacer tous dans la partie de la classe par ceci :
Code (java):
public BlockMine
( int par1, Material par3Material
)
{
super ( par1, Material.
circuits ) ;
this .
setBlockBounds ( 0.0F, 0.0F, 0.0F, 1.0F, 0.025F, 1.0F
) ;
}
public boolean isBlockSolid
( IBlockAccess par1IBlockAccess,
int par2,
int par3,
int par4,
int par5
)
{
return false ;
}
public void onEntityCollidedWithBlock
( World par1World,
int par2,
int par3,
int par4,
Entity par5Entity
)
{
if ( par5Entity
instanceof EntityPlayer
)
{
float f
= 2.50F
;
Explosion explosion
= new Explosion
( par1World, par5Entity, par2, par3, par4, f
) ;
par1World.
createExplosion ( par5Entity, par2, par3, par4, f,
false ) ;
par5Entity.
attackEntityFrom ( DamageSource.
setExplosionSource ( explosion
) ,
40 ) ;
par1World.
setBlockToAir ( par2, par3, par4
) ;
}
}
public int getRenderType
( )
{
return 0 ;
}
public boolean isOpaqueCube
( )
{
return false ;
}
/*
* Definit si vous pouvez toucher le bloc
* true si oui, false si non.
*/
public boolean isCollidable
( )
{
return true ;
}
public boolean renderAsNormalBlock
( )
{
return false ;
}
public void registerIcons
( IconRegister par1IconRegister
)
{
this .
blockIcon = par1IconRegister.
registerIcon ( "modTutoriel:TextureBlocTutoriel" ) ;
}
Code (java):
public BlockMine
( int par1, Material par3Material
)
{
super ( par1, Material.
circuits ) ;
this .
setBlockBounds ( 0.0F, 0.0F, 0.0F, 1.0F, 0.025F, 1.0F
) ;
}
public boolean isBlockSolid
( IBlockAccess par1IBlockAccess,
int par2,
int par3,
int par4,
int par5
)
{
return false ;
}
public void onEntityCollidedWithBlock
( World par1World,
int par2,
int par3,
int par4,
Entity par5Entity
)
{
if ( par5Entity
instanceof EntityPlayer
)
{
float f
= 2.50F
;
Explosion explosion
= new Explosion
( par1World, par5Entity, par2, par3, par4, f
) ;
par1World.
createExplosion ( par5Entity, par2, par3, par4, f,
false ) ;
par5Entity.
attackEntityFrom ( DamageSource.
setExplosionSource ( explosion
) ,
40 ) ;
par1World.
setBlockToAir ( par2, par3, par4
) ;
}
}
public int getRenderType
( )
{
return 0 ;
}
public boolean isOpaqueCube
( )
{
return false ;
}
/*
* Definit si vous pouvez toucher le bloc
* true si oui, false si non.
*/
public boolean isCollidable
( )
{
return true ;
}
public boolean renderAsNormalBlock
( )
{
return false ;
}
II : Configurer
Explication :
Code (java):
public BlockMine( int par1, Material par3Material)
{
super ( par1, Material.circuits ) ;
setBlockBounds( 0.0F, 0.0F, 0.0F, 1.0F, 0.025F, 1.0F) ;
}
Material.circuits : définie le matériel utiliser
setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.025F, 1.0F); : définie la taille du bloc, 0.025 est la hauteur
Code (java):
public void onEntityCollidedWithBlock
( World par1World,
int par2,
int par3,
int par4,
Entity par5Entity
)
{
if ( par5Entity
instanceof EntityPlayer
)
{
float f
= 2.50F
;
Explosion explosion
= new Explosion
( par1World, par5Entity, par2, par3, par4, f
) ;
par1World.
createExplosion ( par5Entity, par2, par3, par4, f,
false ) ;
par5Entity.
attackEntityFrom ( DamageSource.
setExplosionSource ( explosion
) ,
40 ) ;
par1World.
setBlockToAir ( par2, par3, par4
) ;
}
float f = 2.50F; : dit la puissance de l'explosion
explosion), 40); : dit le nombre de coeur perdu ou quelque chose dans le genre, 40 tue le joueur
par1World.setBlockToAir(par2, par3, par4); : supprime le bloc
Code (java):
public int getRenderType( )
{
return 0 ;
}
0 : définie le type de render (inutile)
Code (java):
public boolean isOpaqueCube( )
{
return false ;
}
false : Dit si on peut voir à travert(vrai=true/false=faux)
Code (java):
public boolean isCollidable( )
{
return true ;
}
true : dit si on peut le toucher avec les mains (vrai=true/false=faux)
Code (java):
public boolean renderAsNormalBlock( )
{
return false ;
}
false : dit que le render n'est pas normal (vrai=true/false=faux)(pas sur que ce soit utile)
Fin