Подготовка
- Включение сообщений отладки Log4j (на англ.)
Основы
- Традицонная терминология
- Реестры
- Инструменты для разработки
Чтобы ваша ItemGroup
правильно отображалась в меню креатива, используйте FabricItemGroupBuilder
для их создания:
public class ExampleMod implements ModInitializer { public static final ItemGroup ITEM_GROUP = FabricItemGroupBuilder.build( new Identifier("tutorial", "general"), () -> new ItemStack(Blocks.COBBLESTONE)); public static final ItemGroup OTHER_GROUP = FabricItemGroupBuilder.create( new Identifier("tutorial", "other")) .icon(() -> new ItemStack(Items.BOWL)) .build(); // ... }
Как только будет вызван FabricItemGroupBuilder#build
, ваша группа будет добавлена в список групп предметов в меню креатива.
Убедитесь, что вы заменили аргументы 1), вы переходите к конструктору Identifier
с вашим фактическим идентификатором мода и ключом перевода, который вы хотите предоставить своей группе предметов для локализации 2) позже.
При создании своего предмета вызовите команду Item.Settings#group
в ваших настройках и перейдите в свою группу:
public static final Item YOUR_ITEM = new Item(new Item.Settings().group(ExampleMod.ITEM_GROUP));
Вызовите FabricItemGroupBuilder#appendItems
и передайте любой Consumer<List<ItemStack>>
. Затем вы можете добавить любые стаки, которые вы хотите, в данный список в определенном порядке. ItemStack.EMPTY
можно использовать для размещения пустых мест в вашей группе.
public class ExampleMod implements ModInitializer { public static final ItemGroup ITEM_GROUP = FabricItemGroupBuilder.build( new Identifier("tutorial", "general"), () -> new ItemStack(Blocks.COBBLESTONE)); public static final ItemGroup OTHER_GROUP = FabricItemGroupBuilder.create( new Identifier("tutorial", "other")) .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), Potions.WATER)); stacks.add(ItemStack.EMPTY); stacks.add(new ItemStack(Items.IRON_SHOVEL)); }) .build(); // ... }
Identifier
, могут содержать только определенные символы.namespace
и path
) могут содержать строчные буквы, цифры, подчеркивания, точки или тире. [a-z0-9_.-]
path
) также может включать косые черты. [a-z0-9/._-]
InvalidIdentifierException
!ItemGroup
будет itemGroup.mod_id.general