• S'inscrire
    • Se connecter
    • Recherche
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes

    [1.11] Créer un Block traversable rebondissant

    Sans suite
    3
    3
    812
    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.
    • jules552
      jules552 dernière édition par

      Bonjour à toute la communauté,

      J’ai actuellement un problème, je souhaite faire un block qui permet de faire rebondir la personne dessus quand on marche dessus, jusqu’à la pas de problème j’ai réussi sans aucun soucis mais le second problème auquel je me heurte est qu’il doit être traversable de sorte à ce que si j’en met un au dessus il puisse le traversé et activé de nouveau l’effet rebondissant/décollant du block. J’ai réussi à le rendre traversable mais impossible de faire en sorte que l’effet rebondissant s’active en le traversant. (Dans le code j’ai retiré le fait qu’il soit complètement traversable et j’ai laisser le fait qu’il est une “BoundingBox” similaire à une dalle).

      Une idée de comment réaliser un telle block ?
      Voici le code du block en question :

      package Blocks;
      
      import java.util.Random;
      
      import javax.annotation.Nullable;
      
      import fr.jules552.mod.init.BlocksMod;
      import net.minecraft.block.Block;
      import net.minecraft.block.BlockBasePressurePlate;
      import net.minecraft.block.BlockBreakable;
      import net.minecraft.block.BlockSlab;
      import net.minecraft.block.BlockSlab.EnumBlockHalf;
      import net.minecraft.block.material.EnumPushReaction;
      import net.minecraft.block.material.MapColor;
      import net.minecraft.block.material.Material;
      import net.minecraft.block.properties.PropertyEnum;
      import net.minecraft.block.state.IBlockState;
      import net.minecraft.entity.Entity;
      import net.minecraft.entity.EntityLivingBase;
      import net.minecraft.init.Blocks;
      import net.minecraft.init.Items;
      import net.minecraft.item.Item;
      import net.minecraft.util.BlockRenderLayer;
      import net.minecraft.util.EnumFacing;
      import net.minecraft.util.math.AxisAlignedBB;
      import net.minecraft.util.math.BlockPos;
      import net.minecraft.world.IBlockAccess;
      import net.minecraft.world.World;
      import net.minecraftforge.fml.relauncher.Side;
      import net.minecraftforge.fml.relauncher.SideOnly;
      
      public class PadBounce extends BlockBreakable{
      
      protected static final AxisAlignedBB BOUNCE_AABB = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 0.5D, 1.0D);
      
      public PadBounce() {
      super(Material.CLAY, false, MapColor.GRASS);
      this.blockSoundType = blockSoundType.SLIME;
      this.translucent = true;
      }
      
      @SideOnly(Side.CLIENT)
         public BlockRenderLayer getBlockLayer()
         {
             return BlockRenderLayer.TRANSLUCENT;
         }
      
         public void onFallenUpon(World worldIn, BlockPos pos, Entity entityIn, float fallDistance)
         {
                 entityIn.fall(fallDistance, 0.0F);  
         }
      
         public void onLanded(World worldIn, Entity entityIn)
         { 
                 entityIn.motionY = 2.0D+entityIn.motionY; 
         }
      
         public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) {
             return BOUNCE_AABB;
          }
      
         public boolean isOpaqueCube(IBlockState state)
         {
             return false;
         }
      
         @SideOnly(Side.CLIENT)
         public float getAmbientOcclusionLightValue(IBlockState state)
         {
             return 1.0F;
         }
      
         public Item getItemDropped(IBlockState state, Random rand, int fortune)
         {
             return Item.getItemFromBlock(BlocksMod.bounce_pad);
         }   
      
      }
      
      

      Pour ceux qui voudrait un exemple de comparaison, je voudrais faire un block similaire aux bouncepad de Tinker’s Construct 😉
      Merci de vos réponses.
      jules552

      1 réponse Dernière réponse Répondre Citer 0
      • Benjamin Loison
        Benjamin Loison dernière édition par

        Tu pourrais poster une vidéo ? http://tinkers-construct.wikia.com/wiki/Bounce_Pad

        >! Développeur de Altis-Life (Arma III) sur Minecraft !
        >! Site web     : https://lemnoslife.com
        TeamSpeak : ts.lemnoslife.com

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

          Je pence que le problème viens de la fonction que tu utilise pour faire rebondir le joueur. Tu devrais essayer avec “onEntityCollidedWithBlock” ou “onFallenUpon”.

          1 réponse Dernière réponse Répondre Citer 0
          • 1 / 1
          • Premier message
            Dernier message
          Design by Woryk
          Contact / Mentions Légales

          MINECRAFT FORGE FRANCE © 2018

          Powered by NodeBB