Skip to content
LeviLamina

API Reference

On this page

Loading...
Searching...
No Matches
IItemUseTransactionSubject.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/platform/brstd/copyable_function.h"
7#include "mc/platform/brstd/function_ref.h"
8#include "mc/world/ContainerID.h"
9#include "mc/world/gamemode/entity_attack/ValidationMode.h"
10#include "mc/world/item/HandSlot.h"
11
12// auto generated forward declare list
13// clang-format off
14class Block;
15class BlockPos;
16class Container;
17class Experiments;
19class InventoryAction;
20class ItemStack;
22class Vec3;
25// clang-format on
26
28public:
29 // virtual functions
30 // NOLINTBEGIN
31 virtual ~IItemUseTransactionSubject() = default;
32
33 virtual bool isAlive() const = 0;
34
35 virtual ::ItemStack unwrapItem(::NetworkItemStackDescriptor const& item) const = 0;
36
37 virtual ::Block const& unwrapBlock(uint const& block) const = 0;
38
39 virtual ::ItemStack const& getItemInHandSlot(::HandSlot) const = 0;
40
41 virtual void setItemInHandSlot(::HandSlot, ::ItemStack const&) = 0;
42
43 virtual ::PlayerInventorySlotData getSelectedSlot() const = 0;
44
45 virtual void setSelectedSlot(int slot, ::ContainerID containerId) = 0;
46
47 virtual float getMaxPickRange() const = 0;
48
49 virtual ::Vec3 getPosition() const = 0;
50
51 virtual void setPosition(::Vec3 const& position) = 0;
52
53 virtual void createTransactionContext(
54 ::HandSlot handSlot,
55 ::brstd::copyable_function<void(::Container&, int, ::ItemStack const&, ::ItemStack const&)> callback,
56 ::brstd::function_ref<void()> execute
57 ) = 0;
58
59 virtual void addExpectedAction(::InventoryAction const& action) = 0;
60
61 virtual bool baseUseItem(::ItemStack&, ::HandSlot) = 0;
62
63 virtual bool baseUseItemAsAttack(::ItemStack&, ::Vec3 const&, ::HandSlot) = 0;
64
65 virtual ::InteractionResult
66 useItemOn(::ItemStack&, ::BlockPos const&, uchar, ::Vec3 const&, ::HandSlot, ::Block const*, bool) = 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
86 virtual ::Experiments const& getExperiments() const = 0;
87
88 virtual ::EntityAttack::ValidationMode getEntityAttackRequestCompatibilityMode() const = 0;
89 // NOLINTEND
90};
Definition BlockPos.h:14
Definition Block.h:42
Definition Container.h:36
Definition Experiments.h:14
Definition IItemUseTransactionSubject.h:27
Definition InteractionResult.h:5
Definition InventoryAction.h:15
Definition ItemStack.h:26
Definition NetworkItemStackDescriptor.h:17
Definition Vec3.h:10
Definition copyable_function.h:8
Definition function_ref.h:60
Definition DepenetrationComponent.h:13
Definition PlayerInventorySlotData.h:8