43 using ListenerVector = ::std::vector<::BlockSourceListener*>;
48 virtual ::std::vector<::AABB>& fetchAABBs(
::AABB const& intersectTestBox,
bool withUnloadedChunks) = 0;
50 virtual ::std::vector<::AABB>& fetchCollisionShapes(
51 ::AABB const& intersectTestBox,
52 bool withUnloadedChunks,
53 ::std::optional<::EntityContext const> entity,
54 ::std::vector<::AABB>* tempShapes
57 virtual ::WeakRef<::BlockSource> getWeakRef() = 0;
63 virtual ::gsl::span<::gsl::not_null<::Actor*>>
64 fetchEntities(
::Actor const* except,
::AABB const& bb,
bool useHitbox,
bool getDisplayEntities) = 0;
66 virtual ::gsl::span<::gsl::not_null<::Actor*>> fetchEntities(
67 ::ActorType entityTypeId,
70 ::std::function<
bool(
::Actor*)> selector
73 virtual bool setBlock(
81 virtual bool setExtraBlock(
::BlockPos const& pos,
::Block const& block,
int updateFlags) = 0;
85 virtual short getMinHeight()
const = 0;
87 virtual short getMaxHeight()
const = 0;
89 virtual ::Dimension& getDimension()
const = 0;
91 virtual ::Dimension& getDimension() = 0;
93 virtual ::Dimension
const& getDimensionConst()
const = 0;
95 virtual ::LevelChunk* getChunkAt(
::BlockPos const& pos)
const = 0;
97 virtual ::LevelChunk* getChunk(
int x,
int z)
const = 0;
99 virtual ::LevelChunk* getChunk(
::ChunkPos const& pos)
const = 0;
101 virtual ::Level& getLevel() = 0;
103 virtual ::ILevel& getILevel()
const = 0;
105 virtual ::LevelSeed64 getLevelSeed64()
const = 0;
107 virtual short getAboveTopSolidBlock(
int x,
int z,
bool includeWater,
bool includeLeaves)
const = 0;
109 virtual short getAboveTopSolidBlock(
113 bool iteratePastInitialBlocking
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:10
Definition EntityContext.h:16