LeviLamina
Loading...
Searching...
No Matches
BlockArchetypeFactory.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/util/Factory.h"
7
8// auto generated forward declare list
9// clang-format off
10class BlockType;
11class CompoundTag;
12class IBlockArchetype;
13class Material;
14// clang-format on
15
16class BlockArchetypeFactory : public ::Factory<::BlockType> {
17public:
18 // static functions
19 // NOLINTBEGIN
20 MCAPI static ::BlockType& createBlock(
21 ::std::shared_ptr<::IBlockArchetype> blockArchetype,
22 ::std::string const& blockName,
23 int blockID,
24 ::Material const& material
25 );
26
27 MCAPI static void
28 initializeArchetypeFromNetwork(::CompoundTag const& tag, ::std::shared_ptr<::IBlockArchetype>& blockArchetype);
29 // NOLINTEND
30
31public:
32 // static variables
33 // NOLINTBEGIN
34 MCAPI static ::std::unordered_map<
35 ::std::string,
36 ::std::function<
37 ::BlockType&(::std::shared_ptr<::IBlockArchetype>, ::std::string const&, int, ::Material const&)>>&
38 mRegisteredArchetypeConstructors();
39
40 MCAPI static ::std::unordered_map<::std::string, ::std::function<::std::shared_ptr<::IBlockArchetype>()>>&
41 mRegisteredArchetypes();
42 // NOLINTEND
43};
Definition BlockArchetypeFactory.h:16
Definition BlockType.h:84
Definition CompoundTag.h:23
Definition Factory.h:6
Definition IBlockArchetype.h:10
Definition Material.h:8