LeviLamina
Loading...
Searching...
No Matches
OreFeature.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4#include "mc/world/level/block/Block.h"
5#include "mc/world/level/block/BlockType.h"
6#include "mc/world/level/levelgen/feature/ReplaceRule.h"
7
8// auto generated inclusion list
9#include "mc/deps/core/math/Vec3.h"
10#include "mc/platform/brstd/once_flag.h"
11#include "mc/world/level/levelgen/feature/IFeature.h"
12
13// auto generated forward declare list
14// clang-format off
15class Block;
16class BlockPos;
17class BlockType;
18struct ReplaceRule;
19// clang-format on
20
21class OreFeature : public ::IFeature {
22public:
23 // OreFeature inner types declare
24 // clang-format off
26 struct SphereData;
27 struct ScratchData;
28 // clang-format on
29
30 // OreFeature inner types define
32 public:
33 // member variables
34 // NOLINTBEGIN
35 ::ll::TypedStorage<8, 24, ::std::vector<::std::pair<::Block const*, ::std::vector<::BlockType const*>>>> mRules;
36 // NOLINTEND
37 };
38
39 struct SphereData {
40 public:
41 // member variables
42 // NOLINTBEGIN
43 ::ll::TypedStorage<4, 12, ::Vec3> mCenter;
44 ::ll::TypedStorage<4, 4, float> mHalfRSqr;
45 ::ll::TypedStorage<4, 4, float> mHalfR;
46 // NOLINTEND
47 };
48
49 struct ScratchData {
50 public:
51 // member variables
52 // NOLINTBEGIN
53 ::ll::TypedStorage<8, 24, ::std::vector<::OreFeature::SphereData>> mAllSpheres;
54 ::ll::TypedStorage<8, 24, ::std::vector<::OreFeature::SphereData*>> mSpheres;
55 ::ll::TypedStorage<4, 4, uint> mActiveSpheres;
56 // NOLINTEND
57 };
58
59public:
60 // member variables
61 // NOLINTBEGIN
62 ::ll::TypedStorage<4, 4, int> mCount;
63 ::ll::TypedStorage<4, 4, float> mCountf;
64 ::ll::TypedStorage<4, 4, float> mCountfInv;
65 ::ll::TypedStorage<4, 4, float> mDiscardChanceOnAirExposure;
66 ::ll::TypedStorage<8, 24, ::std::vector<::ReplaceRule>> mReplaceRules;
67 ::ll::TypedStorage<4, 4, ::brstd::once_flag> mRulesAcceleratorInitFlag;
68 ::ll::TypedStorage<8, 24, ::OreFeature::ReplaceRulesAccelerator> mRulesAccelerator;
69 // NOLINTEND
70
71public:
72 // virtual functions
73 // NOLINTBEGIN
74 virtual ~OreFeature() /*override*/ = default;
75
76 virtual ::std::optional<::BlockPos> place(::IFeature::PlacementContext const& context) const /*override*/;
77 // NOLINTEND
78
79public:
80 // virtual function thunks
81 // NOLINTBEGIN
82 MCAPI ::std::optional<::BlockPos> $place(::IFeature::PlacementContext const& context) const;
83
84
85 // NOLINTEND
86
87public:
88 // vftables
89 // NOLINTBEGIN
90 MCNAPI static void** $vftable();
91 // NOLINTEND
92};
Definition BlockPos.h:17
Definition BlockType.h:79
Definition Block.h:41
Definition IFeature.h:18
Definition OreFeature.h:21
static MCAPI void ** $vftable()
Definition IFeature.h:26
Definition OreFeature.h:31
Definition OreFeature.h:49
Definition OreFeature.h:39
Definition ReplaceRule.h:8
Definition context.h:5