LeviLamina
Loading...
Searching...
No Matches
FoodItemComponent.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/utility/pub_sub/Publisher.h"
7#include "mc/deps/core/utility/pub_sub/Subscription.h"
8#include "mc/world/item/ItemDescriptor.h"
9#include "mc/world/item/ItemUseMethod.h"
10#include "mc/world/item/components/IFoodItemComponent.h"
11#include "mc/world/item/components/NetworkedItemComponent.h"
12#include "mc/world/level/storage/AllExperiments.h"
13
14// auto generated forward declare list
15// clang-format off
16class Actor;
17class ComponentItem;
18class Item;
19class ItemStack;
20class Level;
21class Player;
22class SemVersion;
23struct ItemOnUseResult;
24namespace Bedrock::PubSub::ThreadModel { struct MultiThreaded; }
25namespace SharedTypes::v1_20_50 { struct FoodItemComponent; }
26namespace cereal { struct ReflectionCtx; }
27// clang-format on
28
29class FoodItemComponent : public ::NetworkedItemComponent<::FoodItemComponent>, public ::IFoodItemComponent {
30public:
31 // FoodItemComponent inner types define
32 using ConsumeSignature = void(::ItemStack const&, ::ItemStack&, ::Actor&);
33
34public:
35 // member variables
36 // NOLINTBEGIN
37 ::ll::TypedStorage<4, 4, int> mNutrition;
38 ::ll::TypedStorage<4, 4, float> mSaturationModifier;
39 ::ll::TypedStorage<8, 16, ::ItemDescriptor> mUsingConvertsTo;
40 ::ll::TypedStorage<1, 1, bool> mCanAlwaysEat;
41 ::ll::TypedStorage<
42 8,
43 8,
44 ::std::unique_ptr<::Bedrock::PubSub::Publisher<
45 void(::ItemStack const&, ::ItemStack&, ::Actor&),
47 0>>>
48 mOnConsumePublisher;
49 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mOnUseTimeDepletedSubscription;
50 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mOnUseSubscription;
51 // NOLINTEND
52
53public:
54 // prevent constructor by default
55 FoodItemComponent();
56
57public:
58 // virtual functions
59 // NOLINTBEGIN
60 virtual ~FoodItemComponent() /*override*/ = default;
61
62 virtual void _initializeComponent(::ComponentItem& owner) /*override*/;
63
64 virtual int getNutrition() const /*override*/;
65
66 virtual float getSaturationModifier() const /*override*/;
67
68 virtual bool canAlwaysEat() const /*override*/;
69
70 virtual ::Item const* eatItem(::ItemStack& instance, ::Actor& actor, ::Level& level) /*override*/;
71
72 virtual void use(::ItemOnUseResult& result, ::ItemStack& instance, ::Player& player) /*override*/;
73
74 virtual ::Item const* useTimeDepleted(
75 ::ItemUseMethod& itemUseMethod,
76 ::ItemStack const& initialInstance,
77 ::ItemStack& instance,
78 ::Player& player,
79 ::Level& level
80 ) /*override*/;
81 // NOLINTEND
82
83public:
84 // member functions
85 // NOLINTBEGIN
86 MCAPI explicit FoodItemComponent(::SharedTypes::v1_20_50::FoodItemComponent component);
87 // NOLINTEND
88
89public:
90 // static functions
91 // NOLINTBEGIN
92 MCAPI static void bindType(
94 ::std::vector<::AllExperiments> const& requiredToggles,
95 ::std::optional<::SemVersion> releasedMinFormatVersion
96 );
97 // NOLINTEND
98
99public:
100 // constructor thunks
101 // NOLINTBEGIN
102 MCAPI void* $ctor(::SharedTypes::v1_20_50::FoodItemComponent component);
103 // NOLINTEND
104
105public:
106 // virtual function thunks
107 // NOLINTBEGIN
108 MCAPI void $_initializeComponent(::ComponentItem& owner);
109
110 MCFOLD int $getNutrition() const;
111
112 MCFOLD float $getSaturationModifier() const;
113
114 MCFOLD bool $canAlwaysEat() const;
115
116 MCAPI ::Item const* $eatItem(::ItemStack& instance, ::Actor& actor, ::Level& level);
117
118 MCAPI void $use(::ItemOnUseResult& result, ::ItemStack& instance, ::Player& player);
119
120 MCAPI ::Item const* $useTimeDepleted(
121 ::ItemUseMethod& itemUseMethod,
122 ::ItemStack const& initialInstance,
123 ::ItemStack& instance,
124 ::Player& player,
125 ::Level& level
126 );
127
128
129 // NOLINTEND
130
131public:
132 // vftables
133 // NOLINTBEGIN
134 MCNAPI static void** $vftableForNetworkedItemComponent();
135
136 MCNAPI static void** $vftableForIFoodItemComponent();
137 // NOLINTEND
138};
Definition Actor.h:113
Definition Publisher.h:25
Definition ComponentItem.h:50
static MCAPI void ** $vftableForIFoodItemComponent()
static MCAPI void ** $vftableForNetworkedItemComponent()
Definition IFoodItemComponent.h:18
Definition ItemStack.h:26
Definition Item.h:71
Definition Level.h:254
Definition NetworkedItemComponent.h:7
Definition Player.h:129
Definition SemVersion.h:15
Definition ItemOnUseResult.h:5
Definition FoodItemComponent.h:15
Definition ReflectionCtx.h:11
Definition ctx.h:5