2026-03-01 12:16:08 +08:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
class Container;
|
|
|
|
|
|
|
|
|
|
class Slot
|
|
|
|
|
{
|
|
|
|
|
private:
|
|
|
|
|
int slot;
|
|
|
|
|
|
|
|
|
|
public:
|
2026-03-02 17:37:16 +07:00
|
|
|
shared_ptr<Container> container;
|
2026-03-01 12:16:08 +08:00
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
int index;
|
|
|
|
|
int x, y;
|
|
|
|
|
|
2026-03-02 17:37:16 +07:00
|
|
|
Slot(shared_ptr<Container> container, int slot, int x, int y);
|
2026-03-01 12:16:08 +08:00
|
|
|
virtual ~Slot() {}
|
|
|
|
|
|
2026-03-02 17:37:16 +07:00
|
|
|
void onQuickCraft(shared_ptr<ItemInstance> picked, shared_ptr<ItemInstance> original);
|
2026-03-01 12:16:08 +08:00
|
|
|
|
|
|
|
|
protected:
|
2026-03-02 17:37:16 +07:00
|
|
|
virtual void onQuickCraft(shared_ptr<ItemInstance> picked, int count);
|
|
|
|
|
virtual void checkTakeAchievements(shared_ptr<ItemInstance> picked);
|
2026-03-01 12:16:08 +08:00
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
void swap(Slot *other);
|
2026-03-02 17:37:16 +07:00
|
|
|
virtual void onTake(shared_ptr<Player> player, shared_ptr<ItemInstance> carried);
|
|
|
|
|
virtual bool mayPlace(shared_ptr<ItemInstance> item);
|
|
|
|
|
virtual shared_ptr<ItemInstance> getItem();
|
2026-03-01 12:16:08 +08:00
|
|
|
virtual bool hasItem();
|
2026-03-02 17:37:16 +07:00
|
|
|
virtual void set(shared_ptr<ItemInstance> item);
|
2026-03-01 12:16:08 +08:00
|
|
|
virtual void setChanged();
|
2026-03-03 06:14:34 +07:00
|
|
|
virtual int getMaxStackSize() const;
|
2026-03-01 12:16:08 +08:00
|
|
|
virtual Icon *getNoItemIcon();
|
2026-03-02 17:37:16 +07:00
|
|
|
virtual shared_ptr<ItemInstance> remove(int c);
|
|
|
|
|
virtual bool isAt(shared_ptr<Container> c, int s);
|
|
|
|
|
virtual bool mayPickup(shared_ptr<Player> player);
|
2026-03-03 03:04:10 +08:00
|
|
|
virtual bool isActive();
|
2026-03-02 17:37:16 +07:00
|
|
|
virtual bool mayCombine(shared_ptr<ItemInstance> item); // 4J Added
|
|
|
|
|
virtual shared_ptr<ItemInstance> combine(shared_ptr<ItemInstance> item); // 4J Added
|
2026-03-01 12:16:08 +08:00
|
|
|
};
|