1.7.10 Créer un bounce pad



  • Bonsoir à tous :sweat_smile:
    Je me suis attelé récemment à la création d'un "coremod" pour mon serveur qui a pour but d'alléger les features inutiles (selon moi) et d'en ajouter d'autres des mods Bibliocraft et Chisel (si vous connaissez pas, sortez de votre grotte !)
    Je cherche cependant à ajouter une feature de tinker's construct qui est le bounce pad !text alternatif
    J'ai déjà réussi à faire en sorte que ma hitbox de bloc corresponde à ce que j'attends, mais je bloque :
    (Voici le code de mon block)

    public class SlimePad extends Block {
        protected SlimePad(Material material) {
    
            super(material);
            this.setCreativeTab(CommonProxy.chiselCreativeTab);
            this.setBlockBounds(0.1F, 0.1F, 0.1F, 0.9F, 0.5F, 0.9F);
        }
        public boolean isOpaqueCube(){
            return false;
        }
    
        public boolean isBlockReplaceable(World world, int x, int y, int z) {
            return false;
        }
    
    
    
        public void onEntityWalking(World world, int x, int y, int z, Entity entity)
        {
            entity.motionX += 2.0;
            entity.motionY += 1.0;
            slipperiness = 0.5F;
        }
    
    
    }
    

    Mais pour le coup, je ne rebondis pas sur le bloc, et je suis envoyé (vite et à la bonne hauteur) uniquement dans la position Est soit l'axe X...
    Je n'arrive pas à faire en sorte que mon bloc fasse rebondir le bloc en fonction de l'endroit d'où il arrive et surtout en fonction du sens dans lequel le bloc est posé.

    J'ai vraiment besoin d'aide concernant cet aspect de mon mod.
    Merci d'avance ! :)



  • Chek comment le Code du SlimeBlock de Minecraft à été fait il y a surement tes réponses



  • Rien de concluant dans la class du slimeblock...

    Je suis tombé sur ca: https://www.minecraftforge.net/forum/topic/16663-172-make-player-quotbouncequot-when-they-touch-block/

    mais moi ca me donne ca:

    public AxisAlignedBB getCollisionBoundingBoxFromPool(World p_149668_1_, int p_149668_2_, int p_149668_3_, int p_149668_4_){
            float f = 0.0625F;
            return AxisAlignedBB.getAABBPool().getAABB((double)((float)p_149668_2_ + f), (double)p_149668_3_, (double)((float)p_149668_4_ + f), (double)((float)(p_149668_2_ + 1) - f), (double)((float)(p_149668_3_ + 1) - f), (double)((float)(p_149668_4_ + 1) - f));
        }
    
        public void onEntityCollidedWithBlock(EntityPlayerMP par1entityplayer)
        {
            par1entityplayer.motionX *= -5.0D;
            par1entityplayer.motionY *= -5.0D;
            par1entityplayer.motionZ *= -5.0D;
        }
    

    .getAABBPool()
    

    est erroné... vous savez quelle la bonne syntaxe en 1.7.10 ?



  • Oh, et j'en profite pour vous demander comment on fait pour faire en sorte que le joueur puisse passer à travers le block mais garder l'effet de celui-ci quand il arrive du dessous ? (pour faire des ascenseurs par exemple)



  • Pour ton bounce pad tu doit juste faire sa :

    public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z)
    	{
    	    return null;
    	}
    
        @SideOnly(Side.CLIENT)
        public int getRenderBlockPass() {
            return 0;
        }
        
        public int damageDropped(int p_149692_1_)
        {
            return 1;
        }
    	
    	@Override
    	public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity)
    	{
    		if(world.isRemote)
    		{
    			entity.motionX *= 2.5;
    			entity.motionY += 1;
    			entity.motionZ *= 2.5;
    			entity.fallDistance += 0D;
    		}
    	}
    


  • Merci beaucoup :)
    Je clos le sujet alors


Log in to reply