3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/renderer/block/BakedBlockLightType.h"
7#include "mc/client/renderer/block/BlockTessellatorBlockInWorld.h"
8#include "mc/client/renderer/block/BlockTessellatorCache.h"
9#include "mc/client/renderer/block/block_geometry/Axis.h"
10#include "mc/client/renderer/block/block_tessellator_custom_extra_data/Map.h"
11#include "mc/client/renderer/texture/TextureUVCoordinateSet.h"
12#include "mc/client/world/level/biome/BiomeTintCache.h"
13#include "mc/common/BrightnessPair.h"
14#include "mc/deps/core/math/Color.h"
15#include "mc/deps/core/utility/buffer_span.h"
16#include "mc/deps/minecraft_renderer/framebuilder/FrameLightingModelCapabilities.h"
17#include "mc/deps/minecraft_renderer/renderer/MaterialPtr.h"
18#include "mc/legacy/facing/Rotation.h"
19#include "mc/world/Direction.h"
20#include "mc/world/Flip.h"
21#include "mc/world/level/BlockPos.h"
22#include "mc/world/level/block/AnvilPart.h"
23#include "mc/world/level/block/BigDripleafTilt.h"
24#include "mc/world/level/block/BlockRenderLayer.h"
25#include "mc/world/level/block/BlockShape.h"
26#include "mc/world/phys/AABB.h"
43namespace mce {
class Mesh; }
45namespace mce {
struct Radian; }
57 enum class CrossTextureWidth : uchar {
62 enum class CrossTextureReverseSideMapping : uchar {
67 enum class BambooFenceSlatPieceType :
int {
73 enum class FenceGatePieceType :
int {
75 ClosedInnerLeftPost = 1,
76 ClosedInnerRightPost = 2,
78 OpenedInnerLeftPost = 4,
79 OpenedInnerRightPost = 5,
86 ::ll::TypedStorage<8, 8, ::BlockType const*> mFire;
87 ::ll::TypedStorage<8, 8, ::Block const*> mRedstoneTorch;
88 ::ll::TypedStorage<8, 8, ::Block const*> mUnlitRedstoneTorch;
89 ::ll::TypedStorage<8, 8, ::Block const*> mObsidian;
97 ::ll::TypedStorage<2, 2, ushort> pbrTextureDataHandle;
98 ::ll::TypedStorage<4, 4, float> u0;
99 ::ll::TypedStorage<4, 4, float> u1;
100 ::ll::TypedStorage<4, 4, float> v0;
101 ::ll::TypedStorage<4, 4, float> v1;
108 ::ll::TypedStorage<1, 1, bool> mRenderingExtra;
109 ::ll::TypedStorage<1, 1, bool> mUseNormals;
110 ::ll::TypedStorage<1, 1, bool> mTextureShiftEnabled;
111 ::ll::TypedStorage<8, 8, ::BlockSource*> mRegion;
112 ::ll::TypedStorage<4, 8, ::mce::framebuilder::FrameLightingModelCapabilities> mLightingModelCapabilities;
113 ::ll::TypedStorage<8, 88, ::TextureUVCoordinateSet> mFixedTexture;
114 ::ll::TypedStorage<1, 1, bool> mSupportsNewVertexFormat;
115 ::ll::TypedStorage<1, 1, bool> mUseFixedTexture;
116 ::ll::TypedStorage<1, 1, bool> mUseOccluder;
117 ::ll::TypedStorage<1, 1, bool> _tmpUseRegion;
118 ::ll::TypedStorage<1, 1, bool> mXFlipTexture;
119 ::ll::TypedStorage<4, 4, int> mRenderingLayer;
120 ::ll::TypedStorage<1, 1, bool> mRenderingGUI;
121 ::ll::TypedStorage<1, 1, bool> mVersionPreTrailsAndTales;
122 ::ll::TypedStorage<1, 1, bool> mUseFixedColor;
123 ::ll::TypedStorage<4, 96, ::std::array<::mce::Color, 6>> mFixedColors;
124 ::ll::TypedStorage<1, 1, bool> mApplyAmbientOcclusion;
125 ::ll::TypedStorage<4, 4, ::BakedBlockLightType> mBakedLighting;
126 ::ll::TypedStorage<1, 1, bool> mForExport;
127 ::ll::TypedStorage<1, 1, bool> mUseCachedCalculation;
128 ::ll::TypedStorage<4, 128, ::mce::Color[8]> mAoColors;
129 ::ll::TypedStorage<1, 8, ::BrightnessPair[4]> mTc;
130 ::ll::TypedStorage<1, 6, ::std::array<::Flip, 6>> mFlipFace;
131 ::ll::TypedStorage<4, 120, ::std::array<::BlockTessellator::UVOverride, 6>> mTextureOverride;
132 ::ll::TypedStorage<8, 1000, ::Block const* [125]> mAmbientOcclusionCacheBlocks;
133 ::ll::TypedStorage<8, 16, ::mce::MaterialPtr> mItemMat;
134 ::ll::TypedStorage<4, 24, ::AABB> mCurrentShapeBB;
135 ::ll::TypedStorage<1, 1, bool> mCurrentShapeSet;
136 ::ll::TypedStorage<8, 8, ::Block const*> mCurrentShapeBlock;
137 ::ll::TypedStorage<4, 12, ::BlockPos> mCurrentShapeBlockPos;
138 ::ll::TypedStorage<4, 4, float> mCurrentScale;
139 ::ll::TypedStorage<8, 64, ::std::unordered_map<uint, ::mce::Mesh>> mBlockMeshes;
140 ::ll::TypedStorage<8, 64, ::std::unordered_map<::BlockTessellatorBlockInWorld, ::mce::Mesh>> mInWorldBlockMeshes;
141 ::ll::TypedStorage<8, 272032, ::BlockTessellatorCache> mBlockCache;
142 ::ll::TypedStorage<8, 64, ::std::function<::Block
const&(::BlockPos
const&)>> mCachedGetBlock;
143 ::ll::TypedStorage<8, 19288, ::BiomeTintCache> mBiomeWeights;
144 ::ll::TypedStorage<4, 20, ::std::optional<::mce::Color>> mColorOverride;
145 ::ll::TypedStorage<1, 1, bool> mForceOpaque;
146 ::ll::TypedStorage<8, 128, ::BlockTessellatorCustomExtraData::Map> mBlockExtraDataMap;
147 ::ll::TypedStorage<8, 32, ::BlockTessellator::LocalRegistry> mLocalRegistry;
157 MCAPI
explicit BlockTessellator(::BlockSource* level);
159 MCAPI uchar _faceForRotation(uchar originalFace, ::Facing::Rotation rotation)
const;
161 MCAPI ::BrightnessPair _getLightColorForWater(::BlockPos
const& pos, ::BrightnessPair insideBlock);
163 MCAPI ::TextureUVCoordinateSet
const& _getMappedTexture(::Block
const& block, uchar face)
const;
165 MCAPI ::TextureUVCoordinateSet
const& _getTexture(
166 ::BlockPos
const& pos,
167 ::Block
const& block,
170 ::BlockGraphics
const* graphicsHint
173 MCAPI
void _pbrTextureId(::Tessellator& tessellator, ushort
const& pbrTextureDataHandle)
const;
175 MCAPI
void _prepareFixedColorsWithFlatAO(::Block
const& block, ::BlockPos
const& pos);
177 MCAPI
void _preparePolyCross(::Tessellator& tessellator, ::BlockPos
const& p, ::Block
const& block);
179 MCAPI ::Vec3 _preparePolyCrossAndModifyPos(::Tessellator& tessellator, ::BlockPos
const& p, ::Block
const& block);
181 MCAPI ::Vec3 _rotateBlockPos(::Vec3
const& point, ::Facing::Rotation rotation)
const;
183 MCAPI
void _rotateVertsAroundPoint(
184 ::std::array<::Vec3, 4>& vertices,
185 ::Vec3
const& rotationPoint,
186 ::BlockGeometry::Axis axis,
190 MCAPI
void _setBambooFencePostTexture(::TextureUVCoordinateSet
const& bambooFenceTex);
192 MCAPI
void _setBambooFenceSlatTextureGui(
193 ::TextureUVCoordinateSet
const& bambooFenceTex,
194 ::BlockTessellator::BambooFenceSlatPieceType type
197 MCAPI
void _setShapeAndTessellate(
198 ::Tessellator& tessellator,
201 ::Block
const& block,
202 ::BlockPos
const& pos
205 MCAPI
void _swapShapeAxes(
bool x,
bool y,
bool z);
207 MCAPI
void _tessellateAllFaces(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
209 MCAPI
void _tessellateBambooFenceGui(
210 ::Tessellator& tessellator,
211 ::Block
const& block,
213 bool isInventoryIcon,
214 float lightMultiplier,
215 float alphaMultiplier,
220 MCAPI
void _tessellateBambooFenceSlatsInWorld(
221 ::Tessellator& tessellator,
222 ::Block
const& block,
227 MCAPI
bool _tessellateBlockInWorldFlat(
228 ::Tessellator& tessellator,
229 ::Block
const& block,
230 ::BlockPos
const& pos,
231 ::mce::Color
const& base,
232 ::BlockOccluder* occluder,
233 ::std::bitset<6> faces,
237 MCAPI
bool _tessellateBlockInWorldWithAmbienceOcclusion(
238 ::Tessellator& tessellator,
239 ::Block
const& block,
241 ::mce::Color
const& base,
242 ::BlockOccluder* occluder,
243 ::std::bitset<6> faces,
247 MCAPI
void _tessellateCalibratedSculkSensorAmethystCrystalInWorld(
248 ::Tessellator& tessellator,
249 ::Block
const& block,
253 MCAPI
void _tessellateFenceGateGui(
254 ::Tessellator& tessellator,
255 ::Block
const& block,
257 bool isInventoryIcon,
258 float lightMultiplier,
259 float alphaMultiplier,
264 MCAPI
bool _tessellateFixedCrossTexture(
265 ::TextureUVCoordinateSet
const& tex,
266 ::Tessellator& tessellator,
267 ::Block
const& block,
268 ::AABB
const& boundingBox,
269 ::BlockPos
const& pos
272 MCAPI
void _tessellateForInventory(
273 ::Tessellator& tessellator,
274 ::Block
const& block,
275 ::BlockPos
const& pos,
276 float lightMultiplier,
277 float alphaMultiplier,
282 MCAPI
void _tessellateSculkSensorTendrilsInWorld(
283 ::Tessellator& tessellator,
284 ::Block
const& block,
286 uchar tessellationType
289 MCAPI
void _tex1(::Tessellator& tessellator, ::Vec2
const& uv);
292 _trySetFenceGateTexture(::Block
const& block, ::BlockPos
const& p, ::BlockTessellator::FenceGatePieceType type);
294 MCAPI
void appendTessellatedBlock(::Tessellator& tessellator, ::Block
const& block);
296 MCAPI
void buildBiomeWeights(::BlockPos
const& pointPos);
298 MCAPI ::AABB
const& getCurrentShape();
300 MCAPI ::mce::Mesh& getMeshForBlock(::Tessellator& tessellator, ::Block
const& block);
302 MCAPI ::mce::Mesh& getMeshForBlockInWorld(
303 ::Tessellator& tessellator,
304 ::Block
const& block,
305 ::BlockPos& blockPos,
306 ::BlockRenderLayer layer,
310 ::LightTexture
const& lightTexture
313 MCAPI
float getWaterHeight(::BlockPos
const& pos, ::Material
const& material, ::BlockPos
const& originalBlockPos);
315 MCAPI
void moveCurrentShape(::Vec3
const& offset);
317 MCAPI
void renderGuiBlock(
318 ::ScreenContext& screenContext,
319 ::Block
const& block,
320 ::BlockGraphics
const& blockGraphics,
321 ::mce::TexturePtr
const& texture,
322 float lightMultiplier,
323 float alphaMultiplier
326 MCAPI
bool rotateCommandBlockFaces(::Block
const& block);
328 MCAPI
void setRegion(::BlockSource& region);
330 MCAPI
void tessellateAll(
331 ::Tessellator& tessellator,
332 ::Block
const& block,
334 ::TextureUVCoordinateSet
const& tex
337 MCAPI
bool tessellateAmethystCluster(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
340 tessellateAnvilInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos,
bool render);
342 MCAPI
float tessellateAnvilPiece(
343 ::Tessellator& tessellator,
344 ::Block
const& block,
353 ::buffer_span<::Flip> faces
356 MCAPI
bool tessellateAzaleaBlockInWorld(
357 ::Tessellator& tessellator,
358 ::Block
const& block,
359 ::BlockPos
const& pos,
364 tessellateBambooSaplingBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
366 MCAPI
bool tessellateBambooStalkBlockInWorld(
367 ::Tessellator& tessellator,
368 ::Block
const& block,
369 ::BlockPos
const& pos,
373 MCAPI
void tessellateBambooStemInWorld(
374 ::Tessellator& tessellator,
375 ::Block
const& block,
376 ::BlockPos
const& pos,
377 ::BlockGraphics
const& blockGraphics,
379 float sideVariantOffset,
380 float verticalPortion
383 MCAPI
void tessellateBambooTopSideLeafInWorld(
384 ::Tessellator& tessellator,
394 MCAPI
void tessellateBeacon(
395 ::Tessellator& tessellator,
396 ::Block
const& block,
397 float lightMultiplier,
398 float alphaMultiplier,
399 ::Vec3
const& vOffset
402 MCAPI
bool tessellateBeaconInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
404 MCAPI
bool tessellateBellBlockHangingBetweenInWorld(
405 ::Tessellator& tessellator,
406 ::Block
const& block,
407 ::BlockPos
const& pos,
409 ::Direction::Type dir
412 MCAPI
bool tessellateBellBlockHangingOneSideInWorld(
413 ::Tessellator& tessellator,
414 ::Block
const& block,
415 ::BlockPos
const& pos,
417 ::Direction::Type dir
421 tessellateBellBlockHangingTopInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
423 MCAPI
bool tessellateBellBlockStandingInWorld(
424 ::Tessellator& tessellator,
425 ::Block
const& block,
426 ::BlockPos
const& pos,
428 ::Direction::Type dir
431 MCAPI
void tessellateBellBlockStandingLegInWorld(
432 ::Tessellator& tessellator,
433 ::Block
const& block,
434 ::BlockPos
const& pos,
435 ::BlockGraphics
const& blockGraphics,
439 MCAPI
bool tessellateBigDripleafBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
441 MCAPI
void tessellateBigDripleafFront(
442 ::Tessellator& tessellator,
443 ::Block
const& block,
445 ::BigDripleafTilt tilt,
449 MCAPI
void tessellateBigDripleafSide(
450 ::Tessellator& tessellator,
451 ::Block
const& block,
453 ::BigDripleafTilt tilt,
458 tessellateBigDripleafStem(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p,
int facing);
460 MCAPI
void tessellateBigDripleafTop(
461 ::Tessellator& tessellator,
462 ::Block
const& block,
464 ::BigDripleafTilt tilt,
468 MCAPI
bool tessellateBlockInWorld(
469 ::Tessellator& tessellator,
470 ::Block
const& block,
471 ::BlockPos
const& pos,
472 ::std::bitset<6> faces,
473 ::AirAndSimpleBlockBits
const* airAndSimpleBlocks
476 MCAPI
bool tessellateBrewingStandInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
478 MCAPI
bool tessellateBubbleColumnInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
480 MCAPI
bool tessellateCactusInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
483 tessellateCalibratedSculkSensorBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
486 tessellateCameraFacingSpriteInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
488 MCAPI
bool tessellateCampfireBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
490 MCAPI
bool tessellateCandleInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
492 MCAPI
bool tessellateCauldronInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
494 MCAPI
bool tessellateCaveVinesInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
496 MCAPI
bool tessellateChainInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
498 MCAPI
bool tessellateChemistryTableInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
501 tessellateChiseledBookshelfBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
504 tessellateChorusFlowerInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos,
bool render);
506 MCAPI
bool tessellateChorusPlantInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
508 MCAPI
bool tessellateCocoaInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
510 MCAPI
bool tessellateComparatorInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
512 MCAPI
bool tessellateComposterBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
514 MCAPI
void tessellateCompoundCreatorFace(
515 ::Tessellator& tessellator,
516 ::Block
const& block,
518 ::TextureUVCoordinateSet
const& tex,
526 MCAPI
bool tessellateCompoundCreatorInWorld(::Tessellator& t, ::Block
const& b, ::BlockPos
const& p);
528 MCAPI
bool tessellateCoralFanHangInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
530 MCAPI
bool tessellateCoralFanInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
532 MCAPI
bool tessellateCrossInWorld(
533 ::Tessellator& tessellator,
534 ::Block
const& block,
536 bool forceDoubleSide,
537 ::BlockTessellator::CrossTextureReverseSideMapping reverseSideMapping,
539 ::BlockTessellator::CrossTextureWidth width
542 MCAPI
void tessellateCrossTexture(
543 ::Tessellator& tessellator,
544 ::TextureUVCoordinateSet
const& tex,
546 ::Block
const& block,
547 bool forceDoubleSided,
548 ::BlockTessellator::CrossTextureReverseSideMapping reverseSideMapping,
550 ::BlockTessellator::CrossTextureWidth width
553 MCAPI
void tessellateCrossTexture(
554 ::Tessellator& tessellator,
555 ::TextureUVCoordinateSet
const& tex1,
556 ::TextureUVCoordinateSet
const& tex2,
558 ::Block
const& block,
560 ::BlockTessellator::CrossTextureWidth width,
561 ::BlockTessellator::CrossTextureReverseSideMapping reverseSideMapping,
562 bool forceDoubleSided
565 MCAPI
void tessellateCrossTextureDown(
566 ::Tessellator& tessellator,
567 ::TextureUVCoordinateSet
const& tex1,
568 ::TextureUVCoordinateSet
const& tex2,
570 bool renderBothSides,
571 ::Block
const& block,
573 ::BlockTessellator::CrossTextureWidth width
576 MCAPI
void tessellateCrossTextureEast(
577 ::Tessellator& tessellator,
578 ::TextureUVCoordinateSet
const& tex1,
579 ::TextureUVCoordinateSet
const& tex2,
581 bool renderBothSides,
582 ::Block
const& block,
584 ::BlockTessellator::CrossTextureWidth width
587 MCAPI
void tessellateCrossTextureNorth(
588 ::Tessellator& tessellator,
589 ::TextureUVCoordinateSet
const& tex1,
590 ::TextureUVCoordinateSet
const& tex2,
592 bool renderBothSides,
593 ::Block
const& block,
595 ::BlockTessellator::CrossTextureWidth width
598 MCAPI
void tessellateCrossTextureSouth(
599 ::Tessellator& tessellator,
600 ::TextureUVCoordinateSet
const& tex1,
601 ::TextureUVCoordinateSet
const& tex2,
603 bool renderBothSides,
604 ::Block
const& block,
606 ::BlockTessellator::CrossTextureWidth width
609 MCAPI
void tessellateCrossTextureUp(
610 ::Tessellator& tessellator,
611 ::TextureUVCoordinateSet
const& tex1,
612 ::TextureUVCoordinateSet
const& tex2,
614 bool renderBothSides,
615 ::Block
const& block,
617 ::BlockTessellator::CrossTextureWidth width,
618 ::BlockTessellator::CrossTextureReverseSideMapping reverseSideMapping
621 MCAPI
void tessellateCrossTextureWest(
622 ::Tessellator& tessellator,
623 ::TextureUVCoordinateSet
const& tex1,
624 ::TextureUVCoordinateSet
const& tex2,
626 bool renderBothSides,
627 ::Block
const& block,
629 ::BlockTessellator::CrossTextureWidth width
632 MCAPI
bool tessellateDiodeInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
634 MCAPI
bool tessellateDoorInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
636 MCAPI
bool tessellateDoublePlantInWorld(
637 ::Tessellator& tessellator,
638 ::Block
const& block,
639 ::BlockShape blockShape,
641 bool forceDoubleSided,
643 bool applyAmbientOcclusion,
644 ::BlockTessellator::CrossTextureReverseSideMapping reverseSideMapping,
645 ::BlockTessellator::CrossTextureWidth width
648 MCAPI
bool tessellateDoubleThinFenceInWorld(
649 ::Tessellator& tessellator,
650 ::Block
const& block,
655 MCAPI
bool tessellateDragonEgg(
656 ::Tessellator& tessellator,
657 ::Block
const& block,
658 ::BlockPos
const& pos,
664 tessellateDriedGhastInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& position);
666 MCAPI
bool tessellateDriedKelpBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
668 MCAPI
bool tessellateDustInWorld(::Tessellator& tessellator, ::Block
const& b, ::BlockPos
const& p);
670 MCAPI
void tessellateEast(
671 ::Tessellator& tessellator,
672 ::Block
const& block,
674 ::TextureUVCoordinateSet
const& intex
677 MCAPI
bool tessellateEndGatewayInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
679 MCAPI
bool tessellateEndPortalFrameInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
681 MCAPI
bool tessellateEndPortalInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
684 tessellateEndRodAppended(::Tessellator& tessellator, ::Block
const& block, ::BlockGraphics
const& blockGraphics);
687 tessellateEndRodDown(::Tessellator& tessellator, ::BlockPos
const& p, ::TextureUVCoordinateSet
const& tex);
690 tessellateEndRodEast(::Tessellator& tessellator, ::BlockPos
const& p, ::TextureUVCoordinateSet
const& tex);
693 tessellateEndRodGui(::Tessellator& tessellator, ::Block
const& block, ::BlockGraphics
const& blockGraphics);
695 MCAPI
bool tessellateEndRodInWorld(::Tessellator& tessellator, ::Block
const& b, ::BlockPos
const& p);
698 tessellateEndRodNorth(::Tessellator& tessellator, ::BlockPos
const& p, ::TextureUVCoordinateSet
const& tex);
701 tessellateEndRodSouth(::Tessellator& tessellator, ::BlockPos
const& p, ::TextureUVCoordinateSet
const& tex);
703 MCAPI
void tessellateEndRodUp(::Tessellator& tessellator, ::BlockPos
const& p, ::TextureUVCoordinateSet
const& tex);
706 tessellateEndRodWest(::Tessellator& tessellator, ::BlockPos
const& p, ::TextureUVCoordinateSet
const& tex);
708 MCAPI
bool tessellateExtraDataInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
710 MCAPI
bool tessellateEyeblossomInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
712 MCAPI
void tessellateFaceDown(
713 ::Tessellator& tessellator,
714 ::Block
const& block,
716 ::TextureUVCoordinateSet
const& intex
719 MCAPI
void tessellateFaceUp(
720 ::Tessellator& tessellator,
721 ::Block
const& block,
723 ::TextureUVCoordinateSet
const& intex
726 MCAPI
void tessellateFaceWithUVs(
727 ::Tessellator& tessellator,
728 ::Block
const& block,
730 ::TextureUVCoordinateSet
const& tex,
738 MCAPI
bool tessellateFacingBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
740 MCAPI
bool tessellateFenceGateInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
742 MCAPI
bool tessellateFenceInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
744 MCAPI
bool tessellateFireInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos p);
746 MCAPI
bool tessellateFireflyBushInWorld(
747 ::Tessellator& tessellator,
748 ::Block
const& block,
749 ::BlockPos
const& pos,
750 ::BlockGraphics
const& blockGraphics
753 MCAPI
bool tessellateFlowerBedBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
755 MCAPI
bool tessellateFlowerPotInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
757 MCAPI
bool tessellateFrogSpawnInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
760 tessellateGrindstoneBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
762 MCAPI
void tessellateGrindstoneLegInWorld(
763 ::Tessellator& tessellator,
764 ::Block
const& block,
765 ::BlockPos
const& pos,
768 ::Direction::Type attachmentDir
771 MCAPI
bool tessellateHeavyCoreInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
773 MCAPI
bool tessellateHoneyBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
775 MCAPI
bool tessellateHopperInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
778 tessellateHopperInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos,
bool render);
781 tessellateInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos,
bool useCalcWithCache);
783 MCAPI
bool tessellateIndividualCandleInWorld(
784 ::Tessellator& tessellator,
785 ::Block
const& block,
791 MCAPI
bool tessellateIndividualSeaPickleInWorld(
792 ::Tessellator& tessellator,
793 ::Block
const& block,
799 MCAPI
bool tessellateIndividualTurtleEggInWorld(
800 ::Tessellator& tessellator,
801 ::Block
const& block,
808 MCAPI
bool tessellateItemFrameInWorld(
809 ::Tessellator& tessellator,
810 ::Block
const& block,
811 ::BlockPos
const& pos,
815 MCAPI
bool tessellateKelpInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
817 MCAPI
bool tessellateLadderInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
819 MCAPI
bool tessellateLanternBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
821 MCAPI
bool tessellateLecternBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
823 MCAPI
bool tessellateLeverInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
826 tessellateLightningRodDown(::Tessellator& tessellator, ::BlockPos
const& p, ::TextureUVCoordinateSet
const& tex);
829 tessellateLightningRodEast(::Tessellator& tessellator, ::BlockPos
const& p, ::TextureUVCoordinateSet
const& tex);
832 tessellateLightningRodGui(::Tessellator& tessellator, ::Block
const& block, ::BlockGraphics
const& blockGraphics);
835 tessellateLightningRodNorth(::Tessellator& tessellator, ::BlockPos
const& p, ::TextureUVCoordinateSet
const& tex);
838 tessellateLightningRodSouth(::Tessellator& tessellator, ::BlockPos
const& p, ::TextureUVCoordinateSet
const& tex);
841 tessellateLightningRodUp(::Tessellator& tessellator, ::BlockPos
const& p, ::TextureUVCoordinateSet
const& tex);
844 tessellateLightningRodWest(::Tessellator& tessellator, ::BlockPos
const& p, ::TextureUVCoordinateSet
const& tex);
846 MCAPI
bool tessellateLilypadInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
848 MCAPI
bool tessellateLiquidInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
851 tessellateMangrovePropaguleHangingInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
853 MCAPI
bool tessellateMangrovePropaguleInWorld(
854 ::Tessellator& tessellator,
855 ::Block
const& block,
860 MCAPI
bool tessellateMangroveRootInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
862 MCAPI
bool tessellateMultiFaceBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
864 MCAPI
void tessellateNorth(
865 ::Tessellator& tessellator,
866 ::Block
const& block,
868 ::TextureUVCoordinateSet
const& intex
871 MCAPI
bool tessellatePaleMossCarpetInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
873 MCAPI
bool tessellatePitcherCropInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
875 MCAPI
void tessellatePitcherCropLeavesInWorld(
876 ::Tessellator& tessellator,
877 ::Block
const& block,
880 ::BlockGraphics
const& blockGraphics
883 MCAPI
void tessellatePitcherCropPodInWorld(
884 ::Tessellator& tessellator,
885 ::Block
const& block,
888 ::BlockGraphics
const& blockGraphics
891 MCAPI
bool tessellatePointedDripstoneInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
893 MCAPI
bool tessellateRailInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
895 MCAPI
bool tessellateRepeaterInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
898 tessellateRowInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p,
bool forceDoubleSide);
900 MCAPI
void tessellateRowTexture(
901 ::Tessellator& tessellator,
902 ::Block
const& block,
904 ::TextureUVCoordinateSet
const& tex,
911 MCAPI
void tessellateRowTexture(
912 ::Tessellator& tessellator,
913 ::TextureUVCoordinateSet
const& tex1,
914 ::TextureUVCoordinateSet
const& tex2,
915 ::TextureUVCoordinateSet
const& tex3,
916 ::TextureUVCoordinateSet
const& tex4,
923 tessellateScaffoldingBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
925 MCAPI
void tessellateScaffoldingHorizontalPoleInWorld(
926 ::Tessellator& tessellator,
927 ::Block
const& block,
928 ::TextureUVCoordinateSet
const& side,
929 ::TextureUVCoordinateSet
const& bottom,
930 ::BlockPos
const& blockPos,
932 ::Vec3
const& offset,
936 MCAPI
void tessellateScaffoldingVerticalPoleInWorld(
937 ::Tessellator& tessellator,
938 ::Block
const& block,
939 ::TextureUVCoordinateSet
const& tex,
940 ::BlockPos
const& pos,
944 MCAPI
bool tessellateSculkSensorBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
946 MCAPI
bool tessellateSculkShriekerInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
948 MCAPI
bool tessellateSeaPickleInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
950 MCAPI
bool tessellateSeagrassInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
952 MCAPI
bool tessellateShelfBlockInGui(::Tessellator& tessellator, ::Block
const& block);
954 MCAPI
bool tessellateShelfBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
956 MCAPI
void tessellateShulkerBoxFacade(::Tessellator& tessellator, ::Vec3
const& pos);
958 MCAPI
void tessellateSimpleBlockInWorld(
959 ::Tessellator& tessellator,
960 ::Block
const& block,
961 ::BlockPos
const& pos,
962 ::AirAndSimpleBlockBits
const& airAndSimpleBlocks
966 tessellateSmallDripleafBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
969 tessellateSmallDripleafLeaves(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p,
int facing);
972 tessellateSmallDripleafSides(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p,
int facing);
975 tessellateSmallDripleafStem(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p,
int facing);
977 MCAPI
void tessellateSouth(
978 ::Tessellator& tessellator,
979 ::Block
const& block,
981 ::TextureUVCoordinateSet
const& intex
984 MCAPI
bool tessellateSporeBlossomInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
986 MCAPI
bool tessellateStairsInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
988 MCAPI
void tessellateStemDirTexture(
989 ::Tessellator& tessellator,
990 ::TextureUVCoordinateSet
const& tex,
996 MCAPI
bool tessellateStemInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
998 MCAPI
void tessellateStemTexture(
999 ::Tessellator& tessellator,
1000 ::TextureUVCoordinateSet
const& tex,
1008 tessellateStoneCutterBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
1010 MCAPI
bool tessellateStructureVoidInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
1012 MCAPI
bool tessellateTerracottaInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
1014 MCAPI
void tessellateTorch(
1015 ::Tessellator& tessellator,
1016 ::Block
const& block,
1023 MCAPI
bool tessellateTorchInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
1025 MCAPI
bool tessellateTrapdoorInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
1027 MCAPI
bool tessellateTripwireHookInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
1029 MCAPI
bool tessellateTripwireInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
1031 MCAPI
bool tessellateTurtleEggInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
1033 MCAPI
bool tessellateTwistingVinesInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
1035 MCAPI
bool tessellateVaultInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
1037 MCAPI
void tessellateVerticesAndUVs(
1038 ::Tessellator& tessellator,
1039 ::TextureUVCoordinateSet
const& tex,
1049 MCAPI
bool tessellateVineInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
1051 MCAPI
bool tessellateWallInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
1053 MCAPI
bool tessellateWeepingVinesInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
1055 MCAPI
void tessellateWest(
1056 ::Tessellator& tessellator,
1057 ::Block
const& block,
1059 ::TextureUVCoordinateSet
const& intex
1062 MCAPI ~BlockTessellator();
1068 MCAPI
static bool canRender(::BlockShape blockShape);
1074 MCAPI
void* $ctor(::BlockSource* level);
Definition BlockGraphics.h:5
Definition BlockOccluder.h:5
Definition BlockSource.h:71
Definition BlockTessellator.h:5
Definition BlockType.h:84
Definition LightTexture.h:5
Definition ScreenContext.h:5
Definition Tessellator.h:5
Definition TexturePtr.h:19
Definition AirAndSimpleBlockBits.h:5
Definition BlockTessellator.h:22
Definition BlockTessellator.h:24