12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- #pragma once
- #include <Text.h>
- #include "Area.h"
- class Inventory;
- class ItemStack;
- class ItemSlotIDSetter
- {
- protected:
- virtual void setId(int id) = 0;
- friend Inventory;
- };
- class ItemSlot : public virtual Framework::ReferenceCounter,
- public ItemSlotIDSetter
- {
- private:
- ItemStack* items;
- int maxSize;
- Directions allowedPullSide;
- Directions allowedPushSides;
- int pullPriority;
- int pushPriority;
- bool allowHigherStackSize;
- Framework::Text name;
- int id;
- void setId(int id) override;
- public:
- ItemSlot(Framework::Text name,
- int maxSize,
- int pullPriority,
- int pushPriority,
- int allowedPullSide,
- int allowedPushSides,
- bool allowHigherStackSize);
- ~ItemSlot();
- ItemStack* takeItemsOut(int count, Direction dir);
- void addItems(ItemStack* zStack, Direction dir);
- void update();
- int numberOfAddableItems(const ItemStack* zStack, Direction dir) const;
- const ItemStack* zStack() const;
- int getPullPriority() const;
- int getPushPriority() const;
- bool isFull() const;
- int getFreeSpace() const;
- bool isEmpty() const;
- int getNumberOfItems() const;
- const Framework::Text& getName() const;
- int getId() const;
- };
|