LeviLamina
Loading...
Searching...
No Matches
FilterGroup.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/world/filters/FilterTest.h"
7
8// auto generated forward declare list
9// clang-format off
10class FilterInput;
11class FilterTest;
12struct FilterContext;
13struct FilterInputs;
15namespace Json { class Value; }
16namespace SharedTypes::v1_21_20 { struct FilterGroupData; }
17namespace SharedTypes::v1_21_20 { struct FilterTestData; }
18// clang-format on
19
20class FilterGroup {
21public:
22 // FilterGroup inner types define
23 enum class CollectionType : int {
24 And = 0,
25 Or = 1,
26 Not = 2,
27 };
28
29 using Ptr = ::std::shared_ptr<::FilterGroup>;
30
31public:
32 // member variables
33 // NOLINTBEGIN
34 ::ll::TypedStorage<4, 4, ::FilterGroup::CollectionType> mCollectionType;
35 ::ll::TypedStorage<8, 24, ::std::vector<::std::shared_ptr<::FilterGroup>>> mChildren;
36 ::ll::TypedStorage<8, 24, ::std::vector<::std::shared_ptr<::FilterTest>>> mMembers;
37 // NOLINTEND
38
39public:
40 // prevent constructor by default
41 FilterGroup& operator=(FilterGroup const&);
42 FilterGroup();
43
44public:
45 // virtual functions
46 // NOLINTBEGIN
47 virtual ~FilterGroup() = default;
48
49 virtual bool parse(::Json::Value const& jsonVal);
50
51 virtual ::std::shared_ptr<::FilterGroup> _createSubgroup(::FilterGroup::CollectionType type) const = 0;
52
53 virtual bool _setupContext(::FilterTest const& test, ::FilterContext& context) const;
54 // NOLINTEND
55
56public:
57 // member functions
58 // NOLINTBEGIN
59 MCAPI FilterGroup(::FilterGroup const&);
60
61 MCAPI bool _parseFilterInputs(
62 ::SharedTypes::v1_21_20::FilterTestData const& filterTestData,
63 ::FilterTest::Definition const& filterDef,
64 ::FilterInputs& inputs
65 );
66
67 MCAPI bool _parseFilterParam(
68 ::std::string const& filter,
69 ::std::string const& member,
70 ::std::optional<::std::variant<bool, int, float, ::std::string>> param,
71 ::FilterParamDefinition const& paramDef,
72 ::FilterInput& input
73 );
74
75 MCAPI bool _parseMemberCollection(
76 ::FilterGroup::CollectionType collectionType,
77 ::SharedTypes::v1_21_20::FilterGroupData const& filterGroupData
78 );
79
80 MCAPI bool _parseObject(::SharedTypes::v1_21_20::FilterGroupData const& filterGroupData);
81
82 MCAPI bool _parseTest(::SharedTypes::v1_21_20::FilterTestData const& filterTestData);
83
84 MCAPI bool addFilterTest(::FilterTest::Definition const& filterDef, ::FilterInputs const& inputs);
85
86#ifdef LL_PLAT_S
87 MCAPI bool addFilterTest(::std::string const& filterName, ::FilterInputs const& inputs);
88#endif
89
90 MCAPI bool evaluate(::std::array<::FilterContext, 10>& contextSet) const;
91
92 MCAPI void fillFromData(::SharedTypes::v1_21_20::FilterGroupData const& filterGroupData);
93
94 MCAPI void serialize(::Json::Value& jsonVal) const;
95 // NOLINTEND
96
97public:
98 // constructor thunks
99 // NOLINTBEGIN
100 MCAPI void* $ctor(::FilterGroup const&);
101 // NOLINTEND
102
103public:
104 // virtual function thunks
105 // NOLINTBEGIN
106 MCAPI bool $parse(::Json::Value const& jsonVal);
107
108 MCAPI bool $_setupContext(::FilterTest const& test, ::FilterContext& context) const;
109
110
111 // NOLINTEND
112
113public:
114 // vftables
115 // NOLINTBEGIN
116 MCAPI static void** $vftable();
117 // NOLINTEND
118};
Definition FilterInput.h:5
Definition FilterTest.h:13
Definition Value.h:16
Definition FilterContext.h:5
Definition FilterInputs.h:14
Definition FilterParamDefinition.h:16
Definition FilterTest.h:21
Definition FilterGroupData.h:16
Definition FilterTestData.h:12
Definition context.h:5