Skip to content
LeviMC
English
AutoLightDark
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 : uchar {
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<1, 1, ::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 MCNAPI 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
63 ::FilterGroup::CollectionType collectionType,
64 ::SharedTypes::v1_21_20::FilterGroupData const& filterGroupData
65 );
66
67 MCNAPI bool _parseTest(::SharedTypes::v1_21_20::FilterTestData const& filterTestData);
68
69 MCNAPI bool addFilterTest(::FilterTest::Definition const& filterDef, ::FilterInputs const& inputs);
70
71 MCNAPI bool evaluate(::std::array<::FilterContext, 10>& contextSet) const;
72
73 MCNAPI void fillFromData(::SharedTypes::v1_21_20::FilterGroupData const& filterGroupData);
74
75 MCNAPI 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 MCNAPI static void** $vftable();
98 // NOLINTEND
99};
Definition FilterGroup.h:20
MCAPI bool evaluate(::std::array<::FilterContext, 10 > &contextSet) const
MCAPI void fillFromData(::SharedTypes::v1_21_20::FilterGroupData const &filterGroupData)
MCAPI bool _parseMemberCollection(::FilterGroup::CollectionType collectionType, ::SharedTypes::v1_21_20::FilterGroupData const &filterGroupData)
MCAPI bool _parseFilterParam(::std::string const &filter, ::std::string const &member, ::std::optional<::std::variant< bool, int, float, ::std::string > > param, ::FilterParamDefinition const &paramDef, ::FilterInput &input)
MCAPI bool _parseTest(::SharedTypes::v1_21_20::FilterTestData const &filterTestData)
static MCAPI void ** $vftable()
MCAPI bool addFilterTest(::FilterTest::Definition const &filterDef, ::FilterInputs const &inputs)
MCAPI void serialize(::Json::Value &jsonVal) const
Definition FilterInput.h:5
Definition FilterTest.h:13
Definition Value.h:16
Definition FilterContext.h:5
Definition FilterInputs.h:5
Definition FilterParamDefinition.h:16
Definition FilterTest.h:21
Definition FilterGroupData.h:16
Definition FilterTestData.h:12
Definition context.h:5