Table of Contents

Groupes d'objets

Créer un groupe d'objets simple

Pour que votre ItemGroup apparaisse correctement dans le menu créatif, utilisez le FabricItemGroupBuilder pour le créer.

  1. public class ExampleMod implements ModInitializer
  2. {
  3. // ...
  4. public static final ItemGroup ITEM_GROUP = FabricItemGroupBuilder.build(
  5. new Identifier("tutorial", "general"),
  6. () -> new ItemStack(Blocks.COBBLESTONE));
  7.  
  8. public static final ItemGroup OTHER_GROUP = FabricItemGroupBuilder.create(
  9. new Identifier("tutorial", "other"))
  10. .icon(() -> new ItemStack(Items.BOWL))
  11. .build();
  12. // ...
  13. }

Une fois que FabricItemGroupBuilder#build est appelé, votre groupe sera ajouté à la liste des groupes d'objets dans le menu créatif.

Assurez-vous de remplacer les arguments 1) que vous insérez dans le constructeur Identifier par votre ID de mod réel et par la clé de traduction que vous souhaitez donner à votre groupe d'objets 2).

Ajouter vos objets dans votre groupe d'objets

Lors de la création d'un objet personnalisé, appelez Item.Settings#group dans vos paramètres et insérez votre groupe personnalisé.

public static final Item YOUR_ITEM = new Item(new Item.Settings().group(ExampleMod.ITEM_GROUP));

Afficher des objets spécifiques dans un ordre particulier

Appelez FabricItemGroupBuilder#appendItems et insérez un Consumer<List<ItemStack>>. Vous pouvez alors ajouter les stacks d'objets de votre choix à la liste donnée, dans un ordre quelconque. ItemStack.EMPTY peut être utilisé pour placer des espaces vides dans votre groupe.

  1. public class ExampleMod implements ModInitializer
  2. {
  3. // ...
  4. public static final ItemGroup ITEM_GROUP = FabricItemGroupBuilder.build(
  5. new Identifier("tutorial", "general"),
  6. () -> new ItemStack(Blocks.COBBLESTONE));
  7.  
  8. public static final ItemGroup OTHER_GROUP = FabricItemGroupBuilder.create(
  9. new Identifier("tutorial", "other"))
  10. .icon(() -> new ItemStack(Items.BOWL))
  11. .appendItems(stacks ->
  12. {
  13. stacks.add(new ItemStack(Blocks.BONE_BLOCK));
  14. stacks.add(new ItemStack(Items.APPLE));
  15. stacks.add(PotionUtil.setPotion(new ItemStack(Items.POTION), Potions.WATER));
  16. stacks.add(ItemStack.EMPTY);
  17. stacks.add(new ItemStack(Items.IRON_SHOVEL));
  18. })
  19. .build();
  20. // ...
  21. }

1)
Rappelez-vous que les arguments insérés dans le constructeur Identifier peuvent contenir seulement certains caractères.
Chacun des arguments (le namespace et le path) peut contenir des lettres minuscules, des nombres, des tirets bas, des points ou des tirets. [a-z0-9_.-]
Le second argument (le path) peut également contenir des barres obliques. [a-z0-9/._-]
Évitez d'utiliser d'autres symboles, sinon une erreur InvalidIdentifierException sera envoyée !
2)
La clé de traduction complète pour le premier exemple d'ItemGroup serait itemGroup.mod_id.general