LeviLamina
Loading...
Searching...
No Matches
DynamicPropertiesBlockActorComponent.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/math/Vec3.h"
7#include "mc/platform/brstd/flat_map.h"
8#include "mc/world/level/block/actor/BlockActorVersion.h"
9#include "mc/world/level/block/actor/component/IBlockActorComponent.h"
10#include "mc/world/persistence/lean_dynamic_property/String.h"
11
12// auto generated forward declare list
13// clang-format off
14class BlockType;
15class CompoundTag;
16class ILevel;
17class SaveContext;
18// clang-format on
19
21public:
22 // DynamicPropertiesBlockActorComponent inner types define
23 enum class SetResult : int {
24 Success = 0,
25 StorageLimitExceeded = 1,
26 StorageNotFound = 2,
27 };
28
29 using SetCallbackFn = ::std::function<void(
30 ::std::string const&,
31 uint,
32 ::std::string const&,
33 uint,
34 ::std::variant<double, float, bool, ::LeanDynamicProperty::String, ::Vec3> const*
35 )>;
36
37public:
38 // member variables
39 // NOLINTBEGIN
40 ::ll::TypedStorage<
41 8,
42 48,
44 uint,
46 uint,
47 ::std::variant<double, float, bool, ::LeanDynamicProperty::String, ::Vec3>,
48 ::std::less<uint>,
49 ::std::vector<uint>,
50 ::std::vector<::std::variant<double, float, bool, ::LeanDynamicProperty::String, ::Vec3>>>,
51 ::std::less<uint>,
52 ::std::vector<uint>,
53 ::std::vector<::brstd::flat_map<
54 uint,
55 ::std::variant<double, float, bool, ::LeanDynamicProperty::String, ::Vec3>,
56 ::std::less<uint>,
57 ::std::vector<uint>,
58 ::std::vector<::std::variant<double, float, bool, ::LeanDynamicProperty::String, ::Vec3>>>>>>
59 mDataMap;
60 ::ll::TypedStorage<
61 8,
62 48,
63 ::brstd::flat_map<uint, uint64, ::std::less<uint>, ::std::vector<uint>, ::std::vector<uint64>>>
64 mStorageBytes;
65 // NOLINTEND
66
67public:
68 // virtual functions
69 // NOLINTBEGIN
70 virtual void save(::CompoundTag& parentTag, ::SaveContext const&) const /*override*/;
71
72 virtual void load(::CompoundTag const& parentTag, ::ILevel&, ::BlockActorVersion version) /*override*/;
73
74 virtual ~DynamicPropertiesBlockActorComponent() /*override*/;
75 // NOLINTEND
76
77public:
78 // member functions
79 // NOLINTBEGIN
80 MCAPI void _loadInception(::CompoundTag const& parentTag);
81
82 MCAPI ::std::optional<::std::variant<double, float, bool, ::LeanDynamicProperty::String, ::Vec3>>
83 get(::std::string const& bucket, ::std::string const& key) const;
84
85 MCAPI uint64 getByteCount(::std::string const& bucket) const;
86
87 MCAPI ::DynamicPropertiesBlockActorComponent::SetResult remove(
88 ::std::string const& bucket,
89 ::std::string const& key,
90 ::std::function<void(
91 ::std::string const&,
92 uint,
93 ::std::string const&,
94 uint,
95 ::std::variant<double, float, bool, ::LeanDynamicProperty::String, ::Vec3> const*
96 )> callback
97 );
98
99 MCAPI void saveToTag(::CompoundTag& parentTag) const;
100
101 MCAPI ::DynamicPropertiesBlockActorComponent::SetResult
102 set(::std::string const& bucket,
103 ::std::string const& key,
104 ::std::variant<double, float, bool, ::LeanDynamicProperty::String, ::Vec3> const& value,
105 ::std::function<void(
106 ::std::string const&,
107 uint,
108 ::std::string const&,
109 uint,
110 ::std::variant<double, float, bool, ::LeanDynamicProperty::String, ::Vec3> const*
111 )> callback);
112 // NOLINTEND
113
114public:
115 // static functions
116 // NOLINTBEGIN
117#ifdef LL_PLAT_S
118 MCAPI static ::std::unique_ptr<::DynamicPropertiesBlockActorComponent> tryCreateFor(::BlockType const& blockType);
119#endif
120 // NOLINTEND
121
122public:
123 // static variables
124 // NOLINTBEGIN
125 MCAPI static ::std::add_lvalue_reference_t<char const[]> DYNAMIC_PROPERTIES_TAG();
126
127 MCAPI static ::brstd::
128 flat_map<uint, ::std::string, ::std::less<uint>, ::std::vector<uint>, ::std::vector<::std::string>>&
129 mBucketDictionary();
130
131 MCAPI static ::std::mutex& mDictionaryMutex();
132
133 MCAPI static ::brstd::
134 flat_map<uint, ::std::string, ::std::less<uint>, ::std::vector<uint>, ::std::vector<::std::string>>&
135 mVariableDictionary();
136 // NOLINTEND
137
138public:
139 // destructor thunk
140 // NOLINTBEGIN
141 MCAPI void $dtor();
142 // NOLINTEND
143
144public:
145 // virtual function thunks
146 // NOLINTBEGIN
147 MCAPI void $save(::CompoundTag& parentTag, ::SaveContext const&) const;
148
149 MCAPI void $load(::CompoundTag const& parentTag, ::ILevel&, ::BlockActorVersion version);
150
151
152 // NOLINTEND
153
154public:
155 // vftables
156 // NOLINTBEGIN
157 MCNAPI static void** $vftable();
158 // NOLINTEND
159};
Definition BlockType.h:79
Definition CompoundTag.h:18
Definition DynamicPropertiesBlockActorComponent.h:20
static MCAPI void ** $vftable()
Definition ILevel.h:221
Definition SaveContext.h:5
Definition flat_map.h:15
Definition IBlockActorComponent.h:15