LeviLamina
Loading...
Searching...
No Matches
DiodeBlock.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/world/level/block/BlockType.h"
7
8// auto generated forward declare list
9// clang-format off
10class Actor;
11class Block;
12class BlockPos;
13class BlockSource;
14// clang-format on
15
16class DiodeBlock : public ::BlockType {
17public:
18 // member variables
19 // NOLINTBEGIN
20 ::ll::TypedStorage<1, 1, bool> mOn;
21 // NOLINTEND
22
23public:
24 // virtual functions
25 // NOLINTBEGIN
26 virtual bool mayPlace(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
27
28 virtual bool canSurvive(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
29
30 virtual int getVariant(::Block const& block) const /*override*/;
31
32 virtual int getDirectSignal(::BlockSource& region, ::BlockPos const& pos, int dir) const /*override*/;
33
34 virtual int getSignal(::BlockSource& region, ::BlockPos const& pos, int dir) const;
35
36 virtual bool isSignalSource() const /*override*/;
37
38 virtual bool isLocked(::BlockSource&, ::BlockPos const&) const;
39
40 virtual bool isSameDiode(::Block const& block) const;
41
42 virtual bool shouldPrioritize(::BlockSource& region, ::BlockPos const& pos) const;
43
44 virtual bool canSpawnOn(::Actor*) const /*override*/;
45
46 virtual bool isOn() const;
47
48 virtual bool shouldTurnOn(::BlockSource& region, ::BlockPos const& pos) const;
49
50 virtual int getInputSignal(::BlockSource& region, ::BlockPos const& pos) const;
51
52 virtual bool isAlternateInput(::Block const&) const;
53
54 virtual int getAlternateSignal(::BlockSource& region, ::BlockPos const& pos) const;
55
56 virtual int getOutputSignal(::Block const& block) const;
57
58 virtual int getTurnOffDelay(::Block const& block) const;
59
60 virtual int getTurnOnDelay(::Block const&) const = 0;
61
62 virtual ::Block const* getOnBlock(::Block const*) const = 0;
63
64 virtual ::Block const* getOffBlock(::Block const*) const = 0;
65
66 virtual ~DiodeBlock() /*override*/ = default;
67 // NOLINTEND
68
69public:
70 // static functions
71 // NOLINTBEGIN
72 MCAPI static bool isDiode(::Block const& block);
73 // NOLINTEND
74
75public:
76 // virtual function thunks
77 // NOLINTBEGIN
78 MCAPI int $getVariant(::Block const& block) const;
79
80 MCAPI int $getDirectSignal(::BlockSource& region, ::BlockPos const& pos, int dir) const;
81
82 MCAPI int $getSignal(::BlockSource& region, ::BlockPos const& pos, int dir) const;
83
84 MCFOLD bool $isSignalSource() const;
85
86 MCAPI bool $isSameDiode(::Block const& block) const;
87
88 MCAPI bool $shouldPrioritize(::BlockSource& region, ::BlockPos const& pos) const;
89
90 MCFOLD bool $canSpawnOn(::Actor*) const;
91
92 MCAPI bool $isOn() const;
93
94 MCAPI bool $shouldTurnOn(::BlockSource& region, ::BlockPos const& pos) const;
95
96 MCAPI int $getInputSignal(::BlockSource& region, ::BlockPos const& pos) const;
97
98 MCAPI int $getAlternateSignal(::BlockSource& region, ::BlockPos const& pos) const;
99
100 MCFOLD int $getOutputSignal(::Block const& block) const;
101
102 MCAPI int $getTurnOffDelay(::Block const& block) const;
103
104
105 // NOLINTEND
106};
Definition Actor.h:105
Definition BlockPos.h:19
Definition BlockSource.h:68
Definition Block.h:43
Definition DiodeBlock.h:16