3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/deps/core/string/HashedString.h"
7#include "mc/molang/MolangVersion.h"
8#include "mc/platform/brstd/function_ref.h"
9#include "mc/world/inventory/network/TypedServerNetId.h"
10#include "mc/world/item/ItemInstance.h"
11#include "mc/world/item/SortItemInstanceIdAux.h"
12#include "mc/world/item/crafting/ExternalRecipeStore.h"
13#include "mc/world/item/crafting/RecipeIngredient.h"
14#include "mc/world/item/crafting/RecipeType.h"
35namespace Json {
class Value; }
36namespace mce {
class UUID; }
53 ::ll::TypedStorage<4, 4, int> mWidth;
54 ::ll::TypedStorage<4, 4, int> mHeight;
55 ::ll::TypedStorage<8, 32, ::std::string> mNormalizedResult;
56 ::ll::TypedStorage<8, 32, ::std::string> mWarning;
64 ::ll::TypedStorage<8, 8, ::Item*> mItem;
65 ::ll::TypedStorage<8, 8, ::Block const*> mBlock;
66 ::ll::TypedStorage<8, 24, ::RecipeIngredient> mIngredient;
67 ::ll::TypedStorage<1, 1, char> mC;
75 ::ll::TypedStorage<8, 24, ::std::vector<::HashedString>> mTags;
76 ::ll::TypedStorage<8, 24, ::std::vector<::Recipes::Type>> mInputList;
77 ::ll::TypedStorage<8, 24, ::std::vector<::ItemStack>> mOutputInstances;
78 ::ll::TypedStorage<8, 24, ::std::vector<::ItemInstance>> mResultList;
79 ::ll::TypedStorage<8, 24, ::std::vector<::std::string>> mShapeList;
83 using TypeList = ::std::vector<::Recipes::Type>;
88 ::ll::TypedStorage<8, 8, ::ResourcePackManager*> mResourcePackManager;
89 ::ll::TypedStorage<8, 8, ::ExternalRecipeStore> mExternalRecipeStore;
90 ::ll::TypedStorage<8, 16, ::std::map<::HashedString, ::std::map<::std::string, ::std::shared_ptr<::Recipe>>>>
92 ::ll::TypedStorage<1, 1, bool> mInitializing;
98 ::ll::TypedStorage<8, 64, ::std::unordered_map<::RecipeNetId, ::Recipe*>> mRecipesByNetId;
102 ::std::unordered_map<uint64, ::std::unordered_map<uint64, ::std::shared_ptr<::std::vector<::ItemInstance>>>>>
104 ::ll::TypedStorage<8, 24, ::std::vector<::gsl::not_null<::Recipe*>>> mUnlockableRecipes;
105 ::ll::TypedStorage<8, 64, ::std::unordered_map<short, ::std::vector<uint64>>> mUnlockableRecipeIndicesByItem;
106 ::ll::TypedStorage<8, 24, ::std::vector<uint64>> mUnindexedUnlockableRecipeIndices;
107 ::ll::TypedStorage<8, 64, ::std::unordered_set<::std::string>> mUniqueUnlockableRecipeIds;
108 ::ll::TypedStorage<8, 64, ::std::unordered_map<int, ::std::unordered_map<int, ::ItemInstance>>> mFurnaceResults;
109 ::ll::TypedStorage<8, 24, ::std::vector<::std::pair<::std::weak_ptr<bool>, ::std::function<void()>>>> mListeners;
110 ::ll::TypedStorage<8, 8, ::ILevel*> mLevel;
123 MCAPI
void _addItemRecipe(::std::unique_ptr<::Recipe> recipe);
127 MCNAPI
void _addItemRecipe(::std::unique_ptr<::Recipe> recipe);
134 ::MolangVersion molangVersion,
139 MCNAPI ::RecipeIngredient
const
142 MCAPI
bool _loadRecipe(
143 ::std::string
const& recipeId,
154 ::MolangVersion molangVersion,
155 ::std::string
const& recipeId
159 ::std::string recipeId,
169 MCNAPI
void addNetMappedRecipe(::RecipeNetId
const& recipeNetId, ::std::unique_ptr<::Recipe> recipe);
171 MCAPI
void addRecipeListener(::std::weak_ptr<bool> lifePtr, ::std::function<
void()> callback);
175 ::std::string recipeId,
177 ::std::string
const& r0,
178 ::std::vector<::Recipes::Type>
const& types,
179 ::std::vector<::HashedString>
const& tags,
181 ::std::function<::std::unique_ptr<::ShapedRecipe>(
185 ::std::vector<::RecipeIngredient>
const&,
186 ::std::vector<::ItemInstance>
const&,
196 bool const assumeSymmetry
200 ::std::string recipeId,
201 ::std::vector<::ItemInstance>
const& result,
202 ::std::vector<::std::string>
const& rows,
203 ::std::vector<::Recipes::Type>
const& types,
204 ::std::vector<::HashedString>
const& tags,
206 ::std::function<::std::unique_ptr<::ShapedRecipe>(
210 ::std::vector<::RecipeIngredient>
const&,
211 ::std::vector<::ItemInstance>
const&,
221 bool const assumeSymmetry
225 ::std::string recipeId,
227 ::std::vector<::std::string>
const& rows,
228 ::std::vector<::Recipes::Type>
const& types,
229 ::std::vector<::HashedString>
const& tags,
231 ::std::function<::std::unique_ptr<::ShapedRecipe>(
235 ::std::vector<::RecipeIngredient>
const&,
236 ::std::vector<::ItemInstance>
const&,
246 bool const assumeSymmetry
250 ::std::string recipeId,
252 ::std::string
const& r0,
253 ::std::string
const& r1,
254 ::std::vector<::Recipes::Type>
const& types,
255 ::std::vector<::HashedString>
const& tags,
257 ::std::function<::std::unique_ptr<::ShapedRecipe>(
261 ::std::vector<::RecipeIngredient>
const&,
262 ::std::vector<::ItemInstance>
const&,
276 ::std::string recipeId,
278 ::std::string
const& r0,
279 ::std::string
const& r1,
280 ::std::string
const& r2,
281 ::std::vector<::Recipes::Type>
const& types,
282 ::std::vector<::HashedString>
const& tags,
284 ::std::function<::std::unique_ptr<::ShapedRecipe>(
288 ::std::vector<::RecipeIngredient>
const&,
289 ::std::vector<::ItemInstance>
const&,
303 ::std::string recipeId,
305 ::std::vector<::Recipes::Type>
const& types,
306 ::std::vector<::HashedString>
const& tags,
308 ::std::function<::std::unique_ptr<::ShapelessRecipe>(
310 ::std::vector<::RecipeIngredient>
const&,
311 ::std::vector<::ItemInstance>
const&,
323 ::std::string& recipeId,
325 ::std::vector<::Recipes::Type>
const& types,
326 ::std::vector<::HashedString>
const& tags,
331 MCAPI
void clearRecipes();
336 MCNAPI
void forEachRecipeFor(
337 ::std::vector<::std::string>
const& tags,
341 MCNAPI
void forEachRecipeFor(
347 MCNAPI
void forEachRecipeFor(
349 ::std::vector<::std::string>
const& tags,
356 MCNAPI
void forEachRecipeUntil(
362 MCNAPI
void forEachRecipeUntil(
364 ::std::vector<::std::string>
const& tags,
370 ::std::vector<::RecipeIngredient>
const& ingredients,
375 MCNAPI ::std::vector<::ItemInstance>
381 MCAPI ::Recipe
const* getRecipeByNetId(::RecipeNetId
const& netId)
const;
395 MCNAPI
void notifyRecipeListeners();
397 MCNAPI
void removeRecipeListener(::std::weak_ptr<bool> lifePtr);
Definition BaseGameVersion.h:8
Definition Experiments.h:14
Definition ExternalRecipeStore.h:10
Definition HashedString.h:5
Definition IAssetLoadWorkQueue.h:18
Definition IEducationOptions.h:8
Definition ItemInstance.h:15
Definition ItemStackBase.h:45
Definition ItemStack.h:26
Definition MinEngineVersion.h:15
Definition RecipeIngredient.h:8
Definition RecipeUnlockingRequirement.h:10
MCAPI::RecipeIngredient const _loadIngredientFromJson(::Json::Value const &obj, ::MolangVersion molangVersion, bool allowItemCount, bool allowItemGroup) const
MCAPI void addShapedRecipe(::std::string recipeId, ::ItemInstance const &result, ::std::string const &r0, ::std::vector<::Recipes::Type > const &types, ::std::vector<::HashedString > const &tags, int const priority, ::std::function<::std::unique_ptr<::ShapedRecipe >(::std::string, int, int, ::std::vector<::RecipeIngredient > const &, ::std::vector<::ItemInstance > const &, ::HashedString, bool, int, ::mce::UUID const *, ::RecipeUnlockingRequirement const &, ::SemVersion const &)> constructor, ::RecipeUnlockingRequirement const &unlockingReq, ::SemVersion const &formatVersion, bool const assumeSymmetry)
MCAPI void addShapedRecipe(::std::string recipeId, ::std::vector<::ItemInstance > const &result, ::std::vector<::std::string > const &rows, ::std::vector<::Recipes::Type > const &types, ::std::vector<::HashedString > const &tags, int const priority, ::std::function<::std::unique_ptr<::ShapedRecipe >(::std::string, int, int, ::std::vector<::RecipeIngredient > const &, ::std::vector<::ItemInstance > const &, ::HashedString, bool, int, ::mce::UUID const *, ::RecipeUnlockingRequirement const &, ::SemVersion const &)> constructor, ::RecipeUnlockingRequirement const &unlockingReq, ::SemVersion const &formatVersion, bool const assumeSymmetry)
MCAPI void addShulkerBoxRecipe(::std::string &recipeId, ::ItemInstance const &result, ::std::vector<::Recipes::Type > const &types, ::std::vector<::HashedString > const &tags, ::RecipeUnlockingRequirement const &unlockingReq, ::SemVersion const &formatVersion)
MCAPI ::std::optional<::RecipeUnlockingRequirement > _loadUnlockingRequirementFromJson(::Json::Value const &obj, ::MolangVersion molangVersion, ::std::string const &recipeId) const
MCAPI void addShapedRecipe(::std::string recipeId, ::ItemInstance const &result, ::std::string const &r0, ::std::string const &r1, ::std::string const &r2, ::std::vector<::Recipes::Type > const &types, ::std::vector<::HashedString > const &tags, int priority, ::std::function<::std::unique_ptr<::ShapedRecipe >(::std::string, int, int, ::std::vector<::RecipeIngredient > const &, ::std::vector<::ItemInstance > const &, ::HashedString, bool, int, ::mce::UUID const *, ::RecipeUnlockingRequirement const &, ::SemVersion const &)> constructor, ::RecipeUnlockingRequirement const &unlockingReq, ::SemVersion const &formatVersion, bool assumeSymmetry)
MCAPI Recipes(::ILevel *level)
MCAPI void addDyedItemRecipe(::std::string recipeId, ::ItemInstance const &result, ::RecipeIngredient const itemToDye, ::RecipeIngredient const dye, ::RecipeUnlockingRequirement const unlockingReq, int const priority, ::SemVersion const &formatVersion)
MCAPI void * $ctor(::ILevel *level)
MCAPI void forEachUnlockableRecipeForIngredients(::std::vector<::RecipeIngredient > const &ingredients, ::brstd::function_ref< void(::Recipe const &)> callback) const
MCAPI::Recipe * getRecipeFor(::ItemInstance const &result, ::HashedString const &tag) const
MCAPI void addShapelessRecipe(::std::string recipeId, ::ItemInstance const &result, ::std::vector<::Recipes::Type > const &types, ::std::vector<::HashedString > const &tags, int priority, ::std::function<::std::unique_ptr<::ShapelessRecipe >(::std::string, ::std::vector<::RecipeIngredient > const &, ::std::vector<::ItemInstance > const &, ::HashedString, int, ::mce::UUID const *, ::RecipeUnlockingRequirement const &, ::SemVersion const &)> constructor, ::RecipeUnlockingRequirement const &unlockingReq, ::SemVersion const &formatVersion)
MCAPI void addShapedRecipe(::std::string recipeId, ::ItemInstance const &result, ::std::string const &r0, ::std::string const &r1, ::std::vector<::Recipes::Type > const &types, ::std::vector<::HashedString > const &tags, int priority, ::std::function<::std::unique_ptr<::ShapedRecipe >(::std::string, int, int, ::std::vector<::RecipeIngredient > const &, ::std::vector<::ItemInstance > const &, ::HashedString, bool, int, ::mce::UUID const *, ::RecipeUnlockingRequirement const &, ::SemVersion const &)> constructor, ::RecipeUnlockingRequirement const &unlockingReq, ::SemVersion const &formatVersion, bool assumeSymmetry)
MCAPI::RecipeIngredient const _loadInputIngredientFromJson(::Json::Value const &obj, ::MinEngineVersion const &minEngineVersion) const
Definition ResourcePackManager.h:29
Definition SemVersion.h:15
Definition ShapedRecipe.h:16
Definition ShapelessRecipe.h:16
Definition function_ref.h:60
Definition RecipeNetIdTag.h:5
Definition SortItemInstanceIdAux.h:5