the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
1#pragma once
2using namespace std;
3
4#include "FurnaceTile.h"
5#include "TileEntity.h"
6#include "WorldlyContainer.h"
7
8class Player;
9class Level;
10
11class FurnaceTileEntity : public TileEntity, public WorldlyContainer
12{
13public:
14 eINSTANCEOF GetType() { return eTYPE_FURNACETILEENTITY; }
15 static TileEntity *create() { return new FurnaceTileEntity(); }
16
17 using TileEntity::setChanged;
18
19 static const int SLOT_INPUT = 0;
20 static const int SLOT_FUEL = 1;
21 static const int SLOT_RESULT = 2;
22
23private:
24 static const intArray SLOTS_FOR_UP;
25 static const intArray SLOTS_FOR_DOWN;
26 static const intArray SLOTS_FOR_SIDES;
27
28 static const int BURN_INTERVAL;
29 ItemInstanceArray items;
30
31 // 4J-JEV: Added for 'Renewable Energy' achievement.
32 // Should be true iff characoal was consumed whilst cooking the current stack.
33 bool m_charcoalUsed;
34
35public:
36 int litTime;
37 int litDuration;
38 int tickCount;
39
40private:
41
42 wstring name;
43
44public:
45 // 4J Stu - Need a ctor to initialise member variables
46 FurnaceTileEntity();
47 virtual ~FurnaceTileEntity();
48
49 virtual unsigned int getContainerSize();
50 virtual shared_ptr<ItemInstance> getItem(unsigned int slot);
51 virtual shared_ptr<ItemInstance> removeItem(unsigned int slot, int count);
52 virtual shared_ptr<ItemInstance> removeItemNoUpdate(int slot);
53 virtual void setItem(unsigned int slot, shared_ptr<ItemInstance> item);
54 virtual wstring getName();
55 virtual wstring getCustomName();
56 virtual bool hasCustomName();
57 virtual void setCustomName(const wstring &name);
58 virtual void load(CompoundTag *base);
59 virtual void save(CompoundTag *base);
60 virtual int getMaxStackSize() const;
61 int getBurnProgress(int max);
62 int getLitProgress(int max);
63 bool isLit();
64 virtual void tick();
65
66private:
67 bool canBurn();
68
69public:
70 void burn();
71
72 static int getBurnDuration(shared_ptr<ItemInstance> itemInstance);
73 static bool isFuel(shared_ptr<ItemInstance> item);
74
75public:
76 virtual bool stillValid(shared_ptr<Player> player);
77 virtual void setChanged();
78
79 void startOpen();
80 void stopOpen();
81
82 virtual bool canPlaceItem(int slot, shared_ptr<ItemInstance> item);
83 virtual intArray getSlotsForFace(int face);
84 virtual bool canPlaceItemThroughFace(int slot, shared_ptr<ItemInstance> item, int face);
85 virtual bool canTakeItemThroughFace(int slot, shared_ptr<ItemInstance> item, int face);
86
87 // 4J Added
88 virtual shared_ptr<TileEntity> clone();
89
90 // 4J-JEV: Added for 'Renewable Energy' achievement.
91 bool wasCharcoalUsed() { return m_charcoalUsed; }
92};