the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
1#pragma once
2#include "DispenseItemBehavior.h"
3
4class FacingEnum;
5class Position;
6
7class DefaultDispenseItemBehavior : public DispenseItemBehavior
8{
9protected:
10 enum eOUTCOME
11 {
12 // Item has special behaviour that was executed successfully.
13 ACTIVATED_ITEM = 0,
14
15 // Item was dispenced onto the ground as a pickup.
16 DISPENCED_ITEM = 1,
17
18 // Execution failed, the item was left unaffected.
19 LEFT_ITEM = 2,
20 };
21
22public:
23 DefaultDispenseItemBehavior() {};
24 virtual ~DefaultDispenseItemBehavior() {};
25 virtual shared_ptr<ItemInstance> dispense(BlockSource *source, shared_ptr<ItemInstance> dispensed);
26
27protected:
28 // 4J-JEV: Added value used to play FAILED sound effect upon reaching spawn limits.
29 virtual shared_ptr<ItemInstance> execute(BlockSource *source, shared_ptr<ItemInstance> dispensed, eOUTCOME &outcome);
30
31public:
32 static void spawnItem(Level *world, shared_ptr<ItemInstance> item, int accuracy, FacingEnum *facing, Position *position);
33
34protected:
35 virtual void playSound(BlockSource *source, eOUTCOME outcome);
36 virtual void playAnimation(BlockSource *source, FacingEnum *facing, eOUTCOME outcome);
37
38private:
39 virtual int getLevelEventDataFrom(FacingEnum *facing);
40};