LeviLamina
Loading...
Searching...
No Matches
IScriptBlockComponentFactory.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/scripting/lifetime_registry/StrongTypedObjectHandle.h"
7
8// auto generated forward declare list
9// clang-format off
10class Block;
11class BlockPos;
12class BlockSource;
13namespace ScriptModuleMinecraft { class BaseScriptBlockComponent; }
14namespace Scripting { class Release; }
15namespace Scripting { class WeakLifetimeScope; }
16namespace Scripting { struct ClassBinding; }
17// clang-format on
18
19namespace ScriptModuleMinecraft {
20
22public:
23 // virtual functions
24 // NOLINTBEGIN
25 virtual ~IScriptBlockComponentFactory() = default;
26
27 virtual ::std::optional<::Scripting::StrongTypedObjectHandle<::ScriptModuleMinecraft::BaseScriptBlockComponent>>
28 createComponent(::BlockSource& region, ::BlockPos const& position, ::Scripting::WeakLifetimeScope const& scope) = 0;
29
30 virtual ::std::vector<::Scripting::ClassBinding> bind() const = 0;
31
32 virtual bool canAddOn(::Block const& block) const;
33
34 virtual ::std::optional<::Scripting::Release> overrideEnumVersion() const;
35 // NOLINTEND
36
37public:
38 // virtual function thunks
39 // NOLINTBEGIN
40 MCFOLD bool $canAddOn(::Block const& block) const;
41
42
43 // NOLINTEND
44};
45
46} // namespace ScriptModuleMinecraft
Definition BlockPos.h:19
Definition BlockSource.h:71
Definition Block.h:43
Definition BaseScriptBlockComponent.h:20
Definition IScriptBlockComponentFactory.h:21
Definition Release.h:16
Definition WeakLifetimeScope.h:7
Definition ClassBinding.h:19