79 const std::vector<ItemStack> &items_):
86 std::string
dump()
const;
104 std::string
dump()
const;
120 std::vector<std::pair<std::string, std::string> >
pairs;
126 std::string
dump()
const;
171 std::vector<ItemStack> &output_replacements,
IGameDef *gamedef)
const=0;
182 virtual std::string
dump()
const=0;
200 const std::string &output_,
202 const std::vector<std::string> &recipe_,
207 virtual std::string
getName()
const;
212 std::vector<ItemStack> &output_replacements,
IGameDef *gamedef)
const;
218 virtual std::string
dump()
const;
245 const std::string &output_,
246 const std::vector<std::string> &recipe_,
251 virtual std::string
getName()
const;
256 std::vector<ItemStack> &output_replacements,
IGameDef *gamedef)
const;
262 virtual std::string
dump()
const;
291 virtual std::string
getName()
const;
296 std::vector<ItemStack> &output_replacements,
IGameDef *gamedef)
const;
305 virtual std::string
dump()
const;
325 const std::string &output_,
326 const std::string &recipe_,
332 virtual std::string
getName()
const;
337 std::vector<ItemStack> &output_replacements,
IGameDef *gamedef)
const;
343 virtual std::string
dump()
const;
369 const std::string &recipe_,
375 virtual std::string
getName()
const;
380 std::vector<ItemStack> &output_replacements,
IGameDef *gamedef)
const;
386 virtual std::string
dump()
const;
423 std::vector<ItemStack> &output_replacements,
424 bool decrementInput,
IGameDef *gamedef)
const=0;
427 IGameDef *gamedef,
unsigned limit=0)
const=0;
430 virtual std::string
dump()
const=0;
441 std::vector<ItemStack> &output_replacements,
442 bool decrementInput,
IGameDef *gamedef)
const=0;
444 IGameDef *gamedef,
unsigned limit=0)
const=0;
450 virtual std::string
dump()
const=0;
Definition: craftdef.h:321
CraftDefinitionCooking()=delete
std::string recipe
Definition: craftdef.h:349
virtual ~CraftDefinitionCooking()=default
virtual std::string dump() const
Definition: craftdef.cpp:921
std::string recipe_name
Definition: craftdef.h:351
std::string output
Definition: craftdef.h:347
virtual void initHash(IGameDef *gamedef)
Definition: craftdef.cpp:908
virtual u64 getHash(CraftHashType type) const
Definition: craftdef.cpp:893
virtual CraftInput getInput(const CraftOutput &output, IGameDef *gamedef) const
Definition: craftdef.cpp:880
float cooktime
Definition: craftdef.h:355
virtual bool check(const CraftInput &input, IGameDef *gamedef) const
Definition: craftdef.cpp:849
CraftReplacements replacements
Definition: craftdef.h:357
virtual CraftOutput getOutput(const CraftInput &input, IGameDef *gamedef) const
Definition: craftdef.cpp:875
bool hash_inited
Definition: craftdef.h:353
virtual std::string getName() const
Definition: craftdef.cpp:844
virtual void decrementInput(CraftInput &input, std::vector< ItemStack > &output_replacements, IGameDef *gamedef) const
Definition: craftdef.cpp:887
Definition: craftdef.h:365
virtual CraftOutput getOutput(const CraftInput &input, IGameDef *gamedef) const
Definition: craftdef.cpp:978
virtual void decrementInput(CraftInput &input, std::vector< ItemStack > &output_replacements, IGameDef *gamedef) const
Definition: craftdef.cpp:990
std::string recipe
Definition: craftdef.h:390
virtual ~CraftDefinitionFuel()=default
std::string recipe_name
Definition: craftdef.h:392
virtual u64 getHash(CraftHashType type) const
Definition: craftdef.cpp:996
virtual void initHash(IGameDef *gamedef)
Definition: craftdef.cpp:1011
CraftReplacements replacements
Definition: craftdef.h:398
virtual CraftInput getInput(const CraftOutput &output, IGameDef *gamedef) const
Definition: craftdef.cpp:983
virtual std::string dump() const
Definition: craftdef.cpp:1024
virtual bool check(const CraftInput &input, IGameDef *gamedef) const
Definition: craftdef.cpp:952
float burntime
Definition: craftdef.h:396
CraftDefinitionFuel()=delete
virtual std::string getName() const
Definition: craftdef.cpp:947
bool hash_inited
Definition: craftdef.h:394
Definition: craftdef.h:196
unsigned int width
Definition: craftdef.h:224
CraftReplacements replacements
Definition: craftdef.h:232
bool hash_inited
Definition: craftdef.h:230
virtual std::string dump() const
Definition: craftdef.cpp:466
virtual void initHash(IGameDef *gamedef)
Definition: craftdef.cpp:453
std::vector< std::string > recipe_names
Definition: craftdef.h:228
std::vector< std::string > recipe
Definition: craftdef.h:226
virtual std::string getName() const
Definition: craftdef.cpp:355
virtual CraftInput getInput(const CraftOutput &output, IGameDef *gamedef) const
Definition: craftdef.cpp:431
virtual CraftOutput getOutput(const CraftInput &input, IGameDef *gamedef) const
Definition: craftdef.cpp:426
std::string output
Definition: craftdef.h:222
CraftDefinitionShaped()=delete
virtual u64 getHash(CraftHashType type) const
Definition: craftdef.cpp:442
virtual bool check(const CraftInput &input, IGameDef *gamedef) const
Definition: craftdef.cpp:360
virtual void decrementInput(CraftInput &input, std::vector< ItemStack > &output_replacements, IGameDef *gamedef) const
Definition: craftdef.cpp:436
virtual ~CraftDefinitionShaped()=default
Definition: craftdef.h:241
virtual ~CraftDefinitionShapeless()=default
virtual bool check(const CraftInput &input, IGameDef *gamedef) const
Definition: craftdef.cpp:603
std::vector< std::string > recipe_names
Definition: craftdef.h:270
virtual std::string getName() const
Definition: craftdef.cpp:491
virtual void initHash(IGameDef *gamedef)
Definition: craftdef.cpp:704
virtual CraftInput getInput(const CraftOutput &output, IGameDef *gamedef) const
Definition: craftdef.cpp:685
CraftDefinitionShapeless()=delete
bool hash_inited
Definition: craftdef.h:272
virtual std::string dump() const
Definition: craftdef.cpp:718
virtual CraftOutput getOutput(const CraftInput &input, IGameDef *gamedef) const
Definition: craftdef.cpp:680
virtual void decrementInput(CraftInput &input, std::vector< ItemStack > &output_replacements, IGameDef *gamedef) const
Definition: craftdef.cpp:690
std::vector< std::string > recipe
Definition: craftdef.h:268
CraftReplacements replacements
Definition: craftdef.h:274
virtual u64 getHash(CraftHashType type) const
Definition: craftdef.cpp:696
std::string output
Definition: craftdef.h:266
Definition: craftdef.h:133
RecipePriority
Definition: craftdef.h:143
@ PRIORITY_TOOLREPAIR
Definition: craftdef.h:145
@ PRIORITY_SHAPELESS
Definition: craftdef.h:147
@ PRIORITY_NO_RECIPE
Definition: craftdef.h:144
@ PRIORITY_SHAPED_AND_GROUPS
Definition: craftdef.h:148
@ PRIORITY_SHAPELESS_AND_GROUPS
Definition: craftdef.h:146
@ PRIORITY_SHAPED
Definition: craftdef.h:149
RecipePriority getPriority() const
Definition: craftdef.h:160
virtual bool check(const CraftInput &input, IGameDef *gamedef) const =0
CraftHashType hash_type
Definition: craftdef.h:185
CraftDefinition()=default
CraftHashType getHashType() const
Definition: craftdef.h:173
virtual std::string dump() const =0
virtual void initHash(IGameDef *gamedef)=0
virtual ~CraftDefinition()=default
virtual u64 getHash(CraftHashType type) const =0
virtual CraftInput getInput(const CraftOutput &output, IGameDef *gamedef) const =0
virtual CraftOutput getOutput(const CraftInput &input, IGameDef *gamedef) const =0
virtual std::string getName() const =0
RecipePriority priority
Definition: craftdef.h:186
virtual void decrementInput(CraftInput &input, std::vector< ItemStack > &output_replacements, IGameDef *gamedef) const =0
Definition: craftdef.h:405
virtual bool getCraftResult(CraftInput &input, CraftOutput &output, std::vector< ItemStack > &output_replacements, bool decrementInput, IGameDef *gamedef) const =0
The main crafting function.
virtual std::vector< CraftDefinition * > getCraftRecipes(CraftOutput &output, IGameDef *gamedef, unsigned limit=0) const =0
virtual ~ICraftDefManager()=default
ICraftDefManager()=default
virtual std::string dump() const =0
Definition: craftdef.h:434
virtual bool clearCraftsByOutput(const CraftOutput &output, IGameDef *gamedef)=0
virtual ~IWritableCraftDefManager()=default
virtual void registerCraft(CraftDefinition *def, IGameDef *gamedef)=0
virtual std::string dump() const =0
virtual void initHashes(IGameDef *gamedef)=0
IWritableCraftDefManager()=default
virtual bool clearCraftsByInput(const CraftInput &input, IGameDef *gamedef)=0
virtual bool getCraftResult(CraftInput &input, CraftOutput &output, std::vector< ItemStack > &output_replacements, bool decrementInput, IGameDef *gamedef) const =0
The main crafting function.
virtual std::vector< CraftDefinition * > getCraftRecipes(CraftOutput &output, IGameDef *gamedef, unsigned limit=0) const =0
CraftHashType
Definition: craftdef.h:51
@ CRAFT_HASH_TYPE_ITEM_NAMES
Definition: craftdef.h:55
@ CRAFT_HASH_TYPE_UNHASHED
Definition: craftdef.h:62
@ CRAFT_HASH_TYPE_COUNT
Definition: craftdef.h:58
IWritableCraftDefManager * createCraftDefManager()
Definition: craftdef.cpp:1255
CraftMethod
Definition: craftdef.h:36
@ CRAFT_METHOD_NORMAL
Definition: craftdef.h:38
@ CRAFT_METHOD_COOKING
Definition: craftdef.h:40
@ CRAFT_METHOD_FUEL
Definition: craftdef.h:42
const int craft_hash_type_max
Definition: craftdef.h:65
Definition: craftdef.h:93
CraftOutput(const std::string &item_, float time_)
Definition: craftdef.h:101
std::string dump() const
Definition: craftdef.cpp:312
std::string item
Definition: craftdef.h:95
float time
Definition: craftdef.h:97
Definition: craftdef.h:118
std::string dump() const
Definition: craftdef.cpp:323
CraftReplacements(const std::vector< std::pair< std::string, std::string > > &pairs_)
Definition: craftdef.h:123
CraftReplacements()=default
std::vector< std::pair< std::string, std::string > > pairs
Definition: craftdef.h:120