1.12.2 [1.12.2] Bug dalles positionnement


  • Moddeurs confirmés

    Bonjour à toutes et à tous, c'est encore moi 🙂

    J'ai un soucis qui est assez embêtant avec mes dalles. J'ai cherché un peu partout, sans trouver ce qui m'intéressait.
    Je m'explique.

    En solo : lorsque je place une slab sur le sol, elle reste au sol, et quand je pose une slab dessus, ça forme un block, jusque la, tout va bien. Mais quand je save & exit et que je reviens sur le monde, les slabs posé en bas, sont passé en haut.

    Sur serveur : lorsque je place une slab sur le sol, elle se déplace automatiquement vers le haut, comme en solo et que j'ai save & exit. et quand je pose une slab dessus, ça fait un block... comme si la slab du bas existait.

    Screen :

    unknown.png

    Conclusion : Je ne peux pas poser de slab sur le sol sans qu'elle se rehausse d'un cran.
    Voici mes classes qui gèrent les slabs:

    BlockSlabBase.java

    public abstract class BlockSlabBase extends BlockSlab implements IHasModel
    {
    
        public BlockSlabBase(String name, Material materialIn)
        {
            super(materialIn);
            setRegistryName(name).setUnlocalizedName(name);
    
            setCreativeTab(Main.blockslabtab);
    
            IBlockState state = this.blockState.getBaseState();
    
            if (!this.isDouble())
            {
                state = state.withProperty(HALF, EnumBlockHalf.BOTTOM);
            }
    
            setDefaultState(state);
            this.useNeighborBrightness = true;
        }
    
        @Override
        public String getUnlocalizedName(int meta)
        {
            return this.getUnlocalizedName();
        }
    
        @Override
        public IProperty<?> getVariantProperty()
        {
            return HALF;
        }
    
        @Override
        public Comparable<?> getTypeForItem(ItemStack stack)
        {
            return EnumBlockHalf.BOTTOM;
        }
    
        @Override
        public int damageDropped(IBlockState state)
        {
            return 0;
        }
    
        @Override
        public IBlockState getStateFromMeta(int meta)
        {
            if (!this.isDouble())
            {
                return this.getDefaultState().withProperty(HALF, EnumBlockHalf.values()[meta % EnumBlockHalf.values().length]);
            }
    
            return this.getDefaultState();
        }
    
        @Override
        public Item getItemDropped(IBlockState state, Random rand, int fortune)
        {
            return Item.getItemFromBlock(this);
        }
    
        @Override
        public int getMetaFromState(IBlockState state)
        {
           if (!this.isDouble())
           {
               return 0;
           }
           return ((EnumBlockHalf)state.getValue(HALF)).ordinal() + 1;
        }
    
    
        @Override
        protected BlockStateContainer createBlockState()
        {
            return new BlockStateContainer(this, new IProperty[]{HALF});
        }
    }
    

    BlockHalfSlabBase

    public class BlockHalfSlabBase extends BlockSlabBase
    {
        public BlockHalfSlabBase(String name, Material material)
        {
            super(name, material);
    
            BlockInit.BLOCK.add(this);
            ItemInit.ITEM.add(Item.getItemFromBlock(this));
        }
    
        @Override
        public boolean isDouble()
        {
            return false;
        }
    
        @Override
        public void registerModels() {
            Main.proxy.registerItemRenderer(Item.getItemFromBlock(this), 0, "inventory");
        }
    }
    

    BlockDoubleSlabBase

    public class BlockDoubleSlabBase extends BlockSlabBase
    {
    
        public BlockDoubleSlabBase(String name, Material material)
        {
            super(name, material);
    
            BlockInit.BLOCK.add(this);
            ItemInit.ITEM.add(Item.getItemFromBlock(this));
        }
    
        @Override
        public boolean isDouble()
        {
            return true;
        }
    
        @Override
        public void registerModels() {
            Main.proxy.registerItemRenderer(Item.getItemFromBlock(this), 0, "inventory");
        }
    }
    

    Voila tout, merci d'avance pour toute aide qui me sera utile 🙂 .

    Flow Arg


  • Moddeurs confirmés

    Bon, probleme résolu, j'ai quelque peu modifié mes class de blockslab,
    les liens pour ceux que ca intéresse :
    https://pastebin.com/GeZgGy66
    https://pastebin.com/ex5rLfFA
    https://pastebin.com/ZmUXRdNS

    Voilà tout !


  • Moddeurs confirmés

    Bon, probleme résolu, j'ai quelque peu modifié mes class de blockslab,
    les liens pour ceux que ca intéresse :
    https://pastebin.com/GeZgGy66
    https://pastebin.com/ex5rLfFA
    https://pastebin.com/ZmUXRdNS

    Voilà tout !


Log in to reply