blob: cd3102daf522a8036dfddc34ca107f9325591a3b (
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
#pragma once
#include "StarPane.hpp"
#include "StarLuaComponents.hpp"
#include "StarContainerInteractor.hpp"
#include "StarGuiReader.hpp"
namespace Star {
STAR_CLASS(ContainerEntity);
STAR_CLASS(Player);
STAR_CLASS(WorldClient);
STAR_CLASS(Item);
STAR_CLASS(ItemGridWidget);
STAR_CLASS(ItemBag);
STAR_CLASS(ContainerPane);
class ContainerPane : public Pane {
public:
ContainerPane(WorldClientPtr worldClient, PlayerPtr player, ContainerInteractorPtr containerInteractor);
void displayed() override;
void dismissed() override;
PanePtr createTooltip(Vec2I const& screenPosition) override;
bool giveContainerResult(ContainerResult result);
protected:
void update(float dt) override;
private:
enum class ExpectingSwap {
None,
Inventory,
SwapSlot,
SwapSlotStack
};
void swapSlot(ItemGridWidget* grid);
void startCrafting();
void stopCrafting();
void toggleCrafting();
void clear();
void burn();
WorldClientPtr m_worldClient;
PlayerPtr m_player;
ContainerInteractorPtr m_containerInteractor;
ItemBagPtr m_itemBag;
ExpectingSwap m_expectingSwap;
GuiReader m_reader;
Maybe<LuaWorldComponent<LuaUpdatableComponent<LuaBaseComponent>>> m_script;
};
}
|