[En Cours] Bug Dalle [1.12.2]

Besoin d'aide ? c'est par ici ;)
Règles du forum
[En Attente] - Qui est défini par défaut à l'ouverture de la demande d'aide
[En Cours] - Qui est à mettre lorsque vous venez d'avoir une réponse à votre demande d'aide
[Résolu] - Qui est à mettre lorsque votre problème est résolu
Merci de respecter ce modèle pour toutes demandes d'assistances !
Merci de mettre votre code dans les balises code prévus à cet effet, icon </>
Version de Minecraft:
Version de Forge: (Il s'agit du numéro de version indiqué sur le nom de votre dossier forge téléchargé)

Description du problème:
(Un maximum d'informations sera utile, quel code fait crash ?, quand cela ce produit ?, ne pas hésiter à mettre des captures d'écran et fichiers de log en pièces jointes)
Répondre
Fureur Time
Messages : 26
Inscription : 21 avr. 2020 20:45

Bug Dalle [1.12.2]

Message par Fureur Time »

J'ai un bug avec les dalles, quand je quitte le monde et que je le rejoins toute les dalles se mettent en position haute.
2020-05-01_20.32.26.png
2020-05-01_20.32.42.png
et j'ai aussi un problème pour empiler les dalles, au lieu de faire un block complet sa me met la dalles au-dessus.
2020-05-01_20.38.08.png
le code de mes dalles

Code : Tout sélectionner

package fr.fureurtime.moreblock.blocks.slab;

import java.util.Random;

import fr.fureurtime.moreblock.MoreBlock;
import fr.fureurtime.moreblock.init.BlocksMod;
import net.minecraft.block.BlockSlab;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.IProperty;
import net.minecraft.block.state.BlockStateContainer;
import net.minecraft.block.state.IBlockState;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;

public abstract class BlockSlabMod extends BlockSlab
{
	public BlockSlabMod(String name, Material material, float hardness, float resistance)
	{
		super(material);
		setRegistryName(name).setUnlocalizedName(name);
		setCreativeTab(MoreBlock.mbtab_block);
		setHardness(hardness);
		setResistance(resistance);

		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(meta);
	}
	
	@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 int getMetaFromState(IBlockState state)
	{
		if(!this.isDouble())
		{
			return 0;
		}
		return ((EnumBlockHalf)state.getValue(HALF)).ordinal() + 1;
	}
	
	@Override
	public Item getItemDropped(IBlockState state, Random rand, int fortune)
	{
		return Item.getItemFromBlock(this);
	}
	
	@Override
	protected BlockStateContainer createBlockState()
	{
		return new BlockStateContainer(this, new IProperty[] {HALF});
	}
}
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Avatar de l’utilisateur
Checconio
Site Admin
Messages : 660
Inscription : 20 juil. 2019 18:53
Localisation : Istres
Contact :

Re: Bug Dalle [1.12.2]

Message par Checconio »

Regarde dans le code de minecraft si il n'y a pas une class en plus pour les demi dalles


Tu peux passer ton sujet en [En Cours]
Tu veux des réductions et du cashback ? passe par iGraal ;)
3€ Offert en passant par mon lien :)

https://fr.igraal.com/?parrain=AG_577542b686c1d
Image
Fureur Time
Messages : 26
Inscription : 21 avr. 2020 20:45

Re: Bug Dalle [1.12.2]

Message par Fureur Time »

J'ai cherché mais j'ai rien trouvé, puis dans la vidéo de la personne que j'ai regardé, j'ai recopié tout le code et lui sa marchais, après c'est pas les même version de forge donc je pense que je dois rajouter quelque chose.
Avatar de l’utilisateur
Checconio
Site Admin
Messages : 660
Inscription : 20 juil. 2019 18:53
Localisation : Istres
Contact :

Re: Bug Dalle [1.12.2]

Message par Checconio »

déjà si tu prend du code de version différentes tu as à 99% de chances que ça fonctionne pas, puis si tu récupère le code d'une autre personne c'est avec cette personne qu'il faudrait voir ce qui va pas ^^je peut dépanner les gens sur le code que je crée mais je peux pas m'amuser à dépanner le code des personnes qui codent à leur façon, chaque dev crée le code à sa façon donc je ne peut pas savoir ce qu'il manque ou non ne sachant pas comment il a organisé son code
Tu veux des réductions et du cashback ? passe par iGraal ;)
3€ Offert en passant par mon lien :)

https://fr.igraal.com/?parrain=AG_577542b686c1d
Image
Fureur Time
Messages : 26
Inscription : 21 avr. 2020 20:45

Re: Bug Dalle [1.12.2]

Message par Fureur Time »

J'ai réglé le bug ou les dalles se mettent en positon haute mais je n'arrive toujours pas à les empiler pour faire un block complet
Avatar de l’utilisateur
Checconio
Site Admin
Messages : 660
Inscription : 20 juil. 2019 18:53
Localisation : Istres
Contact :

Re: Bug Dalle [1.12.2]

Message par Checconio »

tu as un erreur généré dans la console quand tu essai de les empiler ?
Tu veux des réductions et du cashback ? passe par iGraal ;)
3€ Offert en passant par mon lien :)

https://fr.igraal.com/?parrain=AG_577542b686c1d
Image
Fureur Time
Messages : 26
Inscription : 21 avr. 2020 20:45

Re: Bug Dalle [1.12.2]

Message par Fureur Time »

Non je n'avais pas d'erreur mais c'est bon j'ai trouvé sa marche, par contre le block avec 2 slab ne loot rien pourtant j'ai bien mis le "quantityDropped()" avec return this.isDouble() ? 2 : 1; à l'interieur, et mon block double retourne true pour isDouble().
Avatar de l’utilisateur
Checconio
Site Admin
Messages : 660
Inscription : 20 juil. 2019 18:53
Localisation : Istres
Contact :

Re: Bug Dalle [1.12.2]

Message par Checconio »

c'est normal que ton block double retourne true sur la fonction isDouble()
Tu veux des réductions et du cashback ? passe par iGraal ;)
3€ Offert en passant par mon lien :)

https://fr.igraal.com/?parrain=AG_577542b686c1d
Image
Fureur Time
Messages : 26
Inscription : 21 avr. 2020 20:45

Re: Bug Dalle [1.12.2]

Message par Fureur Time »

Je sais, mais je pensé que tu aurai pu me dire que mon block double retourné false.
Et puis je n'arrive pas à trouvé le probléme alors je donne le code.

Code : Tout sélectionner

package fr.fureurtime.moreblock.blocks.slab;

import java.util.Random;

import fr.fureurtime.moreblock.MoreBlock;
import fr.fureurtime.moreblock.init.BlocksMod;
import net.minecraft.block.BlockSlab;
import net.minecraft.block.BlockSlab.EnumBlockHalf;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.IProperty;
import net.minecraft.block.properties.PropertyBool;
import net.minecraft.block.properties.PropertyEnum;
import net.minecraft.block.state.BlockFaceShape;
import net.minecraft.block.state.BlockStateContainer;
import net.minecraft.block.state.IBlockState;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.IBlockAccess;
import scala.reflect.internal.Trees.Super;

public abstract class BlockSlabMod extends BlockSlab
{
	public static final PropertyEnum<BlockSlabMod.EnumBlockHalf> HALF = PropertyEnum.<BlockSlabMod.EnumBlockHalf>create("half", BlockSlabMod.EnumBlockHalf.class);

	public BlockSlabMod(String name, Material material, float hardness, float resistance)
	{
		super(material);
		setRegistryName(name).setUnlocalizedName(name);
		setCreativeTab(MoreBlock.mbtab_block);
		setHardness(hardness);
		setResistance(resistance);

		IBlockState state = this.blockState.getBaseState();
		
		if(!this.isDouble())
		{
			state = state.withProperty(HALF, BlockSlabMod.EnumBlockHalf.BOTTOM);
		}
		
		setDefaultState(state);
		this.useNeighborBrightness = true;
	}
	
	public BlockSlabMod(String name, Material material, float hardness, float resistance, int harvestLevel, String harvestType)
	{
		super(material);
		setRegistryName(name).setUnlocalizedName(name);
		setCreativeTab(MoreBlock.mbtab_block);
		setHardness(hardness);
		setResistance(resistance);
		setHarvestLevel(harvestType, harvestLevel);

		IBlockState state = this.blockState.getBaseState();
		
		if(!this.isDouble())
		{
			state = state.withProperty(HALF, BlockSlabMod.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 BlockSlabMod.EnumBlockHalf.BOTTOM;
	}
		
	@Override
	public int damageDropped(IBlockState state) 
	{
		return 0;
	}

	@Override
    public IBlockState getStateFromMeta(int meta)
    {
        IBlockState state = this.blockState.getBaseState().withProperty(HALF, BlockSlabMod.EnumBlockHalf.BOTTOM);
        if(!this.isDouble()) state = state.withProperty(HALF, ((meta&8) != 0) ? BlockSlabMod.EnumBlockHalf.TOP : BlockSlabMod.EnumBlockHalf.BOTTOM);
        return state;
    }

    @Override
    public int getMetaFromState(IBlockState state)
    {
        int meta = 0;
        if(!this.isDouble() && state.getValue(HALF) == BlockSlabMod.EnumBlockHalf.TOP) meta |= 8;
        return meta;
    }

    @Override
    public int quantityDropped(Random random)
    {
        return this.isDouble() ? 2 : 1;
    }

	@Override
	public Item getItemDropped(IBlockState state, Random rand, int fortune) 
	{
		return Item.getItemFromBlock(this);
	}
		
	@Override
	protected BlockStateContainer createBlockState() 
	{
		return new BlockStateContainer(this, new IProperty[] {HALF});
	}
}
et le block double

Code : Tout sélectionner

package fr.fureurtime.moreblock.blocks.slab;

import java.util.Random;

import net.minecraft.block.material.Material;

public class BlockDoubleSlabMod extends BlockSlabMod
{
	public BlockDoubleSlabMod(String name, Material material, float hardness, float resistance)
	{
		super(name, material, hardness, resistance);
	}

	public BlockDoubleSlabMod(String name, Material material, float hardness, float resistance, int harvestLevel, String harvestType)
	{
		super(name, material, hardness, resistance);
		setHarvestLevel(harvestType, harvestLevel);
	}
	
	@Override
	public boolean isDouble()
	{
		return true;
	}
}

Avatar de l’utilisateur
Checconio
Site Admin
Messages : 660
Inscription : 20 juil. 2019 18:53
Localisation : Istres
Contact :

Re: Bug Dalle [1.12.2]

Message par Checconio »

Là je ne saurai pas te dire ce qui va pas, j'ai jamais fait le code pour la slab :/
Tu veux des réductions et du cashback ? passe par iGraal ;)
3€ Offert en passant par mon lien :)

https://fr.igraal.com/?parrain=AG_577542b686c1d
Image
Répondre