LeviLamina
Loading...
Searching...
No Matches
LevelChunkVolumeData.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/world/level/BlockPos.h"
7#include "mc/world/level/ChunkPos.h"
8#include "mc/world/level/chunk/LevelChunkDataRegistry.h"
9
10// auto generated forward declare list
11// clang-format off
12class IDataInput;
14class StructureStart;
15namespace br::worldgen { class StructureInstance; }
16// clang-format on
17
18class LevelChunkVolumeData {
19public:
20 // LevelChunkVolumeData inner types define
21 using StructureInstanceList = ::std::vector<::std::shared_ptr<::br::worldgen::StructureInstance const>>;
22
23public:
24 // member variables
25 // NOLINTBEGIN
26 ::ll::TypedStorage<8, 24, ::std::vector<::std::shared_ptr<::br::worldgen::StructureInstance const>>> mStructures;
27 ::ll::TypedStorage<8, 24, ::std::vector<::std::shared_ptr<::br::worldgen::StructureInstance const>>>
28 mStructureReferences;
29 ::ll::TypedStorage<8, 768, ::br::LevelChunkDataRegistry> mDataRegistry;
30 ::ll::TypedStorage<4, 12, ::BlockPos> mMin;
31 ::ll::TypedStorage<4, 12, ::BlockPos> mMax;
32 ::ll::TypedStorage<8, 8, ::ChunkPos> mChunkPos;
33 ::ll::TypedStorage<8, 8, ::StructureSpawnRegistry const&> mStructureSpawnRegistry;
34 // NOLINTEND
35
36public:
37 // prevent constructor by default
38 LevelChunkVolumeData& operator=(LevelChunkVolumeData const&);
39 LevelChunkVolumeData(LevelChunkVolumeData const&);
40 LevelChunkVolumeData();
41
42public:
43 // member functions
44 // NOLINTBEGIN
45 MCAPI void addStructure(::std::shared_ptr<::br::worldgen::StructureInstance const> instance);
46
47 MCFOLD void addStructure(::StructureStart const& start);
48
49 MCAPI void addStructureReference(::std::shared_ptr<::br::worldgen::StructureInstance const> instance);
50
51 MCFOLD void addStructureReference(::StructureStart const& start);
52
53 MCAPI void deserializeAabbVolumes(::IDataInput& stream);
54
55 MCAPI void deserializeHardcodedSpawners(::IDataInput& stream);
56
57 MCAPI ::std::vector<::std::shared_ptr<::br::worldgen::StructureInstance const>> getOverlappingStructures() const;
58
59 MCAPI ::std::vector<::BlockPos> structureSpawnPos() const;
60 // NOLINTEND
61};
Definition IDataInput.h:8
Definition StructureSpawnRegistry.h:14
Definition StructureStart.h:15
Definition StructureInstance.h:20