LeviLamina
Loading...
Searching...
No Matches
PistonBlockActor.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/world/level/BlockPos.h"
7#include "mc/world/level/block/actor/BlockActor.h"
8#include "mc/world/level/block/actor/PistonState.h"
9
10// auto generated forward declare list
11// clang-format off
12class AABB;
13class Actor;
14class Block;
16class BlockSource;
17class CompoundTag;
18class DataLoadHelper;
19class ILevel;
20class SaveContext;
21class Vec3;
22// clang-format on
23
24class PistonBlockActor : public ::BlockActor {
25public:
26 // member variables
27 // NOLINTBEGIN
28 ::ll::TypedStorage<1, 1, bool> mSticky;
29 ::ll::TypedStorage<4, 4, float> mProgress;
30 ::ll::TypedStorage<4, 4, float> mLastProgress;
31 ::ll::TypedStorage<1, 1, bool> mWasPushedBackwardByANonStickyPiston;
32 ::ll::TypedStorage<1, 1, bool> mWasPulledForwardByAStickyPiston;
33 ::ll::TypedStorage<1, 1, ::PistonState> mOldState;
34 ::ll::TypedStorage<1, 1, ::PistonState> mState;
35 ::ll::TypedStorage<1, 1, ::PistonState> mNewState;
36 ::ll::TypedStorage<1, 1, bool> mVerifyArm;
37 ::ll::TypedStorage<1, 1, bool> mShouldVerifyArmType;
38 ::ll::TypedStorage<8, 24, ::std::vector<::BlockPos>> mAttachedBlocks;
39 ::ll::TypedStorage<8, 32, ::std::optional<::std::vector<::BlockPos>>> mFutureClientAttachedBlocks;
40 ::ll::TypedStorage<8, 24, ::std::vector<::BlockPos>> mBreakBlocks;
41 // NOLINTEND
42
43public:
44 // prevent constructor by default
45 PistonBlockActor();
46
47public:
48 // virtual functions
49 // NOLINTBEGIN
50 virtual void load(::ILevel& level, ::CompoundTag const& tag, ::DataLoadHelper& dataLoadHelper) /*override*/;
51
52 virtual bool save(::CompoundTag& tag, ::SaveContext const& saveContext) const /*override*/;
53
54 virtual void tick(::BlockSource& region) /*override*/;
55
56 virtual void onRemoved(::BlockSource& region) /*override*/;
57
58 virtual ::PistonBlockActor* getOwningPiston(::BlockSource&) /*override*/;
59
60 virtual ::PistonBlockActor const* getOwningPiston(::BlockSource&) const /*override*/;
61
62 virtual ::std::unique_ptr<::BlockActorDataPacket> _getUpdatePacket(::BlockSource&) /*override*/;
63
64 virtual void _onUpdatePacket(::CompoundTag const& data, ::BlockSource& region) /*override*/;
65
66 virtual ~PistonBlockActor() /*override*/;
67 // NOLINTEND
68
69public:
70 // member functions
71 // NOLINTBEGIN
72 MCAPI PistonBlockActor(::BlockPos const& pos, bool isSticky);
73
74 MCAPI bool _attachedBlockWalker(
75 ::BlockSource& region,
76 ::BlockPos const& curPos,
77 uchar curBranchFacing,
78 uchar pistonMoveFacing
79 );
80
81 MCAPI bool _checkAttachedBlocks(::BlockSource& region);
82
83 MCAPI void _checkInceptionAchievement(::BlockActor& be, ::BlockSource& region, ::BlockPos const& facingDir);
84
85 MCAPI bool _handleSlimeConnections(
86 ::BlockSource& region,
87 ::BlockPos const& curPos,
88 uchar curBranchFacing,
89 uchar pistonMoveFacing
90 );
91
92 MCAPI bool _hasBlockAttached(::BlockPos const& blockPos);
93
94 MCAPI void _moveCollidedEntities(::BlockSource& region);
95
96 MCAPI void _moveCollidedEntitiesHelper(
97 ::BlockSource& region,
98 ::AABB const& insideBlockAABB,
99 ::BlockPos const& facingDir,
100 ::Actor* ignore,
101 uint searchHeight
102 );
103
104 MCAPI void _sortAttachedBlocks(::BlockSource& region);
105
106 MCAPI void _spawnBlocks(::BlockSource& region);
107
108 MCAPI void _spawnMovingBlock(::BlockSource& region, ::BlockPos const& blockPos);
109
110 MCAPI void _spawnMovingBlocks(::BlockSource& region);
111
112 MCAPI ::Block const* getCorrectArmBlock() const;
113
114 MCAPI void moveEntityLastProgress(::Actor& entity, ::Vec3 delta);
115 // NOLINTEND
116
117public:
118 // constructor thunks
119 // NOLINTBEGIN
120 MCAPI void* $ctor(::BlockPos const& pos, bool isSticky);
121 // NOLINTEND
122
123public:
124 // destructor thunk
125 // NOLINTBEGIN
126 MCAPI void $dtor();
127 // NOLINTEND
128
129public:
130 // virtual function thunks
131 // NOLINTBEGIN
132 MCAPI void $load(::ILevel& level, ::CompoundTag const& tag, ::DataLoadHelper& dataLoadHelper);
133
134 MCAPI bool $save(::CompoundTag& tag, ::SaveContext const& saveContext) const;
135
136 MCAPI void $tick(::BlockSource& region);
137
138 MCAPI void $onRemoved(::BlockSource& region);
139
140 MCFOLD ::PistonBlockActor* $getOwningPiston(::BlockSource&);
141
142 MCFOLD ::PistonBlockActor const* $getOwningPiston(::BlockSource&) const;
143
144 MCFOLD ::std::unique_ptr<::BlockActorDataPacket> $_getUpdatePacket(::BlockSource&);
145
146 MCAPI void $_onUpdatePacket(::CompoundTag const& data, ::BlockSource& region);
147
148
149 // NOLINTEND
150
151public:
152 // vftables
153 // NOLINTBEGIN
154 MCNAPI static void** $vftable();
155 // NOLINTEND
156};
Definition AABB.h:18
Definition Actor.h:106
Definition BlockActorDataPacket.h:19
Definition BlockPos.h:19
Definition BlockSource.h:71
Definition Block.h:43
Definition CompoundTag.h:23
Definition DataLoadHelper.h:20
Definition ILevel.h:218
static MCAPI void ** $vftable()
Definition SaveContext.h:5
Definition Vec3.h:10