LeviLamina
Loading...
Searching...
No Matches
MerchantRecipe.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4#include "mc/world/inventory/network/TypedServerNetId.h"
5#include "mc/world/inventory/network/crafting/RecipeNetIdTag.h"
6#include "mc/world/item/ItemInstance.h"
7
8// auto generated inclusion list
9#include "mc/world/inventory/network/TypedServerNetId.h"
10#include "mc/world/item/ItemInstance.h"
11
12// auto generated forward declare list
13// clang-format off
14class BaseGameVersion;
15class CompoundTag;
16class SaveContext;
17struct RecipeNetIdTag;
18// clang-format on
19
20class MerchantRecipe {
21public:
22 // member variables
23 // NOLINTBEGIN
24 ::ll::TypedStorage<8, 128, ::ItemInstance> mBuyA;
25 ::ll::TypedStorage<8, 128, ::ItemInstance> mBuyB;
26 ::ll::TypedStorage<8, 128, ::ItemInstance> mSell;
27 ::ll::TypedStorage<4, 4, int> mTier;
28 ::ll::TypedStorage<4, 4, int> mUses;
29 ::ll::TypedStorage<4, 4, int> mMaxUses;
30 ::ll::TypedStorage<4, 4, uint> mTraderExp;
31 ::ll::TypedStorage<1, 1, bool> mRewardExp;
32 ::ll::TypedStorage<4, 4, int> mDemand;
33 ::ll::TypedStorage<4, 4, int> mBuyCountA;
34 ::ll::TypedStorage<4, 4, int> mBuyCountB;
35 ::ll::TypedStorage<4, 4, float> mPriceMultiplierA;
36 ::ll::TypedStorage<4, 4, float> mPriceMultiplierB;
37 ::ll::TypedStorage<4, 4, ::RecipeNetId> mRecipeNetId;
38 // NOLINTEND
39
40#ifdef LL_PLAT_S
41public:
42 // prevent constructor by default
43 MerchantRecipe();
44
45#else // LL_PLAT_C
46#endif
47public:
48 // member functions
49 // NOLINTBEGIN
50#ifdef LL_PLAT_C
51 MCAPI MerchantRecipe();
52#endif
53
54 MCAPI explicit MerchantRecipe(::CompoundTag const* tag);
55
56 MCAPI MerchantRecipe(::ItemInstance const& buy, ::ItemInstance const& sell);
57
58 MCAPI MerchantRecipe(::ItemInstance const& buyA, ::ItemInstance const& buyB, ::ItemInstance const& sell);
59
60 MCAPI void calculateDemandPrices(
61 int minorPositiveGossip,
62 int majorPositiveGossip,
63 int nearbyCuredDiscount,
64 int heroEffectAmplifier,
65 bool hasHeroOfTheVillage,
66 ::BaseGameVersion baseGameVersion
67 );
68
69 MCAPI void calculateDemandPricesDefaults();
70
71 MCAPI ::std::unique_ptr<::CompoundTag> createTag(bool includeNetInfo, ::SaveContext const& saveContext) const;
72
73 MCFOLD int getBaseCountA() const;
74
75 MCAPI int getBaseCountB() const;
76
77 MCFOLD ::ItemInstance const& getBuyAItem() const;
78
79 MCFOLD ::ItemInstance const& getBuyBItem() const;
80
81 MCAPI int getDemand() const;
82
83 MCFOLD int getMaxUses() const;
84
85#ifdef LL_PLAT_C
86 MCFOLD ::RecipeNetId const& getNetId() const;
87#endif
88
89 MCFOLD ::ItemInstance const& getSellItem() const;
90
91 MCFOLD int getTier() const;
92
93 MCFOLD uint getTraderExp() const;
94
95 MCFOLD int getUses() const;
96
97 MCAPI bool hasSecondaryBuyItem() const;
98
99 MCAPI void increaseMaxUses(int amount);
100
101 MCAPI void increaseUses(int count);
102
103 MCAPI void init(::ItemInstance const& buyA, ::ItemInstance const& buyB, ::ItemInstance const& sell);
104
105 MCAPI bool isOutOfUses() const;
106
107 MCAPI bool isSame(::MerchantRecipe const& lhs) const;
108
109 MCAPI void legacyCalculateDemandPrices(int lowTierDiscount, int highTierDiscount);
110
111 MCAPI void load(::CompoundTag const* tag);
112
113 MCAPI void setDemand(int demand);
114
115 MCAPI void setMaxUses(int maxUses);
116
117 MCAPI void setPriceMultiplierA(float priceMultiplier);
118
119 MCAPI void setPriceMultiplierB(float priceMultiplier);
120
121 MCAPI void setRewardExp(bool rewardExp);
122
123 MCFOLD void setTier(int tier);
124
125 MCAPI void setTraderExp(uint traderExp);
126
127 MCAPI void setUses(int uses);
128
129 MCFOLD bool shouldRewardExp() const;
130
131 MCAPI ~MerchantRecipe();
132 // NOLINTEND
133
134public:
135 // constructor thunks
136 // NOLINTBEGIN
137#ifdef LL_PLAT_C
138 MCAPI void* $ctor();
139#endif
140
141 MCAPI void* $ctor(::CompoundTag const* tag);
142
143 MCAPI void* $ctor(::ItemInstance const& buy, ::ItemInstance const& sell);
144
145 MCAPI void* $ctor(::ItemInstance const& buyA, ::ItemInstance const& buyB, ::ItemInstance const& sell);
146 // NOLINTEND
147
148public:
149 // destructor thunk
150 // NOLINTBEGIN
151 MCAPI void $dtor();
152 // NOLINTEND
153};
Definition BaseGameVersion.h:13
Definition CompoundTag.h:23
Definition ItemInstance.h:15
Definition SaveContext.h:5
Definition RecipeNetIdTag.h:5