LeviLamina
Loading...
Searching...
No Matches
EditorStructureBlockSource.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/editor/structure/EditorStructureTemplate.h"
7#include "mc/world/actor/ActorType.h"
8#include "mc/world/level/BlockPos.h"
9#include "mc/world/level/BlockSource.h"
10#include "mc/world/phys/AABB.h"
11
12// auto generated forward declare list
13// clang-format off
14class Actor;
15class Block;
18class ChunkSource;
19class Dimension;
20class Level;
22struct Bounds;
23// clang-format on
24
25class EditorStructureBlockSource : public ::BlockSource {
26public:
27 // member variables
28 // NOLINTBEGIN
29 ::ll::TypedStorage<4, 24, ::AABB> mBounds;
30 ::ll::TypedStorage<8, 440, ::Editor::EditorStructureTemplate> mTemplate;
31 ::ll::TypedStorage<4, 12, ::BlockPos const> mOffset;
32 // NOLINTEND
33
34public:
35 // prevent constructor by default
36 EditorStructureBlockSource();
37
38public:
39 // virtual functions
40 // NOLINTBEGIN
41 virtual ~EditorStructureBlockSource() /*override*/ = default;
42
43 virtual void addListener(::BlockSourceListener& l) /*override*/;
44
45 virtual void removeListener(::BlockSourceListener& l) /*override*/;
46
47 virtual ::gsl::span<::gsl::not_null<::Actor*>>
48 fetchEntities(::Actor const* except, ::AABB const& bb, bool useHitbox, bool getDisplayEntities) /*override*/;
49
50 virtual ::gsl::span<::gsl::not_null<::Actor*>> fetchEntities(
51 ::ActorType entityTypeId,
52 ::AABB const& bb,
53 ::Actor const* except,
54 ::std::function<bool(::Actor*)> selector
55 ) /*override*/;
56
57 virtual bool hasChunksAt(::Bounds const& bounds, bool ignoreClientChunk) const /*override*/;
58
59 virtual bool hasChunksAt(::BlockPos const& pos, int r, bool ignoreClientChunk) const /*override*/;
60
61 virtual bool hasChunksAt(::AABB const& bb, bool ignoreClientChunk) const /*override*/;
62
63 virtual bool setBlock(
64 ::BlockPos const& pos,
65 ::Block const& block,
66 int updateFlags,
67 ::ActorBlockSyncMessage const* syncMsg,
68 ::BlockChangeContext const& changeSourceContext
69 ) /*override*/;
70
71 virtual ::Block const& getBlock(::BlockPos const& pos) const /*override*/;
72
73 virtual ::Block const& getBlock(::BlockPos const& pos, uint layer) const /*override*/;
74
75 virtual ::Block const& getExtraBlock(::BlockPos const& pos) const /*override*/;
76
77 virtual ::Block const& getLiquidBlock(::BlockPos const& pos) const /*override*/;
78
79 virtual bool hasBlock(::BlockPos const& pos) const /*override*/;
80 // NOLINTEND
81
82public:
83 // member functions
84 // NOLINTBEGIN
86 ::Level& level,
87 ::Dimension& dimension,
88 ::ChunkSource& chunkSource,
89 ::AABB const& bounds,
90 ::BlockPos offset
91 );
92 // NOLINTEND
93
94public:
95 // constructor thunks
96 // NOLINTBEGIN
97 MCNAPI void*
98 $ctor(::Level& level, ::Dimension& dimension, ::ChunkSource& chunkSource, ::AABB const& bounds, ::BlockPos offset);
99 // NOLINTEND
100
101public:
102 // virtual function thunks
103 // NOLINTBEGIN
105
107
108 MCNAPI ::gsl::span<::gsl::not_null<::Actor*>>
109 $fetchEntities(::Actor const* except, ::AABB const& bb, bool useHitbox, bool getDisplayEntities);
110
111 MCNAPI ::gsl::span<::gsl::not_null<::Actor*>> $fetchEntities(
112 ::ActorType entityTypeId,
113 ::AABB const& bb,
114 ::Actor const* except,
115 ::std::function<bool(::Actor*)> selector
116 );
117
118 MCNAPI bool $hasChunksAt(::Bounds const& bounds, bool ignoreClientChunk) const;
119
120 MCNAPI bool $hasChunksAt(::BlockPos const& pos, int r, bool ignoreClientChunk) const;
121
122 MCNAPI bool $hasChunksAt(::AABB const& bb, bool ignoreClientChunk) const;
123
124 MCNAPI bool $setBlock(
125 ::BlockPos const& pos,
126 ::Block const& block,
127 int updateFlags,
128 ::ActorBlockSyncMessage const* syncMsg,
129 ::BlockChangeContext const& changeSourceContext
130 );
131
132 MCNAPI ::Block const& $getBlock(::BlockPos const& pos) const;
133
134 MCNAPI ::Block const& $getBlock(::BlockPos const& pos, uint layer) const;
135
136 MCNAPI ::Block const& $getExtraBlock(::BlockPos const& pos) const;
137
138 MCNAPI ::Block const& $getLiquidBlock(::BlockPos const& pos) const;
139
140 MCNAPI bool $hasBlock(::BlockPos const& pos) const;
141
142
143 // NOLINTEND
144
145public:
146 // vftables
147 // NOLINTBEGIN
148 MCNAPI static void** $vftable();
149 // NOLINTEND
150};
Definition AABB.h:18
Definition Actor.h:113
Definition BlockChangeContext.h:10
Definition BlockPos.h:17
Definition BlockSourceListener.h:18
Definition Block.h:41
Definition ChunkSource.h:36
Definition Dimension.h:86
MCAPI bool $hasChunksAt(::BlockPos const &pos, int r, bool ignoreClientChunk) const
MCAPI::Block const & $getExtraBlock(::BlockPos const &pos) const
MCAPI EditorStructureBlockSource(::Level &level, ::Dimension &dimension, ::ChunkSource &chunkSource, ::AABB const &bounds, ::BlockPos offset)
MCAPI::Block const & $getBlock(::BlockPos const &pos, uint layer) const
MCAPI bool $hasChunksAt(::Bounds const &bounds, bool ignoreClientChunk) const
static MCAPI void ** $vftable()
MCAPI ::gsl::span<::gsl::not_null<::Actor * > > $fetchEntities(::Actor const *except, ::AABB const &bb, bool useHitbox, bool getDisplayEntities)
MCAPI bool $hasBlock(::BlockPos const &pos) const
MCAPI ::gsl::span<::gsl::not_null<::Actor * > > $fetchEntities(::ActorType entityTypeId, ::AABB const &bb, ::Actor const *except, ::std::function< bool(::Actor *)> selector)
MCAPI::Block const & $getLiquidBlock(::BlockPos const &pos) const
MCAPI void $removeListener(::BlockSourceListener &l)
MCAPI void * $ctor(::Level &level, ::Dimension &dimension, ::ChunkSource &chunkSource, ::AABB const &bounds, ::BlockPos offset)
MCAPI::Block const & $getBlock(::BlockPos const &pos) const
MCAPI void $addListener(::BlockSourceListener &l)
MCAPI bool $hasChunksAt(::AABB const &bb, bool ignoreClientChunk) const
MCAPI bool $setBlock(::BlockPos const &pos, ::Block const &block, int updateFlags, ::ActorBlockSyncMessage const *syncMsg, ::BlockChangeContext const &changeSourceContext)
Definition Level.h:254
Definition ActorBlockSyncMessage.h:8
Definition Bounds.h:8