LeviLamina
Loading...
Searching...
No Matches
MovingBlockActor.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/phys/AABB.h"
9
10// auto generated forward declare list
11// clang-format off
12class Block;
14class BlockSource;
15class CompoundTag;
16class DataLoadHelper;
18class ILevel;
20class SaveContext;
21class Vec3;
22// clang-format on
23
24class MovingBlockActor : public ::BlockActor {
25public:
26 // member variables
27 // NOLINTBEGIN
28 ::ll::TypedStorage<8, 8, ::Block const*> mWrappedBlock;
29 ::ll::TypedStorage<8, 8, ::Block const*> mWrappedExtraBlock;
30 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::BlockActor>> mWrappedBlockActor;
31 ::ll::TypedStorage<4, 12, ::BlockPos> mPistonBlockPos;
32 ::ll::TypedStorage<1, 1, bool> mPistonBlockExpanding;
33 ::ll::TypedStorage<4, 24, ::AABB> mCollisionShape;
34 ::ll::TypedStorage<1, 1, bool> mPreserved;
35 ::ll::TypedStorage<4, 4, int> mPreservedLifespan;
36 // NOLINTEND
37
38public:
39 // prevent constructor by default
40 MovingBlockActor();
41
42public:
43 // virtual functions
44 // NOLINTBEGIN
45 virtual ~MovingBlockActor() /*override*/ = default;
46
47 virtual void load(::ILevel& level, ::CompoundTag const& tag, ::DataLoadHelper& dataLoadHelper) /*override*/;
48
49 virtual bool save(::CompoundTag& tag, ::SaveContext const& saveContext) const /*override*/;
50
51 virtual void tick(::BlockSource& region) /*override*/;
52
53 virtual ::PistonBlockActor* getOwningPiston(::BlockSource& region) /*override*/;
54
55 virtual ::PistonBlockActor const* getOwningPiston(::BlockSource& region) const /*override*/;
56
57 virtual ::AABB getCollisionShape(::IConstBlockSource const& region) const /*override*/;
58
59 virtual bool isPreserved(::BlockSource& region) const /*override*/;
60
61 virtual bool shouldPreserve(::BlockSource& region) /*override*/;
62
63 virtual ::std::unique_ptr<::BlockActorDataPacket> _getUpdatePacket(::BlockSource&) /*override*/;
64
65 virtual void _onUpdatePacket(::CompoundTag const& data, ::BlockSource& region) /*override*/;
66 // NOLINTEND
67
68public:
69 // member functions
70 // NOLINTBEGIN
71 MCAPI explicit MovingBlockActor(::BlockPos const& pos);
72
73 MCAPI ::std::pair<::AABB, ::AABB> _getWrappedBlockCollisionShapes(::IConstBlockSource const& region) const;
74
75 MCAPI ::std::shared_ptr<::BlockActor> aquireWrappedBlockActor();
76
77 MCAPI ::Vec3 getDrawPos(::IConstBlockSource const& region, float a) const;
78
79 MCFOLD ::Block const& getWrappedBlock() const;
80
81#ifdef LL_PLAT_C
82 MCFOLD ::BlockActor* getWrappedBlockActor();
83#endif
84
85 MCFOLD ::Block const& getWrappedExtraBlock();
86
87 MCAPI void moveCollidedEntities(::PistonBlockActor& pistonBlock, ::BlockSource& region);
88
89 MCAPI void registerPiston(::BlockSource const& region, ::BlockPos const& pistonPos);
90
91 MCAPI void setWrappedBlock(::Block const& inBlock);
92
93 MCAPI void setWrappedBlockActor(::std::shared_ptr<::BlockActor> be);
94
95 MCFOLD void setWrappedExtraBlock(::Block const& extraBlock);
96 // NOLINTEND
97
98public:
99 // constructor thunks
100 // NOLINTBEGIN
101 MCAPI void* $ctor(::BlockPos const& pos);
102 // NOLINTEND
103
104public:
105 // virtual function thunks
106 // NOLINTBEGIN
107 MCAPI void $load(::ILevel& level, ::CompoundTag const& tag, ::DataLoadHelper& dataLoadHelper);
108
109 MCAPI bool $save(::CompoundTag& tag, ::SaveContext const& saveContext) const;
110
111 MCAPI void $tick(::BlockSource& region);
112
113 MCFOLD ::PistonBlockActor* $getOwningPiston(::BlockSource& region);
114
115 MCFOLD ::PistonBlockActor const* $getOwningPiston(::BlockSource& region) const;
116
117 MCAPI ::AABB $getCollisionShape(::IConstBlockSource const& region) const;
118
119 MCAPI bool $isPreserved(::BlockSource& region) const;
120
121 MCAPI bool $shouldPreserve(::BlockSource& region);
122
123 MCFOLD ::std::unique_ptr<::BlockActorDataPacket> $_getUpdatePacket(::BlockSource&);
124
125 MCFOLD void $_onUpdatePacket(::CompoundTag const& data, ::BlockSource& region);
126
127
128 // NOLINTEND
129
130public:
131 // vftables
132 // NOLINTBEGIN
133 MCNAPI static void** $vftable();
134 // NOLINTEND
135};
Definition BlockActorDataPacket.h:19
Definition BlockPos.h:21
Definition BlockSource.h:73
Definition Block.h:69
Definition CompoundTag.h:23
Definition DataLoadHelper.h:20
Definition IConstBlockSource.h:24
Definition ILevel.h:219
static MCAPI void ** $vftable()
Definition PistonBlockActor.h:25
Definition SaveContext.h:5
Definition Vec3.h:10