LeviLamina
Loading...
Searching...
No Matches
IItemUseTransactionSubject.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/world/ContainerID.h"
7
8// auto generated forward declare list
9// clang-format off
10class Block;
11class BlockPos;
12class Container;
14class InventoryAction;
15class ItemStack;
17class Vec3;
20// clang-format on
21
23public:
24 // virtual functions
25 // NOLINTBEGIN
26 virtual ~IItemUseTransactionSubject() = default;
27
28 virtual bool isAlive() const = 0;
29
30 virtual ::ItemStack unwrapItem(::NetworkItemStackDescriptor const& item) const = 0;
31
32 virtual ::Block const& unwrapBlock(uint const& block) const = 0;
33
34 virtual ::ItemStack const& getSelectedItem() const = 0;
35
36 virtual void setSelectedItem(::ItemStack const& item) = 0;
37
38 virtual ::PlayerInventorySlotData getSelectedSlot() const = 0;
39
40 virtual void setSelectedSlot(int slot, ::ContainerID containerId) = 0;
41
42 virtual float getMaxPickRange() const = 0;
43
44 virtual ::Vec3 getPosition() const = 0;
45
46 virtual void setPosition(::Vec3 const& position) = 0;
47
48 virtual void createTransactionContext(
49 ::std::function<void(::Container&, int, ::ItemStack const&, ::ItemStack const&)>&& callback,
50 ::std::function<void()>&& execute
51 ) = 0;
52
53 virtual void addExpectedAction(::InventoryAction const& action) = 0;
54
55 virtual bool baseUseItem(::ItemStack& item) = 0;
56
57 virtual bool baseUseItemAsAttack(::ItemStack& item, ::Vec3 const& aimDirection) = 0;
58
59 virtual ::InteractionResult useItemOn(
60 ::ItemStack& item,
61 ::BlockPos const& at,
62 uchar face,
63 ::Vec3 const& hit,
64 ::Block const* targetBlock,
65 bool isFirstEvent
66 ) = 0;
67
68 virtual void resendBlocksAroundArea(::BlockPos const& pos, uchar facing) const = 0;
69
70 virtual void resendPlayerState() const = 0;
71
72 virtual void sendPlayerInventory() const = 0;
73
74 virtual bool isSneaking() const = 0;
75
76 virtual ::Block const& getBlock(::BlockPos const& pos) const = 0;
77
78 virtual ::Block const& getExtraBlock(::BlockPos const& pos) const = 0;
79
80 virtual bool isLastBuildBlockInteractive() const = 0;
81
82 virtual void sendBlockInteractedWith(::BlockPos const& pos) = 0;
83
84 virtual ::DepenetrationComponent& getDepenetrationComponent() = 0;
85 // NOLINTEND
86
87public:
88 // virtual function thunks
89 // NOLINTBEGIN
90
91 // NOLINTEND
92};
Definition BlockPos.h:19
Definition Block.h:43
Definition Container.h:33
Definition IItemUseTransactionSubject.h:22
Definition InteractionResult.h:5
Definition InventoryAction.h:15
Definition ItemStack.h:26
Definition NetworkItemStackDescriptor.h:17
Definition Vec3.h:10
Definition DepenetrationComponent.h:13
Definition PlayerInventorySlotData.h:8