aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.World/HorseInventoryMenu.h
blob: 613c55f994a1314f49eb169bc7282f9f18a4f40b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#pragma once

#include "AbstractContainerMenu.h"
#include "Slot.h"

class HorseInventoryMenu;

class HorseSaddleSlot : public Slot
{
public:
	HorseSaddleSlot( shared_ptr<Container> horseInventory );

	bool mayPlace(shared_ptr<ItemInstance> item);
};

class HorseArmorSlot : public Slot
{
private:
	HorseInventoryMenu *m_parent;
public:
	HorseArmorSlot( HorseInventoryMenu *parent, shared_ptr<Container> horseInventory );

	bool mayPlace(shared_ptr<ItemInstance> item);
	bool isActive();
};

class HorseInventoryMenu : public AbstractContainerMenu
{
	friend class HorseArmorSlot;
private:
	shared_ptr<Container> horseContainer;
	shared_ptr<EntityHorse> horse;

public:
	HorseInventoryMenu(shared_ptr<Container> playerInventory, shared_ptr<Container> horseInventory, shared_ptr<EntityHorse> horse);

	bool stillValid(shared_ptr<Player> player);
	shared_ptr<ItemInstance> quickMoveStack(shared_ptr<Player> player, int slotIndex);
	void removed(shared_ptr<Player> player);
	shared_ptr<Container> getContainer();
};