mirror of
https://github.com/4jcraft/4jcraft.git
synced 2026-05-07 00:47:15 +00:00
56 lines
1.6 KiB
C++
56 lines
1.6 KiB
C++
#pragma once
|
|
|
|
#include "Recipy.h"
|
|
|
|
class FireworksRecipe : public Recipy {
|
|
private:
|
|
// std::shared_ptr<ItemInstance> resultItem;
|
|
|
|
// 4J added so we can have separate contexts and rleBuf for different
|
|
// threads
|
|
class ThreadStorage {
|
|
public:
|
|
std::shared_ptr<ItemInstance> resultItem;
|
|
ThreadStorage();
|
|
};
|
|
static DWORD tlsIdx;
|
|
static ThreadStorage* tlsDefault;
|
|
|
|
void setResultItem(std::shared_ptr<ItemInstance> item);
|
|
|
|
public:
|
|
// Each new thread that needs to use Compression will need to call one of
|
|
// the following 2 functions, to either create its own local storage, or
|
|
// share the default storage already allocated by the main thread
|
|
static void CreateNewThreadStorage();
|
|
static void UseDefaultThreadStorage();
|
|
static void ReleaseThreadStorage();
|
|
|
|
public:
|
|
FireworksRecipe();
|
|
|
|
bool matches(std::shared_ptr<CraftingContainer> craftSlots, Level* level);
|
|
std::shared_ptr<ItemInstance> assemble(
|
|
std::shared_ptr<CraftingContainer> craftSlots);
|
|
int size();
|
|
const ItemInstance* getResultItem();
|
|
|
|
virtual const int getGroup() { return 0; }
|
|
|
|
// 4J-PB
|
|
virtual bool
|
|
requiresRecipe(int iRecipe)
|
|
{
|
|
return false;
|
|
};
|
|
virtual void
|
|
collectRequirements(INGREDIENTS_REQUIRED* pIngReq)
|
|
{};
|
|
|
|
// 4J Added
|
|
static void updatePossibleRecipes(
|
|
std::shared_ptr<CraftingContainer> craftSlots, bool* firework,
|
|
bool* charge, bool* fade);
|
|
static bool isValidIngredient(std::shared_ptr<ItemInstance> item,
|
|
bool firework, bool charge, bool fade);
|
|
}; |