LeviLamina
Loading...
Searching...
No Matches
BlockComponentDirectData.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/common/Brightness.h"
7#include "mc/deps/core/container/DenseEnumMap.h"
8#include "mc/deps/shared_types/legacy/Facing.h"
9#include "mc/deps/shared_types/v1_26_0/block/DetectionRule.h"
10#include "mc/deps/voxel_shapes/RegistryHandle.h"
11#include "mc/world/level/block/BurnOdds.h"
12#include "mc/world/level/block/FlameOdds.h"
13#include "mc/world/level/block/LavaFlammable.h"
14
15// auto generated forward declare list
16// clang-format off
17class Block;
24// clang-format on
25
27public:
28 // BlockComponentDirectData inner types define
29 enum class LayerBitMask : int {
30 None = 0,
31 Init = 1,
32 Rendering = 2,
33 };
34
36
37public:
38 // member variables
39 // NOLINTBEGIN
40 ::ll::TypedStorage<8, 8, ::BlockTransformationComponent const*> mBlockTransformationComponent;
41 ::ll::TypedStorage<8, 8, ::BlockCollisionBoxComponent const*> mBlockCollisionBoxComponent;
42 ::ll::TypedStorage<8, 8, ::BlockSelectionBoxComponent const*> mBlockSelectionBoxComponent;
43 ::ll::TypedStorage<8, 8, ::BlockRedstoneComponent const*> mBlockRedstoneComponent;
44 ::ll::TypedStorage<8, 8, ::BlockGeometryComponent const*> mBlockGeometryComponent;
45 ::ll::TypedStorage<1, 1, bool> mIsFullBlock;
46 ::ll::TypedStorage<1, 1, bool> mUseNewTessellation;
47 ::ll::TypedStorage<1, 1, bool> mNeedsLegacyTopRotation;
48 ::ll::TypedStorage<1, 1, bool> mIsOpaqueFullBlock;
49 ::ll::TypedStorage<1, 1, ::Brightness> mLightEmission;
50 ::ll::TypedStorage<1, 1, ::Brightness> mLight;
51 ::ll::TypedStorage<1, 1, ::LavaFlammable> mLavaFlammable;
52 ::ll::TypedStorage<2, 2, ::FlameOdds> mFlameOdds;
53 ::ll::TypedStorage<2, 2, ::BurnOdds> mBurnOdds;
54 ::ll::TypedStorage<4, 4, float> mExplosionResistance;
55 ::ll::TypedStorage<4, 4, float> mFriction;
56 ::ll::TypedStorage<4, 4, float> mDestroySpeed;
57 ::ll::TypedStorage<1, 5, ::SharedTypes::v1_26_0::DetectionRule> mWaterDetectionRule;
58 ::ll::TypedStorage<2, 2, ::VoxelShapes::RegistryHandle> mOcclusionShapeHandle;
59 ::ll::TypedStorage<2, 12, ::Bedrock::DenseEnumMap<::SharedTypes::Facing, ::VoxelShapes::RegistryHandle, 6>>
60 mOcclusionShapeHandlesByFace;
61 ::ll::TypedStorage<4, 4, ::BlockComponentDirectData::LayerBitMask> mFinalized;
62 ::ll::TypedStorage<8, 8, ::BlockDestructibleByMiningComponent const*> mDestructibleByMiningComponent;
63 // NOLINTEND
64
65public:
66 // member functions
67 // NOLINTBEGIN
68 MCAPI void _finalizeInit(::Block const& block);
69
70#ifdef LL_PLAT_C
71 MCFOLD bool _useNewTessellationInternal() const;
72#endif
73
74 MCFOLD ::BlockCollisionBoxComponent const* blockCollisionBoxComponent() const;
75
76#ifdef LL_PLAT_C
77 MCFOLD ::BlockGeometryComponent const* blockGeometryComponent() const;
78#endif
79
80 MCFOLD ::BlockRedstoneComponent const* blockRedstoneComponent() const;
81
82 MCFOLD ::BlockSelectionBoxComponent const* blockSelectionBoxComponent() const;
83
84#ifdef LL_PLAT_C
85 MCFOLD ::BlockTransformationComponent const* blockTransformationComponent() const;
86#endif
87
88 MCFOLD ::BlockDestructibleByMiningComponent const* destructibleByMiningComponent() const;
89
90 MCAPI void finalize(::Block const& block, ::BlockComponentDirectData::LayerBitMask layersToFinalize);
91
92 MCAPI int getBurnOdds() const;
93
94 MCFOLD float getDestroySpeed() const;
95
96 MCAPI float getExplosionResistance() const;
97
98 MCAPI int getFlameOdds() const;
99
100 MCFOLD float getFriction() const;
101
102#ifdef LL_PLAT_C
103 MCAPI ::VoxelShapes::RegistryHandle getOcclusionFaceShapeHandle(uchar face) const;
104
105 MCAPI ::VoxelShapes::RegistryHandle getOcclusionShapeHandle() const;
106#endif
107
108 MCAPI ::SharedTypes::v1_26_0::DetectionRule getWaterDetectionRule() const;
109
110#ifdef LL_PLAT_C
111 MCAPI bool isFinalized(::BlockComponentDirectData::LayerBitMask layers) const;
112#endif
113
114 MCFOLD bool isFullBlockGeometry() const;
115
116 MCAPI ::LavaFlammable isLavaFlammable() const;
117
118 MCFOLD bool isOpaqueFullBlock() const;
119
120 MCAPI ::Brightness light() const;
121
122 MCAPI ::Brightness lightEmission() const;
123
124#ifdef LL_PLAT_C
125 MCFOLD void setUseNewTessellation(bool enabled);
126#endif
127 // NOLINTEND
128};
Definition DenseEnumMap.h:9
Definition BlockTransformationComponent.h:9
Definition Block.h:69
Definition BlockCollisionBoxComponent.h:14
Definition BlockComponentDirectData.h:26
Definition BlockDestructibleByMiningComponent.h:13
Definition BlockGeometryComponent.h:17
Definition BlockRedstoneComponent.h:10
Definition BlockSelectionBoxComponent.h:8