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 SpawnGroupRegistry(::ResourcePackManager& resourcePackManager, ::IMinecraftEventing& eventing);
53
54 MCAPI void _addSpawnRules(::std::string const& identifier, ::MobSpawnRules& spawnRules);
55
56 MCAPI void _getResources(
57 ::ResourcePackManager& resourcePackManager,
58 ::std::function<void(::std::string const&, int, ::BiomeFilterGroup&, ::MobSpawnRules&, ::SemVersion const&)>
59 callback
60 );
61
62 MCAPI ::Puv::LoadResult<::ActorSpawnRuleData>
63 _readJson(::std::string&& data, ::std::unordered_map<::std::string, ::ActorSpawnRuleData>& dataMap);
64
65 MCAPI ::SpawnGroupData const* getSpawnGroup(::std::string const& identifier) const;
66
67 MCAPI void
68 readResourceFiles(::ResourcePackManager& dataMap, ::std::unordered_map<::std::string, ::ActorSpawnRuleData>&);
69 // NOLINTEND
70
71public:
72 // constructor thunks
73 // NOLINTBEGIN
74 MCAPI void* $ctor(::ResourcePackManager& resourcePackManager, ::IMinecraftEventing& eventing);
75 // NOLINTEND
76
77public:
78 // vftables
79 // NOLINTBEGIN
80 MCAPI static void** $vftable();
81 // NOLINTEND
82};
Definition BiomeFilterGroup.h:13
Definition IMinecraftEventing.h:138
Definition MobSpawnRules.h:21
Definition ResourcePackManager.h:35
Definition SemVersion.h:15
Definition SpawnGroupData.h:10
Definition ActorSpawnRuleData.h:13