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
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 // virtual functions
41 // NOLINTBEGIN
42 virtual ~FilterGroup();
43
44 virtual bool parse(::Json::Value const& jsonVal);
45
46 virtual ::std::shared_ptr<::FilterGroup> _createSubgroup(::FilterGroup::CollectionType type) const = 0;
47
48 virtual bool _setupContext(::FilterTest const& test, ::FilterContext& context) const;
49 // NOLINTEND
50
51public:
52 // member functions
53 // NOLINTBEGIN
54 MCAPI bool _parseFilterParam(
55 ::std::string const& filter,
56 ::std::string const& member,
57 ::std::optional<::std::variant<bool, int, float, ::std::string>> param,
58 ::FilterParamDefinition const& paramDef,
59 ::FilterInput& input
60 );
61
62 MCAPI bool _parseMemberCollection(
63 ::FilterGroup::CollectionType collectionType,
64 ::SharedTypes::v1_21_20::FilterGroupData const& filterGroupData
65 );
66
67 MCAPI bool _parseTest(::SharedTypes::v1_21_20::FilterTestData const& filterTestData);
68
69 MCAPI bool addFilterTest(::FilterTest::Definition const& filterDef, ::FilterInputs const& inputs);
70
71 MCAPI bool evaluate(::std::array<::FilterContext, 10>& contextSet) const;
72
73 MCAPI void fillFromData(::SharedTypes::v1_21_20::FilterGroupData const& filterGroupData);
74
75 MCAPI void serialize(::Json::Value& jsonVal) const;
76 // NOLINTEND
77
78public:
79 // destructor thunk
80 // NOLINTBEGIN
81 MCAPI void $dtor();
82 // NOLINTEND
83
84public:
85 // virtual function thunks
86 // NOLINTBEGIN
87 MCAPI bool $parse(::Json::Value const& jsonVal);
88
89 MCAPI bool $_setupContext(::FilterTest const& test, ::FilterContext& context) const;
90
91
92 // NOLINTEND
93
94public:
95 // vftables
96 // NOLINTBEGIN
97 MCAPI static void** $vftable();
98 // NOLINTEND
99};
Definition FilterGroup.h:20
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