Problème dimension /:



  • Yop everybody , je fais un sujet car j’ai un problème avec ma dimension , quand je rentre en contact avec le portail block , bah je suis téléporté nulle part pourtant j'ai bien dans les logs quand je met sur pause la dimension que j'ai créer enregistrer ::) Donc déjà une bonne nouvelle ::p J'ai aussi un problème le portail ne tourne selon "l'inclinaison" de la structure du portail 🙂

    Je met toutes mes classes etc 
    Ancient Teleporter

    package mod.common.world.structure;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Random;
    
    import mod.common.block.BlockPortail;
    import mod.common.block.BlockRegister;
    import net.minecraft.block.Block;
    import net.minecraft.block.BlockPortal;
    import net.minecraft.block.state.IBlockState;
    import net.minecraft.entity.Entity;
    import net.minecraft.entity.player.EntityPlayerMP;
    import net.minecraft.init.Blocks;
    import net.minecraft.util.BlockPos;
    import net.minecraft.util.EnumFacing;
    import net.minecraft.util.LongHashMap;
    import net.minecraft.util.MathHelper;
    import net.minecraft.world.ChunkCoordIntPair;
    import net.minecraft.world.Teleporter;
    import net.minecraft.world.WorldServer;
    import net.minecraftforge.common.util.ChunkCoordComparator;
    
    public class AncientTeleporter extends Teleporter 
    {
    private final WorldServer worldServerInstance;
    private final Random random;
    private final LongHashMap destinationCoordinateCache = new LongHashMap();
    
    private final List destinationCoordinateKeys = new ArrayList();
    
    public AncientTeleporter(WorldServer worldServer)
    {
    super(worldServer);
    this.worldServerInstance = worldServer;
    this.random = new Random(worldServer.getSeed());
        }
    
    public void placeInPortal(Entity entity, double x, double y, double z, float rotationYaw)
    {
    if(this.worldServerInstance.provider.getDimensionId() != 1)
    {
    if(!this.placeInExistingPortal(entity, rotationYaw))
    
    

    Portail Block

    package mod.common.block;
    
    import java.util.Random;
    
    import mod.common.world.structure.AncientTeleporter;
    import mod.common.world.structure.DimensionRegister;
    import net.minecraft.block.Block;
    import net.minecraft.block.BlockPortal;
    import net.minecraft.block.material.Material;
    import net.minecraft.block.properties.IProperty;
    import net.minecraft.block.properties.PropertyEnum;
    import net.minecraft.block.state.BlockState;
    import net.minecraft.block.state.IBlockState;
    import net.minecraft.creativetab.CreativeTabs;
    import net.minecraft.entity.Entity;
    import net.minecraft.entity.EntityLivingBase;
    import net.minecraft.entity.player.EntityPlayerMP;
    import net.minecraft.init.Blocks;
    import net.minecraft.item.ItemStack;
    import net.minecraft.util.AxisAlignedBB;
    import net.minecraft.util.BlockPos;
    import net.minecraft.util.EnumFacing;
    import net.minecraft.util.EnumWorldBlockLayer;
    import net.minecraft.util.MathHelper;
    import net.minecraft.util.MovingObjectPosition;
    import net.minecraft.world.IBlockAccess;
    import net.minecraft.world.World;
    import net.minecraftforge.fml.relauncher.Side;
    import net.minecraftforge.fml.relauncher.SideOnly;
    
    public class BlockPortail extends Block
    {
        protected BlockPortail(Material material)
        {
            super(material.portal);
            this.setTickRandomly(true);
            this.setStepSound(Block.soundTypeGlass);
            this.setLightLevel(0.75F);
            this.setCreativeTab(CreativeTabs.tabBlock);
            this.setDefaultState(this.blockState.getBaseState().withProperty(AXIS, EnumFacing.Axis.X));
    
        }
    
        //RENDER / JSON / SPECIAL BLOCK PROPERITES
        public static final PropertyEnum AXIS = PropertyEnum.create("axis", EnumFacing.Axis.class, new EnumFacing.Axis[] {EnumFacing.Axis.X, EnumFacing.Axis.Z});
        public int fieldDinocraft = 0;
    
    @Override
    public void setBlockBoundsBasedOnState(IBlockAccess world, BlockPos pos)
    {
    float f;
    float f1;
    
    int x = pos.getX();
    int y = pos.getY();
    int z = pos.getZ();
    
    if(!world.getBlockState(new BlockPos(x - 1, y, z)).equals(this) && !world.getBlockState(new BlockPos(x + 1, y, z)).equals(this))
    {
    f = 0.125F;
    f1 = 0.5F;
    this.setBlockBounds(0.5F - f, 0.0F, 0.5F - f1, 0.5F + f, 1.0F, 0.5F + f1);
    }
    else
    {
    f = 0.5F;
    f1 = 0.125F;
    this.setBlockBounds(0.5F - f, 0.0F, 0.5F - f1, 0.5F + f, 1.0F, 0.5F + f1);
    }
    
    EnumFacing.Axis axis = (EnumFacing.Axis)world.getBlockState(pos).getValue(AXIS);
           float f3 = 0.125F;
           float f4 = 0.125F;
    
           if (axis == EnumFacing.Axis.X)
           {
               f3 = 0.5F;
           }
    
           if (axis == EnumFacing.Axis.Z)
           {
               f4 = 0.5F;
           }
    
           this.setBlockBounds(0.5F - f3, 0.0F, 0.5F - f4, 0.5F + f3, 1.0F, 0.5F + f4);
    }
    
    public static int getMetaForAxis(EnumFacing.Axis axis)
       {
           return axis == EnumFacing.Axis.X ? 1 : (axis == EnumFacing.Axis.Z ? 2 : 0);
       }
    
    public boolean func_176548_d(World worldIn, BlockPos p_176548_2_)
       {
           BlockPortail.Size size = new BlockPortail.Size(worldIn, p_176548_2_, EnumFacing.Axis.X);
    
           if (size.func_150860_b() && size.field_150864_e == 0)
           {
               size.func_150859_c();
               return true;
           }
           else
           {
               BlockPortail.Size size1 = new BlockPortail.Size(worldIn, p_176548_2_, EnumFacing.Axis.Z);
    
               if (size1.func_150860_b() && size1.field_150864_e == 0)
               {
                   size1.func_150859_c();
                   return true;
               }
               else
               {
                   return false;
               }
           }
       }
    
    @SideOnly(Side.CLIENT)
        public boolean shouldSideBeRendered(IBlockAccess worldIn, BlockPos pos, EnumFacing side)
        {
            EnumFacing.Axis axis = null;
            IBlockState iblockstate = worldIn.getBlockState(pos);
    
            if (worldIn.getBlockState(pos).getBlock() == this)
            {
                axis = (EnumFacing.Axis)iblockstate.getValue(AXIS);
    
                if (axis == null)
                {
                    return false;
                }
    
                if (axis == EnumFacing.Axis.Z && side != EnumFacing.EAST && side != EnumFacing.WEST)
                {
                    return false;
                }
    
                if (axis == EnumFacing.Axis.X && side != EnumFacing.SOUTH && side != EnumFacing.NORTH)
                {
                    return false;
                }
            }
    
            boolean flag = worldIn.getBlockState(pos.west()).getBlock() == this && worldIn.getBlockState(pos.west(2)).getBlock() != this;
            boolean flag1 = worldIn.getBlockState(pos.east()).getBlock() == this && worldIn.getBlockState(pos.east(2)).getBlock() != this;
            boolean flag2 = worldIn.getBlockState(pos.north()).getBlock() == this && worldIn.getBlockState(pos.north(2)).getBlock() != this;
            boolean flag3 = worldIn.getBlockState(pos.south()).getBlock() == this && worldIn.getBlockState(pos.south(2)).getBlock() != this;
            boolean flag4 = flag || flag1 || axis == EnumFacing.Axis.X;
            boolean flag5 = flag2 || flag3 || axis == EnumFacing.Axis.Z;
            return flag4 && side == EnumFacing.WEST ? true : (flag4 && side == EnumFacing.EAST ? true : (flag5 && side == EnumFacing.NORTH ? true : flag5 && side == EnumFacing.SOUTH));
        }
    
    public IBlockState getStateFromMeta(int meta)
        {
            return this.getDefaultState().withProperty(AXIS, (meta & 3) == 2 ? EnumFacing.Axis.Z : EnumFacing.Axis.X);
        }
    
    public int getMetaFromState(IBlockState state)
    {
       return getMetaForAxis((EnumFacing.Axis)state.getValue(AXIS));
    }
    
        protected BlockState createBlockState()
        {
            return new BlockState(this, new IProperty[] {AXIS});
        }
    
        //BLOCK NOT VERY SPECIAL PROPERTIES
        @Override
        public void setBlockBoundsForItemRender()
        {
            float f1 = 0.125F;
            this.setBlockBounds(0, 0.0F, 0.5F - f1, 1F, 1.0F, 0.5F + f1);
        }
    
        @Override
         public AxisAlignedBB getCollisionBoundingBox(World worldIn, BlockPos pos, IBlockState state)
        {
            return null;
        }
    
        @Override
        public void onNeighborBlockChange(World world, BlockPos pos, IBlockState state, Block neighborBlock)
        {
            int x = pos.getX();
            int y = pos.getY();
            int z = pos.getZ();
    
            int y2 = y;
            while(world.getBlockState(new BlockPos(x, y2, z)).equals(this))
            {
                y2–;
            }
            if(!world.getBlockState(new BlockPos(x, y2, z)).equals(BlockRegister.BlockAmbre))
            {
                world.setBlockToAir(new BlockPos(x, y, z));
            }
            int y3 = y2 + 1;
            boolean portalIsGood = false;
            if(world.getBlockState(new BlockPos(x, y3, z + 1)).equals(this))
            {
                portalIsGood = (world.getBlockState(new BlockPos(x, y2, z)).equals(BlockRegister.BlockAmbre) && world.getBlockState(new BlockPos(x, y2, z + 1)).equals(BlockRegister.BlockAmbre) && world.getBlockState(new BlockPos(x, y2 + 1, z + 2)).equals(BlockRegister.BlockAmbre) && world.getBlockState(new BlockPos(x, y2 + 2, z + 2)).equals(BlockRegister.BlockAmbre) && world.getBlockState(new BlockPos(x, y2 + 3, z + 2)).equals(BlockRegister.BlockAmbre) && world.getBlockState(new BlockPos(x, y2 + 1, z - 1)).equals(BlockRegister.BlockAmbre) && world.getBlockState(new BlockPos(x, y2 + 2, z - 1)).equals(BlockRegister.BlockAmbre) && world.getBlockState(new BlockPos(x, y2 + 3, z - 1)).equals(BlockRegister.BlockAmbre) && world.getBlockState(new BlockPos(x, y2 + 4, z - 1)).equals(BlockRegister.BlockAmbre) && world.getBlockState(new BlockPos(x, y2 + 4, z)).equals(BlockRegister.BlockAmbre));
            }
            else if(world.getBlockState(new BlockPos(x, y3, z - 1)).equals(this))
            {
                portalIsGood = (world.getBlockState(new BlockPos(x, y2, z)).equals(BlockRegister.BlockAmbre) && world.getBlockState(new BlockPos(x, y2, z - 1)).equals(BlockRegister.BlockAmbre) && world.getBlockState(new BlockPos(x, y2 + 1, z - 2)).equals(BlockRegister.BlockAmbre) && world.getBlockState(new BlockPos(x, y2 + 2, z - 2)).equals(BlockRegister.BlockAmbre) && world.getBlockState(new BlockPos(x, y2 + 3, z - 2)).equals(BlockRegister.BlockAmbre) && world.getBlockState(new BlockPos(x, y2 + 1, z + 1)).equals(BlockRegister.BlockAmbre) && world.getBlockState(new BlockPos(x, y2 + 2, z + 1)).equals(BlockRegister.BlockAmbre) && world.getBlockState(new BlockPos(x, y2 + 3, z + 1)).equals(BlockRegister.BlockAmbre) && world.getBlockState(new BlockPos(x, y2 + 4, z + 1)).equals(BlockRegister.BlockAmbre) && world.getBlockState(new BlockPos(x, y2 + 4, z)).equals(BlockRegister.BlockAmbre));
            }
            else if(world.getBlockState(new BlockPos(x + 1, y3, z)).equals(this))
            {
                portalIsGood = (world.getBlockState(new BlockPos(x, y2, z)).equals(BlockRegister.BlockAmbre) && world.getBlockState(new BlockPos(x + 1, y2, z)).equals(BlockRegister.BlockAmbre) && world.getBlockState(new BlockPos(x + 2, y2 + 1, z)).equals(BlockRegister.BlockAmbre) && world.getBlockState(new BlockPos(x + 2, y2 + 2, z)).equals(BlockRegister.BlockAmbre) && world.getBlockState(new BlockPos(x + 2, y2 + 3, z)).equals(BlockRegister.BlockAmbre) && world.getBlockState(new BlockPos(x - 1, y2 + 1, z)).equals(BlockRegister.BlockAmbre) && world.getBlockState(new BlockPos(x - 1, y2 + 2, z)).equals(BlockRegister.BlockAmbre) && world.getBlockState(new BlockPos(x - 1, y2 + 3, z)).equals(BlockRegister.BlockAmbre) && world.getBlockState(new BlockPos(x + 1, y2 + 4, z)).equals(BlockRegister.BlockAmbre) && world.getBlockState(new BlockPos(x, y2 + 4, z)).equals(BlockRegister.BlockAmbre));
            }
            else if(world.getBlockState(new BlockPos(x - 1, y3, z)).equals(this))
            {
                portalIsGood = (world.getBlockState(new BlockPos(x, y2, z)).equals(BlockRegister.BlockAmbre) && world.getBlockState(new BlockPos(x - 1, y2, z)).equals(BlockRegister.BlockAmbre) && world.getBlockState(new BlockPos(x - 2, y2 + 1, z)).equals(BlockRegister.BlockAmbre) && world.getBlockState(new BlockPos(x - 2, y2 + 2, z)).equals(BlockRegister.BlockAmbre) && world.getBlockState(new BlockPos(x - 2, y2 + 3, z)).equals(BlockRegister.BlockAmbre) && world.getBlockState(new BlockPos(x + 1, y2 + 1, z)).equals(BlockRegister.BlockAmbre) && world.getBlockState(new BlockPos(x + 1, y2 + 2, z)).equals(BlockRegister.BlockAmbre) && world.getBlockState(new BlockPos(x + 1, y2 + 3, z)).equals(BlockRegister.BlockAmbre) && world.getBlockState(new BlockPos(x + 1, y2 + 4, z)).equals(BlockRegister.BlockAmbre) && world.getBlockState(new BlockPos(x, y2 + 4, z)).equals(BlockRegister.BlockAmbre));
            }
        }
    
        @SideOnly(Side.CLIENT)
        public EnumWorldBlockLayer getBlockLayer()
        {
            return EnumWorldBlockLayer.TRANSLUCENT;
        }
    
    @Override
    public boolean isOpaqueCube()
    {
    return false;
    }
    
    @Override
    public boolean isFullCube()
        {
            return false;
        }
    
    @Override
    public int quantityDropped(Random random)
    {
    return 0;
    }
    
    /** Fonction use to enter to your own dimension **/
    @Override
    public void onEntityCollidedWithBlock(World world, BlockPos pos, Entity entity)
    {
    if((entity.ridingEntity == null) && (entity.riddenByEntity == null))
    {
    if(entity.dimension != DimensionRegister.DimAncient)
    {
    if(entity instanceof EntityPlayerMP)
    {
    EntityPlayerMP player = (EntityPlayerMP)entity;
    if(player.timeUntilPortal > 0)
    {
    player.timeUntilPortal = 10;
    }
    else
    {
    player.timeUntilPortal = 10;
    player.mcServer.getConfigurationManager().transferPlayerToDimension(player, DimensionRegister.DimAncient, new AncientTeleporter(player.mcServer.worldServerForDimension(DimensionRegister.DimAncient)));
    }
    }
    }
    else
    {
    if(entity instanceof EntityPlayerMP)
    {
    EntityPlayerMP player = (EntityPlayerMP)entity;
    if(player.timeUntilPortal > 0)
    {
    player.timeUntilPortal = 10;
    }
    else
    {
    player.timeUntilPortal = 10;
    player.mcServer.getConfigurationManager().transferPlayerToDimension(player, 0, new AncientTeleporter(player.mcServer.worldServerForDimension(0)));
    }
    }
    }
            }
        }
    
    @SideOnly(Side.CLIENT)
    @Override
    public ItemStack getPickBlock(MovingObjectPosition target, World world, BlockPos pos)
    {
    return null;
    }
    
    @Override
    public void breakBlock(World world, BlockPos pos, IBlockState state)
    {
       int x = pos.getX();
       int y = pos.getY();
       int z = pos.getZ();
    
    super.breakBlock(world, pos, state);
    if(world.getBlockState(new BlockPos(x, y + 1, z)).equals(this))
    {
    world.setBlockToAir(new BlockPos(x, y + 1, z));
    }
    if(world.getBlockState(new BlockPos(x, y - 1, z)).equals(this))
    {
    world.setBlockToAir(new BlockPos(x, y - 1, z));
    }
    if(world.getBlockState(new BlockPos(x + 1, y, z)).equals(this))
    {
    world.setBlockToAir(new BlockPos(x + 1, y, z));
    }
    if(world.getBlockState(new BlockPos(x - 1, y, z)).equals(this))
    {
    world.setBlockToAir(new BlockPos(x - 1, y, z));
    }
    if(world.getBlockState(new BlockPos(x, y, z + 1)).equals(this))
    {
    world.setBlockToAir(new BlockPos(x, y, z + 1));
    }
    if(world.getBlockState(new BlockPos(x, y, z - 1)).equals(this))
    {
    world.setBlockToAir(new BlockPos(x, y, z - 1));
    }
    }
    
    // NEW CLASS INSIDE
    public static class Size
         {
             private final World world;
             private final EnumFacing.Axis axis;
             private final EnumFacing field_150866_c;
             private final EnumFacing field_150863_d;
             private int field_150864_e = 0;
             private BlockPos field_150861_f;
             private int field_150862_g;
             private int field_150868_h;
    
             public Size(World worldIn, BlockPos p_i45694_2_, EnumFacing.Axis p_i45694_3_)
             {
                 this.world = worldIn;
                 this.axis = p_i45694_3_;
    
                 if (p_i45694_3_ == EnumFacing.Axis.X)
                 {
                     this.field_150863_d = EnumFacing.EAST;
                     this.field_150866_c = EnumFacing.WEST;
                 }
                 else
                 {
                     this.field_150863_d = EnumFacing.NORTH;
                     this.field_150866_c = EnumFacing.SOUTH;
                 }
    
                 for (BlockPos blockpos1 = p_i45694_2_; p_i45694_2_.getY() > blockpos1.getY() - 21 && p_i45694_2_.getY() > 0 && this.func_150857_a(worldIn.getBlockState(p_i45694_2_.down()).getBlock()); p_i45694_2_ = p_i45694_2_.down())
                 {
                     ;
                 }
    
                 int i = this.func_180120_a(p_i45694_2_, this.field_150863_d) - 1;
    
                 if (i >= 0)
                 {
                     this.field_150861_f = p_i45694_2_.offset(this.field_150863_d, i);
                     this.field_150868_h = this.func_180120_a(this.field_150861_f, this.field_150866_c);
    
                     if (this.field_150868_h < 2 || this.field_150868_h > 21)
                     {
                         this.field_150861_f = null;
                         this.field_150868_h = 0;
                     }
                 }
    
                 if (this.field_150861_f != null)
                 {
                     this.field_150862_g = this.func_150858_a();
                 }
             }
    
             protected int func_180120_a(BlockPos pos, EnumFacing enumfacing)
             {
                 int i;
    
                 for (i = 0; i < 22; ++i)
                 {
                     BlockPos blockpos1 = pos.offset(enumfacing, i);
    
                     if (!this.func_150857_a(this.world.getBlockState(blockpos1).getBlock()) || this.world.getBlockState(blockpos1.down()).getBlock() != BlockRegister.BlockAmbre)
                     {
                         break;
                     }
                 }
    
                 Block block = this.world.getBlockState(pos.offset(enumfacing, i)).getBlock();
                 return block == BlockRegister.BlockAmbre ? i : 0;
             }
    
             protected int func_150858_a()
             {
                 int i;
                 label56:
    
                 for (this.field_150862_g = 0; this.field_150862_g < 21; ++this.field_150862_g)
                 {
                     for (i = 0; i < this.field_150868_h; ++i)
                     {
                         BlockPos blockpos = this.field_150861_f.offset(this.field_150866_c, i).up(this.field_150862_g);
                         Block block = this.world.getBlockState(blockpos).getBlock();
    
                         if (!this.func_150857_a(block))
                         {
                             break label56;
                         }
    
                         if (block == BlockRegister.BlockPortail)
                         {
                             ++this.field_150864_e;
                         }
    
                         if (i == 0)
                         {
                             block = this.world.getBlockState(blockpos.offset(this.field_150863_d)).getBlock();
    
                             if (block != BlockRegister.BlockAmbre)
                             {
                                 break label56;
                             }
                         }
                         else if (i == this.field_150868_h - 1)
                         {
                             block = this.world.getBlockState(blockpos.offset(this.field_150866_c)).getBlock();
    
                             if (block != BlockRegister.BlockAmbre)
                             {
                                 break label56;
                             }
                         }
                     }
                 }
    
                 for (i = 0; i < this.field_150868_h; ++i)
                 {
                     if (this.world.getBlockState(this.field_150861_f.offset(this.field_150866_c, i).up(this.field_150862_g)).getBlock() != BlockRegister.BlockAmbre)
                     {
                         this.field_150862_g = 0;
                         break;
                     }
                 }
    
                 if (this.field_150862_g <= 21 && this.field_150862_g >= 3)
                 {
                     return this.field_150862_g;
                 }
                 else
                 {
                     this.field_150861_f = null;
                     this.field_150868_h = 0;
                     this.field_150862_g = 0;
                     return 0;
                 }
             }
    
             protected boolean func_150857_a(Block block)
             {
                 return block.getMaterial() == Material.air || block == Blocks.fire || block == BlockRegister.BlockPortail;
             }
    
             public boolean func_150860_b()
             {
                 return this.field_150861_f != null && this.field_150868_h >= 2 && this.field_150868_h <= 21 && this.field_150862_g >= 3 && this.field_150862_g <= 21;
             }
    
             public void func_150859_c()
             {
                 for (int i = 0; i < this.field_150868_h; ++i)
                 {
                     BlockPos blockpos = this.field_150861_f.offset(this.field_150866_c, i);
    
                     for (int j = 0; j < this.field_150862_g; ++j)
                     {
                         this.world.setBlockState(blockpos.up(j), BlockRegister.BlockPortail.getDefaultState().withProperty(BlockPortail.AXIS, this.axis), 2);
                     }
                 }
             }
         }
    
    }
    
    


  • SUITE CLASSE

    Beaucoup de classe hein ? xD

    Voila j'ai vérifié une deuxième fois avec le tuto 1.7 et les classes de minecraft pour moi j'ia tout bien fait bon maintenant je suis pas parfait et la preuve puisque sa marche pas lol 😄

    Voila si quelqu'un sais :/</biomegenbase></biomegenbase></biomegenbase></biomegenbase>



  • Désolé du triple post , mais j'essaye par moi même de résoudre le problème et la dimension est créer no soucis du coup juste , que quand on rentre en collision avec le portail on dirait que c'est buggé , que c'est pas détecté directement faut en placer plusieurs pour y rentrer , fin bizarre , toutes les classes sont au dessus si vous savez ^^ J'essaye encore de résoudre par moi même mais de l'aide n'est pas de refus 😛 Fin si je trouve je le dirais 🙂



  • demain je regarderai. Pour se soir je pense pas 😄



  • No soucy en tout cas j'ai déja régler la dimension elle fonctionne mais c'est le portail surtout 😕



  • Ton post est indigeste. Fait le trie, fait du débuggage et post uniquement ce qui pose problème.



  • @'Blackout':

    Ton post est indigeste. Fait le trie, fait du débuggage et post uniquement ce qui pose problème.

    Certes il est indigeste , mais j'avais mis toutes les classes CAR au départ j'avais carrément toute la dimension qui ne fonctionnait pas, j'ai réussi a régler et je n'ai plus que le soucis du portail qui ne détecte pas le player lorsqu'il rentre en collision et ce post s'adresse surtout a Diangle qui lui s'y connais beaucoup en dimension, de plus en général les classes s'utilise l'une dans l'autre  🙂

    Merci.



  • Donc, on va commencer simplement. Edit les post est supprime toute les classes autres que ton bloc et le la classes pour téléporter. Sinon Met toute les autres classes dans un onglet spoiler. Ensuite tu t'es servit de quoi pour faire ton portail et ton téléporter ? Regarde quel partit du code n'est pas appeler dans ton portail quand tu entres en collision avec. Comme ça on sera précisément d'où viens le soucis. Pour le fait que la bloc ne s’aligne pas avec la direction on verra ça plus tard.

    edit: J'ai oublié. Legrandfifou, Blackout et un dev java très bon dans son domaine, donc c'est conseille sont à prendre et non pas à rejeter.



  • Je n'ai jamais fais de dimension, donc si c'est une mauvaise condition ou une variable qui n'est pas incrémentée ou tout autre truc du genre, je vais devoir chercher dans tout le code pour savoir où ça se trouve. Diangle s'y connait en dimension, donc lui il sait où peut se trouver l'erreur. En postant tout ton code, seul ceux qui s'y connaissent en dimension peuvent t'aider efficacement.
    Et encore, le simple fait de supprimer les imports, tu gagnes 200 lignes, tu rends la lecture plus agréable et tu rends le moteur de recherche du forum plus performant 😉



  • @'Diangle':

    Donc, on va commencer simplement. Edit les post est supprime toute les classes autres que ton bloc et le la classes pour téléporter. Sinon Met toute les autres classes dans un onglet spoiler. Ensuite tu t'es servit de quoi pour faire ton portail et ton téléporter ? Regarde quel partit du code n'est pas appeler dans ton portail quand tu entres en collision avec. Comme ça on sera précisément d'où viens le soucis. Pour le fait que la bloc ne s’aligne pas avec la direction on verra ça plus tard.

    edit: J'ai oublié. Legrandfifou, Blackout et un dev java très bon dans son domaine, donc c'est conseille sont à prendre et non pas à rejeter.

    Oké je vias faire ca , je ne rejette pas ce qu'a dit blackout mais je l'ai vraiment pris comme une attaque , il aurait tout simplement le dire plus cool genre Tu devrais modifier ton post et mettre tout ce qui ne va pas à part.

    @'Blackout':

    Je n'ai jamais fais de dimension, donc si c'est une mauvaise condition ou une variable qui n'est pas incrémentée ou tout autre truc du genre, je vais devoir chercher dans tout le code pour savoir où ça se trouve. Diangle s'y connait en dimension, donc lui il sait où peut se trouver l'erreur. En postant tout ton code, seul ceux qui s'y connaissent en dimension peuvent t'aider efficacement.
    Et encore, le simple fait de supprimer les imports, tu gagnes 200 lignes, tu rends la lecture plus agréable et tu rends le moteur de recherche du forum plus performant 😉

    Je dis ca car c'est le tuto Diangle qui ma permis de créer la dimension , donc c'est pour ca que je le dis car c'est " son code " maintenant je suis ouvert a toute propositions , sache juste que le

    @Blackout:

    Ton post est indigeste. Fait le trie, fait du débuggage et post uniquement ce qui pose problème.

    je trouve ca mal formulé et personnellement je l'ai pris comme une " attaque /pic" , fin voila mon ressenti , soit je vais modifier mon premier post 😛



  • Non il ne s'agit absolument pas une attaque, désolé pour ce malentendu 🙂



  • @'Blackout':

    Non il ne s'agit absolument pas une attaque, désolé pour ce malentendu 🙂

    Ah bah excuse alors de ma réponse ^^ Je modifierais surement mon post demain car je suis asser occupay 🙂



  • Post modifié pour la compréhension de tous 🙂



  • Tu as fait se que on t'a dit ? regarder précisément où étais le problème ?



  • Il semble que ce sois dans la fonction :

    
    @Override
    public void onEntityCollidedWithBlock(World world, BlockPos pos, Entity entity)
    {
    if((entity.ridingEntity == null) && (entity.riddenByEntity == null))
    {
             System.out.println("ridingentitynull");
    
    if(entity.dimension != DimensionRegister.DimAncient)
    {
              System.out.println("dimension");
    
    if(entity instanceof EntityPlayerMP)
    {
                 System.out.println("cesunjoueur");
    
    EntityPlayerMP player = (EntityPlayerMP)entity;
    if(player.timeUntilPortal > 0)
    {
                System.out.println("dansleportail");
    
    player.timeUntilPortal = 10;
    }
    else
    {
                System.out.println("dansleportailELSE");
    
    player.timeUntilPortal = 10;
    player.mcServer.getConfigurationManager().transferPlayerToDimension(player, DimensionRegister.DimAncient, new AncientTeleporter(player.mcServer.worldServerForDimension(DimensionRegister.DimAncient)));
    }
    }
    }
    else
    {
    if(entity instanceof EntityPlayerMP)
    {
    EntityPlayerMP player = (EntityPlayerMP)entity;
    if(player.timeUntilPortal > 0)
    {
    player.timeUntilPortal = 10;
    }
    else
    {
    player.timeUntilPortal = 10;
    player.mcServer.getConfigurationManager().transferPlayerToDimension(player, 0, new AncientTeleporter(player.mcServer.worldServerForDimension(0)));
    }
    }
    }
           }
       }
    
    

    Donc dans chaque IF , donc c'est cette fonction qui bug 🙂

    Aucun des messages n’apparaît 😕

    EDIT : Problème régler pour finir ::) Juste le portail qui change pas de sens 😕



  • up je pense que la les directions sont buger car la face du portail s'affiche mais pas les petits bords ( c.f portail end )



  • Up , je viens de régler le probleme du spawn dans le sol et dans les airs donc maintenant je spawn dans mon portail mais j'aimerais que le portail qui se génère se tourne suivant la direction du portail la pour l'instant j'ai

    BlockRegister.BlockPortail.getDefaultState()
    

    et je suppose qu'il faut que je rajoute un ```java
    .withProperty(BlockPortail.AXIS , ET ICI J'AVAIS vu une fonctione du genre rotatefromAngle

    
    mais je ne pense pas que ca marchera :/


  • @'Legrandfifou':

    Up , je viens de régler le probleme du spawn dans le sol et dans les airs donc maintenant je spawn dans mon portail mais j'aimerais que le portail qui se génère se tourne suivant la direction du portail la pour l'instant j'ai

    BlockRegister.BlockPortail.getDefaultState()
    

    et je suppose qu'il faut que je rajoute un ```java
    .withProperty(BlockPortail.AXIS , ET ICI J'AVAIS vu une fonctione du genre rotatefromAngle



  • Tu m'a aidé alors je te rend l’appareil. Déjà on créer une variable "axis" :

    EnumFacing.Axis axis = EnumFacing.Axis.X;
    

    Après on prend la position du bloque dans le monde par rapport au joueur et on-dit que si il y a un bloque de portail à "droite" ou à "gauche" ce sera l'axe X et inversement en "face" ou "derrière" l'axe Z :

    if(this.worldServerInstance.getBlockState(new BlockPos(entity.posX + 1, entity.posY, entity.posZ)).equals(EmotionBlocks.purpuraBlock.getDefaultState()) || this.worldServerInstance.getBlockState(new BlockPos(entity.posX - 1, entity.posY, entity.posZ)).equals(EmotionBlocks.purpuraBlock.getDefaultState()))
    {
       axis = EnumFacing.Axis.Z;
    }
    else if(this.worldServerInstance.getBlockState(new BlockPos(entity.posX, entity.posY, entity.posZ + 1)).equals(EmotionBlocks.purpuraBlock.getDefaultState()) || this.worldServerInstance.getBlockState(new BlockPos(entity.posX, entity.posY, entity.posZ -1)).equals(EmotionBlocks.purpuraBlock.getDefaultState()))
    {
       axis = EnumFacing.Axis.X;
    }
    

    Et enfin on applique à la création du bloque notre axis :

    EmotionBlocks.dreamPortal.getDefaultState().withProperty(DreamPortal.AXIS, axis)
    

    Voilà ça devrait fonctionner ,)

    P.S: Tu a 1 chance sur deux que ça fonctionne, dans le pire des cas il suffit d'inverser Z et X.



  • Merci j'en prend note 🙂