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 ::TextureUVCoordinateSet const& _getTexture(
162 ::BlockPos const& pos,
163 ::Block const& block,
164 uchar face,
165 int forcedVariant,
166 ::BlockGraphics const* graphicsHint
167 ) const;
168
169 MCAPI void _modifyCurrentShapeAccordingToAttachmentDirection(::Direction::Type attachmentDir);
170
171 MCAPI void _preparePolyCross(::Tessellator& tessellator, ::BlockPos const& p, ::Block const& block);
172
173 MCAPI void _setBambooFencePostTexture(::TextureUVCoordinateSet const& bambooFenceTex);
174
175 MCAPI void _setBambooFenceSlatTextureGui(
176 ::TextureUVCoordinateSet const& bambooFenceTex,
177 ::BlockTessellator::BambooFenceSlatPieceType type
178 );
179
180 MCAPI void _tessellateAllFaces(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
181
182 MCAPI void _tessellateBambooFenceGui(
183 ::Tessellator& tessellator,
184 ::Block const& block,
185 ::BlockPos const& p,
186 bool isInventoryIcon,
187 float lightMultiplier,
188 float alphaMultiplier,
189 float c10,
190 float c2
191 );
192
193 MCAPI void _tessellateBambooFenceSlatsInWorld(
194 ::Tessellator& tessellator,
195 ::Block const& block,
196 ::BlockPos const& p,
197 uchar facing
198 );
199
200 MCAPI bool _tessellateBlockInWorldFlat(
201 ::Tessellator& tessellator,
202 ::Block const& block,
203 ::BlockPos const& pos,
204 ::mce::Color const& base,
205 ::BlockOccluder* occluder,
206 ::std::bitset<6> const faces,
207 int forcedVariant
208 );
209
210 MCAPI bool _tessellateBlockInWorldWithAmbienceOcclusion(
211 ::Tessellator& tessellator,
212 ::Block const& block,
213 ::BlockPos p,
214 ::mce::Color const& base,
215 ::BlockOccluder* occluder,
216 ::std::bitset<6> const faces,
217 int forcedVariant
218 );
219
220 MCAPI void _tessellateCalibratedSculkSensorAmethystCrystalInWorld(
221 ::Tessellator& tessellator,
222 ::Block const& block,
223 ::BlockPos const& p
224 );
225
226 MCAPI void _tessellateFenceGateGui(
227 ::Tessellator& tessellator,
228 ::Block const& block,
229 ::BlockPos const& p,
230 bool isInventoryIcon,
231 float lightMultiplier,
232 float alphaMultiplier,
233 float c10,
234 float c2
235 );
236
237 MCAPI void _tessellateForInventory(
238 ::Tessellator& tessellator,
239 ::Block const& block,
240 ::BlockPos const& pos,
241 float lightMultiplier,
242 float alphaMultiplier,
243 float c10,
244 float c2
245 );
246
247 MCAPI void _tessellateSculkSensorTendrilsInWorld(
248 ::Tessellator& tessellator,
249 ::Block const& block,
250 ::BlockPos const& p,
251 uchar tessellationType
252 );
253
254 MCAPI void _tex1(::Tessellator& tessellator, ::Vec2 const& uv);
255
256 MCAPI void
257 _trySetFenceGateTexture(::Block const& block, ::BlockPos const& p, ::BlockTessellator::FenceGatePieceType type);
258
259 MCAPI void appendTessellatedBlock(::Tessellator& tessellator, ::Block const& block);
260
261 MCAPI void clearBlockCache();
262
263 MCAPI ::AABB const& getCurrentShape();
264
265 MCAPI ::mce::Mesh& getMeshForBlock(::Tessellator& tessellator, ::Block const& block);
266
267 MCAPI ::mce::Mesh& getMeshForBlockInWorld(
268 ::Tessellator& tessellator,
269 ::Block const& block,
270 ::BlockPos& blockPos,
271 ::BlockRenderLayer layer,
272 void const* owner,
273 bool useOccluder,
274 bool useRegion,
275 ::LightTexture const& lightTexture
276 );
277
278 MCAPI float getWaterHeight(::BlockPos const& pos, ::Material const& material, ::BlockPos const& originalBlockPos);
279
280 MCAPI void moveCurrentShape(::Vec3 const& offset);
281
282 MCAPI void renderGuiBlock(
283 ::ScreenContext& screenContext,
284 ::Block const& block,
285 ::BlockGraphics const& blockGraphics,
286 ::mce::TexturePtr const& texture,
287 float lightMultiplier,
288 float alphaMultiplier,
289 ::OffscreenCaptureDescription const& capture
290 );
291
292 MCAPI bool rotateCommandBlockFaces(::Block const& block);
293
294 MCAPI void setRegion(::BlockSource& region);
295
296 MCAPI void tessellateAll(
297 ::Tessellator& tessellator,
298 ::Block const& block,
299 ::Vec3 const& p,
300 ::TextureUVCoordinateSet const& tex
301 );
302
303 MCAPI bool tessellateAmethystCluster(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
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 tessellateDiodeInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
466
467 MCAPI bool tessellateDoorInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
468
469 MCAPI bool tessellateDoublePlantInWorld(
470 ::Tessellator& tessellator,
471 ::Block const& block,
472 ::BlockShape const blockShape,
473 ::BlockPos const& p,
474 bool const forceDoubleSided,
475 ::Vec3 offset,
476 bool applyAmbientOcclusion,
477 ::BlockTessellator::CrossTextureReverseSideMapping reverseSideMapping,
478 ::BlockTessellator::CrossTextureWidth width
479 );
480
481 MCAPI bool tessellateDoubleThinFenceInWorld(
482 ::Tessellator& tessellator,
483 ::Block const& block,
484 ::BlockPos const& p,
485 bool singleSide
486 );
487
488 MCAPI bool
489 tessellateDriedGhastInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& position);
490
491 MCAPI bool tessellateDriedKelpBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
492
493 MCAPI bool tessellateDustInWorld(::Tessellator& tessellator, ::Block const& b, ::BlockPos const& p);
494
495 MCAPI void tessellateEast(
496 ::Tessellator& tessellator,
497 ::Block const& block,
498 ::Vec3 const& p,
499 ::TextureUVCoordinateSet const& intex
500 );
501
502 MCAPI bool tessellateEndGatewayInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
503
504 MCAPI bool tessellateEndPortalFrameInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
505
506 MCAPI bool tessellateEndPortalInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
507
508 MCAPI void
509 tessellateEndRodAppended(::Tessellator& tessellator, ::Block const& block, ::BlockGraphics const& blockGraphics);
510
511 MCAPI void
512 tessellateEndRodGui(::Tessellator& tessellator, ::Block const& block, ::BlockGraphics const& blockGraphics);
513
514 MCAPI bool tessellateEndRodInWorld(::Tessellator& tessellator, ::Block const& b, ::BlockPos const& p);
515
516 MCAPI bool tessellateEyeblossomInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
517
518 MCAPI void tessellateFaceDown(
519 ::Tessellator& tessellator,
520 ::Block const& block,
521 ::Vec3 const& p,
522 ::TextureUVCoordinateSet const& intex
523 );
524
525 MCAPI void tessellateFaceUp(
526 ::Tessellator& tessellator,
527 ::Block const& block,
528 ::Vec3 const& p,
529 ::TextureUVCoordinateSet const& intex
530 );
531
532 MCAPI void tessellateFaceWithUVs(
533 ::Tessellator& tessellator,
534 ::Block const& block,
535 ::Vec3 const& p,
536 ::TextureUVCoordinateSet const& tex,
537 float const u0,
538 float const v0,
539 float const u1,
540 float const v1,
541 int const face
542 );
543
544 MCAPI bool tessellateFacingBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
545
546 MCAPI bool tessellateFenceGateInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
547
548 MCAPI bool tessellateFenceInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
549
550 MCAPI bool tessellateFireInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos p);
551
552 MCAPI bool tessellateFireflyBushInWorld(
553 ::Tessellator& tessellator,
554 ::Block const& block,
555 ::BlockPos const& pos,
556 ::BlockGraphics const& blockGraphics
557 );
558
559 MCAPI bool tessellateFlowerBedBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
560
561 MCAPI bool tessellateFlowerPotInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
562
563 MCAPI bool tessellateFrogSpawnInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
564
565 MCAPI bool
566 tessellateGrindstoneBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
567
568 MCAPI void tessellateGrindstoneLegInWorld(
569 ::Tessellator& tessellator,
570 ::Block const& block,
571 ::BlockPos const& pos,
572 bool attached,
573 bool rotate,
574 ::Direction::Type attachmentDir
575 );
576
577 MCAPI bool tessellateHoneyBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
578
579 MCAPI bool tessellateHopperInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
580
581 MCAPI bool
582 tessellateHopperInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos, bool render);
583
584 MCAPI bool
585 tessellateInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos, bool useCalcWithCache);
586
587 MCAPI bool tessellateIndividualCandleInWorld(
588 ::Tessellator& tessellator,
589 ::Block const& block,
590 ::Vec3 const& p,
591 float const height,
592 ::Vec3 const offset
593 );
594
595 MCAPI bool tessellateIndividualSeaPickleInWorld(
596 ::Tessellator& tessellator,
597 ::Block const& block,
598 ::Vec3 const& p,
599 double const height,
600 ::Vec3 const offset
601 );
602
603 MCAPI bool tessellateIndividualTurtleEggInWorld(
604 ::Tessellator& tessellator,
605 ::Block const& block,
606 ::Vec3 const& p,
607 ::Vec3 const from,
608 ::Vec3 const to,
609 int const eggNum
610 );
611
612 MCAPI bool tessellateItemFrameInWorld(
613 ::Tessellator& tessellator,
614 ::Block const& block,
615 ::BlockPos const& pos,
616 bool const ignoreLighting
617 );
618
619 MCAPI bool tessellateKelpInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
620
621 MCAPI bool tessellateLadderInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
622
623 MCAPI bool tessellateLanternBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
624
625 MCAPI bool tessellateLecternBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
626
627 MCAPI bool tessellateLeverInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
628
629 MCAPI void
630 tessellateLightningRodGui(::Tessellator& tessellator, ::Block const& block, ::BlockGraphics const& blockGraphics);
631
632 MCAPI bool tessellateLightningRodInWorld(::Tessellator& tessellator, ::Block const& b, ::BlockPos const& p);
633
634 MCAPI bool tessellateLilypadInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
635
636 MCAPI bool tessellateLiquidInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
637
638 MCAPI bool
639 tessellateMangrovePropaguleHangingInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
640
641 MCAPI bool tessellateMangrovePropaguleInWorld(
642 ::Tessellator& tessellator,
643 ::Block const& block,
644 ::BlockPos const& p,
645 bool forFlowerPot
646 );
647
648 MCAPI bool tessellateMangroveRootInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
649
650 MCAPI bool tessellateMultiFaceBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
651
652 MCAPI void tessellateNorth(
653 ::Tessellator& tessellator,
654 ::Block const& block,
655 ::Vec3 const& p,
656 ::TextureUVCoordinateSet const& intex
657 );
658
659 MCAPI bool tessellatePaleMossCarpetInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
660
661 MCAPI bool tessellatePistonInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
662
663 MCAPI bool tessellatePitcherCropInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
664
665 MCAPI bool tessellatePitcherPlantInWorld(
666 ::Tessellator& tessellator,
667 ::Block const& block,
668 ::BlockShape const& blockShape,
669 ::BlockPos const& p
670 );
671
672 MCAPI bool tessellatePointedDripstoneInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
673
674 MCAPI bool tessellateRailInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
675
676 MCAPI bool tessellateRepeaterInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
677
678 MCAPI bool tessellateRowInWorld(
679 ::Tessellator& tessellator,
680 ::Block const& block,
681 ::BlockPos const& p,
682 bool const forceDoubleSide
683 );
684
685 MCAPI void tessellateRowTexture(
686 ::Tessellator& tessellator,
687 ::Block const& block,
688 ::BlockPos const& p,
689 ::TextureUVCoordinateSet const& tex,
690 float x,
691 float y,
692 float z,
693 bool const forceDoubleSide
694 );
695
696 MCAPI void tessellateRowTexture(
697 ::Tessellator& tessellator,
698 ::TextureUVCoordinateSet const& tex1,
699 ::TextureUVCoordinateSet const& tex2,
700 ::TextureUVCoordinateSet const& tex3,
701 ::TextureUVCoordinateSet const& tex4,
702 float x,
703 float y,
704 float z
705 );
706
707 MCAPI bool
708 tessellateScaffoldingBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
709
710 MCAPI void tessellateScaffoldingHorizontalPoleInWorld(
711 ::Tessellator& tessellator,
712 ::Block const& block,
713 ::TextureUVCoordinateSet const& side,
714 ::TextureUVCoordinateSet const& bottom,
715 ::BlockPos const& blockPos,
716 ::Flip faceFlip,
717 ::Vec3 const& offset,
718 bool const isSupportPole
719 );
720
721 MCAPI void tessellateScaffoldingVerticalPoleInWorld(
722 ::Tessellator& tessellator,
723 ::Block const& block,
724 ::TextureUVCoordinateSet const& tex,
725 ::BlockPos const& pos,
726 ::Flip const flip
727 );
728
729 MCAPI bool tessellateSculkSensorBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
730
731 MCAPI bool tessellateSculkShriekerInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
732
733 MCAPI bool tessellateSeaPickleInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
734
735 MCAPI bool tessellateSeagrassInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
736
737 MCAPI bool tessellateShelfBlockInGui(::Tessellator& tessellator, ::Block const& block);
738
739 MCAPI bool tessellateShelfBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
740
741 MCAPI void tessellateSimpleBlockInWorld(
742 ::Tessellator& tessellator,
743 ::Block const& block,
744 ::BlockPos const& pos,
745 ::AirAndSimpleBlockBits const& airAndSimpleBlocks
746 );
747
748 MCAPI bool tessellateSlimeBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
749
750 MCAPI bool
751 tessellateSmallDripleafBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
752
753 MCAPI void tessellateSouth(
754 ::Tessellator& tessellator,
755 ::Block const& block,
756 ::Vec3 const& p,
757 ::TextureUVCoordinateSet const& intex
758 );
759
760 MCAPI bool tessellateSporeBlossomInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
761
762 MCAPI bool tessellateStairsInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
763
764 MCAPI bool tessellateStemInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
765
766 MCAPI void tessellateStemTexture(
767 ::Tessellator& tessellator,
768 ::TextureUVCoordinateSet const& tex,
769 float h,
770 float x,
771 float y,
772 float z
773 );
774
775 MCAPI bool
776 tessellateStoneCutterBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
777
778 MCAPI bool tessellateStructureVoidInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
779
780 MCAPI bool
781 tessellateSweetBerryBushBlockInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
782
783 MCAPI bool tessellateTerracottaInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
784
785 MCAPI bool tessellateTopSnowInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
786
787 MCAPI void tessellateTorch(
788 ::Tessellator& tessellator,
789 ::Block const& block,
790 ::Vec3 const& pos,
791 float xxa,
792 float zza,
793 float floorHeight
794 );
795
796 MCAPI bool tessellateTorchInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
797
798 MCAPI bool tessellateTrapdoorInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
799
800 MCAPI bool tessellateTreeInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
801
802 MCAPI bool tessellateTripwireHookInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
803
804 MCAPI bool tessellateTripwireInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
805
806 MCAPI bool tessellateTurtleEggInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
807
808 MCAPI bool tessellateTwistingVinesInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
809
810 MCAPI bool tessellateVaultInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& pos);
811
812 MCAPI bool tessellateVineInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
813
814 MCAPI bool tessellateWallInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
815
816 MCAPI bool tessellateWeepingVinesInWorld(::Tessellator& tessellator, ::Block const& block, ::BlockPos const& p);
817
818 MCAPI void tessellateWest(
819 ::Tessellator& tessellator,
820 ::Block const& block,
821 ::Vec3 const& p,
822 ::TextureUVCoordinateSet const& intex
823 );
824
825 MCAPI ~BlockTessellator();
826 // NOLINTEND
827
828public:
829 // static functions
830 // NOLINTBEGIN
831 MCAPI static ::TextureUVCoordinateSet const& _getMappedTexture(::Block const& block, uchar face);
832
833 MCAPI static bool canRender(::BlockShape blockShape);
834 // NOLINTEND
835
836public:
837 // constructor thunks
838 // NOLINTBEGIN
839 MCAPI void* $ctor(::BlockSource* level);
840 // NOLINTEND
841
842public:
843 // destructor thunk
844 // NOLINTBEGIN
845 MCAPI void $dtor();
846 // NOLINTEND
847};
Definition BlockGraphics.h:5
Definition BlockOccluder.h:5
Definition BlockSource.h:71
Definition BlockTessellator.h:5
Definition BlockType.h:79
Definition Block.h:42
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