LeviLamina
Loading...
Searching...
No Matches
SetItemDataFunction.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/common/WeakPtr.h"
7#include "mc/world/level/storage/loot/RandomValueBounds.h"
8#include "mc/world/level/storage/loot/functions/LootItemFunction.h"
9
10// auto generated forward declare list
11// clang-format off
12class Block;
13class Item;
14class ItemInstance;
15class ItemStack;
18class Random;
19namespace Json { class Value; }
20// clang-format on
21
23public:
24 // SetItemDataFunction inner types define
25 enum class ApplyForComplexAliasBlockResult : uchar {
26 NotComplexAliasBlock = 0,
27 FailedToRemapComplexAliasBlock = 1,
28 Success = 2,
29 };
30
31 enum class ApplyForItemResult : uchar {
32 AsNewItem = 0,
33 SetAuxValue = 1,
34 };
35
36public:
37 // member variables
38 // NOLINTBEGIN
39 ::ll::TypedStorage<4, 8, ::RandomValueBounds> mValue;
40 ::ll::TypedStorage<4, 4, ::LootItemFunction::FunctionType> mType;
41 // NOLINTEND
42
43public:
44 // virtual functions
45 // NOLINTBEGIN
46 virtual ~SetItemDataFunction() /*override*/ = default;
47
48 virtual void apply(::ItemStack& item, ::Random& random, ::LootTableContext& context) /*override*/;
49
50 virtual void apply(::ItemInstance& item, ::Random& random, ::LootTableContext& context) /*override*/;
51
52 virtual ::LootItemFunction::FunctionType getFunctionType() const /*override*/;
53 // NOLINTEND
54
55public:
56 // member functions
57 // NOLINTBEGIN
58 MCAPI ::SetItemDataFunction::ApplyForComplexAliasBlockResult _applyImplForComplexAliasBlock(
59 ::Item const*& inOutItemDef,
60 ::std::string const& originalItemName,
61 ::Random& random,
62 int& outResultAux
63 );
64
65 MCAPI ::SetItemDataFunction::ApplyForItemResult _applyImplForItem(
66 ::std::string const& originalItemName,
67 ::std::string const& itemRawNameId,
68 ::Random& random,
69 int& outAux,
70 ::WeakPtr<::Item>& outItem
71 );
72
73 MCAPI void _applyImplForNormalBlock(::Block const*& inOutBlock, ::Random& random);
74 // NOLINTEND
75
76public:
77 // static functions
78 // NOLINTBEGIN
79 MCAPI static ::std::unique_ptr<::LootItemFunction>
80 deserialize(::Json::Value object, ::std::vector<::std::unique_ptr<::LootItemCondition>>& predicates);
81 // NOLINTEND
82
83public:
84 // virtual function thunks
85 // NOLINTBEGIN
86 MCAPI void $apply(::ItemStack& item, ::Random& random, ::LootTableContext& context);
87
88 MCAPI void $apply(::ItemInstance& item, ::Random& random, ::LootTableContext& context);
89
90 MCFOLD ::LootItemFunction::FunctionType $getFunctionType() const;
91
92
93 // NOLINTEND
94
95public:
96 // vftables
97 // NOLINTBEGIN
98 MCNAPI static void** $vftable();
99 // NOLINTEND
100};
Definition Block.h:43
Definition ItemInstance.h:15
Definition ItemStack.h:26
Definition Item.h:69
Definition Value.h:16
Definition LootItemCondition.h:12
Definition LootItemFunction.h:17
Definition LootTableContext.h:20
Definition Random.h:10
Definition SetItemDataFunction.h:22
static MCAPI void ** $vftable()
Definition WeakPtr.h:10
Definition context.h:5