22 enum class Activation :
int {
30 enum class CompatibilityID :
int {
40 enum class Frequency :
int {
47 enum class Type : uchar {
52 ProjectileProtection = 4,
59 BaneOfArthropods = 11,
76 CurseOfVanishing = 28,
91 InvalidEnchantment = 43,
94 enum class VillagerTrading :
int {
99 using Slot = ::SharedTypes::EnchantSlot;
104 ::ll::TypedStorage<1, 1, ::Enchant::Type const> mEnchantType;
105 ::ll::TypedStorage<4, 4, ::Enchant::Frequency const> mFrequency;
106 ::ll::TypedStorage<1, 1, bool const> mIsAvailableInVillagerTrading;
107 ::ll::TypedStorage<4, 4, int const> mPrimarySlots;
108 ::ll::TypedStorage<4, 4, int const> mSecondarySlots;
109 ::ll::TypedStorage<4, 4, int const> mCompatibility;
110 ::ll::TypedStorage<8, 32, ::std::string const> mDescription;
111 ::ll::TypedStorage<8, 48, ::HashedString const> mStringId;
112 ::ll::TypedStorage<8, 48, ::HashedString const> mScriptStringId;
113 ::ll::TypedStorage<1, 1, bool> mIsDisabled;
125 virtual bool isCompatibleWith(::Enchant::Type type)
const;
127 virtual int getMinCost(
int level)
const;
129 virtual int getMaxCost(
int level)
const;
131 virtual int getMinLevel()
const;
133 virtual int getMaxLevel()
const;
137 virtual float getAfterBreachArmorFraction(
int level,
float armorFraction)
const;
139 virtual float getDamageBonus(
int,
::Actor const&,
::Actor const&)
const;
141 virtual void doPostAttack(
::Actor& attacker,
::Actor& victim,
int level)
const;
143 virtual void doPostPiercingAttack(
::Actor& attacker,
int enchantLevel)
const;
149 virtual bool isMeleeDamageEnchant()
const;
151 virtual bool isProtectionEnchant()
const;
153 virtual bool isTreasureOnly()
const;
155 virtual bool isDiscoverable()
const;
157 virtual bool _isValidEnchantmentTypeForCategory(::Enchant::Type type)
const;
164 ::Enchant::Type type,
165 ::Enchant::Frequency frequency,
166 ::std::string_view stringId,
167 ::std::string_view scriptStringId,
168 ::std::string_view description,
169 ::Enchant::VillagerTrading isAvailableForVillagerTraining,
174 MCAPI ::std::string getDescriptionId()
const;
176 MCFOLD ::Enchant::Type getEnchantType()
const;
179 MCFOLD ::HashedString
const& getScriptStringId()
const;
182 MCFOLD ::HashedString
const& getStringId()
const;
184 MCAPI
bool isAvailable()
const;
186 MCFOLD
bool isDisabled()
const;
192 MCAPI static ::SharedTypes::EnchantSlot enchantSlotFromString(::std::string_view str);
194 MCAPI static ::Enchant
const* getEnchant(::Enchant::Type
const& type);
196 MCAPI static ::Enchant
const* getEnchantFromName(
::HashedString const& name);
198 MCAPI static ::Enchant::Type getEnchantTypeFromName(
::HashedString const& name);
202 MCAPI
static void shutdownEnchants();
204 MCAPI static ::std::string stringFromEnchantSlot(::SharedTypes::EnchantSlot
const& enchantSlot);
210 MCAPI static ::std::unordered_map<::HashedString, ::Enchant::Type>& mEnchantNameToType();
212 MCAPI static ::std::unordered_map<
213 ::SharedTypes::EnchantSlot,
216 ::std::equal_to<::SharedTypes::EnchantSlot>>&
217 mEnchantSlotTypeEnumToStringMap();
219 MCAPI static ::std::unordered_map<::std::string, ::SharedTypes::EnchantSlot>& mEnchantSlotTypeNameToEnumMap();
221 MCAPI static ::std::vector<::std::unique_ptr<::Enchant>>& mEnchants();
228 ::Enchant::Type type,
229 ::Enchant::Frequency frequency,
230 ::std::string_view stringId,
231 ::std::string_view scriptStringId,
232 ::std::string_view description,
233 ::Enchant::VillagerTrading isAvailableForVillagerTraining,
248 MCAPI
bool $isCompatibleWith(::Enchant::Type type)
const;
250 MCAPI
int $getMinCost(
int level)
const;
252 MCAPI
int $getMaxCost(
int level)
const;
254 MCFOLD
int $getMinLevel()
const;
256 MCFOLD
int $getMaxLevel()
const;
260 MCFOLD
float $getAfterBreachArmorFraction(
int level,
float armorFraction)
const;
262 MCFOLD
float $getDamageBonus(
int,
::Actor const&,
::Actor const&)
const;
264 MCFOLD
void $doPostAttack(
::Actor& attacker,
::Actor& victim,
int level)
const;
266 MCFOLD
void $doPostPiercingAttack(
::Actor& attacker,
int enchantLevel)
const;
272 MCFOLD
bool $isMeleeDamageEnchant()
const;
274 MCFOLD
bool $isProtectionEnchant()
const;
276 MCFOLD
bool $isTreasureOnly()
const;
278 MCFOLD
bool $isDiscoverable()
const;
280 MCFOLD
bool $_isValidEnchantmentTypeForCategory(::Enchant::Type type)
const;
288 MCAPI
static void** $vftable();