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_geo_type/GeoTypeResolver.h"
10#include "mc/client/renderer/block/block_geometry/Axis.h"
11#include "mc/client/renderer/block/block_tessellator_custom_extra_data/Map.h"
12#include "mc/client/renderer/texture/TextureUVCoordinateSet.h"
13#include "mc/client/world/level/biome/BiomeTintCache.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/level/block/BrightnessPair.h"
27#include "mc/world/phys/AABB.h"
44namespace mce {
class Mesh; }
46namespace mce {
struct Radian; }
58 enum class CrossTextureWidth : uchar {
63 enum class CrossTextureReverseSideMapping : uchar {
68 enum class BambooFenceSlatPieceType :
int {
74 enum class FenceGatePieceType :
int {
76 ClosedInnerLeftPost = 1,
77 ClosedInnerRightPost = 2,
79 OpenedInnerLeftPost = 4,
80 OpenedInnerRightPost = 5,
87 ::ll::TypedStorage<8, 8, ::BlockType const*> mFire;
88 ::ll::TypedStorage<8, 8, ::Block const*> mRedstoneTorch;
89 ::ll::TypedStorage<8, 8, ::Block const*> mUnlitRedstoneTorch;
90 ::ll::TypedStorage<8, 8, ::Block const*> mObsidian;
98 ::ll::TypedStorage<2, 2, ushort> pbrTextureDataHandle;
99 ::ll::TypedStorage<4, 4, float> u0;
100 ::ll::TypedStorage<4, 4, float> u1;
101 ::ll::TypedStorage<4, 4, float> v0;
102 ::ll::TypedStorage<4, 4, float> v1;
109 ::ll::TypedStorage<1, 1, bool> mRenderingExtra;
110 ::ll::TypedStorage<1, 1, bool> mUseNormals;
111 ::ll::TypedStorage<1, 1, bool> mTextureShiftEnabled;
112 ::ll::TypedStorage<8, 8, ::BlockSource*> mRegion;
113 ::ll::TypedStorage<4, 8, ::mce::framebuilder::FrameLightingModelCapabilities> mLightingModelCapabilities;
114 ::ll::TypedStorage<8, 88, ::TextureUVCoordinateSet> mFixedTexture;
115 ::ll::TypedStorage<1, 1, bool> mSupportsNewVertexFormat;
116 ::ll::TypedStorage<1, 1, bool> mUseFixedTexture;
117 ::ll::TypedStorage<1, 1, bool> mUseOccluder;
118 ::ll::TypedStorage<1, 1, bool> _tmpUseRegion;
119 ::ll::TypedStorage<1, 1, bool> mXFlipTexture;
120 ::ll::TypedStorage<4, 4, int> mRenderingLayer;
121 ::ll::TypedStorage<1, 1, bool> mRenderingGUI;
122 ::ll::TypedStorage<1, 1, bool> mVersionPreTrailsAndTales;
123 ::ll::TypedStorage<1, 1, bool> mUseFixedColor;
124 ::ll::TypedStorage<4, 96, ::std::array<::mce::Color, 6>> mFixedColors;
125 ::ll::TypedStorage<1, 1, bool> mApplyAmbientOcclusion;
126 ::ll::TypedStorage<4, 4, ::BakedBlockLightType> mBakedLighting;
127 ::ll::TypedStorage<1, 1, bool> mForExport;
128 ::ll::TypedStorage<1, 1, bool> mUseCachedCalculation;
129 ::ll::TypedStorage<4, 128, ::mce::Color[8]> mAoColors;
130 ::ll::TypedStorage<1, 8, ::BrightnessPair[4]> mTc;
131 ::ll::TypedStorage<1, 6, ::std::array<::Flip, 6>> mFlipFace;
132 ::ll::TypedStorage<4, 120, ::std::array<::BlockTessellator::UVOverride, 6>> mTextureOverride;
133 ::ll::TypedStorage<8, 1000, ::Block const* [125]> mAmbientOcclusionCacheBlocks;
134 ::ll::TypedStorage<8, 16, ::mce::MaterialPtr> mItemMat;
135 ::ll::TypedStorage<4, 24, ::AABB> mCurrentShapeBB;
136 ::ll::TypedStorage<1, 1, bool> mCurrentShapeSet;
137 ::ll::TypedStorage<8, 8, ::Block const*> mCurrentShapeBlock;
138 ::ll::TypedStorage<4, 12, ::BlockPos> mCurrentShapeBlockPos;
139 ::ll::TypedStorage<4, 4, float> mCurrentScale;
140 ::ll::TypedStorage<8, 64, ::std::unordered_map<uint, ::mce::Mesh>> mBlockMeshes;
141 ::ll::TypedStorage<8, 64, ::std::unordered_map<::BlockTessellatorBlockInWorld, ::mce::Mesh>> mInWorldBlockMeshes;
142 ::ll::TypedStorage<8, 272032, ::BlockTessellatorCache> mBlockCache;
143 ::ll::TypedStorage<8, 64, ::std::function<::Block
const&(::BlockPos
const&)>> mCachedGetBlock;
144 ::ll::TypedStorage<8, 19288, ::BiomeTintCache> mBiomeWeights;
145 ::ll::TypedStorage<4, 20, ::std::optional<::mce::Color>> mColorOverride;
146 ::ll::TypedStorage<1, 1, bool> mForceOpaque;
147 ::ll::TypedStorage<8, 128, ::BlockTessellatorCustomExtraData::Map> mBlockExtraDataMap;
148 ::ll::TypedStorage<8, 32, ::BlockTessellator::LocalRegistry> mLocalRegistry;
149 ::ll::TypedStorage<8, 64, ::BlockGeoType::GeoTypeResolver> mGeoTypeResolver;
159 MCAPI
explicit BlockTessellator(::BlockSource* level);
162 _applyCrossTextureAmbientOcclusion(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
164 MCAPI
void _flipAllFaces(::Facing::Rotation rotation);
166 MCAPI ::TextureUVCoordinateSet
const& _getMappedTexture(::Block
const& block, uchar face)
const;
168 MCAPI ::TextureUVCoordinateSet
const& _getTexture(
169 ::BlockPos
const& pos,
170 ::Block
const& block,
173 ::BlockGraphics
const* graphicsHint
176 MCAPI
void _modifyCurrentShapeAccordingToAttachmentDirection(::Direction::Type attachmentDir);
178 MCAPI
void _prepareFixedColorsWithFlatAO(::Block
const& block, ::BlockPos
const&);
180 MCAPI
void _preparePolyCross(::Tessellator& tessellator, ::BlockPos
const& p, ::Block
const& block);
182 MCAPI
void _rotateVertsAroundPoint(
183 ::std::array<::Vec3, 4>& vertices,
184 ::Vec3
const& rotationPoint,
185 ::BlockGeometry::Axis axis,
189 MCAPI
void _setBambooFencePostTexture(::TextureUVCoordinateSet
const& bambooFenceTex);
191 MCAPI
void _setBambooFenceSlatTextureGui(
192 ::TextureUVCoordinateSet
const& bambooFenceTex,
193 ::BlockTessellator::BambooFenceSlatPieceType type
196 MCAPI
void _tessellateAllFaces(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
198 MCAPI
void _tessellateBambooFenceGui(
199 ::Tessellator& tessellator,
200 ::Block
const& block,
202 bool isInventoryIcon,
203 float lightMultiplier,
204 float alphaMultiplier,
209 MCAPI
void _tessellateBambooFencePostInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
211 MCAPI
void _tessellateBambooFenceSlatsInWorld(
212 ::Tessellator& tessellator,
213 ::Block
const& block,
218 MCAPI
bool _tessellateBlockInWorldFlat(
219 ::Tessellator& tessellator,
220 ::Block
const& block,
221 ::BlockPos
const& pos,
222 ::mce::Color
const& base,
223 ::BlockOccluder* occluder,
224 ::std::bitset<6> faces,
228 MCAPI
bool _tessellateBlockInWorldWithAmbienceOcclusion(
229 ::Tessellator& tessellator,
230 ::Block
const& block,
232 ::mce::Color
const& base,
233 ::BlockOccluder* occluder,
234 ::std::bitset<6> faces,
238 MCAPI
void _tessellateCalibratedSculkSensorAmethystCrystalInWorld(
239 ::Tessellator& tessellator,
240 ::Block
const& block,
244 MCAPI
void _tessellateFenceGateGui(
245 ::Tessellator& tessellator,
246 ::Block
const& block,
248 bool isInventoryIcon,
249 float lightMultiplier,
250 float alphaMultiplier,
255 MCAPI
bool _tessellateFixedCrossTexture(
256 ::TextureUVCoordinateSet
const& tex,
257 ::Tessellator& tessellator,
258 ::Block
const& block,
259 ::AABB
const& boundingBox,
260 ::BlockPos
const& pos
263 MCAPI
void _tessellateForInventory(
264 ::Tessellator& tessellator,
265 ::Block
const& block,
266 ::BlockPos
const& pos,
267 float lightMultiplier,
268 float alphaMultiplier,
273 MCAPI
void _tessellateSculkSensorTendrilsInWorld(
274 ::Tessellator& tessellator,
275 ::Block
const& block,
277 uchar tessellationType
280 MCAPI
void _tex1(::Tessellator& tessellator, ::Vec2
const& uv);
283 _trySetFenceGateTexture(::Block
const& block, ::BlockPos
const& p, ::BlockTessellator::FenceGatePieceType type);
285 MCAPI
void appendTessellatedBlock(::Tessellator& tessellator, ::Block
const& block);
287 MCAPI
void buildBiomeWeights(::BlockPos
const& pointPos);
289 MCAPI
void clearBlockCache();
291 MCAPI ::BiomeTintCache& getBiomeTintCache();
293 MCAPI ::AABB
const& getCurrentShape();
295 MCAPI ::BrightnessPair getLightColor(::BlockPos
const& pos);
297 MCAPI ::mce::Mesh& getMeshForBlock(::Tessellator& tessellator, ::Block
const& block);
299 MCAPI ::mce::Mesh& getMeshForBlockInWorld(
300 ::Tessellator& tessellator,
301 ::Block
const& block,
302 ::BlockPos& blockPos,
303 ::BlockRenderLayer layer,
307 ::LightTexture
const& lightTexture
310 MCFOLD ::BlockSource& getRegion()
const;
312 MCAPI
float getWaterHeight(::BlockPos
const& pos, ::Material
const& material, ::BlockPos
const& originalBlockPos);
314 MCAPI
void moveCurrentShape(::Vec3
const& offset);
316 MCAPI
void renderGuiBlock(
317 ::ScreenContext& screenContext,
318 ::Block
const& block,
319 ::BlockGraphics
const& blockGraphics,
320 ::mce::TexturePtr
const& texture,
321 float lightMultiplier,
322 float alphaMultiplier
325 MCAPI
void resetCache(::BlockPos
const& pos);
327 MCAPI
void resetCacheToAir(::BlockPos
const& pos);
329 MCAPI
void resetRegion();
331 MCAPI
bool rotateCommandBlockFaces(::Block
const& block);
333 MCAPI
void setBakedLighting(::BakedBlockLightType type);
335 MCAPI
void setBlockExtraDataMap(::BlockTessellatorCustomExtraData::Map map);
337 MCAPI
void setForceOpaque(
bool forceOpaque);
340 setLightingModelCapabilities(::mce::framebuilder::FrameLightingModelCapabilities
const& lightingModelCapabilities);
342 MCAPI
void setRegion(::BlockSource& region);
344 MCFOLD
void setRenderLayer(
int layer);
346 MCAPI
void setTextureShiftsEnabled(
bool enabled);
348 MCAPI
void tessellateAll(
349 ::Tessellator& tessellator,
350 ::Block
const& block,
352 ::TextureUVCoordinateSet
const& tex
355 MCAPI
bool tessellateAmethystCluster(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
358 tessellateAnvilInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos,
bool render);
360 MCAPI
float tessellateAnvilPiece(
361 ::Tessellator& tessellator,
362 ::Block
const& block,
371 ::buffer_span<::Flip> faces
374 MCAPI
bool tessellateAzaleaBlockInWorld(
375 ::Tessellator& tessellator,
376 ::Block
const& block,
377 ::BlockPos
const& pos,
381 MCAPI
bool tessellateBambooBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
383 MCAPI
void tessellateBambooLargeLeafInWorld(
384 ::Tessellator& tessellator,
385 ::TextureUVCoordinateSet
const& leafTex,
386 ::Vec3
const& topCenter,
391 tessellateBambooSaplingBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
393 MCAPI
void tessellateBambooSmallLeafInWorld(
394 ::Tessellator& tessellator,
395 ::TextureUVCoordinateSet
const& leafSmallTex,
396 ::Vec3
const& topCenter,
400 MCAPI
bool tessellateBambooStalkBlockInWorld(
401 ::Tessellator& tessellator,
402 ::Block
const& block,
403 ::BlockPos
const& pos,
407 MCAPI
void tessellateBambooStemInWorld(
408 ::Tessellator& tessellator,
409 ::Block
const& block,
410 ::BlockPos
const& pos,
411 ::BlockGraphics
const& blockGraphics,
413 float sideVariantOffset,
414 float verticalPortion
417 MCAPI
void tessellateBeacon(
418 ::Tessellator& tessellator,
419 ::Block
const& block,
420 float lightMultiplier,
421 float alphaMultiplier,
422 ::Vec3
const& vOffset
425 MCAPI
bool tessellateBeaconInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
427 MCAPI
bool tessellateBellBlockHangingBetweenInWorld(
428 ::Tessellator& tessellator,
429 ::Block
const& block,
430 ::BlockPos
const& pos,
432 ::Direction::Type dir
435 MCAPI
bool tessellateBellBlockHangingOneSideInWorld(
436 ::Tessellator& tessellator,
437 ::Block
const& block,
438 ::BlockPos
const& pos,
440 ::Direction::Type dir
444 tessellateBellBlockHangingTopInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
446 MCAPI
bool tessellateBellBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
448 MCAPI
bool tessellateBellBlockStandingInWorld(
449 ::Tessellator& tessellator,
450 ::Block
const& block,
451 ::BlockPos
const& pos,
453 ::Direction::Type dir
456 MCAPI
void tessellateBellBlockStandingLegInWorld(
457 ::Tessellator& tessellator,
458 ::Block
const& block,
459 ::BlockPos
const& pos,
460 ::BlockGraphics
const& blockGraphics,
464 MCAPI
bool tessellateBigDripleafBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
466 MCAPI
void tessellateBigDripleafFront(
467 ::Tessellator& tessellator,
468 ::Block
const& block,
470 ::BigDripleafTilt tilt,
474 MCAPI
void tessellateBigDripleafSide(
475 ::Tessellator& tessellator,
476 ::Block
const& block,
478 ::BigDripleafTilt tilt,
483 tessellateBigDripleafStem(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p,
int facing);
485 MCAPI
void tessellateBigDripleafTop(
486 ::Tessellator& tessellator,
487 ::Block
const& block,
489 ::BigDripleafTilt tilt,
493 MCAPI
bool tessellateBlockInWorld(
494 ::Tessellator& tessellator,
495 ::Block
const& block,
496 ::BlockPos
const& pos,
497 ::std::bitset<6> faces,
498 ::AirAndSimpleBlockBits
const* airAndSimpleBlocks
501 MCAPI
bool tessellateBrewingStandInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
503 MCAPI
bool tessellateBubbleColumnInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
505 MCAPI
bool tessellateCactusInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
508 tessellateCalibratedSculkSensorBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
511 tessellateCameraFacingSpriteInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
513 MCAPI
bool tessellateCampfireBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
515 MCAPI
bool tessellateCandleCakeInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
517 MCAPI
bool tessellateCandleInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
519 MCAPI
bool tessellateCauldronInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
521 MCAPI
bool tessellateCaveVinesInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
523 MCAPI
bool tessellateChainInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
525 MCAPI
bool tessellateChemistryTableInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
528 tessellateChiseledBookshelfBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
531 tessellateChorusFlowerInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos,
bool render);
533 MCAPI
bool tessellateChorusPlantInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
535 MCAPI
bool tessellateCocoaInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
537 MCAPI
bool tessellateCommandBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
539 MCAPI
bool tessellateComparatorInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
541 MCAPI
bool tessellateComposterBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
543 MCAPI
void tessellateCompoundCreatorFace(
544 ::Tessellator& tessellator,
547 ::TextureUVCoordinateSet
const& uv0,
555 MCAPI
bool tessellateCompoundCreatorInWorld(::Tessellator& t, ::Block
const& b, ::BlockPos
const& p);
557 MCAPI
bool tessellateCoralFanHangInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
559 MCAPI
bool tessellateCoralFanInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
561 MCAPI
bool tessellateCrossInWorld(
562 ::Tessellator& tessellator,
563 ::Block
const& block,
565 bool forceDoubleSide,
566 ::BlockTessellator::CrossTextureReverseSideMapping reverseSideMapping,
568 ::BlockTessellator::CrossTextureWidth width
571 MCAPI
void tessellateCrossTexture(
572 ::Tessellator& tessellator,
573 ::TextureUVCoordinateSet
const& tex1,
574 ::TextureUVCoordinateSet
const& tex2,
576 ::Block
const& block,
578 ::BlockTessellator::CrossTextureWidth width,
579 ::BlockTessellator::CrossTextureReverseSideMapping reverseSideMapping,
580 bool forceDoubleSided
583 MCAPI
void tessellateCrossTextureDown(
584 ::Tessellator& tessellator,
585 ::TextureUVCoordinateSet
const& tex1,
586 ::TextureUVCoordinateSet
const& tex2,
588 bool renderBothSides,
589 ::Block
const& block,
591 ::BlockTessellator::CrossTextureWidth width
594 MCAPI
void tessellateCrossTextureEast(
595 ::Tessellator& tessellator,
596 ::TextureUVCoordinateSet
const& tex1,
597 ::TextureUVCoordinateSet
const& tex2,
599 bool renderBothSides,
600 ::Block
const& block,
602 ::BlockTessellator::CrossTextureWidth width
605 MCAPI
void tessellateCrossTextureNorth(
606 ::Tessellator& tessellator,
607 ::TextureUVCoordinateSet
const& tex1,
608 ::TextureUVCoordinateSet
const& tex2,
610 bool renderBothSides,
611 ::Block
const& block,
613 ::BlockTessellator::CrossTextureWidth width
616 MCAPI
void tessellateCrossTextureSouth(
617 ::Tessellator& tessellator,
618 ::TextureUVCoordinateSet
const& tex1,
619 ::TextureUVCoordinateSet
const& tex2,
621 bool renderBothSides,
622 ::Block
const& block,
624 ::BlockTessellator::CrossTextureWidth width
627 MCAPI
void tessellateCrossTextureUp(
628 ::Tessellator& tessellator,
629 ::TextureUVCoordinateSet
const& tex1,
630 ::TextureUVCoordinateSet
const& tex2,
632 bool renderBothSides,
633 ::Block
const& block,
635 ::BlockTessellator::CrossTextureWidth width,
636 ::BlockTessellator::CrossTextureReverseSideMapping reverseSideMapping
639 MCAPI
void tessellateCrossTextureWest(
640 ::Tessellator& tessellator,
641 ::TextureUVCoordinateSet
const& tex1,
642 ::TextureUVCoordinateSet
const& tex2,
644 bool renderBothSides,
645 ::Block
const& block,
647 ::BlockTessellator::CrossTextureWidth width
650 MCAPI
bool tessellateDiodeInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
652 MCAPI
bool tessellateDoorInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
654 MCAPI
bool tessellateDoublePlantInWorld(
655 ::Tessellator& tessellator,
656 ::Block
const& block,
657 ::BlockShape blockShape,
659 bool forceDoubleSided,
661 bool applyAmbientOcclusion,
662 ::BlockTessellator::CrossTextureReverseSideMapping reverseSideMapping,
663 ::BlockTessellator::CrossTextureWidth width
666 MCAPI
bool tessellateDoubleThinFenceInWorld(
667 ::Tessellator& tessellator,
668 ::Block
const& block,
673 MCAPI
bool tessellateDragonEgg(
674 ::Tessellator& tessellator,
675 ::Block
const& block,
676 ::BlockPos
const& pos,
682 tessellateDriedGhastInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& position);
684 MCAPI
bool tessellateDriedKelpBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
686 MCAPI
bool tessellateDustInWorld(::Tessellator& tessellator, ::Block
const& b, ::BlockPos
const& p);
688 MCAPI
void tessellateEast(
689 ::Tessellator& tessellator,
690 ::Block
const& block,
692 ::TextureUVCoordinateSet
const& intex
695 MCAPI
bool tessellateEndGatewayInWorld(::Tessellator& tessellator, ::Block
const& pos, ::BlockPos
const&);
697 MCAPI
bool tessellateEndPortalFrameInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
699 MCAPI
bool tessellateEndPortalInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
702 tessellateEndRodAppended(::Tessellator& tessellator, ::Block
const& block, ::BlockGraphics
const& blockGraphics);
705 tessellateEndRodDown(::Tessellator& tessellator, ::BlockPos
const& p, ::TextureUVCoordinateSet
const& tex);
708 tessellateEndRodEast(::Tessellator& tessellator, ::BlockPos
const& p, ::TextureUVCoordinateSet
const& tex);
711 tessellateEndRodGui(::Tessellator& tessellator, ::Block
const& block, ::BlockGraphics
const& blockGraphics);
713 MCAPI
bool tessellateEndRodInWorld(::Tessellator& tessellator, ::Block
const& b, ::BlockPos
const& p);
716 tessellateEndRodNorth(::Tessellator& tessellator, ::BlockPos
const& p, ::TextureUVCoordinateSet
const& tex);
719 tessellateEndRodSouth(::Tessellator& tessellator, ::BlockPos
const& p, ::TextureUVCoordinateSet
const& tex);
721 MCAPI
void tessellateEndRodUp(::Tessellator& tessellator, ::BlockPos
const& p, ::TextureUVCoordinateSet
const& tex);
724 tessellateEndRodWest(::Tessellator& tessellator, ::BlockPos
const& p, ::TextureUVCoordinateSet
const& tex);
726 MCAPI
bool tessellateExtraDataInWorld(::Tessellator& tessellator, ::Block
const& p, ::BlockPos
const&);
728 MCAPI
bool tessellateEyeblossomInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
730 MCAPI
void tessellateFaceDown(
731 ::Tessellator& tessellator,
732 ::Block
const& block,
734 ::TextureUVCoordinateSet
const& intex
737 MCAPI
void tessellateFaceUp(
738 ::Tessellator& tessellator,
739 ::Block
const& block,
741 ::TextureUVCoordinateSet
const& intex
744 MCAPI
void tessellateFaceWithUVs(
745 ::Tessellator& tessellator,
746 ::Block
const& block,
748 ::TextureUVCoordinateSet
const& tex,
756 MCAPI
bool tessellateFacingBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
758 MCAPI
bool tessellateFenceGateInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
760 MCAPI
bool tessellateFenceInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
762 MCAPI
bool tessellateFireInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos p);
764 MCAPI
bool tessellateFireflyBushInWorld(
765 ::Tessellator& tessellator,
766 ::Block
const& block,
767 ::BlockPos
const& pos,
768 ::BlockGraphics
const& blockGraphics
771 MCAPI
bool tessellateFlowerBedBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
773 MCAPI
bool tessellateFlowerPotInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
775 MCAPI
bool tessellateFrogSpawnInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
778 tessellateGrindstoneBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
780 MCAPI
void tessellateGrindstoneLegInWorld(
781 ::Tessellator& tessellator,
782 ::Block
const& block,
783 ::BlockPos
const& pos,
786 ::Direction::Type attachmentDir
789 MCAPI
bool tessellateHoneyBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
791 MCAPI
bool tessellateHopperInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
794 tessellateHopperInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos,
bool render);
797 tessellateInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos,
bool useCalcWithCache);
799 MCAPI
void tessellateInWorld(
800 ::Tessellator& tessellator,
801 ::Block
const& block,
802 ::BlockPos
const& pos,
803 ::TextureUVCoordinateSet
const& fixedTexture
806 MCAPI
bool tessellateIndividualCandleInWorld(
807 ::Tessellator& tessellator,
808 ::Block
const& block,
814 MCAPI
bool tessellateIndividualSeaPickleInWorld(
815 ::Tessellator& tessellator,
816 ::Block
const& block,
822 MCAPI
bool tessellateIndividualTurtleEggInWorld(
823 ::Tessellator& tessellator,
824 ::Block
const& block,
831 MCAPI
bool tessellateItemFrameInWorld(
832 ::Tessellator& tessellator,
833 ::Block
const& block,
834 ::BlockPos
const& pos,
838 MCAPI
bool tessellateKelpInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
840 MCAPI
bool tessellateLadderInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
842 MCAPI
bool tessellateLanternBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
844 MCAPI
bool tessellateLecternBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
846 MCAPI
bool tessellateLeverInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
849 tessellateLightningRodDown(::Tessellator& tessellator, ::BlockPos
const& p, ::TextureUVCoordinateSet
const& tex);
852 tessellateLightningRodEast(::Tessellator& tessellator, ::BlockPos
const& p, ::TextureUVCoordinateSet
const& tex);
855 tessellateLightningRodGui(::Tessellator& tessellator, ::Block
const& block, ::BlockGraphics
const& blockGraphics);
857 MCAPI
bool tessellateLightningRodInWorld(::Tessellator& tessellator, ::Block
const& b, ::BlockPos
const& p);
860 tessellateLightningRodNorth(::Tessellator& tessellator, ::BlockPos
const& p, ::TextureUVCoordinateSet
const& tex);
863 tessellateLightningRodSouth(::Tessellator& tessellator, ::BlockPos
const& p, ::TextureUVCoordinateSet
const& tex);
866 tessellateLightningRodUp(::Tessellator& tessellator, ::BlockPos
const& p, ::TextureUVCoordinateSet
const& tex);
869 tessellateLightningRodWest(::Tessellator& tessellator, ::BlockPos
const& p, ::TextureUVCoordinateSet
const& tex);
871 MCAPI
bool tessellateLilypadInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
873 MCAPI
bool tessellateLiquidInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
876 tessellateMangrovePropaguleHangingInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
878 MCAPI
bool tessellateMangrovePropaguleInWorld(
879 ::Tessellator& tessellator,
880 ::Block
const& block,
885 MCAPI
bool tessellateMangroveRootInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
887 MCAPI
bool tessellateMultiFaceBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
889 MCAPI
void tessellateNorth(
890 ::Tessellator& tessellator,
891 ::Block
const& block,
893 ::TextureUVCoordinateSet
const& intex
896 MCAPI
bool tessellatePaleMossCarpetInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
898 MCAPI
bool tessellatePistonInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
900 MCAPI
bool tessellatePitcherCropInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
902 MCAPI
void tessellatePitcherCropPodInWorld(
903 ::Tessellator& tessellator,
904 ::Block
const& block,
907 ::BlockGraphics
const& blockGraphics
910 MCAPI
bool tessellatePitcherPlantInWorld(
911 ::Tessellator& tessellator,
912 ::Block
const& block,
913 ::BlockShape
const& blockShape,
917 MCAPI
bool tessellatePointedDripstoneInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
919 MCAPI
bool tessellateRailInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
921 MCAPI
bool tessellateRepeaterInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
924 tessellateRowInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p,
bool forceDoubleSide);
926 MCAPI
void tessellateRowTexture(
927 ::Tessellator& tessellator,
930 ::TextureUVCoordinateSet
const& y,
932 float forceDoubleSide,
937 MCAPI
void tessellateRowTexture(
938 ::Tessellator& tessellator,
939 ::TextureUVCoordinateSet
const& tex1,
940 ::TextureUVCoordinateSet
const& tex2,
941 ::TextureUVCoordinateSet
const& tex3,
942 ::TextureUVCoordinateSet
const& tex4,
949 tessellateScaffoldingBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
951 MCAPI
void tessellateScaffoldingHorizontalPoleInWorld(
952 ::Tessellator& tessellator,
953 ::Block
const& block,
954 ::TextureUVCoordinateSet
const& side,
955 ::TextureUVCoordinateSet
const& bottom,
956 ::BlockPos
const& blockPos,
958 ::Vec3
const& offset,
962 MCAPI
void tessellateScaffoldingVerticalPoleInWorld(
963 ::Tessellator& tessellator,
964 ::Block
const& block,
965 ::TextureUVCoordinateSet
const& tex,
966 ::BlockPos
const& pos,
970 MCAPI
bool tessellateSculkSensorBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
972 MCAPI
bool tessellateSculkShriekerInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
974 MCAPI
bool tessellateSeaPickleInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
976 MCAPI
bool tessellateSeagrassInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
978 MCAPI
bool tessellateShelfBlockInGui(::Tessellator& tessellator, ::Block
const& block);
980 MCAPI
bool tessellateShelfBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
982 MCAPI
void tessellateShulkerBoxFacade(::Tessellator& tessellator, ::Vec3
const& pos);
984 MCAPI
void tessellateSimpleBlockInWorld(
985 ::Tessellator& tessellator,
986 ::Block
const& block,
987 ::BlockPos
const& pos,
988 ::AirAndSimpleBlockBits
const& airAndSimpleBlocks
991 MCAPI
bool tessellateSlimeBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
994 tessellateSmallDripleafBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
997 tessellateSmallDripleafLeaves(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p,
int facing);
1000 tessellateSmallDripleafSides(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p,
int facing);
1003 tessellateSmallDripleafStem(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p,
int facing);
1005 MCAPI
void tessellateSouth(
1006 ::Tessellator& tessellator,
1007 ::Block
const& block,
1009 ::TextureUVCoordinateSet
const& intex
1012 MCAPI
bool tessellateSporeBlossomInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
1014 MCAPI
bool tessellateStairsInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
1016 MCAPI
void tessellateStemDirTexture(
1017 ::Tessellator& tessellator,
1018 ::TextureUVCoordinateSet
const& tex,
1024 MCAPI
bool tessellateStemInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
1026 MCAPI
void tessellateStemTexture(
1027 ::Tessellator& tessellator,
1028 ::TextureUVCoordinateSet
const& tex,
1036 tessellateStoneCutterBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
1038 MCAPI
bool tessellateStructureVoidInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
1041 tessellateSweetBerryBushBlockInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
1043 MCAPI
bool tessellateTerracottaInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
1045 MCAPI
bool tessellateTopSnowInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
1047 MCAPI
void tessellateTorch(
1048 ::Tessellator& tessellator,
1049 ::Block
const& block,
1056 MCAPI
bool tessellateTorchInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
1058 MCAPI
bool tessellateTrapdoorInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
1060 MCAPI
bool tessellateTreeInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
1062 MCAPI
bool tessellateTripwireHookInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
1064 MCAPI
bool tessellateTripwireInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
1066 MCAPI
bool tessellateTurtleEggInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
1068 MCAPI
bool tessellateTwistingVinesInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
1070 MCAPI
bool tessellateVaultInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& pos);
1072 MCAPI
bool tessellateVineInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
1074 MCAPI
bool tessellateWallInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
1076 MCAPI
bool tessellateWeepingVinesInWorld(::Tessellator& tessellator, ::Block
const& block, ::BlockPos
const& p);
1078 MCAPI
void tessellateWest(
1079 ::Tessellator& tessellator,
1080 ::Block
const& block,
1082 ::TextureUVCoordinateSet
const& intex
1085 MCAPI
void updateCache(::Block
const& block, ::BlockPos
const& pos);
1087 MCAPI ~BlockTessellator();
1093 MCAPI
static bool canRender(::BlockShape blockShape);
1099 MCAPI
void* $ctor(::BlockSource* level);
Definition BlockGraphics.h:5
Definition BlockOccluder.h:5
Definition BlockSource.h:73
Definition BlockTessellator.h:5
Definition BlockType.h:84
Definition LightTexture.h:5
Definition ScreenContext.h:5
Definition Tessellator.h:5
Definition TexturePtr.h:7
Definition AirAndSimpleBlockBits.h:5
Definition BlockTessellator.h:22
Definition BlockTessellator.h:24