MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    Chaise

    Planifier Épinglé Verrouillé Déplacé Résolu 1.8.x
    1.8
    19 Messages 8 Publieurs 4.1k Vues 1 Watching
    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.
    • FolganskyF Hors-ligne
      Folgansky Correcteurs
      dernière édition par

      Tu n’as pas oublié cette partie?

      [size=small/**]
      
       * To use, add this in your block: (change heightOfThePlayer with a float)
      %(#969896)[ *```
      ]
       * public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ)
       * {
       * return FFMTBlockSittable.sitPlayer(world, x, y, z, player, heightOfThePlayer);
       * }
      %(#969896)[ * 
      ```]
       **/
      
      1 réponse Dernière réponse Répondre Citer 0
      • R Hors-ligne
        Realague
        dernière édition par

        package com.mod_rpg.Block;
        
        import java.util.List;
        
        import com.mod_rpg.CoreMod.Main;
        import com.mod_rpg.Entity.EntityBlockSittable;
        
        import net.minecraft.block.Block;
        import net.minecraft.block.material.Material;
        import net.minecraft.entity.player.EntityPlayer;
        import net.minecraft.util.AxisAlignedBB;
        import net.minecraft.world.World;
        
        public class BlockSittable extends Block
        {
            public BlockSittable(Material material, String name)
            {
                super(material);
                this.setUnlocalizedName(name);
                this.setCreativeTab(Main.TabsDeco);
            }
            public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ)
            {
                return sitPlayer(world, x, y, z, player, 1.0F);
            }
        
            public static boolean sitPlayer(World world, int x, int y, int z, EntityPlayer player, float entityY)
            {
                return sitPlayer(world, x, y, z, player, 0.5F, entityY, 0.5F);
            }
        
            public static boolean sitPlayer(World world, int x, int y, int z, EntityPlayer player, float entityX, float entityY, float entityZ)
            {
                if(!world.isRemote)
                {
                    List <entityblocksittable>listEMB = world.getEntitiesWithinAABB(EntityBlockSittable.class, AxisAlignedBB.fromBounds(x, y, z, x + 1.0D, y + 1.0D, z + 1.0D).expand(1.0D, 1.0D, 1.0D));
                    for(EntityBlockSittable entitytocheck : listEMB)
                    {
                        if((entitytocheck.blockPosX == x) && (entitytocheck.blockPosY == y) && (entitytocheck.blockPosZ == z))
                        {
                            entitytocheck.interact(player);
                            return true;
                        }
                    }
        
                    EntityBlockSittable entity = new EntityBlockSittable(world, player, x, y, z, x + entityX, y + entityY, z + entityZ);
                    world.spawnEntityInWorld(entity);
                    entity.interact(player);
                }
                return true;
            }
        }
        
        
        package com.mod_rpg.Entity;
        
        import net.minecraft.entity.Entity;
        import net.minecraft.entity.player.EntityPlayer;
        import net.minecraft.nbt.NBTTagCompound;
        import net.minecraft.world.World;
        
        public class EntityBlockSittable extends Entity
        {
            public int blockPosX;
            public int blockPosY;
            public int blockPosZ;
        
            public EntityBlockSittable(World world)
            {
                super(world);
                this.noClip = true;
                this.preventEntitySpawning = true;
                this.setSize(0.0F, 0.0F);
            }
        
            public EntityBlockSittable(World world, EntityPlayer entityplayer, int x, int y, int z, float entityX, float entityY, float entityZ)
            {
                this(world);
                this.blockPosX = x;
                this.blockPosY = y;
                this.blockPosZ = z;
                this.setPosition(entityX, entityY, entityZ);
            }
        
            public boolean interact(EntityPlayer entityplayer)
            {
                if(this.riddenByEntity != null)
                {
                    return true;
                }
        
                if(!this.worldObj.isRemote)
                {
                    entityplayer.mountEntity(this);
                }
                return true;
            }
        
            @Override
            public void onEntityUpdate()
            {
                if(this.riddenByEntity == null || this.riddenByEntity.isDead)
                {
                    this.setDead();
                }
                super.onEntityUpdate();
            }
        
            @Override
            public void readEntityFromNBT(NBTTagCompound compound)
            {
                this.blockPosX = compound.getInteger("blockPosX");
                this.blockPosY = compound.getInteger("blockPosY");
                this.blockPosZ = compound.getInteger("blockPosZ");
            }
        
            @Override
            public void writeEntityToNBT(NBTTagCompound compound)
            {
                compound.setInteger("blockPosX", this.blockPosX);
                compound.setInteger("blockPosY", this.blockPosY);
                compound.setInteger("blockPosZ", this.blockPosZ);
            }
        
            @Override
            protected void entityInit()
            {
        
            }
        }
        
        ```</entityblocksittable>
        1 réponse Dernière réponse Répondre Citer 0
        • robin4002R Hors-ligne
          robin4002 Moddeurs confirmés Rédacteurs Administrateurs
          dernière édition par

          Je suis presque sûr que tu n’as pas enregistré l’entité.

          1 réponse Dernière réponse Répondre Citer 0
          • FolganskyF Hors-ligne
            Folgansky Correcteurs
            dernière édition par

            Au passage vous sauriez où trouver l’équivalent en 1.7 svp?

            Quand j’essaie d’adapter [font=Ubuntu, sans-serif le github de FFMTLibs précieusement renseigné de la part de SCAREX, la “seule” erreur vient de:]

            %(#000000)[[font=monospace]AxisAlignedBB]%(#666600)[[font=monospace].]%(#000000)[[font=monospace]fromBounds]%(#666600)[[font=monospace](]%(#000000)[[font=monospace]x]%(#666600)[[font=monospace],]%(#000000)[[font=monospace] y]%(#666600)[[font=monospace],]%(#000000)[[font=monospace] z]%(#666600)[[font=monospace],]%(#000000)[[font=monospace] x ]%(#666600)[[font=monospace]+] %(#646464)[[font=monospace]1.0D]%(#666600)[[font=monospace],]%(#000000)[[font=monospace] y ]%(#666600)[[font=monospace]+] %(#646464)[[font=monospace]1.0D]%(#666600)[[font=monospace],]%(#000000)[[font=monospace] z ]%(#666600)[[font=monospace]+] %(#646464)[[font=monospace]1.0D]%(#666600)[[font=monospace]).]%(#000000)[[font=monospace]expand]%(#666600)[[font=monospace](]%(#646464)[[font=monospace]1.0D]%(#666600)[[font=monospace],] %(#646464)[[font=monospace]1.0D]%(#666600)[[font=monospace],] %(#646464)[[font=monospace]1.0D]%(#666600)[[font=monospace]));]
            
            1 réponse Dernière réponse Répondre Citer 0
            • robin4002R Hors-ligne
              robin4002 Moddeurs confirmés Rédacteurs Administrateurs
              dernière édition par

              https://github.com/FFMT/FFMT-libs/tree/17
              D’ailleurs je viens de capter qu’il y a un problème dans le code, le expand n’a rien à faire là.

              1 réponse Dernière réponse Répondre Citer 1
              • FolganskyF Hors-ligne
                Folgansky Correcteurs
                dernière édition par

                ça marche du tonnerre.
                Merci Robin.

                1 réponse Dernière réponse Répondre Citer 0
                • R Hors-ligne
                  Realague
                  dernière édition par

                    EntityRegistry.registerModEntity(EntityBlockSittable.class, "entityblocksittable", 100, this, 0, 10, true);
                  
                  1 réponse Dernière réponse Répondre Citer 0
                  • EmotionFoxE Hors-ligne
                    EmotionFox
                    dernière édition par

                    Le problème dans ce code c’est le :

                    public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ)
                    {
                    return sitPlayer(world, x, y, z, player, 1.0F);
                    }
                    

                    Qui en 1.8 est supposé être comme ça :

                    @Override
                    public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumFacing side, float hitX, float hitY, float hitZ)
                    {
                    return sitPlayer(world, pos.getX(), pos.getY(), pos.getZ(), player, 1.0F);
                    }
                    

                    Toujours penser à vérifier les fonctions “officiels” avec le petit @Override ça évite ce genre d’erreur.

                    Ps: Moi j’aurais voulue savoir comment descendre l’entité qui remonte à chaque fois au bout d’une seconde environ 😕

                    1 réponse Dernière réponse Répondre Citer 0
                    • FolganskyF Hors-ligne
                      Folgansky Correcteurs
                      dernière édition par

                      @‘EmotionFox’:

                      Le problème dans ce code c’est le :

                      public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ)
                      {
                         return sitPlayer(world, x, y, z, player, 1.0F);
                      }
                      

                      Qui en 1.8 est supposé être comme ça :

                      @Override
                      public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumFacing side, float hitX, float hitY, float hitZ)
                      {
                         return sitPlayer(world, pos.getX(), pos.getY(), pos.getZ(), player, 1.0F);
                      }
                      

                      Toujours penser à vérifier les fonctions “officiels” avec le petit @Override ça évite ce genre d’erreur.

                      Ps: Moi j’aurais voulue savoir comment descendre l’entité qui remonte à chaque fois au bout d’une seconde environ 😕

                      Moi j’ai abaissé la position du joueur (edit: en 1.7, je reprécise)

                      public static boolean sitPlayer(World world, int x, int y, int z, EntityPlayer player, float entityY)
                      {
                      return sitPlayer(world, x, y, z, player, 0.5F, entityY - 0.5F, 0.5F);
                      }
                      

                      Par contre j’ai un bloc avec des bordures réduites de moitié (sinon le joueur est considéré dans le bloc et remonte)

                      M’enfin la position de l’entité doit bien pouvoir être réglée. A voir si l’entité a le même soucis de position réactualisée pour ne pas être dans le bloc.
                      A toi de faire mumuse avec ces variables. (Je suis pas de grande utilité mais chui qu’un bidouilleur de codes pour le moment).

                      1 réponse Dernière réponse Répondre Citer 0
                      • AmaA Hors-ligne
                        Ama
                        dernière édition par

                        je crois qu’il y a un truc avec le noclip ou alors je me trompe.

                        Mes dernière chaises date de la bêta 1.2.5 donc bon…

                        Si je t'ai filé un coup de main n'oublie pas le + / -
                        Par contre évite les demandes d'aides en MP, tu sera sympa'

                        La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

                        Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

                        1 réponse Dernière réponse Répondre Citer 0
                        • EmotionFoxE Hors-ligne
                          EmotionFox
                          dernière édition par

                          Arf justement TouToune j’ai baissé cette valeur et beaucoup d’autre (en réalité j’ai déjà transformé toutes les valeurs en float et je l’ai est toutes abaissé en ce qui concerne les valeurs d’Y) mais le problème que l’entité ce réajuste persiste :C Et en ce qui concerne le noClip je vois pas trop ce que je pourrais changer

                          1 réponse Dernière réponse Répondre Citer 0
                          • AmaA Hors-ligne
                            Ama
                            dernière édition par

                            dans le constructeur de l’entité pour sit, this.noClip = true;

                            Si je t'ai filé un coup de main n'oublie pas le + / -
                            Par contre évite les demandes d'aides en MP, tu sera sympa'

                            La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

                            Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

                            1 réponse Dernière réponse Répondre Citer 0
                            • R Hors-ligne
                              Realague
                              dernière édition par

                              J’aimerais que la hitbox du bloc que j’ai modifier soit toujours placer en fonction de la position du joueur quand il place le bloc pour que la hitbox suive le model custom.

                              1 réponse Dernière réponse Répondre Citer 0
                              • DiangleD Hors-ligne
                                Diangle
                                dernière édition par

                                passe par les axis ou direction.

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

                                MINECRAFT FORGE FRANCE © 2024

                                Powered by NodeBB