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