Créer un bloc avec des métadonnées
-
Il faut les logs (pastebin ou balises code)
-
C’est a dire ?
-
Les logs = ce qu’il y a écrit dans la console d’eclipse.
-
Le problème de VARIANT est résolu par contre j’ai un petit problème dans le constructeur :
https://image.noelshack.com/fichiers/2017/09/1488630068-capture.png
-
Il manque la ligne super avec le matériel.
-
Ben j’ai essayé mais sa ne marche pas . Est ce que tu peux mettre la ligne de code du matériel pour que je vois si c’est la bonne .
-
super(Material.rock); par exemple, directement en dessous de la première accolade.
-
public static final Item BLOCK_TUTORIAL_ITEM = new ItemBlockMetadata(TutorialBlocks.TUTORIAL,).setRegistryName(TutorialBlocks.TUTORIAL.getRegistryName());Bonjour,
Après TutorialBlocks.TUTORIAL il y a une vergule sans rien, il manque quelques choses nom ? un String[] ?
Cordialement
-
Oui, qui contient tous les nom non localisé :
new String[]{“nomDuBlocmeta1”, “nomDuBlocmeta2”}; -
J’ai un problème au niveau de cette partie de code : names = META_LOOKUP.unlocalizedName;
il y’a une vague rouge sous unlocalizedName. Je suis en 1.12.2. Merci pour votre aide -
Il faut remplacer les ‘*’ par ‘[i]’. Il y a du y avoir un problème lors de la conversion vers NodeBB.
names[i] = META_LOOKUP[i].unlocalizedName; -
En effet, il y a bien eu un oubli lors de l’édition de l’ensemble des tutoriels.
J’ai corrigé celui-ci.
Si vous rencontrez d’autres erreurs de ce type, plutôt que d’écrire un message pour le dire, utilisez le bouton signaler sur le tutoriel concerné, ce sera plus simple pour tout le monde. -
Perso une réponse au tutoriel ça me va aussi.
-
Bonjour,
J’ai une vague rouge en-dessous du " NonNullList " ( ligne 41 ) et j ai beau relire le tuto je ne sais pas pk. Aidez moi svp ( je suis en 1.10.2 )package fr.lebourguignon.bourguimod.block; import net.minecraft.block.material.Material; import net.minecraft.block.properties.IProperty; import net.minecraft.block.properties.PropertyEnum; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.IStringSerializable; import net.minecraft.block.Block; public class Test extends Block { public static final String NAME = "test"; public static final PropertyEnum<Test.EnumType> VARIANT = PropertyEnum.<Test.EnumType>create("variant", Test.EnumType.class); public Test(Material material) { super(material); BourguiModBlocks.setBlockName(this, NAME); setDefaultState(this.blockState.getBaseState().withProperty(VARIANT, Test.EnumType.FIRST)); setLightOpacity(255); setLightLevel(1); setResistance(5.0F); setHardness(3.0F); setCreativeTab(CreativeTabs.BUILDING_BLOCKS); } @Override public int damageDropped(IBlockState state) { return state.getValue(VARIANT).getMetadata(); } @Override public void getSubBlocks(Item itemIn, CreativeTabs tab, NonNullList <ItemStack> list) { for (Test.EnumType type : Test.EnumType.values()) { list.add(new ItemStack(itemIn, 1, type.getMetadata())); } } @Override public IBlockState getStateFromMeta(int meta) { return this.getDefaultState().withProperty(VARIANT, Test.EnumType.byMetadata(meta)); } @Override public int getMetaFromState(IBlockState state) { return ((Test.EnumType)state.getValue(VARIANT)).getMetadata(); } @Override protected BlockStateContainer createBlockState() { return new BlockStateContainer(this, new IProperty[] {VARIANT}); } public static enum EnumType implements IStringSerializable { FIRST(0, "test", "test_white"), SECOND(1, "test2", "test_black"); ; private static final Test.EnumType[] META_LOOKUP = new Test.EnumType[values().length]; private final int meta; private final String name; private final String unlocalizedName; private EnumType(int metaIn, String nameIn, String unlocalizedIn) { this.meta = metaIn; this.name = nameIn; this.unlocalizedName = unlocalizedIn; } public static String[] getUnlocalizedNames() { String[] names = new String[values().length]; for (int i = 0; i < META_LOOKUP.length; i++) names[i] = META_LOOKUP[i].unlocalizedName; return names; } public int getMetadata() { return this.meta; } public static Test.EnumType byMetadata(int meta) { if (meta < 0 || meta >= META_LOOKUP.length) { meta = 0; } return META_LOOKUP[meta]; } public String toString() { return this.name; } @Override public String getName() { return this.name; } static { for (Test.EnumType type : values()) { META_LOOKUP[type.getMetadata()] = type; } } } } -
NonNullList n’existe qu’en 1.11.2 e plus récent.
En 1.10.2 la fonction
getSubBlocksa une simpleListen paramètre. -
@robin4002 bas c’est pas présciser alors que c’est dans le sommaire 1.9.4-1.11.2.
donc tu peux la ligne que je dois mettre svp? -
Ah mince, j’ai mal géré le sommaire.
Remplaces NonNullList par List, tout simplement.
-
@robin4002 ok merci! J’ai encore un problème de texture mais je vais chercher un peu avant de vous demander.
-
@robin4002

Voila j ai encore un problème sur la texture des items… Demandez les programmes que vous avez besoin.
blockstates.test.json:{ "variants": { "variant=test": { "model": "bourguimod:test_white" }, "variant=test2": { "model": "bourguimod:test_black" } } }models.item.test_white.json:
{ "parent": "bourguimod:block/test_white" }models.block.test_white.json:
{ "parent": "block/cube_all", "textures": { "all": "bourguimod:blocks/test_white" } } -
Tu as quelque chose dans les logs ?
