LeviLamina
Loading...
Searching...
No Matches
SpawnPlacements.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/world/level/spawn/EntityPredicateToken.h"
7#include "mc/world/level/spawn/EntitySpawnReason.h"
8#include "mc/world/level/spawn/HeightmapToken.h"
9#include "mc/world/level/spawn/ObstructionPredicateToken.h"
10#include "mc/world/level/spawn/PlacementTypeToken.h"
11
12// auto generated forward declare list
13// clang-format off
14class Block;
15class BlockPos;
16class BlockSource;
17class IRandom;
18class Mob;
19namespace br::spawn { class PlacementType; }
20namespace br::spawn { struct EntityType; }
21// clang-format on
22
23namespace br::spawn {
24
26public:
27 // SpawnPlacements inner types declare
28 // clang-format off
29 struct EntityRecord;
30 class PlacementRecord;
31 // clang-format on
32
33 // SpawnPlacements inner types define
35 public:
36 // member variables
37 // NOLINTBEGIN
38 ::ll::TypedStorage<8, 8, ::br::spawn::SpawnPlacements&> mParent;
39 ::ll::TypedStorage<8, 8, uint64> mIdx;
40 // NOLINTEND
41 };
42
43 struct EntityRecord {
44 public:
45 // member variables
46 // NOLINTBEGIN
47 ::ll::TypedStorage<1, 1, ::br::spawn::HeightmapToken> mHeightmap;
48 ::ll::TypedStorage<2, 2, ::br::spawn::PlacementTypeToken> mPlacement;
49 ::ll::TypedStorage<2, 2, ::br::spawn::EntityPredicateToken> mEntity;
50 ::ll::TypedStorage<2, 2, ::br::spawn::ObstructionPredicateToken> mObstruction;
51 // NOLINTEND
52 };
53
54public:
55 // member variables
56 // NOLINTBEGIN
57 ::ll::TypedStorage<8, 24, ::std::vector<::std::tuple<::std::string, ::br::spawn::SpawnPlacements::EntityRecord>>>
58 mEntityRecords;
59 ::ll::TypedStorage<
60 8,
61 24,
62 ::std::vector<::std::tuple<
63 ::std::string,
64 ::std::function<
65 bool(::br::spawn::EntityType const&, ::BlockSource&, ::br::spawn::EntitySpawnReason&, ::BlockPos, ::IRandom&)>>>>
66 mEntityPredicates;
67 ::ll::TypedStorage<
68 8,
69 24,
70 ::std::vector<::std::tuple<
71 ::std::string,
72 ::std::function<bool(::BlockSource&, ::Mob const&, ::br::spawn::EntityType const&)>>>>
73 mObstructionPredicates;
74 ::ll::TypedStorage<8, 24, ::std::vector<::std::tuple<::std::string, ::std::function<bool(::Block const&)>>>>
75 mHeightmapTypes;
76 ::ll::TypedStorage<8, 24, ::std::vector<::std::tuple<::std::string, ::std::unique_ptr<::br::spawn::PlacementType>>>>
77 mPlacementTypes;
78 // NOLINTEND
79
80public:
81 // member functions
82 // NOLINTBEGIN
83 MCAPI ::br::spawn::SpawnPlacements::PlacementRecord record(
84 ::std::string_view typeId,
85 ::br::spawn::PlacementTypeToken placementType,
86 ::br::spawn::HeightmapToken heightmap,
87 ::br::spawn::EntityPredicateToken spawnPlacement
88 );
89
90 MCAPI ::br::spawn::EntityPredicateToken record(
91 ::std::string_view key,
92 ::std::function<
93 bool(::br::spawn::EntityType const&, ::BlockSource&, ::br::spawn::EntitySpawnReason&, ::BlockPos, ::IRandom&)>
94 predicate
95 );
96
97 MCAPI ~SpawnPlacements();
98 // NOLINTEND
99
100public:
101 // destructor thunk
102 // NOLINTBEGIN
103 MCAPI void $dtor();
104 // NOLINTEND
105};
106
107} // namespace br::spawn
Definition BlockPos.h:18
Definition BlockSource.h:67
Definition Block.h:36
Definition IRandom.h:10
Definition Mob.h:47
Definition SpawnPlacements.h:34
Definition SpawnPlacements.h:25
Definition EntityType.h:15
Definition SpawnPlacements.h:43