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