@@ -93,7 +93,6 @@ public static void register(Consumer<FinishedRecipe> provider) {
9393 LOGGER .info ("Processing craftable fluid: {}" , fluidId );
9494 processedFluids ++;
9595
96- // 【核心逻辑】判断是否为特殊流体
9796 boolean isSpecial = SPECIAL_FLUIDS .contains (fluid );
9897 generateRecipesForFluid (provider , fluid , fluidId , isSpecial );
9998 }
@@ -103,7 +102,6 @@ public static void register(Consumer<FinishedRecipe> provider) {
103102
104103 private static void generateRecipesForFluid (Consumer <FinishedRecipe > provider , Fluid fluid , ResourceLocation fluidId , boolean isSpecial ) {
105104 String materialName = GTConstructFluid .extractMaterialName (fluidId .getPath ());
106- // 【结合】创建两种类型的ID
107105 MaterialId matId = materialId (materialName );
108106 MaterialVariantId defaultMatVariantId = MaterialVariantId .tryParse (TConstruct .MOD_ID + ":" + materialName );
109107
@@ -130,47 +128,33 @@ private static void generateRecipesForFluid(Consumer<FinishedRecipe> provider, F
130128 generateSolidifierRecipes (fluid , matId , defaultMatVariantId , TinkerToolParts .maille , 2 , TinkerSmeltery .mailleCast , "maille" , provider , isSpecial );
131129 }
132130
133- /**
134- * 【结合】生成工具部件的固化配方。
135- * 现在同时接收 MaterialId 和 MaterialVariantId,以处理所有情况。
136- */
137- // ... (文件开头的 import 和 public class GTConstructRecipes { 部分保持不变) ...
138131
139132 private static void generateSolidifierRecipes (Fluid inputFluid , MaterialId matId , MaterialVariantId defaultMatVariantId , ItemObject <?> toolPartStack , int materialCost , CastItemObject cast , String path , Consumer <FinishedRecipe > provider , boolean isSpecial ) {
140133 FluidStack fluidInput = new FluidStack (inputFluid , materialCost * L );
141134
142- // 【核心逻辑】决定最终产出的材料ID和类型
143135 MaterialVariantId outputMaterialVariantId ;
144136 if (isSpecial ) {
145- // 如果是特殊流体,尝试从输出材料映射中获取变体,如果没有则使用默认的变体
146137 outputMaterialVariantId = SPECIAL_FLUID_OUTPUT_MATERIALS .getOrDefault (inputFluid , defaultMatVariantId );
147138 } else {
148- // 普通流体,直接使用默认的材料变体ID
149139 outputMaterialVariantId = defaultMatVariantId ;
150140 }
151141
152142 var builder = FLUID_SOLIDFICATION_RECIPES .recipeBuilder (TConstruct .getResource ("solidify_" + ForgeRegistries .FLUIDS .getKey (inputFluid ).getPath () + "_to_" + path ))
153- // 【结合】使用 outputMaterialVariantId
154143 .outputItems (getToolStack (toolPartStack .asItem (), outputMaterialVariantId ))
155144 .duration ((int ) (40 * materialCost ))
156145 .EUt (VA [LV ]);
157146
158- // 【核心逻辑】决定输入项
159147 if (isSpecial ) {
160- // 如果是特殊流体,消耗基底材料
161148 MaterialId baseMaterial = SPECIAL_FLUID_BASE_MATERIALS .get (inputFluid );
162149 if (baseMaterial != null ) {
163- // 【关键修复】使用 baseMaterial 的字符串形式来创建 MaterialVariantId
164150 MaterialVariantId baseMaterialVariantId = MaterialVariantId .tryParse (baseMaterial .toString ());
165151 builder .inputFluids (FluidIngredient .of (fluidInput ))
166152 .inputItems (getToolStack (toolPartStack .asItem (), baseMaterialVariantId ));
167153 } else {
168- // 【关键修复】如果没有定义基底材料(如 pig_iron),仍然需要铸模
169154 builder .inputFluids (FluidIngredient .of (fluidInput ))
170155 .notConsumable (cast );
171156 }
172157 } else {
173- // 如果不是特殊流体,普通流体,使用铸模
174158 builder .inputFluids (fluidInput )
175159 .notConsumable (cast );
176160 }
@@ -181,7 +165,6 @@ private static void generateSolidifierRecipes(Fluid inputFluid, MaterialId matId
181165 private static void generateArmorSolidificationRecipes (Fluid inputFluid , MaterialId matId , MaterialVariantId defaultMatVariantId , ToolPartItem toolPartStack , int materialCost , CastItemObject cast , String path , Consumer <FinishedRecipe > provider , boolean isSpecial ) {
182166 FluidStack fluidInput = new FluidStack (inputFluid , materialCost * L );
183167
184- // 【核心逻辑】决定最终产出的材料ID和类型
185168 MaterialVariantId outputMaterialVariantId ;
186169 if (isSpecial ) {
187170 outputMaterialVariantId = SPECIAL_FLUID_OUTPUT_MATERIALS .getOrDefault (inputFluid , defaultMatVariantId );
@@ -197,12 +180,10 @@ private static void generateArmorSolidificationRecipes(Fluid inputFluid, Materia
197180 if (isSpecial ) {
198181 MaterialId baseMaterial = SPECIAL_FLUID_BASE_MATERIALS .get (inputFluid );
199182 if (baseMaterial != null ) {
200- // 【关键修复】使用 baseMaterial 的字符串形式来创建 MaterialVariantId
201183 MaterialVariantId baseMaterialVariantId = MaterialVariantId .tryParse (baseMaterial .toString ());
202184 builder .inputFluids (FluidIngredient .of (fluidInput ))
203185 .inputItems (getToolStack (toolPartStack , baseMaterialVariantId ));
204186 } else {
205- // 【关键修复】如果没有定义基底材料(如 pig_iron),仍然需要铸模
206187 builder .inputFluids (FluidIngredient .of (fluidInput ))
207188 .notConsumable (cast );
208189 }
@@ -214,10 +195,6 @@ private static void generateArmorSolidificationRecipes(Fluid inputFluid, Materia
214195 builder .save (provider );
215196 }
216197
217- // ... (文件末尾的辅助方法部分保持不变) ...
218-
219-
220- // --- 辅助方法 ---
221198 private static ItemStack getToolStack (net .minecraft .world .item .Item toolPart , MaterialVariantId matVariantId ) {
222199 ItemStack stack = new ItemStack (toolPart );
223200 stack .getOrCreateTag ().putString ("Material" , matVariantId .toString ());
0 commit comments