49 ::ll::TypedStorage<4, 4, int> mID;
50 ::ll::TypedStorage<8, 48, ::HashedString> mTag;
70 ::ll::TypedStorage<8, 8, ::Item*> mItem;
71 ::ll::TypedStorage<8, 8, ::Block const*> mBlock;
72 ::ll::TypedStorage<8, 24, ::RecipeIngredient> mIngredient;
73 ::ll::TypedStorage<1, 1, char> mC;
89 using TypeList = ::std::vector<::Recipes::Type>;
95 ::ll::TypedStorage<4, 4, int> mWidth;
96 ::ll::TypedStorage<4, 4, int> mHeight;
97 ::ll::TypedStorage<8, 32, ::std::string> mNormalizedResult;
98 ::ll::TypedStorage<8, 32, ::std::string> mWarning;
117 ::ll::TypedStorage<8, 8, ::ResourcePackManager*> mResourcePackManager;
118 ::ll::TypedStorage<8, 8, ::ExternalRecipeStore> mExternalRecipeStore;
119 ::ll::TypedStorage<8, 16, ::std::map<::HashedString, ::std::map<::std::string, ::std::shared_ptr<::Recipe>>>>
121 ::ll::TypedStorage<8, 16, ::std::map<::Recipes::FurnaceRecipeKey, ::ItemInstance>> mFurnaceRecipes;
122 ::ll::TypedStorage<1, 1, bool> mInitializing;
128 ::ll::TypedStorage<8, 64, ::std::unordered_map<::RecipeNetId, ::Recipe*>> mRecipesByNetId;
132 ::std::unordered_map<uint64, ::std::unordered_map<uint64, ::std::shared_ptr<::std::vector<::ItemInstance>>>>>
134 ::ll::TypedStorage<8, 24, ::std::vector<::gsl::not_null<::Recipe*>>> mUnlockableRecipes;
135 ::ll::TypedStorage<8, 24, ::std::vector<::std::pair<::std::weak_ptr<bool>, ::std::function<void()>>>> mListeners;
136 ::ll::TypedStorage<8, 8, ::Level*> mLevel;
148 MCAPI
void _addItemRecipe(::std::unique_ptr<::Recipe> recipe);
150 MCAPI
void _addMapRecipes();
152 MCAPI
bool _isRecipeValidToAdd(
::Recipe const& recipe);
156 MCAPI
void _loadDataDrivenRecipes(::std::vector<::PackInstance>
const& resourcePacksNewestToOldest);
160 MCAPI ::RecipeIngredient
const _loadIngredientFromJson(
162 ::MolangVersion molangVersion,
167 MCAPI ::RecipeIngredient
const
170 MCAPI
bool _loadSmithingTransform(
172 ::MolangVersion molangVersion,
173 ::std::string
const& recipeId,
174 ::std::vector<::HashedString>
const& tags
177 MCAPI
bool _loadSmithingTrim(
179 ::MolangVersion molangVersion,
180 ::std::string
const& recipeId,
181 ::std::vector<::HashedString>
const& tags
184 MCAPI ::std::optional<::RecipeUnlockingRequirement> _loadUnlockingRequirementFromJson(
186 ::MolangVersion molangVersion,
187 ::std::string
const& recipeId
190 MCAPI
void addDyedItemRecipe(
191 ::std::string recipeId,
200 MCAPI
void addFurnaceRecipeAuxData(
203 ::std::vector<::HashedString>
const& tags
206 MCAPI
void addNetMappedRecipe(
::RecipeNetId const& recipeNetId, ::std::unique_ptr<::Recipe> recipe);
208 MCAPI
void addRecipeListener(::std::weak_ptr<bool> lifePtr, ::std::function<
void()> callback);
210 MCAPI
void addShapedRecipe(
211 ::std::string recipeId,
213 ::std::string
const& r0,
214 ::std::vector<::Recipes::Type>
const& types,
215 ::std::vector<::HashedString>
const& tags,
217 ::std::function<::std::unique_ptr<::ShapedRecipe>(
221 ::std::vector<::RecipeIngredient>
const&,
222 ::std::vector<::ItemInstance>
const&,
235 MCAPI
void addShapedRecipe(
236 ::std::string recipeId,
238 ::std::vector<::std::string>
const& rows,
239 ::std::vector<::Recipes::Type>
const& types,
240 ::std::vector<::HashedString>
const& tags,
242 ::std::function<::std::unique_ptr<::ShapedRecipe>(
246 ::std::vector<::RecipeIngredient>
const&,
247 ::std::vector<::ItemInstance>
const&,
260 MCAPI
void addShapedRecipe(
261 ::std::string recipeId,
262 ::std::vector<::ItemInstance>
const& result,
263 ::std::vector<::std::string>
const& rows,
264 ::std::vector<::Recipes::Type>
const& types,
265 ::std::vector<::HashedString>
const& tags,
267 ::std::function<::std::unique_ptr<::ShapedRecipe>(
271 ::std::vector<::RecipeIngredient>
const&,
272 ::std::vector<::ItemInstance>
const&,
285 MCAPI
void addShapedRecipe(
286 ::std::string recipeId,
288 ::std::string
const& r0,
289 ::std::string
const& r1,
290 ::std::vector<::Recipes::Type>
const& types,
291 ::std::vector<::HashedString>
const& tags,
293 ::std::function<::std::unique_ptr<::ShapedRecipe>(
297 ::std::vector<::RecipeIngredient>
const&,
298 ::std::vector<::ItemInstance>
const&,
311 MCAPI
void addShapedRecipe(
312 ::std::string recipeId,
314 ::std::string
const& r0,
315 ::std::string
const& r1,
316 ::std::string
const& r2,
317 ::std::vector<::Recipes::Type>
const& types,
318 ::std::vector<::HashedString>
const& tags,
320 ::std::function<::std::unique_ptr<::ShapedRecipe>(
324 ::std::vector<::RecipeIngredient>
const&,
325 ::std::vector<::ItemInstance>
const&,
338 MCAPI
void addShapelessRecipe(
339 ::std::string recipeId,
341 ::std::vector<::Recipes::Type>
const& types,
342 ::std::vector<::HashedString>
const& tags,
344 ::std::function<::std::unique_ptr<::ShapelessRecipe>(
346 ::std::vector<::RecipeIngredient>
const&,
347 ::std::vector<::ItemInstance>
const&,
358 MCAPI
void addShulkerBoxRecipe(
359 ::std::string& recipeId,
361 ::std::vector<::Recipes::Type>
const& types,
362 ::std::vector<::HashedString>
const& tags,
367 MCAPI
void clearRecipes();
369 MCAPI ::SemVersion extractRecipeFormatVersion(
::Json::Value const& obj);
371 MCAPI ::std::pair<::std::string, ::Json::Value> extractRecipeObjInfo(
::Json::Value const& obj);
374 forEachRecipeFor(
::HashedString const& tag, ::std::function<
void(
::Recipe const&)>
const& callback)
const;
376 MCAPI
void forEachRecipeFor(
377 ::std::vector<::std::string>
const& tags,
378 ::std::function<
void(
::Recipe const&)>
const& callback
381 MCAPI
void forEachRecipeFor(
383 ::std::vector<::std::string>
const& tags,
384 ::std::function<
void(
::Recipe const&)>
const& callback
387 MCAPI
void forEachRecipeUntil(
389 ::std::vector<::std::string>
const& tags,
390 ::std::function<
bool(
::Recipe const&)>
const& callback
395 MCAPI ::Recipe
const* getRecipeByNetId(
::RecipeNetId const& netId)
const;
406 MCAPI
bool loadRecipe(
407 ::std::pair<::std::string, ::Json::Value>
const& recipeObjInfo,
413 MCAPI
void notifyRecipeListeners();
421 MCAPI static ::Recipes::NormalizedRectangularRecipeResults
422 _normalizeRectangularRecipe(::std::vector<::std::string>
const& rows);
428 MCAPI
void* $ctor(
::Level* level);