1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
use crate::internal_prelude::*; #[derive(Debug, Clone, PartialEq, Deserialize, Serialize)] pub struct Recipe { pub group: Option<String>, #[serde(flatten)] pub variant: RecipeVariant, } #[derive(Debug, Clone, PartialEq, Deserialize, Serialize)] pub struct CookingRecipeCommon { pub ingredient: NamespacedId, pub result: NamespacedId, pub experience: f64, #[serde(rename = "cookingtime")] pub cooking_time: Option<i32>, } #[derive(Debug, Clone, PartialEq, Deserialize, Serialize)] pub struct CraftingShapedRecipe { pub pattern: (String, String, String), pub ingredients: Vec<NamespacedId>, pub key: HashMap<char, NamespacedId>, pub result: RecipeResultWithCount, } #[derive(Debug, Clone, PartialEq, Deserialize, Serialize)] pub struct CraftingShapelessRecipe { pub ingredients: Vec<NamespacedId>, pub result: RecipeResultWithCount, } #[derive(Debug, Clone, PartialEq, Deserialize, Serialize)] pub struct RecipeResultWithCount { pub count: Option<i32>, pub item: NamespacedId, } #[derive(Debug, Clone, PartialEq, Deserialize, Serialize)] pub struct SmithingRecipe { pub base: NamespacedId, pub addition: NamespacedId, pub result: NamespacedId, } #[derive(Debug, Clone, PartialEq, Deserialize, Serialize)] pub struct StonecuttingRecipe { pub ingredient: NamespacedId, pub result: NamespacedId, pub count: i32, } #[derive(Debug, Clone, PartialEq, Deserialize, Serialize)] #[serde(tag = "type")] pub enum RecipeVariant { #[serde(rename = "blasting")] Blasting(CookingRecipeCommon), #[serde(rename = "campfire_cooking")] CampfireCooking(CookingRecipeCommon), #[serde(rename = "crafting_shaped")] CraftingShaped(CraftingShapedRecipe), #[serde(rename = "crafting_shapeless")] CraftingShapeless(CraftingShapelessRecipe), #[serde(rename = "smelting")] Smelting(CookingRecipeCommon), #[serde(rename = "smithing")] Smithing(SmithingRecipe), #[serde(rename = "smoking")] Smoking(CookingRecipeCommon), #[serde(rename = "stonecutting")] Stonecutting(StonecuttingRecipe), #[serde(rename = "crafting_special_armordye")] CraftingSpecialArmorDye, #[serde(rename = "crafting_special_bannerduplicate")] CraftingSpecialBannerDuplicate, #[serde(rename = "crafting_special_bookcloning")] CraftingSpecialBookCloning, #[serde(rename = "crafting_special_firework_rocket")] CraftingSpecialFireworkRocket, #[serde(rename = "crafting_special_firework_star")] CraftingSpecialFireworkStar, #[serde(rename = "crafting_special_firework_star_fade")] CraftingSpecialFireworkStarFade, #[serde(rename = "crafting_special_mapcloning")] CraftingSpecialMapCloning, #[serde(rename = "crafting_special_mapextending")] CraftingSpecialMapExtending, #[serde(rename = "crafting_special_repairitem")] CraftingSpecialRepairItem, #[serde(rename = "crafting_special_shielddecoration")] CraftingSpecialShieldDecoration, #[serde(rename = "crafting_special_shulkerboxcoloring")] CraftingSpecialShulkerBoxColoring, #[serde(rename = "crafting_special_tippedarrow")] CraftingSpecialTippedArrow, #[serde(rename = "crafting_special_suspiciousstew")] CraftingSpecialSuspiciousStew, }