LeviLamina
Loading...
Searching...
No Matches
NaturalSpawner.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/world/actor/ActorType.h"
7#include "mc/world/actor/spawn_category/Type.h"
8#include "mc/world/level/SpawnSettings.h"
9#include "mc/world/level/Spawner.h"
10#include "mc/world/level/chunk/SpawnPlacements.h"
11
12// auto generated forward declare list
13// clang-format off
15class Biome;
16class BlockPos;
17class BlockSource;
18class ChunkPos;
20class IRandom;
22class Level;
24class Mob;
25class Random;
28class Vec3;
29struct ActorUniqueID;
30namespace br::spawn { class EntityTypeCache; }
31namespace br::spawn { struct State; }
32// clang-format on
33
34class NaturalSpawner : public ::Spawner {
35public:
36 // NaturalSpawner inner types define
37 using SpawnPredicate = ::std::function<bool(::ActorType, ::BlockPos, ::LevelChunkVolumeData const&)>;
38
39 using AfterSpawnCallback = ::std::function<void(::Mob&, ::LevelChunkVolumeData const&)>;
40
41public:
42 // member variables
43 // NOLINTBEGIN
44 ::ll::TypedStorage<8, 8, ::Level&> mLevel;
45 ::ll::TypedStorage<8, 8, ::IMinecraftEventing&> mEventing;
46 ::ll::TypedStorage<8, 48, ::SpawnSettings> mSpawnSettings;
47 ::ll::TypedStorage<8, 272, ::br::spawn::SpawnPlacements> mSpawnPlacements;
48 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ActorSpawnRuleGroup>> mActorSpawnRules;
49 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::SpawnGroupRegistry>> mSpawnGroupRegistry;
50 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::br::spawn::EntityTypeCache>> mEntityTypeCache;
51 // NOLINTEND
52
53public:
54 // prevent constructor by default
55 NaturalSpawner& operator=(NaturalSpawner const&);
58
59public:
60 // virtual functions
61 // NOLINTBEGIN
62 // vIndex: 0
63 virtual ~NaturalSpawner() /*override*/ = default;
64
65 // vIndex: 18
66 virtual ::std::tuple<::std::array<::SpawnCategory::Type, 8>, uint64>
67 filteredSpawningCategories(::br::spawn::State const&, bool, bool, bool) const /*override*/;
68
69 // vIndex: 19
70 virtual void spawnForChunk(
74 ::gsl::span<::SpawnCategory::Type>,
76 ) const /*override*/;
77
78 // vIndex: 20
79 virtual void spawnMobsForChunkGeneration(::BlockSource&, ::Biome const&, ::ChunkPos, ::IRandom&) const /*override*/;
80
81 // vIndex: 17
82 virtual ::br::spawn::SpawnPlacements& getSpawnPlacements() /*override*/;
83
84 // vIndex: 1
85 virtual void initializeServerSide(::ResourcePackManager&, ::IWorldRegistriesProvider&) /*override*/;
86
87 // vIndex: 2
88 virtual ::SpawnSettings const& getSpawnSettings() const /*override*/;
89
90 // vIndex: 3
91 virtual void setSpawnSettings(::SpawnSettings const&) /*override*/;
92
93 // vIndex: 4
94 virtual ::ActorSpawnRuleGroup const* getSpawnRules() const /*override*/;
95
96 // vIndex: 5
97 virtual ::ActorSpawnRuleGroup* getSpawnRulesMutable() const /*override*/;
98
99 // vIndex: 6
100 virtual ::SpawnGroupRegistry const* getSpawnGroupRegistry() const /*override*/;
101
102 // vIndex: 7
103 virtual ::br::spawn::EntityTypeCache* getEntityTypeCache() const /*override*/;
104
105 // vIndex: 11
106 virtual void postProcessSpawnMobs(::BlockSource&, int, int, ::Random&) /*override*/;
107
108 // vIndex: 12
109 virtual void tick(::BlockSource&, ::LevelChunkVolumeData const&, ::ChunkPos const) /*override*/;
110
111 // vIndex: 13
112 virtual void tickMobCount() /*override*/;
113
114 // vIndex: 14
115 virtual void incrementSpawnableTickedMob() /*override*/;
116
117 // vIndex: 15
118 virtual uint getSpawnableTickedMobCountPrevious() const /*override*/;
119
120 // vIndex: 16
121 virtual ::std::unordered_set<::ActorUniqueID> spawnMobGroup(
123 ::std::string const&,
124 ::Vec3 const&,
125 bool,
126 bool,
127 ::std::function<void(::Mob&)>&&
128 ) /*override*/;
129 // NOLINTEND
130
131public:
132 // virtual function thunks
133 // NOLINTBEGIN
134
135 // NOLINTEND
136};
Definition ActorSpawnRuleGroup.h:18
Definition Biome.h:23
Definition BlockPos.h:17
Definition BlockSource.h:66
Definition ChunkPos.h:11
Definition IMinecraftEventing.h:149
Definition IRandom.h:13
Definition IWorldRegistriesProvider.h:25
Definition LevelChunkVolumeData.h:18
Definition Level.h:247
Definition Mob.h:47
Definition NaturalSpawner.h:34
Definition Random.h:10
Definition ResourcePackManager.h:24
Definition SpawnGroupRegistry.h:19
Definition Spawner.h:40
Definition Vec3.h:10
Definition ActorUniqueID.h:5
Definition SpawnSettings.h:14
Definition State.h:10