50 ::ll::TypedStorage<4, 4, int> mID;
51 ::ll::TypedStorage<8, 48, ::HashedString> mTag;
71 ::ll::TypedStorage<8, 8, ::Item*> mItem;
72 ::ll::TypedStorage<8, 8, ::Block const*> mBlock;
73 ::ll::TypedStorage<8, 24, ::RecipeIngredient> mIngredient;
74 ::ll::TypedStorage<1, 1, char> mC;
90 using TypeList = ::std::vector<::Recipes::Type>;
96 ::ll::TypedStorage<4, 4, int> mWidth;
97 ::ll::TypedStorage<4, 4, int> mHeight;
98 ::ll::TypedStorage<8, 32, ::std::string> mNormalizedResult;
99 ::ll::TypedStorage<8, 32, ::std::string> mWarning;
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;
149 MCAPI
void _addItemRecipe(::std::unique_ptr<::Recipe> recipe);
151 MCAPI
void _addMapRecipes();
153 MCAPI ::RecipeUnlockingRequirement
154 _createUnlockingRequirementFromContext(::RecipeUnlockingRequirement::UnlockingContext
context)
const;
156 MCAPI
bool _isRecipeValidToAdd(
::Recipe const& recipe);
160 MCAPI
void _loadDataDrivenRecipes(::std::vector<::PackInstance>
const& resourcePacksNewestToOldest);
164 MCAPI ::RecipeIngredient
const _loadIngredientFromJson(
166 ::MolangVersion molangVersion,
171 MCAPI ::RecipeIngredient
const
174 MCAPI ::RecipeIngredient
const
175 _loadOutputIngredientFromJson(
::Json::Value const& obj, ::MolangVersion molangVersion)
const;
177 MCAPI
bool _loadSmithingTransform(
179 ::MolangVersion molangVersion,
180 ::std::string
const& recipeId,
181 ::std::vector<::HashedString>
const& tags
184 MCAPI
bool _loadSmithingTrim(
186 ::MolangVersion molangVersion,
187 ::std::string
const& recipeId,
188 ::std::vector<::HashedString>
const& tags
191 MCAPI ::std::optional<::RecipeUnlockingRequirement> _loadUnlockingRequirementFromJson(
193 ::MolangVersion molangVersion,
194 ::std::string
const& recipeId
197 MCAPI
void addDyedItemRecipe(
198 ::std::string recipeId,
207 MCAPI
void addFurnaceRecipeAuxData(
210 ::std::vector<::HashedString>
const& tags
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,
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,
265 ::std::vector<::ItemInstance>
const& result,
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);
378 MCAPI ::Recipe
const* getRecipeByNetId(
::RecipeNetId const& netId)
const;
389 MCAPI
bool loadRecipe(
390 ::std::pair<::std::string, ::Json::Value>
const& recipeObjInfo,
402 MCAPI static ::Recipes::NormalizedRectangularRecipeResults
403 _normalizeRectangularRecipe(::std::vector<::std::string>
const& rows);
409 MCAPI
void* $ctor(
::Level* level);