Gerenciamento de Inventário Criativo
Para proporcionar uma experiência de usuário organizada, é essencial que os itens de um mod não fiquem dispersos na aba de itens diversos do Minecraft. A criação de uma aba exclusiva no Modo Criativo permite agrupar elementos relacionados e facilitar o acesso do jogador. O primeiro passo é estender a classe base de grupos de itens. Criaremos uma implementação persoanlizada para definir o comportamento da aba. ``` public class TutorialTab extends ItemGroup { public TutorialTab(String label) { super(label); }
@Override
public ItemStack makeIcon() {
// Define o item que servirá como ícone da aba
return new ItemStack(ItemInit.RUBY_GEM.get());
}
}
Neste exemplo, a classe `TutorialTab` herda de `ItemGroup`. O método `makeIcon` é obrigatório e retorna um `ItemStack` que representa o ícone visual da aba no inventário. Após definir a classe, é necessário instanciá-la em um local centralizado para que o mod a reconheça: ```
public class ModCreativeTabs {
public static final ItemGroup MAIN_TAB = new TutorialTab("tutorial_mod_tab");
}
Para associar um item a esta aba, modificamos as propriedades durante a inicialização do item. No construtor ou na definição do registro do item, utilizamos o método tab(): ```
public class RubyGem extends Item {
public RubyGem() {
super(new Item.Properties().tab(ModCreativeTabs.MAIN_TAB));
}
}
Por fim, é necessário adicionar a tradução para o nome da aba no arquivo de localização (por exemplo, `en_us.json` ou `pt_br.json`): ```
{
"itemGroup.tutorial_mod_tab": "Tutorial Mod: Itens"
}
Configuração de Receitas via Data Packs
Diferente da lógica de código Java, as receitas no Forge moderno são tratadas como recursos de dados (Data Packs). Isso permite uma modificação mais flexível sem a necessidade de recompilar o código para ajustes simples de balanceamento. As receitas devem ser armazenadas no diretório: src/main/resources/data/[modid]/recipes/. É fundamental que a estrutura de pastas seja criada corretamente, respeitando a hierarquia exigida pelo sistema de arquivos do Minecraft. Abaixo, um exemplo de receita moldada (shaped) para criar uma "Gema de Rubi" a partir de nove "Fragmentos de Rubi": ```
{
"type": "minecraft:crafting_shaped",
"pattern": [
"###",
"###",
"###"
],
"key": {
"#": {
"item": "tutorialmod:ruby_fragment"
}
},
"result": {
"item": "tutorialmod:ruby_gem",
"count": 1
}
}
Detalhamento dos campos: - **type**: Define o tipo de receita. `minecraft:crafting_shaped` indica que os itens devem ser colocados em uma ordem específica na grade.
- **pattern**: Uma matriz de strings representando a grade 3x3. Espaços vazios podem ser representados por caracteres de espaço.
- **key**: Mapeia os caracteres usados no padrão para itens específicos ou tags.
- **result**: Define o item de saída e a quantidade produzida.
Além das receitas moldadas, o sistema suporta receitas sem formato (shapeless), onde a posição dos itens não importa, bastando que os ingredientes estejam presentes na grade de construção.