3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/renderer/block/BakedBlockLightType.h"
7#include "mc/client/renderer/block/BlockTessellatorCache.h"
8#include "mc/client/renderer/block/block_geometry/Axis.h"
9#include "mc/client/renderer/block/block_tessellator_custom_extra_data/Map.h"
10#include "mc/client/renderer/texture/TextureUVCoordinateSet.h"
11#include "mc/client/world/level/biome/BiomeTintCache.h"
12#include "mc/common/BrightnessPair.h"
13#include "mc/deps/core/math/Color.h"
14#include "mc/deps/core/utility/buffer_span.h"
15#include "mc/deps/minecraft_renderer/framebuilder/FrameLightingModelCapabilities.h"
16#include "mc/deps/minecraft_renderer/renderer/MaterialPtr.h"
17#include "mc/legacy/facing/Rotation.h"
18#include "mc/world/Direction.h"
19#include "mc/world/Flip.h"
20#include "mc/world/level/BlockPos.h"
21#include "mc/world/level/block/AnvilPart.h"
22#include "mc/world/level/block/BigDripleafTilt.h"
23#include "mc/world/level/block/BlockRenderLayer.h"
24#include "mc/world/level/block/BlockShape.h"
25#include "mc/world/phys/AABB.h"
42namespace mce {
class Mesh; }
44namespace mce {
struct Radian; }
56 enum class CrossTextureWidth : uchar {};
58 enum class CrossTextureReverseSideMapping : uchar {};
60 enum class BambooFenceSlatPieceType :
int {};
62 enum class FenceGatePieceType :
int {};
71 ::ll::TypedStorage<1, 1, bool> mRenderingExtra;
72 ::ll::TypedStorage<1, 1, bool> mUseNormals;
73 ::ll::TypedStorage<8, 8, ::BlockSource*> mRegion;
74 ::ll::TypedStorage<4, 8, ::mce::framebuilder::FrameLightingModelCapabilities> mLightingModelCapabilities;
75 ::ll::TypedStorage<8, 88, ::TextureUVCoordinateSet> mFixedTexture;
76 ::ll::TypedStorage<1, 1, bool> mSupportsNewVertexFormat;
77 ::ll::TypedStorage<1, 1, bool> mUseFixedTexture;
78 ::ll::TypedStorage<1, 1, bool> mUseOccluder;
79 ::ll::TypedStorage<1, 1, bool> _tmpUseRegion;
80 ::ll::TypedStorage<1, 1, bool> mXFlipTexture;
81 ::ll::TypedStorage<4, 4, int> mRenderingLayer;
82 ::ll::TypedStorage<1, 1, bool> mRenderingGUI;
83 ::ll::TypedStorage<1, 1, bool> mVersionPreTrailsAndTales;
84 ::ll::TypedStorage<1, 1, bool> mUseFixedColor;
85 ::ll::TypedStorage<4, 96, ::std::array<::mce::Color, 6>> mFixedColors;
86 ::ll::TypedStorage<1, 1, bool> mApplyAmbientOcclusion;
87 ::ll::TypedStorage<4, 4, ::BakedBlockLightType> mBakedLighting;
88 ::ll::TypedStorage<1, 1, bool> mForExport;
89 ::ll::TypedStorage<1, 1, bool> mUseCachedCalculation;
90 ::ll::TypedStorage<4, 128, ::mce::Color[8]> mAoColors;
91 ::ll::TypedStorage<1, 8, ::BrightnessPair[4]> mTc;
92 ::ll::TypedStorage<1, 6, ::std::array<::Flip, 6>> mFlipFace;
93 ::ll::TypedStorage<4, 120, ::std::array<::BlockTessellator::UVOverride, 6>> mTextureOverride;
94 ::ll::TypedStorage<8, 1000, ::Block const* [125]> mAmbientOcclusionCacheBlocks;
95 ::ll::TypedStorage<8, 16, ::mce::MaterialPtr> mItemMat;
96 ::ll::TypedStorage<4, 24, ::AABB> mCurrentShapeBB;
97 ::ll::TypedStorage<1, 1, bool> mCurrentShapeSet;
98 ::ll::TypedStorage<8, 8, ::Block const*> mCurrentShapeBlock;
99 ::ll::TypedStorage<4, 12, ::BlockPos> mCurrentShapeBlockPos;
100 ::ll::TypedStorage<4, 4, float> mCurrentScale;
101 ::ll::TypedStorage<8, 64, ::std::unordered_map<uint, ::mce::Mesh>> mBlockMeshes;
102 ::ll::TypedStorage<8, 64, ::std::unordered_map<::BlockTessellatorBlockInWorld, ::mce::Mesh>> mInWorldBlockMeshes;
103 ::ll::TypedStorage<8, 272032, ::BlockTessellatorCache> mBlockCache;
104 ::ll::TypedStorage<8, 64, ::std::function<::Block
const&(::BlockPos
const&)>> mCachedGetBlock;
105 ::ll::TypedStorage<8, 19288, ::BiomeTintCache> mBiomeWeights;
106 ::ll::TypedStorage<4, 20, ::std::optional<::mce::Color>> mColorOverride;
107 ::ll::TypedStorage<1, 1, bool> mForceOpaque;
108 ::ll::TypedStorage<8, 128, ::BlockTessellatorCustomExtraData::Map> mBlockExtraDataMap;
109 ::ll::TypedStorage<8, 32, ::BlockTessellator::LocalRegistry> mLocalRegistry;
119 MCAPI
explicit BlockTessellator(::BlockSource* level);
121 MCAPI uchar _faceForRotation(uchar originalFace, ::Facing::Rotation rotation)
const;
123 MCAPI ::BrightnessPair _getLightColorForWater(::BlockPos
const& pos, ::BrightnessPair insideBlock);
125 MCAPI ::TextureUVCoordinateSet
const& _getMappedTexture(::Block
const& block, uchar face)
const;
127 MCAPI ::TextureUVCoordinateSet
const& _getTexture(
128 ::BlockPos
const& pos,
129 ::Block
const& block,
132 ::BlockGraphics
const* graphicsHint
135 MCAPI
void _pbrTextureId(::Tessellator& tessellator, ushort
const& pbrTextureDataHandle)
const;
137 MCAPI
void _prepareFixedColorsWithFlatAO(::Block
const& block, ::BlockPos
const& pos);
139 MCAPI
void _preparePolyCross(::Tessellator& tessellator, ::BlockPos
const& p, ::Block
const& block);
141 MCAPI ::Vec3 _preparePolyCrossAndModifyPos(::Tessellator& tessellator, ::BlockPos
const& p, ::Block
const& block);
143 MCAPI ::Vec3 _rotateBlockPos(::Vec3
const& point, ::Facing::Rotation rotation)
const;
145 MCAPI
void _rotateVertsAroundPoint(
146 ::std::array<::Vec3, 4>& vertices,
147 ::Vec3
const& rotationPoint,
148 ::BlockGeometry::Axis axis,
152 MCAPI
void _setBambooFencePostTexture(::TextureUVCoordinateSet
const& bambooFenceTex);
154 MCAPI
void _setBambooFenceSlatTextureGui(
155 ::TextureUVCoordinateSet
const& bambooFenceTex,
156 ::BlockTessellator::BambooFenceSlatPieceType type
159 MCAPI
void _setShapeAndTessellate(
160 ::Tessellator& tessellator,
163 ::Block
const& block,
164 ::BlockPos
const& pos
167 MCAPI
void _swapShapeAxes(
bool x,
bool y,
bool z);
169 MCAPI
void _tessellateAllFaces(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
171 MCAPI
void _tessellateBambooFenceGui(
172 ::Tessellator& tessellator,
173 ::Block
const& block,
175 bool isInventoryIcon,
176 float lightMultiplier,
177 float alphaMultiplier,
182 MCAPI
void _tessellateBambooFenceSlatsInWorld(
183 ::Tessellator& tessellator,
184 ::Block
const& block,
189 MCAPI
bool _tessellateBlockInWorldFlat(
190 ::Tessellator& tessellator,
191 ::Block
const& block,
192 ::BlockPos
const& pos,
193 ::mce::Color
const& base,
194 ::BlockOccluder* occluder,
195 ::std::bitset<6> faces,
199 MCAPI
bool _tessellateBlockInWorldWithAmbienceOcclusion(
200 ::Tessellator& tessellator,
201 ::Block
const& block,
203 ::mce::Color
const& base,
204 ::BlockOccluder* occluder,
205 ::std::bitset<6> faces,
209 MCAPI
void _tessellateCalibratedSculkSensorAmethystCrystalInWorld(
210 ::Tessellator& tessellator,
211 ::Block
const& block,
215 MCAPI
void _tessellateFenceGateGui(
216 ::Tessellator& tessellator,
217 ::Block
const& block,
219 bool isInventoryIcon,
220 float lightMultiplier,
221 float alphaMultiplier,
226 MCAPI
bool _tessellateFixedCrossTexture(
227 ::TextureUVCoordinateSet
const& tex,
228 ::Tessellator& tessellator,
229 ::Block
const& block,
230 ::AABB
const& boundingBox,
231 ::BlockPos
const& pos
234 MCAPI
void _tessellateForInventory(
235 ::Tessellator& tessellator,
236 ::Block
const& block,
237 ::BlockPos
const& pos,
238 float lightMultiplier,
239 float alphaMultiplier,
244 MCAPI
void _tessellateSculkSensorTendrilsInWorld(
245 ::Tessellator& tessellator,
246 ::Block
const& block,
248 uchar tessellationType
251 MCAPI
void _tex1(::Tessellator& tessellator, ::Vec2
const& uv);
254 _trySetFenceGateTexture(::Block
const& block, ::BlockPos
const& p, ::BlockTessellator::FenceGatePieceType type);
256 MCAPI
void appendTessellatedBlock(::Tessellator& tessellator, ::Block
const& block);
258 MCAPI
void buildBiomeWeights(::BlockPos
const& pointPos);
260 MCAPI ::AABB
const& getCurrentShape();
262 MCAPI ::mce::Mesh& getMeshForBlock(::Tessellator& tessellator, ::Block
const& block);
264 MCAPI ::mce::Mesh& getMeshForBlockInWorld(
265 ::Tessellator& tessellator,
266 ::Block
const& block,
267 ::BlockPos& blockPos,
268 ::BlockRenderLayer layer,
272 ::LightTexture
const& lightTexture
275 MCAPI
float getWaterHeight(::BlockPos
const& pos, ::Material
const& material, ::BlockPos
const& originalBlockPos);
277 MCAPI
void moveCurrentShape(::Vec3
const& offset);
279 MCAPI
void renderGuiBlock(
280 ::ScreenContext& screenContext,
281 ::Block
const& block,
282 ::BlockGraphics
const& blockGraphics,
283 ::mce::TexturePtr
const& texture,
284 float lightMultiplier,
285 float alphaMultiplier
288 MCAPI
bool rotateCommandBlockFaces(::Block
const& block);
290 MCAPI
void setRegion(::BlockSource& region);
292 MCAPI
void tessellateAll(
293 ::Tessellator& tessellator,
294 ::Block
const& block,
296 ::TextureUVCoordinateSet
const& tex
299 MCAPI
bool tessellateAmethystCluster(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
302 tessellateAnvilInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos,
bool render);
304 MCAPI
float tessellateAnvilPiece(
305 ::Tessellator& tessellator,
306 ::Block
const& block,
315 ::buffer_span<::Flip> faces
318 MCAPI
bool tessellateAzaleaBlockInWorld(
319 ::Tessellator& tessellator,
320 ::Block
const& block,
321 ::BlockPos
const& pos,
326 tessellateBambooSaplingBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
328 MCAPI
bool tessellateBambooStalkBlockInWorld(
329 ::Tessellator& tessellator,
330 ::Block
const& block,
331 ::BlockPos
const& pos,
335 MCAPI
void tessellateBambooStemInWorld(
336 ::Tessellator& tessellator,
337 ::Block
const& block,
338 ::BlockPos
const& pos,
339 ::BlockGraphics
const& blockGraphics,
341 float sideVariantOffset,
342 float verticalPortion
345 MCAPI
void tessellateBambooTopSideLeafInWorld(
346 ::Tessellator& tessellator,
356 MCAPI
void tessellateBeacon(
357 ::Tessellator& tessellator,
358 ::Block
const& block,
359 float lightMultiplier,
360 float alphaMultiplier,
361 ::Vec3
const& vOffset
364 MCAPI
bool tessellateBeaconInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
366 MCAPI
bool tessellateBellBlockHangingBetweenInWorld(
367 ::Tessellator& tessellator,
368 ::Block
const& block,
369 ::BlockPos
const& pos,
371 ::Direction::Type dir
374 MCAPI
bool tessellateBellBlockHangingOneSideInWorld(
375 ::Tessellator& tessellator,
376 ::Block
const& block,
377 ::BlockPos
const& pos,
379 ::Direction::Type dir
383 tessellateBellBlockHangingTopInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
385 MCAPI
bool tessellateBellBlockStandingInWorld(
386 ::Tessellator& tessellator,
387 ::Block
const& block,
388 ::BlockPos
const& pos,
390 ::Direction::Type dir
393 MCAPI
void tessellateBellBlockStandingLegInWorld(
394 ::Tessellator& tessellator,
395 ::Block
const& block,
396 ::BlockPos
const& pos,
397 ::BlockGraphics
const& blockGraphics,
401 MCAPI
bool tessellateBigDripleafBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
403 MCAPI
void tessellateBigDripleafFront(
404 ::Tessellator& tessellator,
405 ::Block
const& block,
407 ::BigDripleafTilt tilt,
411 MCAPI
void tessellateBigDripleafSide(
412 ::Tessellator& tessellator,
413 ::Block
const& block,
415 ::BigDripleafTilt tilt,
420 tessellateBigDripleafStem(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p,
int facing);
422 MCAPI
void tessellateBigDripleafTop(
423 ::Tessellator& tessellator,
424 ::Block
const& block,
426 ::BigDripleafTilt tilt,
430 MCAPI
bool tessellateBlockInWorld(
431 ::Tessellator& tessellator,
432 ::Block
const& block,
433 ::BlockPos
const& pos,
434 ::std::bitset<6> faces,
435 ::AirAndSimpleBlockBits
const* airAndSimpleBlocks
438 MCAPI
bool tessellateBrewingStandInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
440 MCAPI
bool tessellateBubbleColumnInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
442 MCAPI
bool tessellateCactusInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
445 tessellateCalibratedSculkSensorBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
448 tessellateCameraFacingSpriteInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
450 MCAPI
bool tessellateCampfireBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
452 MCAPI
bool tessellateCandleInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
454 MCAPI
bool tessellateCauldronInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
456 MCAPI
bool tessellateCaveVinesInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
458 MCAPI
bool tessellateChainInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
460 MCAPI
bool tessellateChemistryTableInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
463 tessellateChiseledBookshelfBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
466 tessellateChorusFlowerInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos,
bool render);
468 MCAPI
bool tessellateChorusPlantInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
470 MCAPI
bool tessellateCocoaInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
472 MCAPI
bool tessellateComparatorInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
474 MCAPI
bool tessellateComposterBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
476 MCAPI
void tessellateCompoundCreatorFace(
477 ::Tessellator& tessellator,
478 ::Block
const& block,
480 ::TextureUVCoordinateSet
const& tex,
488 MCAPI
bool tessellateCompoundCreatorInWorld(::Tessellator& t, ::Block
const& b, ::BlockPos
const& p);
490 MCAPI
bool tessellateCoralFanHangInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
492 MCAPI
bool tessellateCoralFanInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
494 MCAPI
bool tessellateCrossInWorld(
495 ::Tessellator& tessellator,
496 ::Block
const& block,
498 bool forceDoubleSide,
499 ::BlockTessellator::CrossTextureReverseSideMapping reverseSideMapping,
501 ::BlockTessellator::CrossTextureWidth width
504 MCAPI
void tessellateCrossTexture(
505 ::Tessellator& tessellator,
506 ::TextureUVCoordinateSet
const& tex,
508 ::Block
const& block,
509 bool forceDoubleSided,
510 ::BlockTessellator::CrossTextureReverseSideMapping reverseSideMapping,
512 ::BlockTessellator::CrossTextureWidth width
515 MCAPI
void tessellateCrossTexture(
516 ::Tessellator& tessellator,
517 ::TextureUVCoordinateSet
const& tex1,
518 ::TextureUVCoordinateSet
const& tex2,
520 ::Block
const& block,
522 ::BlockTessellator::CrossTextureWidth width,
523 ::BlockTessellator::CrossTextureReverseSideMapping reverseSideMapping,
524 bool forceDoubleSided
527 MCAPI
void tessellateCrossTextureDown(
528 ::Tessellator& tessellator,
529 ::TextureUVCoordinateSet
const& tex1,
530 ::TextureUVCoordinateSet
const& tex2,
532 bool renderBothSides,
533 ::Block
const& block,
535 ::BlockTessellator::CrossTextureWidth width
538 MCAPI
void tessellateCrossTextureEast(
539 ::Tessellator& tessellator,
540 ::TextureUVCoordinateSet
const& tex1,
541 ::TextureUVCoordinateSet
const& tex2,
543 bool renderBothSides,
544 ::Block
const& block,
546 ::BlockTessellator::CrossTextureWidth width
549 MCAPI
void tessellateCrossTextureNorth(
550 ::Tessellator& tessellator,
551 ::TextureUVCoordinateSet
const& tex1,
552 ::TextureUVCoordinateSet
const& tex2,
554 bool renderBothSides,
555 ::Block
const& block,
557 ::BlockTessellator::CrossTextureWidth width
560 MCAPI
void tessellateCrossTextureSouth(
561 ::Tessellator& tessellator,
562 ::TextureUVCoordinateSet
const& tex1,
563 ::TextureUVCoordinateSet
const& tex2,
565 bool renderBothSides,
566 ::Block
const& block,
568 ::BlockTessellator::CrossTextureWidth width
571 MCAPI
void tessellateCrossTextureUp(
572 ::Tessellator& tessellator,
573 ::TextureUVCoordinateSet
const& tex1,
574 ::TextureUVCoordinateSet
const& tex2,
576 bool renderBothSides,
577 ::Block
const& block,
579 ::BlockTessellator::CrossTextureWidth width,
580 ::BlockTessellator::CrossTextureReverseSideMapping reverseSideMapping
583 MCAPI
void tessellateCrossTextureWest(
584 ::Tessellator& tessellator,
585 ::TextureUVCoordinateSet
const& tex1,
586 ::TextureUVCoordinateSet
const& tex2,
588 bool renderBothSides,
589 ::Block
const& block,
591 ::BlockTessellator::CrossTextureWidth width
594 MCAPI
bool tessellateDiodeInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
596 MCAPI
bool tessellateDoorInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
598 MCAPI
bool tessellateDoublePlantInWorld(
599 ::Tessellator& tessellator,
600 ::Block
const& block,
601 ::BlockShape blockShape,
603 bool forceDoubleSided,
605 bool applyAmbientOcclusion,
606 ::BlockTessellator::CrossTextureReverseSideMapping reverseSideMapping,
607 ::BlockTessellator::CrossTextureWidth width
610 MCAPI
bool tessellateDoubleThinFenceInWorld(
611 ::Tessellator& tessellator,
612 ::Block
const& block,
617 MCAPI
bool tessellateDragonEgg(
618 ::Tessellator& tessellator,
619 ::Block
const& block,
620 ::BlockPos
const& pos,
626 tessellateDriedGhastInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& position);
628 MCAPI
bool tessellateDriedKelpBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
630 MCAPI
bool tessellateDustInWorld(::Tessellator& tessellator, ::Block
const& b, ::BlockPos
const& p);
632 MCAPI
void tessellateEast(
633 ::Tessellator& tessellator,
634 ::Block
const& block,
636 ::TextureUVCoordinateSet
const& intex
639 MCAPI
bool tessellateEndGatewayInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
641 MCAPI
bool tessellateEndPortalFrameInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
643 MCAPI
bool tessellateEndPortalInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
646 tessellateEndRodAppended(::Tessellator& tessellator, ::Block
const& block, ::BlockGraphics
const& blockGraphics);
649 tessellateEndRodDown(::Tessellator& tessellator, ::BlockPos
const& p, ::TextureUVCoordinateSet
const& tex);
652 tessellateEndRodEast(::Tessellator& tessellator, ::BlockPos
const& p, ::TextureUVCoordinateSet
const& tex);
655 tessellateEndRodGui(::Tessellator& tessellator, ::Block
const& block, ::BlockGraphics
const& blockGraphics);
657 MCAPI
bool tessellateEndRodInWorld(::Tessellator& tessellator, ::Block
const& b, ::BlockPos
const& p);
660 tessellateEndRodNorth(::Tessellator& tessellator, ::BlockPos
const& p, ::TextureUVCoordinateSet
const& tex);
663 tessellateEndRodSouth(::Tessellator& tessellator, ::BlockPos
const& p, ::TextureUVCoordinateSet
const& tex);
665 MCAPI
void tessellateEndRodUp(::Tessellator& tessellator, ::BlockPos
const& p, ::TextureUVCoordinateSet
const& tex);
668 tessellateEndRodWest(::Tessellator& tessellator, ::BlockPos
const& p, ::TextureUVCoordinateSet
const& tex);
670 MCAPI
bool tessellateExtraDataInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
672 MCAPI
bool tessellateEyeblossomInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
674 MCAPI
void tessellateFaceDown(
675 ::Tessellator& tessellator,
676 ::Block
const& block,
678 ::TextureUVCoordinateSet
const& intex
681 MCAPI
void tessellateFaceUp(
682 ::Tessellator& tessellator,
683 ::Block
const& block,
685 ::TextureUVCoordinateSet
const& intex
688 MCAPI
void tessellateFaceWithUVs(
689 ::Tessellator& tessellator,
690 ::Block
const& block,
692 ::TextureUVCoordinateSet
const& tex,
700 MCAPI
bool tessellateFacingBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
702 MCAPI
bool tessellateFenceGateInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
704 MCAPI
bool tessellateFenceInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
706 MCAPI
bool tessellateFireInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos p);
708 MCAPI
bool tessellateFireflyBushInWorld(
709 ::Tessellator& tessellator,
710 ::Block
const& block,
711 ::BlockPos
const& pos,
712 ::BlockGraphics
const& blockGraphics
715 MCAPI
bool tessellateFlowerBedBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
717 MCAPI
bool tessellateFlowerPotInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
719 MCAPI
bool tessellateFrogSpawnInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
722 tessellateGrindstoneBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
724 MCAPI
void tessellateGrindstoneLegInWorld(
725 ::Tessellator& tessellator,
726 ::Block
const& block,
727 ::BlockPos
const& pos,
730 ::Direction::Type attachmentDir
733 MCAPI
bool tessellateHeavyCoreInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
735 MCAPI
bool tessellateHoneyBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
737 MCAPI
bool tessellateHopperInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
740 tessellateHopperInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos,
bool render);
743 tessellateInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos,
bool useCalcWithCache);
745 MCAPI
bool tessellateIndividualCandleInWorld(
746 ::Tessellator& tessellator,
747 ::Block
const& block,
753 MCAPI
bool tessellateIndividualSeaPickleInWorld(
754 ::Tessellator& tessellator,
755 ::Block
const& block,
761 MCAPI
bool tessellateIndividualTurtleEggInWorld(
762 ::Tessellator& tessellator,
763 ::Block
const& block,
770 MCAPI
bool tessellateItemFrameInWorld(
771 ::Tessellator& tessellator,
772 ::Block
const& block,
773 ::BlockPos
const& pos,
777 MCAPI
bool tessellateKelpInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
779 MCAPI
bool tessellateLadderInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
781 MCAPI
bool tessellateLanternBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
783 MCAPI
bool tessellateLecternBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
785 MCAPI
bool tessellateLeverInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
788 tessellateLightningRodDown(::Tessellator& tessellator, ::BlockPos
const& p, ::TextureUVCoordinateSet
const& tex);
791 tessellateLightningRodEast(::Tessellator& tessellator, ::BlockPos
const& p, ::TextureUVCoordinateSet
const& tex);
794 tessellateLightningRodGui(::Tessellator& tessellator, ::Block
const& block, ::BlockGraphics
const& blockGraphics);
797 tessellateLightningRodNorth(::Tessellator& tessellator, ::BlockPos
const& p, ::TextureUVCoordinateSet
const& tex);
800 tessellateLightningRodSouth(::Tessellator& tessellator, ::BlockPos
const& p, ::TextureUVCoordinateSet
const& tex);
803 tessellateLightningRodUp(::Tessellator& tessellator, ::BlockPos
const& p, ::TextureUVCoordinateSet
const& tex);
806 tessellateLightningRodWest(::Tessellator& tessellator, ::BlockPos
const& p, ::TextureUVCoordinateSet
const& tex);
808 MCAPI
bool tessellateLilypadInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
810 MCAPI
bool tessellateLiquidInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
813 tessellateMangrovePropaguleHangingInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
815 MCAPI
bool tessellateMangrovePropaguleInWorld(
816 ::Tessellator& tessellator,
817 ::Block
const& block,
822 MCAPI
bool tessellateMangroveRootInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
824 MCAPI
bool tessellateMultiFaceBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
826 MCAPI
void tessellateNorth(
827 ::Tessellator& tessellator,
828 ::Block
const& block,
830 ::TextureUVCoordinateSet
const& intex
833 MCAPI
bool tessellatePaleMossCarpetInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
835 MCAPI
bool tessellatePitcherCropInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
837 MCAPI
void tessellatePitcherCropLeavesInWorld(
838 ::Tessellator& tessellator,
839 ::Block
const& block,
842 ::BlockGraphics
const& blockGraphics
845 MCAPI
void tessellatePitcherCropPodInWorld(
846 ::Tessellator& tessellator,
847 ::Block
const& block,
850 ::BlockGraphics
const& blockGraphics
853 MCAPI
bool tessellatePointedDripstoneInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
855 MCAPI
bool tessellateRailInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
857 MCAPI
bool tessellateRepeaterInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
860 tessellateRowInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p,
bool forceDoubleSide);
862 MCAPI
void tessellateRowTexture(
863 ::Tessellator& tessellator,
864 ::Block
const& block,
866 ::TextureUVCoordinateSet
const& tex,
873 MCAPI
void tessellateRowTexture(
874 ::Tessellator& tessellator,
875 ::TextureUVCoordinateSet
const& tex1,
876 ::TextureUVCoordinateSet
const& tex2,
877 ::TextureUVCoordinateSet
const& tex3,
878 ::TextureUVCoordinateSet
const& tex4,
885 tessellateScaffoldingBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
887 MCAPI
void tessellateScaffoldingHorizontalPoleInWorld(
888 ::Tessellator& tessellator,
889 ::Block
const& block,
890 ::TextureUVCoordinateSet
const& side,
891 ::TextureUVCoordinateSet
const& bottom,
892 ::BlockPos
const& blockPos,
894 ::Vec3
const& offset,
898 MCAPI
void tessellateScaffoldingVerticalPoleInWorld(
899 ::Tessellator& tessellator,
900 ::Block
const& block,
901 ::TextureUVCoordinateSet
const& tex,
902 ::BlockPos
const& pos,
906 MCAPI
bool tessellateSculkSensorBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
908 MCAPI
bool tessellateSculkShriekerInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
910 MCAPI
bool tessellateSeaPickleInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
912 MCAPI
bool tessellateSeagrassInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
914 MCAPI
bool tessellateShelfBlockInGui(::Tessellator& tessellator, ::Block
const& block);
916 MCAPI
bool tessellateShelfBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
918 MCAPI
void tessellateShulkerBoxFacade(::Tessellator& tessellator, ::Vec3
const& pos);
920 MCAPI
void tessellateSimpleBlockInWorld(
921 ::Tessellator& tessellator,
922 ::Block
const& block,
923 ::BlockPos
const& pos,
924 ::AirAndSimpleBlockBits
const& airAndSimpleBlocks
928 tessellateSmallDripleafBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
931 tessellateSmallDripleafLeaves(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p,
int facing);
934 tessellateSmallDripleafSides(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p,
int facing);
937 tessellateSmallDripleafStem(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p,
int facing);
939 MCAPI
void tessellateSouth(
940 ::Tessellator& tessellator,
941 ::Block
const& block,
943 ::TextureUVCoordinateSet
const& intex
946 MCAPI
bool tessellateSporeBlossomInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
948 MCAPI
bool tessellateStairsInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
950 MCAPI
void tessellateStemDirTexture(
951 ::Tessellator& tessellator,
952 ::TextureUVCoordinateSet
const& tex,
958 MCAPI
bool tessellateStemInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
960 MCAPI
void tessellateStemTexture(
961 ::Tessellator& tessellator,
962 ::TextureUVCoordinateSet
const& tex,
970 tessellateStoneCutterBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
972 MCAPI
bool tessellateStructureVoidInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
974 MCAPI
bool tessellateTerracottaInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
976 MCAPI
void tessellateTorch(
977 ::Tessellator& tessellator,
978 ::Block
const& block,
985 MCAPI
bool tessellateTorchInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
987 MCAPI
bool tessellateTrapdoorInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
989 MCAPI
bool tessellateTripwireHookInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
991 MCAPI
bool tessellateTripwireInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
993 MCAPI
bool tessellateTurtleEggInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
995 MCAPI
bool tessellateTwistingVinesInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
997 MCAPI
bool tessellateVaultInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
999 MCAPI
void tessellateVerticesAndUVs(
1000 ::Tessellator& tessellator,
1001 ::TextureUVCoordinateSet
const& tex,
1011 MCAPI
bool tessellateVineInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
1013 MCAPI
bool tessellateWallInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
1015 MCAPI
bool tessellateWeepingVinesInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
1017 MCAPI
void tessellateWest(
1018 ::Tessellator& tessellator,
1019 ::Block
const& block,
1021 ::TextureUVCoordinateSet
const& intex
1024 MCAPI ~BlockTessellator();
1030 MCAPI
static bool canRender(::BlockShape blockShape);
1036 MCAPI
void* $ctor(::BlockSource* level);
Definition BlockGraphics.h:5
Definition BlockOccluder.h:5
Definition BlockSource.h:68
Definition BlockTessellator.h:5
Definition LightTexture.h:5
Definition ScreenContext.h:5
Definition Tessellator.h:5
Definition TexturePtr.h:19
Definition AirAndSimpleBlockBits.h:5
Definition BlockTessellatorBlockInWorld.h:5
Definition BlockTessellator.h:22
Definition BlockTessellator.h:24