LeviLamina
Loading...
Searching...
No Matches
BlockTessellator.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
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"
27
28// auto generated forward declare list
29// clang-format off
30class Block;
31class BlockGraphics;
32class BlockOccluder;
33class BlockSource;
34class BlockType;
35class LightTexture;
36class Material;
37class Matrix;
38class ScreenContext;
39class Tessellator;
40class Vec2;
41class Vec3;
43namespace mce { class Mesh; }
44namespace mce { class TexturePtr; }
45namespace mce { struct Radian; }
46// clang-format on
47
48class BlockTessellator {
49public:
50 // BlockTessellator inner types declare
51 // clang-format off
52 struct LocalRegistry;
53 struct UVOverride;
54 // clang-format on
55
56 // BlockTessellator inner types define
57 enum class CrossTextureWidth : uchar {
58 Normal = 0,
59 Wide = 1,
60 };
61
62 enum class CrossTextureReverseSideMapping : uchar {
63 Mirrored = 0,
64 Normal = 1,
65 };
66
67 enum class BambooFenceSlatPieceType : int {
68 LeftSidePiece = 0,
69 CenterPiece = 1,
70 RightSidePiece = 2,
71 };
72
73 enum class FenceGatePieceType : int {
74 Post = 0,
75 ClosedInnerLeftPost = 1,
76 ClosedInnerRightPost = 2,
77 Slat = 3,
78 OpenedInnerLeftPost = 4,
79 OpenedInnerRightPost = 5,
80 };
81
82 struct LocalRegistry {
83 public:
84 // member variables
85 // NOLINTBEGIN
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;
90 // NOLINTEND
91 };
92
93 struct UVOverride {
94 public:
95 // member variables
96 // NOLINTBEGIN
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;
102 // NOLINTEND
103 };
104
105public:
106 // member variables
107 // NOLINTBEGIN
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;
148 // NOLINTEND
149
150public:
151 // prevent constructor by default
152 BlockTessellator();
153
154public:
155 // member functions
156 // NOLINTBEGIN
157 MCAPI explicit BlockTessellator(::BlockSource* level);
158
159 MCAPI uchar _faceForRotation(uchar originalFace, ::Facing::Rotation rotation) const;
160
161 MCAPI ::BrightnessPair _getLightColorForWater(::BlockPos const& pos, ::BrightnessPair insideBlock);
162
163 MCAPI ::TextureUVCoordinateSet const& _getMappedTexture(::Block const& block, uchar face) const;
164
165 MCAPI ::TextureUVCoordinateSet const& _getTexture(
166 ::BlockPos const& pos,
167 ::Block const& block,
168 uchar face,
169 int forcedVariant,
170 ::BlockGraphics const* graphicsHint
171 ) const;
172
173 MCAPI void _pbrTextureId(::Tessellator& tessellator, ushort const& pbrTextureDataHandle) const;
174
175 MCAPI void _prepareFixedColorsWithFlatAO(::Block const& block, ::BlockPos const& pos);
176
177 MCAPI void _preparePolyCross(::Tessellator& tessellator, ::BlockPos const& p, ::Block const& block);
178
179 MCAPI ::Vec3 _preparePolyCrossAndModifyPos(::Tessellator& tessellator, ::BlockPos const& p, ::Block const& block);
180
181 MCAPI ::Vec3 _rotateBlockPos(::Vec3 const& point, ::Facing::Rotation rotation) const;
182
183 MCAPI void _rotateVertsAroundPoint(
184 ::std::array<::Vec3, 4>& vertices,
185 ::Vec3 const& rotationPoint,
186 ::BlockGeometry::Axis axis,
187 ::mce::Radian angle
188 );
189
190 MCAPI void _setBambooFencePostTexture(::TextureUVCoordinateSet const& bambooFenceTex);
191
192 MCAPI void _setBambooFenceSlatTextureGui(
193 ::TextureUVCoordinateSet const& bambooFenceTex,
194 ::BlockTessellator::BambooFenceSlatPieceType type
195 );
196
197 MCAPI void _setShapeAndTessellate(
198 ::Tessellator& tessellator,
199 ::Vec3 const& min,
200 ::Vec3 const& max,
201 ::Block const& block,
202 ::BlockPos const& pos
203 );
204
205 MCAPI void _swapShapeAxes(bool x, bool y, bool z);
206
207 MCAPI void _tessellateAllFaces(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
208
209 MCAPI void _tessellateBambooFenceGui(
210 ::Tessellator& tessellator,
211 ::Block const& block,
212 ::BlockPos const& p,
213 bool isInventoryIcon,
214 float lightMultiplier,
215 float alphaMultiplier,
216 float c10,
217 float c2
218 );
219
220 MCAPI void _tessellateBambooFenceSlatsInWorld(
221 ::Tessellator& tessellator,
222 ::Block const& block,
223 ::BlockPos const& p,
224 uchar facing
225 );
226
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,
234 int forcedVariant
235 );
236
237 MCAPI bool _tessellateBlockInWorldWithAmbienceOcclusion(
238 ::Tessellator& tessellator,
239 ::Block const& block,
240 ::BlockPos p,
241 ::mce::Color const& base,
242 ::BlockOccluder* occluder,
243 ::std::bitset<6> faces,
244 int forcedVariant
245 );
246
247 MCAPI void _tessellateCalibratedSculkSensorAmethystCrystalInWorld(
248 ::Tessellator& tessellator,
249 ::Block const& block,
250 ::BlockPos const& p
251 );
252
253 MCAPI void _tessellateFenceGateGui(
254 ::Tessellator& tessellator,
255 ::Block const& block,
256 ::BlockPos const& p,
257 bool isInventoryIcon,
258 float lightMultiplier,
259 float alphaMultiplier,
260 float c10,
261 float c2
262 );
263
264 MCAPI bool _tessellateFixedCrossTexture(
265 ::TextureUVCoordinateSet const& tex,
266 ::Tessellator& tessellator,
267 ::Block const& block,
268 ::AABB const& boundingBox,
269 ::BlockPos const& pos
270 );
271
272 MCAPI void _tessellateForInventory(
273 ::Tessellator& tessellator,
274 ::Block const& block,
275 ::BlockPos const& pos,
276 float lightMultiplier,
277 float alphaMultiplier,
278 float c10,
279 float c2
280 );
281
282 MCAPI void _tessellateSculkSensorTendrilsInWorld(
283 ::Tessellator& tessellator,
284 ::Block const& block,
285 ::BlockPos const& p,
286 uchar tessellationType
287 );
288
289 MCAPI void _tex1(::Tessellator& tessellator, ::Vec2 const& uv);
290
291 MCAPI void
292 _trySetFenceGateTexture(::Block const& block, ::BlockPos const& p, ::BlockTessellator::FenceGatePieceType type);
293
294 MCAPI void appendTessellatedBlock(::Tessellator& tessellator, ::Block const& block);
295
296 MCAPI void buildBiomeWeights(::BlockPos const& pointPos);
297
298 MCAPI ::AABB const& getCurrentShape();
299
300 MCAPI ::mce::Mesh& getMeshForBlock(::Tessellator& tessellator, ::Block const& block);
301
302 MCAPI ::mce::Mesh& getMeshForBlockInWorld(
303 ::Tessellator& tessellator,
304 ::Block const& block,
305 ::BlockPos& blockPos,
306 ::BlockRenderLayer layer,
307 void const* owner,
308 bool useOccluder,
309 bool useRegion,
310 ::LightTexture const& lightTexture
311 );
312
313 MCAPI float getWaterHeight(::BlockPos const& pos, ::Material const& material, ::BlockPos const& originalBlockPos);
314
315 MCAPI void moveCurrentShape(::Vec3 const& offset);
316
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
324 );
325
326 MCAPI bool rotateCommandBlockFaces(::Block const& block);
327
328 MCAPI void setRegion(::BlockSource& region);
329
330 MCAPI void tessellateAll(
331 ::Tessellator& tessellator,
332 ::Block const& block,
333 ::Vec3 const& p,
334 ::TextureUVCoordinateSet const& tex
335 );
336
337 MCAPI bool tessellateAmethystCluster(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
338
339 MCAPI bool
340 tessellateAnvilInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos, bool render);
341
342 MCAPI float tessellateAnvilPiece(
343 ::Tessellator& tessellator,
344 ::Block const& block,
345 ::BlockPos const& p,
346 ::AnvilPart part,
347 float bottom,
348 float width,
349 float height,
350 float length,
351 bool rotate,
352 bool render,
353 ::buffer_span<::Flip> faces
354 );
355
356 MCAPI bool tessellateAzaleaBlockInWorld(
357 ::Tessellator& tessellator,
358 ::Block const& block,
359 ::BlockPos const& pos,
360 bool forFlowerPot
361 );
362
363 MCAPI bool
364 tessellateBambooSaplingBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
365
366 MCAPI bool tessellateBambooStalkBlockInWorld(
367 ::Tessellator& tessellator,
368 ::Block const& block,
369 ::BlockPos const& pos,
370 bool forFlowerPot
371 );
372
373 MCAPI void tessellateBambooStemInWorld(
374 ::Tessellator& tessellator,
375 ::Block const& block,
376 ::BlockPos const& pos,
377 ::BlockGraphics const& blockGraphics,
378 float diameter,
379 float sideVariantOffset,
380 float verticalPortion
381 );
382
383 MCAPI void tessellateBambooTopSideLeafInWorld(
384 ::Tessellator& tessellator,
385 ::Vec3 leafPos,
386 float width,
387 float u0,
388 float u1,
389 float v0,
390 float v1,
391 bool flipped
392 );
393
394 MCAPI void tessellateBeacon(
395 ::Tessellator& tessellator,
396 ::Block const& block,
397 float lightMultiplier,
398 float alphaMultiplier,
399 ::Vec3 const& vOffset
400 );
401
402 MCAPI bool tessellateBeaconInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
403
404 MCAPI bool tessellateBellBlockHangingBetweenInWorld(
405 ::Tessellator& tessellator,
406 ::Block const& block,
407 ::BlockPos const& pos,
408 bool rotate,
409 ::Direction::Type dir
410 );
411
412 MCAPI bool tessellateBellBlockHangingOneSideInWorld(
413 ::Tessellator& tessellator,
414 ::Block const& block,
415 ::BlockPos const& pos,
416 bool rotate,
417 ::Direction::Type dir
418 );
419
420 MCAPI bool
421 tessellateBellBlockHangingTopInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
422
423 MCAPI bool tessellateBellBlockStandingInWorld(
424 ::Tessellator& tessellator,
425 ::Block const& block,
426 ::BlockPos const& pos,
427 bool rotate,
428 ::Direction::Type dir
429 );
430
431 MCAPI void tessellateBellBlockStandingLegInWorld(
432 ::Tessellator& tessellator,
433 ::Block const& block,
434 ::BlockPos const& pos,
435 ::BlockGraphics const& blockGraphics,
436 bool rotate
437 );
438
439 MCAPI bool tessellateBigDripleafBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
440
441 MCAPI void tessellateBigDripleafFront(
442 ::Tessellator& tessellator,
443 ::Block const& block,
444 ::BlockPos const& p,
445 ::BigDripleafTilt tilt,
446 int facing
447 );
448
449 MCAPI void tessellateBigDripleafSide(
450 ::Tessellator& tessellator,
451 ::Block const& block,
452 ::BlockPos const& p,
453 ::BigDripleafTilt tilt,
454 int facing
455 );
456
457 MCAPI void
458 tessellateBigDripleafStem(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p, int facing);
459
460 MCAPI void tessellateBigDripleafTop(
461 ::Tessellator& tessellator,
462 ::Block const& block,
463 ::BlockPos const& p,
464 ::BigDripleafTilt tilt,
465 int facing
466 );
467
468 MCAPI bool tessellateBlockInWorld(
469 ::Tessellator& tessellator,
470 ::Block const& block,
471 ::BlockPos const& pos,
472 ::std::bitset<6> faces,
473 ::AirAndSimpleBlockBits const* airAndSimpleBlocks
474 );
475
476 MCAPI bool tessellateBrewingStandInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
477
478 MCAPI bool tessellateBubbleColumnInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
479
480 MCAPI bool tessellateCactusInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
481
482 MCAPI bool
483 tessellateCalibratedSculkSensorBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
484
485 MCAPI bool
486 tessellateCameraFacingSpriteInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
487
488 MCAPI bool tessellateCampfireBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
489
490 MCAPI bool tessellateCandleInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
491
492 MCAPI bool tessellateCauldronInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
493
494 MCAPI bool tessellateCaveVinesInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
495
496 MCAPI bool tessellateChainInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
497
498 MCAPI bool tessellateChemistryTableInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
499
500 MCAPI bool
501 tessellateChiseledBookshelfBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
502
503 MCAPI bool
504 tessellateChorusFlowerInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos, bool render);
505
506 MCAPI bool tessellateChorusPlantInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
507
508 MCAPI bool tessellateCocoaInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
509
510 MCAPI bool tessellateComparatorInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
511
512 MCAPI bool tessellateComposterBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
513
514 MCAPI void tessellateCompoundCreatorFace(
515 ::Tessellator& tessellator,
516 ::Block const& block,
517 ::Vec3 const& p,
518 ::TextureUVCoordinateSet const& tex,
519 ::Vec2 uv0,
520 ::Vec2 uv1,
521 int face,
522 bool inward,
523 ::Matrix* mat
524 );
525
526 MCAPI bool tessellateCompoundCreatorInWorld(::Tessellator& t, ::Block const& b, ::BlockPos const& p);
527
528 MCAPI bool tessellateCoralFanHangInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
529
530 MCAPI bool tessellateCoralFanInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
531
532 MCAPI bool tessellateCrossInWorld(
533 ::Tessellator& tessellator,
534 ::Block const& block,
535 ::BlockPos const& p,
536 bool forceDoubleSide,
537 ::BlockTessellator::CrossTextureReverseSideMapping reverseSideMapping,
538 float scale,
539 ::BlockTessellator::CrossTextureWidth width
540 );
541
542 MCAPI void tessellateCrossTexture(
543 ::Tessellator& tessellator,
544 ::TextureUVCoordinateSet const& tex,
545 ::Vec3 const& pos,
546 ::Block const& block,
547 bool forceDoubleSided,
548 ::BlockTessellator::CrossTextureReverseSideMapping reverseSideMapping,
549 float scale,
550 ::BlockTessellator::CrossTextureWidth width
551 );
552
553 MCAPI void tessellateCrossTexture(
554 ::Tessellator& tessellator,
555 ::TextureUVCoordinateSet const& tex1,
556 ::TextureUVCoordinateSet const& tex2,
557 ::Vec3 const& pos,
558 ::Block const& block,
559 float scale,
560 ::BlockTessellator::CrossTextureWidth width,
561 ::BlockTessellator::CrossTextureReverseSideMapping reverseSideMapping,
562 bool forceDoubleSided
563 );
564
565 MCAPI void tessellateCrossTextureDown(
566 ::Tessellator& tessellator,
567 ::TextureUVCoordinateSet const& tex1,
568 ::TextureUVCoordinateSet const& tex2,
569 ::Vec3 const& pos,
570 bool renderBothSides,
571 ::Block const& block,
572 float scale,
573 ::BlockTessellator::CrossTextureWidth width
574 );
575
576 MCAPI void tessellateCrossTextureEast(
577 ::Tessellator& tessellator,
578 ::TextureUVCoordinateSet const& tex1,
579 ::TextureUVCoordinateSet const& tex2,
580 ::Vec3 const& pos,
581 bool renderBothSides,
582 ::Block const& block,
583 float scale,
584 ::BlockTessellator::CrossTextureWidth width
585 );
586
587 MCAPI void tessellateCrossTextureNorth(
588 ::Tessellator& tessellator,
589 ::TextureUVCoordinateSet const& tex1,
590 ::TextureUVCoordinateSet const& tex2,
591 ::Vec3 const& pos,
592 bool renderBothSides,
593 ::Block const& block,
594 float scale,
595 ::BlockTessellator::CrossTextureWidth width
596 );
597
598 MCAPI void tessellateCrossTextureSouth(
599 ::Tessellator& tessellator,
600 ::TextureUVCoordinateSet const& tex1,
601 ::TextureUVCoordinateSet const& tex2,
602 ::Vec3 const& pos,
603 bool renderBothSides,
604 ::Block const& block,
605 float scale,
606 ::BlockTessellator::CrossTextureWidth width
607 );
608
609 MCAPI void tessellateCrossTextureUp(
610 ::Tessellator& tessellator,
611 ::TextureUVCoordinateSet const& tex1,
612 ::TextureUVCoordinateSet const& tex2,
613 ::Vec3 const& pos,
614 bool renderBothSides,
615 ::Block const& block,
616 float scale,
617 ::BlockTessellator::CrossTextureWidth width,
618 ::BlockTessellator::CrossTextureReverseSideMapping reverseSideMapping
619 );
620
621 MCAPI void tessellateCrossTextureWest(
622 ::Tessellator& tessellator,
623 ::TextureUVCoordinateSet const& tex1,
624 ::TextureUVCoordinateSet const& tex2,
625 ::Vec3 const& pos,
626 bool renderBothSides,
627 ::Block const& block,
628 float scale,
629 ::BlockTessellator::CrossTextureWidth width
630 );
631
632 MCAPI bool tessellateDiodeInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
633
634 MCAPI bool tessellateDoorInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
635
636 MCAPI bool tessellateDoublePlantInWorld(
637 ::Tessellator& tessellator,
638 ::Block const& block,
639 ::BlockShape blockShape,
640 ::BlockPos const& p,
641 bool forceDoubleSided,
642 ::Vec3 offset,
643 bool applyAmbientOcclusion,
644 ::BlockTessellator::CrossTextureReverseSideMapping reverseSideMapping,
645 ::BlockTessellator::CrossTextureWidth width
646 );
647
648 MCAPI bool tessellateDoubleThinFenceInWorld(
649 ::Tessellator& tessellator,
650 ::Block const& block,
651 ::BlockPos const& p,
652 bool singleSide
653 );
654
655 MCAPI bool tessellateDragonEgg(
656 ::Tessellator& tessellator,
657 ::Block const& block,
658 ::BlockPos const& pos,
659 bool render,
660 int allowedFaces
661 );
662
663 MCAPI bool
664 tessellateDriedGhastInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& position);
665
666 MCAPI bool tessellateDriedKelpBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
667
668 MCAPI bool tessellateDustInWorld(::Tessellator& tessellator, ::Block const& b, ::BlockPos const& p);
669
670 MCAPI void tessellateEast(
671 ::Tessellator& tessellator,
672 ::Block const& block,
673 ::Vec3 const& p,
674 ::TextureUVCoordinateSet const& intex
675 );
676
677 MCAPI bool tessellateEndGatewayInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
678
679 MCAPI bool tessellateEndPortalFrameInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
680
681 MCAPI bool tessellateEndPortalInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
682
683 MCAPI void
684 tessellateEndRodAppended(::Tessellator& tessellator, ::Block const& block, ::BlockGraphics const& blockGraphics);
685
686 MCAPI void
687 tessellateEndRodDown(::Tessellator& tessellator, ::BlockPos const& p, ::TextureUVCoordinateSet const& tex);
688
689 MCAPI void
690 tessellateEndRodEast(::Tessellator& tessellator, ::BlockPos const& p, ::TextureUVCoordinateSet const& tex);
691
692 MCAPI void
693 tessellateEndRodGui(::Tessellator& tessellator, ::Block const& block, ::BlockGraphics const& blockGraphics);
694
695 MCAPI bool tessellateEndRodInWorld(::Tessellator& tessellator, ::Block const& b, ::BlockPos const& p);
696
697 MCAPI void
698 tessellateEndRodNorth(::Tessellator& tessellator, ::BlockPos const& p, ::TextureUVCoordinateSet const& tex);
699
700 MCAPI void
701 tessellateEndRodSouth(::Tessellator& tessellator, ::BlockPos const& p, ::TextureUVCoordinateSet const& tex);
702
703 MCAPI void tessellateEndRodUp(::Tessellator& tessellator, ::BlockPos const& p, ::TextureUVCoordinateSet const& tex);
704
705 MCAPI void
706 tessellateEndRodWest(::Tessellator& tessellator, ::BlockPos const& p, ::TextureUVCoordinateSet const& tex);
707
708 MCAPI bool tessellateExtraDataInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
709
710 MCAPI bool tessellateEyeblossomInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
711
712 MCAPI void tessellateFaceDown(
713 ::Tessellator& tessellator,
714 ::Block const& block,
715 ::Vec3 const& p,
716 ::TextureUVCoordinateSet const& intex
717 );
718
719 MCAPI void tessellateFaceUp(
720 ::Tessellator& tessellator,
721 ::Block const& block,
722 ::Vec3 const& p,
723 ::TextureUVCoordinateSet const& intex
724 );
725
726 MCAPI void tessellateFaceWithUVs(
727 ::Tessellator& tessellator,
728 ::Block const& block,
729 ::Vec3 const& p,
730 ::TextureUVCoordinateSet const& tex,
731 float u0,
732 float v0,
733 float u1,
734 float v1,
735 int face
736 );
737
738 MCAPI bool tessellateFacingBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
739
740 MCAPI bool tessellateFenceGateInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
741
742 MCAPI bool tessellateFenceInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
743
744 MCAPI bool tessellateFireInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos p);
745
746 MCAPI bool tessellateFireflyBushInWorld(
747 ::Tessellator& tessellator,
748 ::Block const& block,
749 ::BlockPos const& pos,
750 ::BlockGraphics const& blockGraphics
751 );
752
753 MCAPI bool tessellateFlowerBedBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
754
755 MCAPI bool tessellateFlowerPotInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
756
757 MCAPI bool tessellateFrogSpawnInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
758
759 MCAPI bool
760 tessellateGrindstoneBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
761
762 MCAPI void tessellateGrindstoneLegInWorld(
763 ::Tessellator& tessellator,
764 ::Block const& block,
765 ::BlockPos const& pos,
766 bool attached,
767 bool rotate,
768 ::Direction::Type attachmentDir
769 );
770
771 MCAPI bool tessellateHeavyCoreInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
772
773 MCAPI bool tessellateHoneyBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
774
775 MCAPI bool tessellateHopperInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
776
777 MCAPI bool
778 tessellateHopperInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos, bool render);
779
780 MCAPI bool
781 tessellateInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos, bool useCalcWithCache);
782
783 MCAPI bool tessellateIndividualCandleInWorld(
784 ::Tessellator& tessellator,
785 ::Block const& block,
786 ::Vec3 const& p,
787 float height,
788 ::Vec3 offset
789 );
790
791 MCAPI bool tessellateIndividualSeaPickleInWorld(
792 ::Tessellator& tessellator,
793 ::Block const& block,
794 ::Vec3 const& p,
795 double height,
796 ::Vec3 offset
797 );
798
799 MCAPI bool tessellateIndividualTurtleEggInWorld(
800 ::Tessellator& tessellator,
801 ::Block const& block,
802 ::Vec3 const& p,
803 ::Vec3 from,
804 ::Vec3 to,
805 int eggNum
806 );
807
808 MCAPI bool tessellateItemFrameInWorld(
809 ::Tessellator& tessellator,
810 ::Block const& block,
811 ::BlockPos const& pos,
812 bool ignoreLighting
813 );
814
815 MCAPI bool tessellateKelpInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
816
817 MCAPI bool tessellateLadderInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
818
819 MCAPI bool tessellateLanternBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
820
821 MCAPI bool tessellateLecternBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
822
823 MCAPI bool tessellateLeverInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
824
825 MCAPI void
826 tessellateLightningRodDown(::Tessellator& tessellator, ::BlockPos const& p, ::TextureUVCoordinateSet const& tex);
827
828 MCAPI void
829 tessellateLightningRodEast(::Tessellator& tessellator, ::BlockPos const& p, ::TextureUVCoordinateSet const& tex);
830
831 MCAPI void
832 tessellateLightningRodGui(::Tessellator& tessellator, ::Block const& block, ::BlockGraphics const& blockGraphics);
833
834 MCAPI void
835 tessellateLightningRodNorth(::Tessellator& tessellator, ::BlockPos const& p, ::TextureUVCoordinateSet const& tex);
836
837 MCAPI void
838 tessellateLightningRodSouth(::Tessellator& tessellator, ::BlockPos const& p, ::TextureUVCoordinateSet const& tex);
839
840 MCAPI void
841 tessellateLightningRodUp(::Tessellator& tessellator, ::BlockPos const& p, ::TextureUVCoordinateSet const& tex);
842
843 MCAPI void
844 tessellateLightningRodWest(::Tessellator& tessellator, ::BlockPos const& p, ::TextureUVCoordinateSet const& tex);
845
846 MCAPI bool tessellateLilypadInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
847
848 MCAPI bool tessellateLiquidInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
849
850 MCAPI bool
851 tessellateMangrovePropaguleHangingInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
852
853 MCAPI bool tessellateMangrovePropaguleInWorld(
854 ::Tessellator& tessellator,
855 ::Block const& block,
856 ::BlockPos const& p,
857 bool forFlowerPot
858 );
859
860 MCAPI bool tessellateMangroveRootInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
861
862 MCAPI bool tessellateMultiFaceBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
863
864 MCAPI void tessellateNorth(
865 ::Tessellator& tessellator,
866 ::Block const& block,
867 ::Vec3 const& p,
868 ::TextureUVCoordinateSet const& intex
869 );
870
871 MCAPI bool tessellatePaleMossCarpetInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
872
873 MCAPI bool tessellatePitcherCropInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
874
875 MCAPI void tessellatePitcherCropLeavesInWorld(
876 ::Tessellator& tessellator,
877 ::Block const& block,
878 ::BlockPos const& p,
879 int growthStage,
880 ::BlockGraphics const& blockGraphics
881 );
882
883 MCAPI void tessellatePitcherCropPodInWorld(
884 ::Tessellator& tessellator,
885 ::Block const& block,
886 ::BlockPos const& p,
887 int growthStage,
888 ::BlockGraphics const& blockGraphics
889 );
890
891 MCAPI bool tessellatePointedDripstoneInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
892
893 MCAPI bool tessellateRailInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
894
895 MCAPI bool tessellateRepeaterInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
896
897 MCAPI bool
898 tessellateRowInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p, bool forceDoubleSide);
899
900 MCAPI void tessellateRowTexture(
901 ::Tessellator& tessellator,
902 ::Block const& block,
903 ::BlockPos const& p,
904 ::TextureUVCoordinateSet const& tex,
905 float x,
906 float y,
907 float z,
908 bool forceDoubleSide
909 );
910
911 MCAPI void tessellateRowTexture(
912 ::Tessellator& tessellator,
913 ::TextureUVCoordinateSet const& tex1,
914 ::TextureUVCoordinateSet const& tex2,
915 ::TextureUVCoordinateSet const& tex3,
916 ::TextureUVCoordinateSet const& tex4,
917 float x,
918 float y,
919 float z
920 );
921
922 MCAPI bool
923 tessellateScaffoldingBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
924
925 MCAPI void tessellateScaffoldingHorizontalPoleInWorld(
926 ::Tessellator& tessellator,
927 ::Block const& block,
928 ::TextureUVCoordinateSet const& side,
929 ::TextureUVCoordinateSet const& bottom,
930 ::BlockPos const& blockPos,
931 ::Flip faceFlip,
932 ::Vec3 const& offset,
933 bool isSupportPole
934 );
935
936 MCAPI void tessellateScaffoldingVerticalPoleInWorld(
937 ::Tessellator& tessellator,
938 ::Block const& block,
939 ::TextureUVCoordinateSet const& tex,
940 ::BlockPos const& pos,
941 ::Flip flip
942 );
943
944 MCAPI bool tessellateSculkSensorBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
945
946 MCAPI bool tessellateSculkShriekerInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
947
948 MCAPI bool tessellateSeaPickleInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
949
950 MCAPI bool tessellateSeagrassInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
951
952 MCAPI bool tessellateShelfBlockInGui(::Tessellator& tessellator, ::Block const& block);
953
954 MCAPI bool tessellateShelfBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
955
956 MCAPI void tessellateShulkerBoxFacade(::Tessellator& tessellator, ::Vec3 const& pos);
957
958 MCAPI void tessellateSimpleBlockInWorld(
959 ::Tessellator& tessellator,
960 ::Block const& block,
961 ::BlockPos const& pos,
962 ::AirAndSimpleBlockBits const& airAndSimpleBlocks
963 );
964
965 MCAPI bool
966 tessellateSmallDripleafBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
967
968 MCAPI void
969 tessellateSmallDripleafLeaves(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p, int facing);
970
971 MCAPI void
972 tessellateSmallDripleafSides(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p, int facing);
973
974 MCAPI void
975 tessellateSmallDripleafStem(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p, int facing);
976
977 MCAPI void tessellateSouth(
978 ::Tessellator& tessellator,
979 ::Block const& block,
980 ::Vec3 const& p,
981 ::TextureUVCoordinateSet const& intex
982 );
983
984 MCAPI bool tessellateSporeBlossomInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
985
986 MCAPI bool tessellateStairsInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
987
988 MCAPI void tessellateStemDirTexture(
989 ::Tessellator& tessellator,
990 ::TextureUVCoordinateSet const& tex,
991 int dir,
992 float h,
993 ::Vec3 const& pos
994 );
995
996 MCAPI bool tessellateStemInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
997
998 MCAPI void tessellateStemTexture(
999 ::Tessellator& tessellator,
1000 ::TextureUVCoordinateSet const& tex,
1001 float h,
1002 float x,
1003 float y,
1004 float z
1005 );
1006
1007 MCAPI bool
1008 tessellateStoneCutterBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
1009
1010 MCAPI bool tessellateStructureVoidInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
1011
1012 MCAPI bool tessellateTerracottaInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
1013
1014 MCAPI void tessellateTorch(
1015 ::Tessellator& tessellator,
1016 ::Block const& block,
1017 ::Vec3 const& pos,
1018 float xxa,
1019 float zza,
1020 float floorHeight
1021 );
1022
1023 MCAPI bool tessellateTorchInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
1024
1025 MCAPI bool tessellateTrapdoorInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
1026
1027 MCAPI bool tessellateTripwireHookInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
1028
1029 MCAPI bool tessellateTripwireInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
1030
1031 MCAPI bool tessellateTurtleEggInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
1032
1033 MCAPI bool tessellateTwistingVinesInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
1034
1035 MCAPI bool tessellateVaultInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
1036
1037 MCAPI void tessellateVerticesAndUVs(
1038 ::Tessellator& tessellator,
1039 ::TextureUVCoordinateSet const& tex,
1040 ::Vec3 const& a,
1041 ::Vec3 const& b,
1042 ::Vec2& first,
1043 ::Vec2& second,
1044 ::Vec2& third,
1045 ::Vec2& fourth,
1046 int face
1047 );
1048
1049 MCAPI bool tessellateVineInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
1050
1051 MCAPI bool tessellateWallInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
1052
1053 MCAPI bool tessellateWeepingVinesInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
1054
1055 MCAPI void tessellateWest(
1056 ::Tessellator& tessellator,
1057 ::Block const& block,
1058 ::Vec3 const& p,
1059 ::TextureUVCoordinateSet const& intex
1060 );
1061
1062 MCAPI ~BlockTessellator();
1063 // NOLINTEND
1064
1065public:
1066 // static functions
1067 // NOLINTBEGIN
1068 MCAPI static bool canRender(::BlockShape blockShape);
1069 // NOLINTEND
1070
1071public:
1072 // constructor thunks
1073 // NOLINTBEGIN
1074 MCAPI void* $ctor(::BlockSource* level);
1075 // NOLINTEND
1076
1077public:
1078 // destructor thunk
1079 // NOLINTBEGIN
1080 MCAPI void $dtor();
1081 // NOLINTEND
1082};
Definition BlockGraphics.h:5
Definition BlockOccluder.h:5
Definition BlockSource.h:71
Definition BlockTessellator.h:5
Definition BlockType.h:84
Definition Block.h:43
Definition LightTexture.h:5
Definition Material.h:8
Definition Matrix.h:10
Definition ScreenContext.h:5
Definition Tessellator.h:5
Definition Vec2.h:5
Definition Vec3.h:10
Definition Mesh.h:7
Definition TexturePtr.h:19
Definition AirAndSimpleBlockBits.h:5
Definition BlockTessellator.h:22
Definition BlockTessellator.h:24
Definition Radian.h:12