Ricette (Crafting)
Creare Ricette
Anche le ricette sono file JSON nei Data Packs.
Percorso: src/main/resources/data/tutorialmod/recipes/.
1. Ricetta Shaped (Forma specifica)
Esempio: Creare un blocco di rubini con 9 rubini.
File: ruby_block_from_rubies.json
```json { “type”: “minecraft:crafting_shaped”, “pattern”: [ “###”, “###”, “###” ], “key”: { “#”: { “item”: “tutorialmod:ruby” } }, “result”: { “item”: “tutorialmod:ruby_block”, “count”: 1 } } ```
2. Ricetta Shapeless (Senza forma)
Esempio: Riottenere 9 rubini da un blocco (puoi mettere il blocco ovunque nella griglia).
File: rubies_from_ruby_block.json
```json { “type”: “minecraft:crafting_shapeless”, “ingredients”: [ { “item”: “tutorialmod:ruby_block” } ], “result”: { “item”: “tutorialmod:ruby”, “count”: 9 } } ```
3. Ricetta Smelting (Fornace)
Esempio: Cuocere il minerale per ottenere la gemma (se non usi Silk Touch).
File: ruby_from_smelting.json
```json { “type”: “minecraft:smelting”, “ingredient”: { “item”: “tutorialmod:ruby_ore” }, “result”: “tutorialmod:ruby”, “experience”: 0.7, “cookingtime”: 200 } ```
Datagen per Ricette
Come per i loot tables, puoi generare le ricette via codice.
```java public class ModRecipeProvider extends FabricRecipeProvider { public ModRecipeProvider(FabricDataOutput output) { super(output); }
@Override
public void generate(Consumer<RecipeJsonProvider> exporter) {
// Blocco da 9 Item
offerReversibleCompactingRecipes(exporter, RecipeCategory.BUILDING_BLOCKS, ModItems.RUBY, RecipeCategory.DECORATIONS, ModBlocks.RUBY_BLOCK);
// Smelting
offerSmelting(exporter, List.of(ModItems.RAW_RUBY), RecipeCategory.MISC, ModItems.RUBY, 0.7f, 200, "ruby");
}
} ```
In questo modo, se cambi il nome di un item nel codice o la logica di una ricetta, basta rigenerare i dati invece di modificare a mano decine di file JSON.