LeviLamina
Loading...
Searching...
No Matches
SpawnGroupRegistry.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/puv/LoadResult.h"
7
8// auto generated forward declare list
9// clang-format off
12class MobSpawnRules;
14class SemVersion;
15class SpawnGroupData;
17// clang-format on
18
19class SpawnGroupRegistry {
20public:
21 // SpawnGroupRegistry inner types define
22 using SpawnGroupLookupMap = ::std::unordered_map<::std::string, ::SpawnGroupData*>;
23
24 using SpawnGroupRegistryMap = ::std::vector<::std::unique_ptr<::SpawnGroupData>>;
25
26 using SpawnRulesHandler =
27 ::std::function<void(::std::string const&, int, ::BiomeFilterGroup&, ::MobSpawnRules&, ::SemVersion const&)>;
28
29public:
30 // member variables
31 // NOLINTBEGIN
32 ::ll::TypedStorage<8, 24, ::std::vector<::std::unique_ptr<::SpawnGroupData>>> mSpawnGroupRegistry;
33 ::ll::TypedStorage<8, 64, ::std::unordered_map<::std::string, ::SpawnGroupData*>> mSpawnGroupLookupMap;
34 ::ll::TypedStorage<8, 8, ::IMinecraftEventing&> mEventing;
35 // NOLINTEND
36
37public:
38 // prevent constructor by default
39 SpawnGroupRegistry& operator=(SpawnGroupRegistry const&);
40 SpawnGroupRegistry(SpawnGroupRegistry const&);
41 SpawnGroupRegistry();
42
43public:
44 // virtual functions
45 // NOLINTBEGIN
46 virtual ~SpawnGroupRegistry() = default;
47 // NOLINTEND
48
49public:
50 // member functions
51 // NOLINTBEGIN
52 MCAPI void _addSpawnRules(::std::string const& identifier, ::MobSpawnRules& spawnRules);
53
54 MCAPI void _getResources(
55 ::ResourcePackManager& resourcePackManager,
56 ::std::function<void(::std::string const&, int, ::BiomeFilterGroup&, ::MobSpawnRules&, ::SemVersion const&)>
57 callback
58 );
59
60 MCAPI ::Puv::LoadResult<::ActorSpawnRuleData>
61 _readJson(::std::string&& data, ::std::unordered_map<::std::string, ::ActorSpawnRuleData>& dataMap);
62
63 MCAPI void
64 readResourceFiles(::ResourcePackManager&, ::std::unordered_map<::std::string, ::ActorSpawnRuleData>& dataMap);
65 // NOLINTEND
66
67public:
68 // vftables
69 // NOLINTBEGIN
70 MCAPI static void** $vftable();
71 // NOLINTEND
72};
Definition BiomeFilterGroup.h:13
Definition IMinecraftEventing.h:137
Definition MobSpawnRules.h:21
Definition ResourcePackManager.h:29
Definition SemVersion.h:15
Definition SpawnGroupData.h:10
Definition ActorSpawnRuleData.h:13