Skip to content
LeviMC
English
AutoLightDark
LeviLamina
Loading...
Searching...
No Matches
CommandSelectorBase.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4#include "mc/deps/core/math/Vec3.h"
5#include "mc/deps/core/string/HashedString.h"
6#include "mc/server/commands/CommandPosition.h"
7#include "mc/world/actor/ActorDefinitionIdentifier.h"
8
9// auto generated inclusion list
10#include "mc/deps/core/math/Vec3.h"
11#include "mc/server/commands/CommandPosition.h"
12#include "mc/server/commands/CommandSelectionOrder.h"
13#include "mc/server/commands/CommandSelectionType.h"
14#include "mc/world/actor/selectors/InvertableFilter.h"
15
16// auto generated forward declare list
17// clang-format off
18class Actor;
19class CommandOrigin;
20class HashedString;
22// clang-format on
23
24class CommandSelectorBase {
25public:
26 // CommandSelectorBase inner types define
27 using FilterFunc = ::std::function<bool(::CommandOrigin const&, ::Actor const&)>;
28
29public:
30 // member variables
31 // NOLINTBEGIN
32 int mVersion{};
33 ::CommandSelectionType mType{};
34 ::CommandSelectionOrder mOrder{};
35 ::std::vector<::InvertableFilter<::std::string>> mNameFilters{};
36 ::std::vector<::InvertableFilter<::ActorDefinitionIdentifier>> mTypeFilters{};
37 ::std::vector<::InvertableFilter<::HashedString>> mFamilyFilters{};
38 ::std::vector<::InvertableFilter<::std::string>> mTagFilters{};
39 ::std::vector<::std::function<bool(::CommandOrigin const&, ::Actor const&)>> mFilterChain{};
40 ::CommandPosition mPosition{};
41 ::Vec3 mBoxDeltas{};
42 float mRadiusMinSqr{0.0f};
43 float mRadiusMaxSqr{std::numeric_limits<float>::max()};
44 uint64 mCount{std::numeric_limits<uint>::max()};
45 bool mIncludeDeadPlayers{};
46 bool mIsPositionBound{};
47 bool mDistanceFiltered{};
48 bool mPositionFiltered{};
49 bool mCountFiltered{};
50 bool mHaveDeltas{};
51 bool mForcePlayer{};
52 bool mExcludeAgents{};
53 bool mIsExplicitIdSelector{};
54 bool mForceDimensionFiltering{};
55 bool mIsCodeBuilderEnabled{};
56 // NOLINTEND
57
58 CommandSelectorBase() = default;
59 CommandSelectorBase(bool forcePlayer) : mForcePlayer(forcePlayer) {}
60
61public:
62 // member functions
63 // NOLINTBEGIN
64 MCNAPI void addFilter(::std::function<bool(::CommandOrigin const&, ::Actor const&)> filter);
65
66 MCNAPI bool compile(::CommandOrigin const& origin, ::std::string& error);
67
68 MCNAPI bool filter(::CommandOrigin const& origin, ::Actor& actor) const;
69
70 MCNAPI ::std::string getName() const;
71
72 MCAPI bool isExpansionAllowed(::CommandOrigin const& origin) const;
73
74 MCNAPI bool matchFamily(::Actor const& entity) const;
75
76 MCNAPI bool matchName(::Actor const& entity) const;
77
78 MCNAPI bool matchTag(::Actor const& entity) const;
79
80 MCNAPI bool matchType(::Actor const& entity) const;
81
82 MCNAPI ::std::shared_ptr<::std::vector<::Actor*>> newResults(::CommandOrigin const& origin) const;
83
84 MCAPI ~CommandSelectorBase();
85 // NOLINTEND
86
87public:
88 // static functions
89 // NOLINTBEGIN
90 MCAPI static ::Vec3 const getFeetPos(int const version, ::Actor const& entity);
91 // NOLINTEND
92
93public:
94 // destructor thunk
95 // NOLINTBEGIN
96 MCAPI void $dtor();
97 // NOLINTEND
98};
Definition Actor.h:116
Definition CommandOrigin.h:32
Definition CommandPosition.h:15
MCAPI bool compile(::CommandOrigin const &origin, ::std::string &error)
MCAPI bool filter(::CommandOrigin const &origin, ::Actor &actor) const
MCAPI bool matchFamily(::Actor const &entity) const
MCAPI void addFilter(::std::function< bool(::CommandOrigin const &, ::Actor const &)> filter)
MCAPI ::std::shared_ptr<::std::vector<::Actor * > > newResults(::CommandOrigin const &origin) const
MCAPI bool matchType(::Actor const &entity) const
MCAPI bool matchTag(::Actor const &entity) const
MCAPI bool matchName(::Actor const &entity) const
MCAPI::std::string getName() const
Definition HashedString.h:5
Definition Vec3.h:10
Definition ActorDefinitionIdentifier.h:15