123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- #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);
- 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;
- };
|