blob: d073fd31e3c13953791e8a66660c34b531482b09 (
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
|
#pragma once
#include "StarContainerEntity.hpp"
namespace Star {
STAR_CLASS(ContainerInteractor);
typedef List<ItemPtr> ContainerResult;
class ContainerInteractor {
public:
void openContainer(ContainerEntityPtr containerEntity);
void closeContainer();
bool containerOpen() const;
// Returns NullEntityId if no container is open
EntityId openContainerId() const;
// Throws exception if there is no currently open container.
ContainerEntityPtr const& openContainer() const;
List<ContainerResult> pullContainerResults();
void swapInContainer(size_t slot, ItemPtr const& items);
void addToContainer(ItemPtr const& items);
void takeFromContainerSlot(size_t slot, size_t count);
void applyAugmentInContainer(size_t slot, ItemPtr const& augment);
void startCraftingInContainer();
void stopCraftingInContainer();
void burnContainer();
void clearContainer();
private:
static ContainerResult resultFromItem(ItemPtr const& items);
mutable ContainerEntityPtr m_openContainer;
List<RpcPromise<ContainerResult>> m_pendingResults;
};
}
|