43 using ListenerVector = ::std::vector<::BlockSourceListener*>;
48 virtual ::WeakRef<::BlockSource> getWeakRef() = 0;
54 virtual ::gsl::span<::gsl::not_null<::Actor*>>
55 fetchEntities(
::Actor const* except,
::AABB const& bb,
bool useHitbox,
bool getDisplayEntities) = 0;
57 virtual ::gsl::span<::gsl::not_null<::Actor*>> fetchEntities(
58 ::ActorType entityTypeId,
61 ::std::function<
bool(
::Actor*)> selector
64 virtual bool setBlock(
72 virtual bool setExtraBlock(
::BlockPos const& pos,
::Block const& block,
int updateFlags) = 0;
76 virtual short getMinHeight()
const = 0;
78 virtual short getMaxHeight()
const = 0;
80 virtual ::Dimension& getDimension()
const = 0;
82 virtual ::Dimension& getDimension() = 0;
84 virtual ::Dimension
const& getDimensionConst()
const = 0;
86 virtual ::LevelChunk* getChunkAt(
::BlockPos const& pos)
const = 0;
88 virtual ::LevelChunk* getChunk(
int x,
int z)
const = 0;
90 virtual ::LevelChunk* getChunk(
::ChunkPos const& pos)
const = 0;
92 virtual ::Level& getLevel() = 0;
94 virtual ::ILevel& getILevel()
const = 0;
96 virtual ::LevelSeed64 getLevelSeed64()
const = 0;
98 virtual short getAboveTopSolidBlock(
int x,
int z,
bool includeWater,
bool includeLeaves)
const = 0;
100 virtual short getAboveTopSolidBlock(
104 bool iteratePastInitialBlocking
111 virtual ::std::vector<::AABB>& fetchAABBs(
::AABB const& intersectTestBox,
bool withUnloadedChunks) = 0;
113 virtual ::std::vector<::AABB>& fetchCollisionShapes(
114 ::AABB const& intersectTestBox,
115 bool withUnloadedChunks,
116 ::std::optional<::EntityContext const> entity,
117 ::std::vector<::AABB>* tempShapes
120 virtual ::HitResult clip(
123 bool checkAgainstLiquid,
124 ::ShapeType shapeType,
126 bool ignoreBorderBlocks,
130 bool stopOnFirstLiquidHit
135 virtual ::ChunkSource& getChunkSource() = 0;
137 virtual bool isSolidBlockingBlock(
::BlockPos const& p)
const = 0;
139 virtual bool isSolidBlockingBlock(
int x,
int y,
int z)
const = 0;
141 virtual bool areChunksFullyLoaded(
::BlockPos const& pos,
int r)
const = 0;
143 virtual bool mayPlace(
152 virtual bool canDoBlockDrops()
const = 0;
154 virtual bool canDoContainedItemDrops()
const = 0;
156 virtual bool isInstaticking(
::BlockPos const& pos)
const = 0;
158 virtual bool checkBlockDestroyPermissions(
162 bool generateParticle
165 virtual bool checkBlockPermissions(
170 bool generateParticle
173 virtual void postGameEvent(
180 virtual void fireBlockChanged(
186 ::BlockChangedEventTarget eventTarget,
191 virtual void blockEvent(
::BlockPos const& pos,
int b0,
int b1) = 0;
Definition BlockChangeContext.h:16
Definition EntityContext.h:17