44 using ListenerVector = ::std::vector<::BlockSourceListener*>;
49 virtual ::std::vector<::AABB>& fetchAABBs(
::AABB const& intersectTestBox,
bool withUnloadedChunks) = 0;
51 virtual ::std::vector<::AABB>& fetchCollisionShapes(
52 ::AABB const& intersectTestBox,
53 bool withUnloadedChunks,
54 ::std::optional<::EntityContext const> entity,
55 ::std::vector<::AABB>* tempShapes
58 virtual ::WeakRef<::BlockSource> getWeakRef() = 0;
64 virtual ::gsl::span<::gsl::not_null<::Actor*>>
65 fetchEntities(
::Actor const* except,
::AABB const& bb,
bool useHitbox,
bool getDisplayEntities) = 0;
67 virtual ::gsl::span<::gsl::not_null<::Actor*>> fetchEntities(
68 ::ActorType entityTypeId,
71 ::std::function<
bool(
::Actor*)> selector
74 virtual bool setBlock(
82 virtual bool setExtraBlock(
::BlockPos const& pos,
::Block const& block,
int updateFlags) = 0;
86 virtual short getMinHeight()
const = 0;
88 virtual short getMaxHeight()
const = 0;
90 virtual ::Dimension& getDimension()
const = 0;
92 virtual ::Dimension& getDimension() = 0;
94 virtual ::Dimension
const& getDimensionConst()
const = 0;
96 virtual ::LevelChunk* getChunkAt(
::BlockPos const& pos)
const = 0;
98 virtual ::LevelChunk* getChunk(
int x,
int z)
const = 0;
100 virtual ::LevelChunk* getChunk(
::ChunkPos const& pos)
const = 0;
102 virtual ::Level& getLevel() = 0;
104 virtual ::ILevel& getILevel()
const = 0;
106 virtual ::LevelSeed64 getLevelSeed64()
const = 0;
108 virtual short getAboveTopSolidBlock(
int x,
int z,
bool includeWater,
bool includeLeaves)
const = 0;
110 virtual short getAboveTopSolidBlock(
114 bool iteratePastInitialBlocking
121 virtual ::HitResult clip(
124 bool checkAgainstLiquid,
125 ::ShapeType shapeType,
127 bool ignoreBorderBlocks,
131 bool stopOnFirstLiquidHit
136 virtual ::ChunkSource& getChunkSource() = 0;
138 virtual bool isSolidBlockingBlock(
::BlockPos const& p)
const = 0;
140 virtual bool isSolidBlockingBlock(
int x,
int y,
int z)
const = 0;
142 virtual bool areChunksFullyLoaded(
::BlockPos const& pos,
int r)
const = 0;
144 virtual bool mayPlace(
153 virtual bool canDoBlockDrops(
::Actor const* instigatingActor)
const = 0;
155 virtual bool canDoContainedItemDrops(
::Actor const* instigatingActor)
const = 0;
157 virtual bool isInstaticking(
::BlockPos const& pos)
const = 0;
159 virtual bool checkBlockDestroyPermissions(
163 bool generateParticle
166 virtual bool checkBlockPermissions(
171 bool generateParticle
174 virtual void postGameEvent(
181 virtual void fireBlockChanged(
187 ::BlockChangedEventTarget eventTarget,
192 virtual void fireBlockEntityChanged(
::BlockActor& te) = 0;
194 virtual void blockEvent(
::BlockPos const& pos,
int b0,
int b1) = 0;
Definition BlockChangeContext.h:10
Definition EntityContext.h:15