29 virtual ::Block
const& getBlock(
::BlockPos const& pos)
const = 0;
31 virtual ::Block
const& getBlock(
::BlockPos const& pos, uint layer)
const = 0;
33 virtual ::BlockActor
const* getBlockEntity(
::BlockPos const& pos)
const = 0;
35 virtual ::Block
const& getExtraBlock(
::BlockPos const& pos)
const = 0;
37 virtual ::Block
const& getLiquidBlock(
::BlockPos const& pos)
const = 0;
39 virtual bool hasBlock(
::BlockPos const& pos)
const = 0;
41 virtual bool containsAnyLiquid(
::AABB const& box)
const = 0;
43 virtual bool containsMaterial(
::AABB const& box, ::SharedTypes::v1_26_20::MaterialType material)
const = 0;
45 virtual bool isInWall(
::Vec3 const& pos)
const = 0;
49 virtual ::Material
const& getMaterial(
::BlockPos const& pos)
const = 0;
51 virtual ::Material
const& getMaterial(
int x,
int y,
int z)
const = 0;
53 virtual bool hasBorderBlock(
::BlockPos const pos)
const = 0;
55 virtual bool hasChunksAt(
::Bounds const& bounds,
bool ignoreClientChunk)
const = 0;
57 virtual bool hasChunksAt(
::BlockPos const& pos,
int r,
bool ignoreClientChunk)
const = 0;
59 virtual bool hasChunksAt(
::AABB const& bb,
bool ignoreClientChunk)
const = 0;
61 virtual ::DimensionType getDimensionId()
const = 0;
63 virtual bool shouldFireEvents(
::LevelChunk const& c)
const = 0;
66 fetchAABBs(::std::vector<::AABB>& shapes,
::AABB const& intersectTestBox,
bool withUnloadedChunks)
const = 0;
68 virtual void fetchCollisionShapes(
69 ::std::vector<::AABB>& shapes,
70 ::AABB const& intersectTestBox,
71 bool withUnloadedChunks,
73 ::std::vector<::AABB>* tempShapes
76 virtual void fetchCollisionShapesAndBlocks(
77 ::std::vector<::BlockSourceVisitor::CollisionShape>& shapes,
78 ::AABB const& intersectTestBox,
79 bool withUnloadedChunks,
81 ::std::vector<::AABB>* tempShapes
84 virtual ::AABB getTallestCollisionShape(
85 ::AABB const& intersectTestBox,
86 float* actualSurfaceOffset,
87 bool withUnloadedChunks,
91 virtual float getBrightness(
::BlockPos const& pos)
const = 0;