LeviLamina
Loading...
Searching...
No Matches
ItemActor.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4#include "mc/world/item/ItemStack.h"
5
6// auto generated inclusion list
7#include "mc/world/actor/Actor.h"
8#include "mc/world/actor/ActorEvent.h"
9#include "mc/world/actor/ActorInitializationMethod.h"
10#include "mc/world/item/ItemStack.h"
11
12// auto generated forward declare list
13// clang-format off
16class ActorHurtResult;
17class BlockSource;
18class CompoundTag;
19class DataLoadHelper;
20class EntityContext;
21class ListTag;
22class Packet;
23class Player;
24class Vec3;
26struct ActorUniqueID;
28// clang-format on
29
30class ItemActor : public ::Actor {
31protected:
32 // ItemActor inner types declare
33 // clang-format off
35 // clang-format on
36
37 // ItemActor inner types define
39 public:
40 // member variables
41 // NOLINTBEGIN
42 ::ll::TypedStorage<1, 1, bool> mUseAdjustments;
43 ::ll::TypedStorage<4, 4, float> mFirstRenderedYaw;
44 // NOLINTEND
45 };
46
47public:
48 // member variables
49 // NOLINTBEGIN
50 ::ll::TypedStorage<8, 152, ::ItemStack> mItem;
51 ::ll::TypedStorage<4, 4, int> mAge;
52 ::ll::TypedStorage<4, 4, int> mPickupDelay;
53 ::ll::TypedStorage<4, 4, int> mThrowTime;
54 ::ll::TypedStorage<4, 4, float> mBobOffs;
55 ::ll::TypedStorage<4, 4, int> mHealth;
56 ::ll::TypedStorage<4, 4, int> mLifeTime;
57 ::ll::TypedStorage<1, 1, bool> mIsInItemFrame;
58 ::ll::TypedStorage<1, 1, bool> mIsFromFishing;
59 ::ll::TypedStorage<4, 12, ::std::optional<::ItemActor::ItemRenderAdjustments>> mRenderAdjustments;
60 // NOLINTEND
61
62public:
63 LLNDAPI ItemStack& item();
64 LLNDAPI ItemStack const& item() const;
65 LLNDAPI int& age();
66 LLNDAPI int const& age() const;
67 LLNDAPI int& pickupDelay();
68 LLNDAPI int const& pickupDelay() const;
69 LLNDAPI int& throwTime();
70 LLNDAPI int const& throwTime() const;
71 LLNDAPI float& bobOffs();
72 LLNDAPI float const& bobOffs() const;
73 LLNDAPI int& health();
74 LLNDAPI int const& health() const;
75 LLNDAPI int& lifeTime();
76 LLNDAPI int const& lifeTime() const;
77 LLNDAPI bool& isInItemFrame();
78 LLNDAPI bool const& isInItemFrame() const;
79 LLNDAPI bool& isFromFishing();
80 LLNDAPI bool const& isFromFishing() const;
81 LLNDAPI static ItemActor* tryGetFromEntity(::EntityContext& entity, bool includeRemoved);
82
83public:
84 // virtual functions
85 // NOLINTBEGIN
86 virtual void reloadHardcoded(::ActorInitializationMethod, ::VariantParameterList const&) /*override*/;
87
88 virtual ~ItemActor() /*override*/ = default;
89
90 virtual void playerTouch(::Player& player) /*override*/;
91
92 virtual ::std::unique_ptr<::Packet> tryCreateAddActorPacket() /*override*/;
93
94 virtual ::ActorUniqueID getSourceUniqueID() const /*override*/;
95
96 virtual bool isInvulnerableTo(::ActorDamageSource const& source) const /*override*/;
97
98 virtual bool canSynchronizeNewEntity() const /*override*/;
99
100 virtual void handleEntityEvent(::ActorEvent eventId, int data) /*override*/;
101
102 virtual bool isFireImmune() const /*override*/;
103
104 virtual ::ActorHurtResult _hurt(::ActorDamageSource const&, float damage, bool, bool) /*override*/;
105
106 virtual void addAdditionalSaveData(::CompoundTag& entityTag) const /*override*/;
107
108 virtual void readAdditionalSaveData(::CompoundTag const& tag, ::DataLoadHelper& dataLoadHelper) /*override*/;
109 // NOLINTEND
110
111public:
112 // member functions
113 // NOLINTBEGIN
114 MCAPI ItemActor(
115 ::ActorDefinitionGroup* definitions,
116 ::ActorDefinitionIdentifier const& definitionName,
117 ::EntityContext& entityContext
118 );
119
120 MCAPI void _addComponents();
121
122 MCAPI void _dropContents();
123
124 MCAPI void _dropItemList(::ListTag* itemList);
125
126 MCAPI bool _merge(::ItemActor* target);
127
128 MCAPI void _mergeWithNeighbours();
129
130 MCAPI void _validateItem();
131
132#ifdef LL_PLAT_C
133 MCAPI void clientInitialize(
134 ::BlockSource& region,
135 ::Vec3 const& pos,
136 ::ItemStack const& item,
137 int throwTime,
138 bool isInItemFrame,
139 bool isFromFishing
140 );
141#endif
142
143 MCAPI void postNormalTick();
144 // NOLINTEND
145
146public:
147 // constructor thunks
148 // NOLINTBEGIN
149 MCAPI void* $ctor(
150 ::ActorDefinitionGroup* definitions,
151 ::ActorDefinitionIdentifier const& definitionName,
152 ::EntityContext& entityContext
153 );
154 // NOLINTEND
155
156public:
157 // virtual function thunks
158 // NOLINTBEGIN
159 MCAPI void $reloadHardcoded(::ActorInitializationMethod, ::VariantParameterList const&);
160
161 MCAPI void $playerTouch(::Player& player);
162
163 MCAPI ::std::unique_ptr<::Packet> $tryCreateAddActorPacket();
164
165 MCFOLD ::ActorUniqueID $getSourceUniqueID() const;
166
167 MCAPI bool $isInvulnerableTo(::ActorDamageSource const& source) const;
168
169 MCFOLD bool $canSynchronizeNewEntity() const;
170
171 MCAPI void $handleEntityEvent(::ActorEvent eventId, int data);
172
173 MCAPI bool $isFireImmune() const;
174
175 MCAPI ::ActorHurtResult $_hurt(::ActorDamageSource const&, float damage, bool, bool);
176
177 MCAPI void $addAdditionalSaveData(::CompoundTag& entityTag) const;
178
179 MCAPI void $readAdditionalSaveData(::CompoundTag const& tag, ::DataLoadHelper& dataLoadHelper);
180
181
182 // NOLINTEND
183
184public:
185 // vftables
186 // NOLINTBEGIN
187 MCAPI static void** $vftable();
188 // NOLINTEND
189};
Definition ActorDamageSource.h:18
Definition ActorDefinitionGroup.h:36
Definition ActorHurtResult.h:5
Definition BlockSource.h:71
Definition CompoundTag.h:23
Definition DataLoadHelper.h:20
Definition EntityContext.h:16
Definition ItemStack.h:26
Definition ListTag.h:19
Definition Packet.h:28
Definition Player.h:129
Definition Vec3.h:10
Definition ActorDefinitionIdentifier.h:15
Definition ActorUniqueID.h:5
Definition ItemActor.h:38
Definition VariantParameterList.h:13