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