MFF

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

    Bloc TESR / Collision

    Planifier Épinglé Verrouillé Déplacé Sans suite
    1.7.10
    21 Messages 4 Publieurs 3.8k 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.
    • SCAREXS Hors-ligne
      SCAREX
      dernière édition par

      https://www.minecraftforgefrance.fr/showthread.php?tid=1509#classe5

      Site web contenant mes scripts : http://SCAREXgaming.github.io

      Pas de demandes de support par MP ni par skype SVP.
      Je n'accepte sur skype que l…

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

        Ok ok, je rectifie mon propos:

        Il n’y a rien de nouveau à mes yeux concernant la collision dans ce tuto.
        Justement je fais exactement comme ça actuellement.

        J’ai testé le conseil de le mettre dans le constructeur, ce qui ne pose pas de problème nouveau mais le problème qui m’amène ici persiste.

        Problème:

        Le joueur glitch dans mes blocs à rendu par TESR (bien que/alors que mon code résulte du tuto)
        Pas tous, pas tout le temps, remplacer le bloc réduit temporairement le problème

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

          Personnellement j’ai aucun problème alors que le code est le même :
          http://puu.sh/psI2b.jpg

          Site web contenant mes scripts : http://SCAREXgaming.github.io

          Pas de demandes de support par MP ni par skype SVP.
          Je n'accepte sur skype que l…

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

            Cela doit dépendre de la version de Forge.

            Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

            AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

            Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
            Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

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

              J’ai testé ce code sur une “vieille” version de forge : 1.7.10-10.13.4.1492

              Site web contenant mes scripts : http://SCAREXgaming.github.io

              Pas de demandes de support par MP ni par skype SVP.
              Je n'accepte sur skype que l…

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

                Ouki, je suis un peu plus en arrière, j’utilise la 1448 mais c’est pareil je suppose.

                Est ce que bloquer l’update du tileEntity pourrait jouer? (Il est sur false en gros)

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

                  La seule chose que j’ai modifié dans ton code c’est que j’ai retiré la TileEntity et donc la direction, en sachant que ton bloc n’a pas une boîte de collision différente pour chaque direction je ne voit pas d’où pourrait venir le problème, envoi une photo ou une vidéo parce que là je comprends pas comment c’est possible

                  Site web contenant mes scripts : http://SCAREXgaming.github.io

                  Pas de demandes de support par MP ni par skype SVP.
                  Je n'accepte sur skype que l…

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

                    Le problème n’arrive pas systématiquement sur chaque bloc posé.

                    Par contre maintenant que tu en parles j’ai des blocs dont la hitbox dépend de la direction qui lui cause problème relativement “plus souvent” que les autres.

                    package fr.folgansky.powerdeco.common;
                    
                    import cpw.mods.fml.relauncher.Side;
                    import cpw.mods.fml.relauncher.SideOnly;
                    import fr.folgansky.powerdeco.client.TileEntityWoodPlank;
                    import fr.folgansky.powerdeco.proxy.ClientProxy;
                    import net.minecraft.block.Block;
                    import net.minecraft.block.material.Material;
                    import net.minecraft.entity.EntityLivingBase;
                    import net.minecraft.item.ItemStack;
                    import net.minecraft.tileentity.TileEntity;
                    import net.minecraft.util.MathHelper;
                    import net.minecraft.world.IBlockAccess;
                    import net.minecraft.world.World;
                    import net.minecraftforge.common.util.ForgeDirection;
                    
                    public class BlockWoodPlank extends Block
                    {
                        protected BlockWoodPlank(Material mat)
                        {
                            super(mat);
                        }    
                    
                        @Override
                        public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z)
                        {        
                            TileEntity tile = world.getTileEntity(x, y, z);
                            if(tile instanceof TileEntityWoodPlank)
                            {
                                TileEntityWoodPlank tileEntityWoodPlank = (TileEntityWoodPlank)tile;
                                switch(tileEntityWoodPlank.getDirection())
                                {
                                    case 0:
                                        world.getBlock(x, y, z).setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 2.0F, 0.1F);
                                        break;
                                    case 1:
                                        world.getBlock(x, y, z).setBlockBounds(0.9F, 0.0F, 0.0F, 1.0F, 2.0F, 1.0F);
                                        break;
                                    case 2:
                                        world.getBlock(x, y, z).setBlockBounds(0.0F, 0.0F, 0.9F, 1.0F, 2.0F, 1.0F);
                                        break;
                                    case 3:
                                        world.getBlock(x, y, z).setBlockBounds(0.0F, 0.0F, 0.0F, 0.1F, 2.0F, 1.0F);
                                        break;
                                }
                            }
                        }
                    
                        @Override
                        public int damageDropped(int metadata)
                        {
                            return metadata;
                        }
                    
                        @Override
                        public boolean hasTileEntity(int metadata)
                        {
                            return true;
                        }
                    
                        @Override
                        public TileEntity createTileEntity(World world, int metadata)
                        {
                            return new TileEntityWoodPlank();
                        }
                    
                        @Override
                        public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase living, ItemStack stack)
                        {
                            if (stack.getItemDamage() == 0)
                            {
                                TileEntity tile = world.getTileEntity(x, y, z);
                                if (tile instanceof TileEntityWoodPlank)
                                {
                                    int direction = MathHelper.floor_double(living.rotationYaw * 4.0F / 360.0F + 2.5D) & 3;
                                    ((TileEntityWoodPlank) tile).setDirection((byte) direction);
                                }
                            }
                        }
                    
                        @Override
                        public boolean rotateBlock(World world, int x, int y, int z, ForgeDirection axis)
                        {
                            if ((axis == ForgeDirection.UP || axis == ForgeDirection.DOWN) && !world.isRemote
                                    && world.getBlockMetadata(x, y, z) == 0)
                            {
                                TileEntity tile = world.getTileEntity(x, y, z);
                                if (tile instanceof TileEntityWoodPlank)
                                {
                                    TileEntityWoodPlank tileDirectional = (TileEntityWoodPlank) tile;
                                    byte direction = tileDirectional.getDirection();
                                    direction++;
                                    if (direction > 3)
                                        direction = 0;
                                    tileDirectional.setDirection(direction);
                                    return true;
                                }
                            }
                            return false;
                        }
                    
                        @Override
                        public ForgeDirection[] getValidRotations(World world, int x, int y, int z)
                        {
                            return world.getBlockMetadata(x, y, z) == 0 ? new ForgeDirection[]
                            { ForgeDirection.UP, ForgeDirection.DOWN } : ForgeDirection.VALID_DIRECTIONS;
                        }
                    
                        @Override
                        public boolean isOpaqueCube()
                        {
                            return false;
                        }
                    
                        @Override
                        public boolean renderAsNormalBlock()
                        {
                            return false;
                        }
                    
                        public boolean canBeCollidedWith()
                        {
                            return true;
                        }
                    
                        @Override
                        @SideOnly(Side.CLIENT)
                        public int getRenderType()
                        {
                            return ClientProxy.tesrRenderId;
                        }
                    }
                    

                    Mais j’ai simplement suivi le tuto encore une fois.

                    Le problème pourrait provenir de la tileEntity qui est “mal” update?

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

                      Rajoute un System.out.prinln pour vérifier la direction, ça peut aussi venir d’une mauvaise synchro client-serveur

                      Site web contenant mes scripts : http://SCAREXgaming.github.io

                      Pas de demandes de support par MP ni par skype SVP.
                      Je n'accepte sur skype que l…

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

                        Le problème ne peut pas venir de ton TileEntity car les collisions sont gérées uniquement par le Block (à part si la hitbox change en fonction de ce qu’il y a dans le tile entity), mais par contre comme Scarex l’a dit, c’est peut-être un bug de syncro.

                        Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                        AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                        Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                        Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

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

                        MINECRAFT FORGE FRANCE © 2024

                        Powered by NodeBB