tutorial:itemgroup
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
tutorial:itemgroup [2019/06/17 18:56] – small refactoring + modid fixes draylar | tutorial:itemgroup [2023/09/28 21:20] – Tabs and Yarn text haykam | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Item Groups ====== | ====== Item Groups ====== | ||
- | ==== Creating a simple Item Group ==== | ||
- | To have your '' | ||
- | <code java [enable_line_numbers=" | ||
- | public class ExampleMod implements ModInitializer | ||
- | { | ||
- | // ... | ||
- | public static final ItemGroup ITEM_GROUP = FabricItemGroupBuilder.build( | ||
- | new Identifier(" | ||
- | () -> new ItemStack(Blocks.COBBLESTONE)); | ||
- | |||
- | public static final ItemGroup OTHER_GROUP = FabricItemGroupBuilder.create( | ||
- | new Identifier(" | ||
- | .icon(() -> new ItemStack(Items.BOWL)) | ||
- | .build(); | ||
- | // ... | ||
- | } | ||
- | </ | ||
- | Once '' | ||
- | Make sure you replace the arguments ((Remember that the arguments you pass to the '' | + | //This is the 1.20+ version of this tutorial. For the 1.19 version, see [[tutorial:1.19: |
- | === Adding | + | So far, you have used ''/ |
- | When creating a custom | + | |
- | <code java> | + | ==== Adding to Item Groups ==== |
- | public | + | |
- | </code> | + | First, choose the item group that the item should be added to. For this example, that item group will be the building blocks group. The registry keys of vanilla item groups are stored in the ''< |
+ | |||
+ | Next, you will have to create an event handler for modifying item groups. | ||
+ | |||
+ | < | ||
+ | ItemGroupEvents.modifyEntriesEvent(class_7706.field_40195).register(content -> { | ||
+ | content.add(CUSTOM_ITEM); | ||
+ | }); | ||
+ | </ | ||
+ | |||
+ | The modification event also allows more fine-grained control such as placing your custom | ||
+ | |||
+ | Items can be positioned relative to the existing vanilla items. Think carefully about where your mod's users would expect the item to be. For example, if you are adding a new type of wood, placing your item after the existing types of wood would make the most sense. | ||
+ | |||
+ | For example, this event handler will place your mod's item after the oak door in the building blocks item group: | ||
+ | |||
+ | < | ||
+ | ItemGroupEvents.modifyEntriesEvent(class_7706.field_40195).register(content -> { | ||
+ | content.addAfter(class_1802.field_8691, | ||
+ | }); | ||
+ | </ | ||
+ | |||
+ | ==== Creating an Item Group ==== | ||
+ | |||
+ | Before you create an item group, determine whether it would have enough content to warrant its own group. Your item group will be placed | ||
+ | |||
+ | If you think that your own item group is needed, you can use the '' | ||
+ | |||
+ | <yarncode | ||
+ | private | ||
+ | .icon(() -> new class_1799(CUSTOM_ITEM)) | ||
+ | .displayName(class_2561.method_43469(" | ||
+ | .entries((context, entries) -> { | ||
+ | entries.add(CUSTOM_ITEM); | ||
+ | }) | ||
+ | .build(); | ||
+ | </ | ||
+ | |||
+ | You can add entries to your item group within the '' | ||
+ | |||
+ | It is important to set the display name, otherwise it will cause a crash. | ||
+ | |||
+ | The next step is to register your item group. | ||
+ | |||
+ | < | ||
+ | class_2378.method_10230(class_7923.field_44687, | ||
+ | </yarncode> | ||
- | ==== Making an Item Group display specific Items in a particular order ==== | ||
- | Call '' | ||
- | <code java [enable_line_numbers=" | ||
- | public class ExampleMod implements ModInitializer | ||
- | { | ||
- | // ... | ||
- | public static final ItemGroup ITEM_GROUP = FabricItemGroupBuilder.build( | ||
- | new Identifier(" | ||
- | () -> new ItemStack(Blocks.COBBLESTONE)); | ||
- | |||
- | public static final ItemGroup OTHER_GROUP = FabricItemGroupBuilder.create( | ||
- | new Identifier(" | ||
- | .icon(() -> new ItemStack(Items.BOWL)) | ||
- | .appendItems(stacks -> | ||
- | { | ||
- | stacks.add(new ItemStack(Blocks.BONE_BLOCK)); | ||
- | stacks.add(new ItemStack(Items.APPLE)); | ||
- | stacks.add(PotionUtil.setPotion(new ItemStack(Items.POTION), | ||
- | stacks.add(ItemStack.EMPTY); | ||
- | stacks.add(new ItemStack(Items.IRON_SHOVEL)); | ||
- | }) | ||
- | .build(); | ||
- | // ... | ||
- | } | ||
- | </ | ||
{{: | {{: |
tutorial/itemgroup.txt · Last modified: 2023/10/01 03:21 by haykam