4jcraft/targets/minecraft/world/item/crafting/ShapedRecipy.h
2026-04-01 13:27:58 -05:00

44 lines
1.1 KiB
C++

#pragma once
#include <memory>
#include "minecraft/world/item/crafting/Recipy.h"
class CraftingContainer;
class ItemInstance;
class ShapedRecipy : public Recipy {
private:
int width, height, group;
ItemInstance** recipeItems;
ItemInstance* result;
bool _keepTag;
public:
const int resultId;
public:
ShapedRecipy(int width, int height, ItemInstance** recipeItems,
ItemInstance* result,
int iGroup = Recipy::eGroupType_Decoration);
virtual const ItemInstance* getResultItem();
virtual const int getGroup();
virtual bool matches(std::shared_ptr<CraftingContainer> craftSlots,
Level* level);
private:
bool matches(std::shared_ptr<CraftingContainer> craftSlots, int xOffs,
int yOffs, bool xFlip);
public:
virtual std::shared_ptr<ItemInstance> assemble(
std::shared_ptr<CraftingContainer> craftSlots);
virtual int size();
ShapedRecipy* keepTag();
// 4J-PB - to return the items required to make a recipe
virtual bool requiresRecipe(int iRecipe);
virtual void collectRequirements(INGREDIENTS_REQUIRED* pIngReq);
};