50 ::ll::TypedStorage<4, 4, int> mID;
51 ::ll::TypedStorage<8, 48, ::HashedString> mTag;
71 ::ll::TypedStorage<4, 4, int> mWidth;
72 ::ll::TypedStorage<4, 4, int> mHeight;
73 ::ll::TypedStorage<8, 32, ::std::string> mNormalizedResult;
74 ::ll::TypedStorage<8, 32, ::std::string> mWarning;
94 ::ll::TypedStorage<8, 8, ::Item*> mItem;
95 ::ll::TypedStorage<8, 8, ::Block const*> mBlock;
96 ::ll::TypedStorage<8, 24, ::RecipeIngredient> mIngredient;
97 ::ll::TypedStorage<1, 1, char> mC;
113 using TypeList = ::std::vector<::Recipes::Type>;
118 ::ll::TypedStorage<8, 8, ::ResourcePackManager*> mResourcePackManager;
119 ::ll::TypedStorage<8, 8, ::ExternalRecipeStore> mExternalRecipeStore;
120 ::ll::TypedStorage<8, 16, ::std::map<::HashedString, ::std::map<::std::string, ::std::shared_ptr<::Recipe>>>>
122 ::ll::TypedStorage<8, 16, ::std::map<::Recipes::FurnaceRecipeKey, ::ItemInstance>> mFurnaceRecipes;
123 ::ll::TypedStorage<1, 1, bool> mInitializing;
129 ::ll::TypedStorage<8, 64, ::std::unordered_map<::RecipeNetId, ::Recipe*>> mRecipesByNetId;
133 ::std::unordered_map<uint64, ::std::unordered_map<uint64, ::std::shared_ptr<::std::vector<::ItemInstance>>>>>
135 ::ll::TypedStorage<8, 24, ::std::vector<::gsl::not_null<::Recipe*>>> mUnlockableRecipes;
136 ::ll::TypedStorage<8, 24, ::std::vector<::std::pair<::std::weak_ptr<bool>, ::std::function<void()>>>> mListeners;
137 ::ll::TypedStorage<8, 8, ::Level*> mLevel;
147 MCAPI
explicit Recipes(
::Level* level);
149 MCAPI
void _addItemRecipe(::std::unique_ptr<::Recipe> recipe);
151 MCAPI
void _addMapRecipes();
153 MCAPI
bool _isRecipeValidToAdd(
::Recipe const& recipe);
157 MCAPI
void _loadDataDrivenRecipes(::std::vector<::PackInstance>
const& resourcePacksNewestToOldest);
161 MCAPI ::RecipeIngredient
const _loadIngredientFromJson(
163 ::MolangVersion molangVersion,
168 MCAPI ::RecipeIngredient
const
171 MCAPI
bool _loadSmithingTransform(
173 ::MolangVersion molangVersion,
174 ::std::string
const& recipeId,
175 ::std::vector<::HashedString>
const& tags
178 MCAPI
bool _loadSmithingTrim(
180 ::MolangVersion molangVersion,
181 ::std::string
const& recipeId,
182 ::std::vector<::HashedString>
const& tags
185 MCAPI ::std::optional<::RecipeUnlockingRequirement> _loadUnlockingRequirementFromJson(
187 ::MolangVersion molangVersion,
188 ::std::string
const& recipeId
191 MCAPI
void addDyedItemRecipe(
192 ::std::string recipeId,
201 MCAPI
void addFurnaceRecipeAuxData(
204 ::std::vector<::HashedString>
const& tags
208 MCAPI
void addNetMappedRecipe(::RecipeNetId
const& recipeNetId, ::std::unique_ptr<::Recipe> recipe);
210 MCAPI
void addRecipeListener(::std::weak_ptr<bool> lifePtr, ::std::function<
void()> callback);
213 MCAPI
void addShapedRecipe(
214 ::std::string recipeId,
216 ::std::string
const& r0,
217 ::std::vector<::Recipes::Type>
const& types,
218 ::std::vector<::HashedString>
const& tags,
220 ::std::function<::std::unique_ptr<::ShapedRecipe>(
224 ::std::vector<::RecipeIngredient>
const&,
225 ::std::vector<::ItemInstance>
const&,
238 MCAPI
void addShapedRecipe(
239 ::std::string recipeId,
240 ::std::vector<::ItemInstance>
const& result,
241 ::std::vector<::std::string>
const& rows,
242 ::std::vector<::Recipes::Type>
const& types,
243 ::std::vector<::HashedString>
const& tags,
245 ::std::function<::std::unique_ptr<::ShapedRecipe>(
249 ::std::vector<::RecipeIngredient>
const&,
250 ::std::vector<::ItemInstance>
const&,
263 MCAPI
void addShapedRecipe(
264 ::std::string recipeId,
266 ::std::vector<::std::string>
const& rows,
267 ::std::vector<::Recipes::Type>
const& types,
268 ::std::vector<::HashedString>
const& tags,
270 ::std::function<::std::unique_ptr<::ShapedRecipe>(
274 ::std::vector<::RecipeIngredient>
const&,
275 ::std::vector<::ItemInstance>
const&,
288 MCAPI
void addShapedRecipe(
289 ::std::string recipeId,
291 ::std::string
const& r0,
292 ::std::string
const& r1,
293 ::std::vector<::Recipes::Type>
const& types,
294 ::std::vector<::HashedString>
const& tags,
296 ::std::function<::std::unique_ptr<::ShapedRecipe>(
300 ::std::vector<::RecipeIngredient>
const&,
301 ::std::vector<::ItemInstance>
const&,
314 MCAPI
void addShapedRecipe(
315 ::std::string recipeId,
317 ::std::string
const& r0,
318 ::std::string
const& r1,
319 ::std::string
const& r2,
320 ::std::vector<::Recipes::Type>
const& types,
321 ::std::vector<::HashedString>
const& tags,
323 ::std::function<::std::unique_ptr<::ShapedRecipe>(
327 ::std::vector<::RecipeIngredient>
const&,
328 ::std::vector<::ItemInstance>
const&,
341 MCAPI
void addShapelessRecipe(
342 ::std::string recipeId,
344 ::std::vector<::Recipes::Type>
const& types,
345 ::std::vector<::HashedString>
const& tags,
347 ::std::function<::std::unique_ptr<::ShapelessRecipe>(
349 ::std::vector<::RecipeIngredient>
const&,
350 ::std::vector<::ItemInstance>
const&,
361 MCAPI
void addShulkerBoxRecipe(
362 ::std::string& recipeId,
364 ::std::vector<::Recipes::Type>
const& types,
365 ::std::vector<::HashedString>
const& tags,
370 MCAPI
void clearRecipes();
372 MCAPI ::SemVersion extractRecipeFormatVersion(
::Json::Value const& obj);
374 MCAPI ::std::pair<::std::string, ::Json::Value> extractRecipeObjInfo(
::Json::Value const& obj);
379 MCAPI
void forEachRecipeFor(
380 ::std::vector<::std::string>
const& tags,
384 MCAPI
void forEachRecipeFor(
390 MCAPI
void forEachRecipeFor(
392 ::std::vector<::std::string>
const& tags,
396 MCAPI
void forEachRecipeUntil(
402 MCAPI
void forEachRecipeUntil(
404 ::std::vector<::std::string>
const& tags,
409 MCAPI ::std::vector<::ItemInstance>
414 MCAPI ::Recipe
const* getRecipeByNetId(::RecipeNetId
const& netId)
const;
425 MCAPI
bool loadRecipe(
426 ::std::pair<::std::string, ::Json::Value>
const& recipeObjInfo,
433 MCAPI
void notifyRecipeListeners();
442 MCAPI static ::Recipes::NormalizedRectangularRecipeResults
443 _normalizeRectangularRecipe(::std::vector<::std::string>
const& rows);
449 MCAPI
void* $ctor(
::Level* level);