Skip to content
LeviMC
English
AutoLightDark
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/BlockPushResult.h"
8#include "mc/world/level/block/actor/PistonState.h"
9#include "mc/world/level/block/actor/VanillaBlockActor.h"
10
11// auto generated forward declare list
12// clang-format off
13class AABB;
14class Actor;
15class Block;
16class BlockActor;
18class BlockSource;
19class CompoundTag;
20class DataLoadHelper;
22class ILevel;
23class SaveContext;
24class Vec3;
25// clang-format on
26
27class PistonBlockActor : public ::VanillaBlockActor {
28public:
29 // member variables
30 // NOLINTBEGIN
31 ::ll::TypedStorage<1, 1, bool> mSticky;
32 ::ll::TypedStorage<4, 4, float> mProgress;
33 ::ll::TypedStorage<4, 4, float> mLastProgress;
34 ::ll::TypedStorage<1, 1, bool> mWasPushedBackwardByANonStickyPiston;
35 ::ll::TypedStorage<1, 1, bool> mWasPulledForwardByAStickyPiston;
36 ::ll::TypedStorage<1, 1, ::PistonState> mOldState;
37 ::ll::TypedStorage<1, 1, ::PistonState> mState;
38 ::ll::TypedStorage<1, 1, ::PistonState> mNewState;
39 ::ll::TypedStorage<1, 1, bool> mVerifyArm;
40 ::ll::TypedStorage<1, 1, bool> mShouldVerifyArmType;
41 ::ll::TypedStorage<8, 24, ::std::vector<::BlockPos>> mAttachedBlocks;
42 ::ll::TypedStorage<8, 32, ::std::optional<::std::vector<::BlockPos>>> mFutureClientAttachedBlocks;
43 ::ll::TypedStorage<8, 24, ::std::vector<::BlockPos>> mBreakBlocks;
44 // NOLINTEND
45
46public:
47 // virtual functions
48 // NOLINTBEGIN
49 virtual void load(::ILevel& level, ::CompoundTag const& tag, ::DataLoadHelper& dataLoadHelper) /*override*/;
50
51 virtual bool save(::CompoundTag& tag, ::SaveContext const& saveContext) const /*override*/;
52
53 virtual bool saveItemInstanceData(::CompoundTag& tag) const /*override*/;
54
55 virtual void tick(::BlockSource& region) /*override*/;
56
57 virtual void onRemoved(::BlockSource& region) /*override*/;
58
59 virtual ::std::unique_ptr<::BlockActorDataPacket> _getUpdatePacket(::BlockSource&) /*override*/;
60
61 virtual void _onUpdatePacket(::CompoundTag const& data, ::BlockSource& region) /*override*/;
62 // NOLINTEND
63
64public:
65 // member functions
66 // NOLINTBEGIN
67 MCAPI bool _attachedBlockWalker(
68 ::BlockSource& region,
69 ::BlockPos const& curPos,
70 uchar curBranchFacing,
71 uchar pistonMoveFacing
72 );
73
74 MCAPI bool _checkAttachedBlocks(::BlockSource& region);
75
76 MCNAPI bool _hasBlockAttached(::BlockPos const& blockPos);
77
79
81 ::BlockSource& region,
82 ::AABB const& insideBlockAABB,
83 ::BlockPos const& facingDir,
84 ::Actor* ignore,
85 uint searchHeight
86 );
87
88 MCNAPI void _spawnBlocks(::BlockSource& region);
89
90 MCAPI void _spawnMovingBlock(::BlockSource& region, ::BlockPos const& blockPos);
91
92 MCAPI void _spawnMovingBlocks(::BlockSource& region);
93
94 MCNAPI ::Block const* getCorrectArmBlock() const;
95
96 MCAPI ::BlockPos const& getFacingDir(::IConstBlockSource const& region) const;
97
98 MCAPI void moveEntityLastProgress(::Actor& entity, ::Vec3 delta);
99
100 MCNAPI ::BlockPushResult pushOrHurtCollidedEntity(::Actor& entity, ::Vec3 const& pushDelta);
101
102 MCNAPI void
103 resetAfterCommandStateChange(::BlockSource& region, ::BlockPos const& pos, ::Block const& previousPiston);
104
105 MCNAPI void resetToRetracted();
106 // NOLINTEND
107
108public:
109 // static functions
110 // NOLINTBEGIN
111 MCNAPI static ::PistonBlockActor const* getOwningPiston(::BlockActor const& blockActor, ::BlockSource& region);
112
113 MCNAPI static ::PistonBlockActor* getOwningPiston(::BlockActor& blockActor, ::BlockSource& region);
114 // NOLINTEND
115
116public:
117 // virtual function thunks
118 // NOLINTBEGIN
119 MCNAPI void $load(::ILevel& level, ::CompoundTag const& tag, ::DataLoadHelper& dataLoadHelper);
120
121 MCNAPI bool $save(::CompoundTag& tag, ::SaveContext const& saveContext) const;
122
123 MCNAPI bool $saveItemInstanceData(::CompoundTag& tag) const;
124
125 MCAPI void $tick(::BlockSource& region);
126
127 MCNAPI void $onRemoved(::BlockSource& region);
128
129 MCNAPI ::std::unique_ptr<::BlockActorDataPacket> $_getUpdatePacket(::BlockSource&);
130
131 MCAPI void $_onUpdatePacket(::CompoundTag const& data, ::BlockSource& region);
132
133
134 // NOLINTEND
135
136public:
137 // vftables
138 // NOLINTBEGIN
140
142
144
145 MCNAPI static void** $vftableForBlockActor();
146 // NOLINTEND
147};
Definition AABB.h:18
Definition Actor.h:116
Definition BlockActorDataPacket.h:19
Definition BlockActor.h:30
Definition BlockPos.h:14
Definition BlockSource.h:72
Definition Block.h:42
Definition CompoundTag.h:18
Definition DataLoadHelper.h:20
Definition IConstBlockSource.h:25
Definition ILevel.h:223
Definition PistonBlockActor.h:27
MCAPI::BlockPushResult pushOrHurtCollidedEntity(::Actor &entity, ::Vec3 const &pushDelta)
MCAPI void resetAfterCommandStateChange(::BlockSource &region, ::BlockPos const &pos, ::Block const &previousPiston)
static MCAPI void ** $vftableForBlockActor()
static MCAPI ::PistonBlockActor const * getOwningPiston(::BlockActor const &blockActor, ::BlockSource &region)
MCAPI ::std::unique_ptr<::BlockActorDataPacket > $_getUpdatePacket(::BlockSource &)
MCAPI void resetToRetracted()
MCAPI void _moveCollidedEntities(::BlockSource &region)
static MCAPI void ** $vftableForIVanillaTickBlockActorComponent()
MCAPI bool _hasBlockAttached(::BlockPos const &blockPos)
MCAPI::Block const * getCorrectArmBlock() const
static MCAPI ::PistonBlockActor * getOwningPiston(::BlockActor &blockActor, ::BlockSource &region)
MCAPI void $onRemoved(::BlockSource &region)
MCAPI void $load(::ILevel &level, ::CompoundTag const &tag, ::DataLoadHelper &dataLoadHelper)
MCAPI bool $save(::CompoundTag &tag, ::SaveContext const &saveContext) const
static MCAPI void ** $vftableForIVanillaRenderBlockActorComponent()
MCAPI void _moveCollidedEntitiesHelper(::BlockSource &region, ::AABB const &insideBlockAABB, ::BlockPos const &facingDir, ::Actor *ignore, uint searchHeight)
MCAPI bool $saveItemInstanceData(::CompoundTag &tag) const
static MCAPI void ** $vftableForIVanillaMainBlockActorComponent()
MCAPI void _spawnBlocks(::BlockSource &region)
Definition SaveContext.h:5
Definition Vec3.h:10