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_geo_type/GeoTypeResolver.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/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/BlockRenderLayer.h"
23#include "mc/world/level/block/BlockShape.h"
24#include "mc/world/level/block/BrightnessPair.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 BlockType;
34class LightTexture;
35class Material;
36class Matrix;
37class ScreenContext;
38class Tessellator;
39class Vec2;
40class Vec3;
43namespace mce { class Mesh; }
44namespace mce { class TexturePtr; }
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 Normal = 0,
58 Wide = 1,
59 };
60
61 enum class CrossTextureReverseSideMapping : uchar {
62 Mirrored = 0,
63 Normal = 1,
64 };
65
66 enum class BambooFenceSlatPieceType : int {
67 LeftSidePiece = 0,
68 CenterPiece = 1,
69 RightSidePiece = 2,
70 };
71
72 enum class FenceGatePieceType : int {
73 Post = 0,
74 ClosedInnerLeftPost = 1,
75 ClosedInnerRightPost = 2,
76 Slat = 3,
77 OpenedInnerLeftPost = 4,
78 OpenedInnerRightPost = 5,
79 };
80
81 struct LocalRegistry {
82 public:
83 // member variables
84 // NOLINTBEGIN
85 ::ll::TypedStorage<8, 8, ::BlockType const*> mFire;
86 ::ll::TypedStorage<8, 8, ::Block const*> mRedstoneTorch;
87 ::ll::TypedStorage<8, 8, ::Block const*> mUnlitRedstoneTorch;
88 ::ll::TypedStorage<8, 8, ::Block const*> mObsidian;
89 // NOLINTEND
90 };
91
92 struct UVOverride {
93 public:
94 // member variables
95 // NOLINTBEGIN
96 ::ll::TypedStorage<2, 2, ushort> pbrTextureDataHandle;
97 ::ll::TypedStorage<4, 4, float> u0;
98 ::ll::TypedStorage<4, 4, float> u1;
99 ::ll::TypedStorage<4, 4, float> v0;
100 ::ll::TypedStorage<4, 4, float> v1;
101 // NOLINTEND
102 };
103
104public:
105 // member variables
106 // NOLINTBEGIN
107 ::ll::TypedStorage<1, 1, bool> mRenderingExtra;
108 ::ll::TypedStorage<1, 1, bool> mUseNormals;
109 ::ll::TypedStorage<1, 1, bool> mTextureShiftEnabled;
110 ::ll::TypedStorage<8, 8, ::BlockSource*> mRegion;
111 ::ll::TypedStorage<4, 8, ::mce::framebuilder::FrameLightingModelCapabilities> mLightingModelCapabilities;
112 ::ll::TypedStorage<8, 96, ::TextureUVCoordinateSet> mFixedTexture;
113 ::ll::TypedStorage<1, 1, bool> mSupportsNewVertexFormat;
114 ::ll::TypedStorage<1, 1, bool> mUseFixedTexture;
115 ::ll::TypedStorage<1, 1, bool> mUseOccluder;
116 ::ll::TypedStorage<1, 1, bool> _tmpUseRegion;
117 ::ll::TypedStorage<1, 1, bool> mXFlipTexture;
118 ::ll::TypedStorage<4, 4, int> mRenderingLayer;
119 ::ll::TypedStorage<1, 1, bool> mRenderingGUI;
120 ::ll::TypedStorage<1, 1, bool> mVersionPreTrailsAndTales;
121 ::ll::TypedStorage<1, 1, bool> mUseFixedColor;
122 ::ll::TypedStorage<4, 96, ::std::array<::mce::Color, 6>> mFixedColors;
123 ::ll::TypedStorage<1, 1, bool> mApplyAmbientOcclusion;
124 ::ll::TypedStorage<4, 4, ::BakedBlockLightType> mBakedLighting;
125 ::ll::TypedStorage<1, 1, bool> mForExport;
126 ::ll::TypedStorage<1, 1, bool> mUseCachedCalculation;
127 ::ll::TypedStorage<4, 128, ::mce::Color[8]> mAoColors;
128 ::ll::TypedStorage<1, 8, ::BrightnessPair[4]> mTc;
129 ::ll::TypedStorage<1, 6, ::std::array<::Flip, 6>> mFlipFace;
130 ::ll::TypedStorage<4, 120, ::std::array<::BlockTessellator::UVOverride, 6>> mTextureOverride;
131 ::ll::TypedStorage<8, 1000, ::Block const* [125]> mAmbientOcclusionCacheBlocks;
132 ::ll::TypedStorage<8, 16, ::mce::MaterialPtr> mItemMat;
133 ::ll::TypedStorage<4, 24, ::AABB> mCurrentShapeBB;
134 ::ll::TypedStorage<1, 1, bool> mCurrentShapeSet;
135 ::ll::TypedStorage<8, 8, ::Block const*> mCurrentShapeBlock;
136 ::ll::TypedStorage<4, 12, ::BlockPos> mCurrentShapeBlockPos;
137 ::ll::TypedStorage<4, 4, float> mCurrentScale;
138 ::ll::TypedStorage<8, 64, ::std::unordered_map<uint, ::mce::Mesh>> mBlockMeshes;
139 ::ll::TypedStorage<8, 64, ::std::unordered_map<::BlockTessellatorBlockInWorld, ::mce::Mesh>> mInWorldBlockMeshes;
140 ::ll::TypedStorage<8, 272032, ::BlockTessellatorCache> mBlockCache;
141 ::ll::TypedStorage<8, 64, ::std::function<::Block const&(::BlockPos const&)>> mCachedGetBlock;
142 ::ll::TypedStorage<8, 19288, ::BiomeTintCache> mBiomeWeights;
143 ::ll::TypedStorage<4, 20, ::std::optional<::mce::Color>> mColorOverride;
144 ::ll::TypedStorage<1, 1, bool> mForceOpaque;
145 ::ll::TypedStorage<8, 128, ::BlockTessellatorCustomExtraData::Map> mBlockExtraDataMap;
146 ::ll::TypedStorage<8, 32, ::BlockTessellator::LocalRegistry> mLocalRegistry;
147 ::ll::TypedStorage<8, 64, ::BlockGeoType::GeoTypeResolver> mGeoTypeResolver;
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 void _flipAllFaces(::Facing::Rotation rotation);
160
161 MCAPI float _getLiquidOwnHeight(::BlockPos const& pos, ::Material const& material);
162
163 MCAPI ::TextureUVCoordinateSet const& _getTexture(
164 ::BlockPos const& pos,
165 ::Block const& block,
166 uchar face,
167 int forcedVariant,
168 ::BlockGraphics const* graphicsHint
169 ) const;
170
171 MCAPI void _modifyCurrentShapeAccordingToAttachmentDirection(::Direction::Type attachmentDir);
172
173 MCAPI void _preparePolyCross(::Tessellator& tessellator, ::BlockPos const& p, ::Block const& block);
174
175 MCAPI void _setBambooFencePostTexture(::TextureUVCoordinateSet const& bambooFenceTex);
176
177 MCAPI void _setBambooFenceSlatTextureGui(
178 ::TextureUVCoordinateSet const& bambooFenceTex,
179 ::BlockTessellator::BambooFenceSlatPieceType type
180 );
181
182 MCAPI void _tessellateAllFaces(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
183
184 MCAPI void _tessellateBambooFenceGui(
185 ::Tessellator& tessellator,
186 ::Block const& block,
187 ::BlockPos const& p,
188 bool isInventoryIcon,
189 float lightMultiplier,
190 float alphaMultiplier,
191 float c10,
192 float c2
193 );
194
195 MCAPI void _tessellateBambooFenceSlatsInWorld(
196 ::Tessellator& tessellator,
197 ::Block const& block,
198 ::BlockPos const& p,
199 uchar facing
200 );
201
202 MCAPI bool _tessellateBlockInWorldFlat(
203 ::Tessellator& tessellator,
204 ::Block const& block,
205 ::BlockPos const& pos,
206 ::mce::Color const& base,
207 ::BlockOccluder* occluder,
208 ::std::bitset<6> const faces,
209 int forcedVariant
210 );
211
212 MCAPI bool _tessellateBlockInWorldWithAmbienceOcclusion(
213 ::Tessellator& tessellator,
214 ::Block const& block,
215 ::BlockPos p,
216 ::mce::Color const& base,
217 ::BlockOccluder* occluder,
218 ::std::bitset<6> const faces,
219 int forcedVariant
220 );
221
222 MCAPI void _tessellateCalibratedSculkSensorAmethystCrystalInWorld(
223 ::Tessellator& tessellator,
224 ::Block const& block,
225 ::BlockPos const& p
226 );
227
228 MCAPI void _tessellateFenceGateGui(
229 ::Tessellator& tessellator,
230 ::Block const& block,
231 ::BlockPos const& p,
232 bool isInventoryIcon,
233 float lightMultiplier,
234 float alphaMultiplier,
235 float c10,
236 float c2
237 );
238
239 MCAPI void _tessellateForInventory(
240 ::Tessellator& tessellator,
241 ::Block const& block,
242 ::BlockPos const& pos,
243 float lightMultiplier,
244 float alphaMultiplier,
245 float c10,
246 float c2
247 );
248
249 MCAPI void _tessellateSculkSensorTendrilsInWorld(
250 ::Tessellator& tessellator,
251 ::Block const& block,
252 ::BlockPos const& p,
253 uchar tessellationType
254 );
255
256 MCAPI void _tex1(::Tessellator& tessellator, ::Vec2 const& uv);
257
258 MCAPI void
259 _trySetFenceGateTexture(::Block const& block, ::BlockPos const& p, ::BlockTessellator::FenceGatePieceType type);
260
261 MCAPI void appendTessellatedBlock(::Tessellator& tessellator, ::Block const& block);
262
263 MCAPI void clearBlockCache();
264
265 MCAPI ::AABB const& getCurrentShape();
266
267 MCAPI ::mce::Mesh& getMeshForBlock(::Tessellator& tessellator, ::Block const& block);
268
269 MCAPI ::mce::Mesh& getMeshForBlockInWorld(
270 ::Tessellator& tessellator,
271 ::Block const& block,
272 ::BlockPos& blockPos,
273 ::BlockRenderLayer layer,
274 void const* owner,
275 bool useOccluder,
276 bool useRegion,
277 ::LightTexture const& lightTexture
278 );
279
280 MCAPI float getWaterHeight(::BlockPos const& pos, ::Material const& material, ::BlockPos const& originalBlockPos);
281
282 MCAPI void moveCurrentShape(::Vec3 const& offset);
283
284 MCAPI void renderGuiBlock(
285 ::ScreenContext& screenContext,
286 ::Block const& block,
287 ::BlockGraphics const& blockGraphics,
288 ::mce::TexturePtr const& texture,
289 float lightMultiplier,
290 float alphaMultiplier,
291 ::OffscreenCaptureDescription const& capture
292 );
293
294 MCAPI bool rotateCommandBlockFaces(::Block const& block);
295
296 MCAPI void setRegion(::BlockSource& region);
297
298 MCAPI void tessellateAll(
299 ::Tessellator& tessellator,
300 ::Block const& block,
301 ::Vec3 const& p,
302 ::TextureUVCoordinateSet const& tex
303 );
304
305 MCAPI bool
306 tessellateAnvilInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos, bool render);
307
308 MCAPI float tessellateAnvilPiece(
309 ::Tessellator& tessellator,
310 ::Block const& block,
311 ::BlockPos const& p,
312 ::AnvilPart part,
313 float bottom,
314 float width,
315 float height,
316 float length,
317 bool rotate,
318 bool render,
319 ::buffer_span<::Flip> faces
320 );
321
322 MCAPI bool tessellateAzaleaBlockInWorld(
323 ::Tessellator& tessellator,
324 ::Block const& block,
325 ::BlockPos const& pos,
326 bool forFlowerPot
327 );
328
329 MCAPI bool tessellateBambooBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
330
331 MCAPI bool
332 tessellateBambooSaplingBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
333
334 MCAPI bool tessellateBambooStalkBlockInWorld(
335 ::Tessellator& tessellator,
336 ::Block const& block,
337 ::BlockPos const& pos,
338 bool forFlowerPot
339 );
340
341 MCAPI void tessellateBambooStemInWorld(
342 ::Tessellator& tessellator,
343 ::Block const& block,
344 ::BlockPos const& pos,
345 ::BlockGraphics const& blockGraphics,
346 float const diameter,
347 float const sideVariantOffset,
348 float const verticalPortion
349 );
350
351 MCAPI bool tessellateBeaconInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
352
353 MCAPI bool tessellateBellBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
354
355 MCAPI void tessellateBellBlockStandingLegInWorld(
356 ::Tessellator& tessellator,
357 ::Block const& block,
358 ::BlockPos const& pos,
359 ::BlockGraphics const& blockGraphics,
360 bool const rotate
361 );
362
363 MCAPI bool tessellateBigDripleafBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
364
365 MCAPI bool tessellateBlockInWorld(
366 ::Tessellator& tessellator,
367 ::Block const& block,
368 ::BlockPos const& pos,
369 ::std::bitset<6> const faces,
370 ::AirAndSimpleBlockBits const* airAndSimpleBlocks
371 );
372
373 MCAPI bool tessellateBrewingStandInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
374
375 MCAPI bool tessellateBubbleColumnInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
376
377 MCAPI bool tessellateCactusInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
378
379 MCAPI bool
380 tessellateCalibratedSculkSensorBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
381
382 MCAPI bool
383 tessellateCameraFacingSpriteInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
384
385 MCAPI bool tessellateCampfireBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
386
387 MCAPI bool tessellateCandleCakeInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
388
389 MCAPI bool tessellateCandleInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
390
391 MCAPI bool tessellateCauldronInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
392
393 MCAPI bool tessellateCaveVinesInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
394
395 MCAPI bool tessellateChainInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
396
397 MCAPI bool tessellateChemistryTableInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
398
399 MCAPI bool
400 tessellateChiseledBookshelfBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
401
402 MCAPI bool
403 tessellateChorusFlowerInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos, bool render);
404
405 MCAPI bool tessellateChorusPlantInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
406
407 MCAPI bool tessellateCocoaInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
408
409 MCAPI bool tessellateCommandBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
410
411 MCAPI bool tessellateComparatorInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
412
413 MCAPI bool tessellateComposterBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
414
415 MCAPI void tessellateCompoundCreatorFace(
416 ::Tessellator& tessellator,
417 ::Block const& block,
418 ::Vec3 const& p,
419 ::TextureUVCoordinateSet const& tex,
420 ::Vec2 uv0,
421 ::Vec2 uv1,
422 int const face,
423 bool inward,
424 ::Matrix* mat
425 );
426
427 MCAPI bool tessellateCoralFanHangInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
428
429 MCAPI bool tessellateCoralFanInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
430
431 MCAPI bool tessellateCrossInWorld(
432 ::Tessellator& tessellator,
433 ::Block const& block,
434 ::BlockPos const& p,
435 bool const forceDoubleSide,
436 ::BlockTessellator::CrossTextureReverseSideMapping reverseSideMapping,
437 float scale,
438 ::BlockTessellator::CrossTextureWidth width
439 );
440
441 MCAPI void tessellateCrossTexture(
442 ::Tessellator& tessellator,
443 ::TextureUVCoordinateSet const& tex1,
444 ::TextureUVCoordinateSet const& tex2,
445 ::Vec3 const& pos,
446 ::Block const& block,
447 float scale,
448 ::BlockTessellator::CrossTextureWidth width,
449 ::BlockTessellator::CrossTextureReverseSideMapping reverseSideMapping,
450 bool const forceDoubleSided
451 );
452
453 MCAPI void tessellateCrossTextureUp(
454 ::Tessellator& tessellator,
455 ::TextureUVCoordinateSet const& tex1,
456 ::TextureUVCoordinateSet const& tex2,
457 ::Vec3 const& pos,
458 bool const renderBothSides,
459 ::Block const& block,
460 float scale,
461 ::BlockTessellator::CrossTextureWidth width,
462 ::BlockTessellator::CrossTextureReverseSideMapping reverseSideMapping
463 );
464
465 MCAPI bool tessellateCrystalCluster(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
466
467 MCAPI bool tessellateDiodeInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
468
469 MCAPI bool tessellateDoorInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
470
471 MCAPI bool tessellateDoublePlantInWorld(
472 ::Tessellator& tessellator,
473 ::Block const& block,
474 ::BlockShape const blockShape,
475 ::BlockPos const& p,
476 bool const forceDoubleSided,
477 ::Vec3 offset,
478 bool applyAmbientOcclusion,
479 ::BlockTessellator::CrossTextureReverseSideMapping reverseSideMapping,
480 ::BlockTessellator::CrossTextureWidth width
481 );
482
483 MCAPI bool tessellateDoubleThinFenceInWorld(
484 ::Tessellator& tessellator,
485 ::Block const& block,
486 ::BlockPos const& p,
487 bool singleSide
488 );
489
490 MCAPI bool
491 tessellateDriedGhastInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& position);
492
493 MCAPI bool tessellateDriedKelpBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
494
495 MCAPI bool tessellateDustInWorld(::Tessellator& tessellator, ::Block const& b, ::BlockPos const& p);
496
497 MCAPI void tessellateEast(
498 ::Tessellator& tessellator,
499 ::Block const& block,
500 ::Vec3 const& p,
501 ::TextureUVCoordinateSet const& intex
502 );
503
504 MCAPI bool tessellateEndGatewayInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
505
506 MCAPI bool tessellateEndPortalFrameInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
507
508 MCAPI bool tessellateEndPortalInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
509
510 MCAPI void
511 tessellateEndRodAppended(::Tessellator& tessellator, ::Block const& block, ::BlockGraphics const& blockGraphics);
512
513 MCAPI void
514 tessellateEndRodGui(::Tessellator& tessellator, ::Block const& block, ::BlockGraphics const& blockGraphics);
515
516 MCAPI bool tessellateEndRodInWorld(::Tessellator& tessellator, ::Block const& b, ::BlockPos const& p);
517
518 MCAPI bool tessellateEyeblossomInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
519
520 MCAPI void tessellateFaceDown(
521 ::Tessellator& tessellator,
522 ::Block const& block,
523 ::Vec3 const& p,
524 ::TextureUVCoordinateSet const& intex
525 );
526
527 MCAPI void tessellateFaceUp(
528 ::Tessellator& tessellator,
529 ::Block const& block,
530 ::Vec3 const& p,
531 ::TextureUVCoordinateSet const& intex
532 );
533
534 MCAPI void tessellateFaceWithUVs(
535 ::Tessellator& tessellator,
536 ::Block const& block,
537 ::Vec3 const& p,
538 ::TextureUVCoordinateSet const& tex,
539 float const u0,
540 float const v0,
541 float const u1,
542 float const v1,
543 int const face
544 );
545
546 MCAPI bool tessellateFacingBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
547
548 MCAPI bool tessellateFenceGateInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
549
550 MCAPI bool tessellateFenceInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
551
552 MCAPI bool tessellateFireInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos p);
553
554 MCAPI bool tessellateFireflyBushInWorld(
555 ::Tessellator& tessellator,
556 ::Block const& block,
557 ::BlockPos const& pos,
558 ::BlockGraphics const& blockGraphics
559 );
560
561 MCAPI bool tessellateFlowerBedBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
562
563 MCAPI bool tessellateFlowerPotInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
564
565 MCAPI bool tessellateFrogSpawnInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
566
567 MCAPI bool
568 tessellateGrindstoneBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
569
570 MCAPI void tessellateGrindstoneLegInWorld(
571 ::Tessellator& tessellator,
572 ::Block const& block,
573 ::BlockPos const& pos,
574 bool attached,
575 bool rotate,
576 ::Direction::Type attachmentDir
577 );
578
579 MCAPI bool tessellateHoneyBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
580
581 MCAPI bool tessellateHopperInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
582
583 MCAPI bool
584 tessellateHopperInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos, bool render);
585
586 MCAPI bool
587 tessellateInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos, bool useCalcWithCache);
588
589 MCAPI bool tessellateIndividualCandleInWorld(
590 ::Tessellator& tessellator,
591 ::Block const& block,
592 ::Vec3 const& p,
593 float const height,
594 ::Vec3 const offset
595 );
596
597 MCAPI bool tessellateIndividualSeaPickleInWorld(
598 ::Tessellator& tessellator,
599 ::Block const& block,
600 ::Vec3 const& p,
601 double const height,
602 ::Vec3 const offset
603 );
604
605 MCAPI bool tessellateIndividualTurtleEggInWorld(
606 ::Tessellator& tessellator,
607 ::Block const& block,
608 ::Vec3 const& p,
609 ::Vec3 const from,
610 ::Vec3 const to,
611 int const eggNum
612 );
613
614 MCAPI bool tessellateItemFrameInWorld(
615 ::Tessellator& tessellator,
616 ::Block const& block,
617 ::BlockPos const& pos,
618 bool const ignoreLighting
619 );
620
621 MCAPI bool tessellateKelpInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
622
623 MCAPI bool tessellateLadderInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
624
625 MCAPI bool tessellateLanternBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
626
627 MCAPI bool tessellateLecternBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
628
629 MCAPI bool tessellateLeverInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
630
631 MCAPI void
632 tessellateLightningRodGui(::Tessellator& tessellator, ::Block const& block, ::BlockGraphics const& blockGraphics);
633
634 MCAPI bool tessellateLightningRodInWorld(::Tessellator& tessellator, ::Block const& b, ::BlockPos const& p);
635
636 MCAPI bool tessellateLilypadInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
637
638 MCAPI bool tessellateLiquidInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
639
640 MCAPI bool
641 tessellateMangrovePropaguleHangingInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
642
643 MCAPI bool tessellateMangrovePropaguleInWorld(
644 ::Tessellator& tessellator,
645 ::Block const& block,
646 ::BlockPos const& p,
647 bool forFlowerPot
648 );
649
650 MCAPI bool tessellateMangroveRootInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
651
652 MCAPI bool tessellateMultiFaceBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
653
654 MCAPI void tessellateNorth(
655 ::Tessellator& tessellator,
656 ::Block const& block,
657 ::Vec3 const& p,
658 ::TextureUVCoordinateSet const& intex
659 );
660
661 MCAPI bool tessellatePaleMossCarpetInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
662
663 MCAPI bool tessellatePistonInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
664
665 MCAPI bool tessellatePitcherCropInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
666
667 MCAPI bool tessellatePitcherPlantInWorld(
668 ::Tessellator& tessellator,
669 ::Block const& block,
670 ::BlockShape const& blockShape,
671 ::BlockPos const& p
672 );
673
674 MCAPI bool tessellatePointedDripstoneInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
675
676 MCAPI bool tessellateRailInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
677
678 MCAPI bool tessellateRepeaterInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
679
680 MCAPI bool tessellateRowInWorld(
681 ::Tessellator& tessellator,
682 ::Block const& block,
683 ::BlockPos const& p,
684 bool const forceDoubleSide
685 );
686
687 MCAPI void tessellateRowTexture(
688 ::Tessellator& tessellator,
689 ::Block const& block,
690 ::BlockPos const& p,
691 ::TextureUVCoordinateSet const& tex,
692 float x,
693 float y,
694 float z,
695 bool const forceDoubleSide
696 );
697
698 MCAPI void tessellateRowTexture(
699 ::Tessellator& tessellator,
700 ::TextureUVCoordinateSet const& tex1,
701 ::TextureUVCoordinateSet const& tex2,
702 ::TextureUVCoordinateSet const& tex3,
703 ::TextureUVCoordinateSet const& tex4,
704 float x,
705 float y,
706 float z
707 );
708
709 MCAPI bool
710 tessellateScaffoldingBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
711
712 MCAPI void tessellateScaffoldingHorizontalPoleInWorld(
713 ::Tessellator& tessellator,
714 ::Block const& block,
715 ::TextureUVCoordinateSet const& side,
716 ::TextureUVCoordinateSet const& bottom,
717 ::BlockPos const& blockPos,
718 ::Flip faceFlip,
719 ::Vec3 const& offset,
720 bool const isSupportPole
721 );
722
723 MCAPI void tessellateScaffoldingVerticalPoleInWorld(
724 ::Tessellator& tessellator,
725 ::Block const& block,
726 ::TextureUVCoordinateSet const& tex,
727 ::BlockPos const& pos,
728 ::Flip const flip
729 );
730
731 MCAPI bool tessellateSculkSensorBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
732
733 MCAPI bool tessellateSculkShriekerInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
734
735 MCAPI bool tessellateSeaPickleInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
736
737 MCAPI bool tessellateSeagrassInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
738
739 MCAPI bool tessellateShelfBlockInGui(::Tessellator& tessellator, ::Block const& block);
740
741 MCAPI bool tessellateShelfBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
742
743 MCAPI void tessellateSimpleBlockInWorld(
744 ::Tessellator& tessellator,
745 ::Block const& block,
746 ::BlockPos const& pos,
747 ::AirAndSimpleBlockBits const& airAndSimpleBlocks
748 );
749
750 MCAPI bool tessellateSlimeBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
751
752 MCAPI bool
753 tessellateSmallDripleafBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
754
755 MCAPI void tessellateSouth(
756 ::Tessellator& tessellator,
757 ::Block const& block,
758 ::Vec3 const& p,
759 ::TextureUVCoordinateSet const& intex
760 );
761
762 MCAPI bool tessellateSporeBlossomInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
763
764 MCAPI bool tessellateStairsInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
765
766 MCAPI bool tessellateStemInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
767
768 MCAPI void tessellateStemTexture(
769 ::Tessellator& tessellator,
770 ::TextureUVCoordinateSet const& tex,
771 float h,
772 float x,
773 float y,
774 float z
775 );
776
777 MCAPI bool
778 tessellateStoneCutterBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
779
780 MCAPI bool tessellateStructureVoidInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
781
782 MCAPI bool
783 tessellateSweetBerryBushBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
784
785 MCAPI bool tessellateTerracottaInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
786
787 MCAPI bool tessellateTopSnowInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
788
789 MCAPI void tessellateTorch(
790 ::Tessellator& tessellator,
791 ::Block const& block,
792 ::Vec3 const& pos,
793 float xxa,
794 float zza,
795 float floorHeight
796 );
797
798 MCAPI bool tessellateTorchInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
799
800 MCAPI bool tessellateTrapdoorInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
801
802 MCAPI bool tessellateTreeInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
803
804 MCAPI bool tessellateTripwireHookInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
805
806 MCAPI bool tessellateTripwireInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
807
808 MCAPI bool tessellateTurtleEggInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
809
810 MCAPI bool tessellateTwistingVinesInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
811
812 MCAPI bool tessellateVaultInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
813
814 MCAPI bool tessellateVineInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
815
816 MCAPI bool tessellateWallInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
817
818 MCAPI bool tessellateWeepingVinesInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
819
820 MCAPI void tessellateWest(
821 ::Tessellator& tessellator,
822 ::Block const& block,
823 ::Vec3 const& p,
824 ::TextureUVCoordinateSet const& intex
825 );
826
827 MCAPI ~BlockTessellator();
828 // NOLINTEND
829
830public:
831 // static functions
832 // NOLINTBEGIN
833 MCAPI static ::TextureUVCoordinateSet const& _getMappedTexture(::Block const& block, uchar face);
834
835 MCAPI static bool canRender(::BlockShape blockShape);
836 // NOLINTEND
837
838public:
839 // constructor thunks
840 // NOLINTBEGIN
841 MCAPI void* $ctor(::BlockSource* level);
842 // NOLINTEND
843
844public:
845 // destructor thunk
846 // NOLINTBEGIN
847 MCAPI void $dtor();
848 // NOLINTEND
849};
Definition BlockGraphics.h:5
Definition BlockOccluder.h:5
Definition BlockSource.h:71
Definition BlockTessellator.h:5
Definition BlockType.h:79
Definition Block.h:41
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:7
Definition AirAndSimpleBlockBits.h:5
Definition BlockTessellator.h:22
Definition BlockTessellator.h:24
Definition OffscreenCaptureDescription.h:5