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/level/block/actor/VanillaBlockActor.h"
9#include "mc/world/phys/AABB.h"
10
11// auto generated forward declare list
12// clang-format off
13class Block;
15class BlockSource;
16class CompoundTag;
17class DataLoadHelper;
19class ILevel;
21class SaveContext;
22class Vec3;
23// clang-format on
24
25class MovingBlockActor : public ::VanillaBlockActor {
26public:
27 // member variables
28 // NOLINTBEGIN
29 ::ll::TypedStorage<8, 8, ::Block const*> mWrappedBlock;
30 ::ll::TypedStorage<8, 8, ::Block const*> mWrappedExtraBlock;
31 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::BlockActor>> mWrappedBlockActor;
32 ::ll::TypedStorage<4, 12, ::BlockPos> mPistonBlockPos;
33 ::ll::TypedStorage<1, 1, bool> mPistonBlockExpanding;
34 ::ll::TypedStorage<4, 24, ::AABB> mCollisionShape;
35 ::ll::TypedStorage<1, 1, bool> mPreserved;
36 ::ll::TypedStorage<4, 4, int> mPreservedLifespan;
37 // NOLINTEND
38
39public:
40 // prevent constructor by default
41 MovingBlockActor();
42
43public:
44 // virtual functions
45 // NOLINTBEGIN
46 virtual ~MovingBlockActor() /*override*/ = default;
47
48 virtual void load(::ILevel& level, ::CompoundTag const& tag, ::DataLoadHelper& dataLoadHelper) /*override*/;
49
50 virtual bool save(::CompoundTag& tag, ::SaveContext const& saveContext) const /*override*/;
51
52 virtual void tick(::BlockSource& region) /*override*/;
53
54 virtual ::std::unique_ptr<::BlockActorDataPacket> _getUpdatePacket(::BlockSource&) /*override*/;
55
56 virtual void _onUpdatePacket(::CompoundTag const& data, ::BlockSource& region) /*override*/;
57 // NOLINTEND
58
59public:
60 // member functions
61 // NOLINTBEGIN
62 MCAPI explicit MovingBlockActor(::BlockPos const& pos);
63
64 MCAPI ::std::pair<::AABB, ::AABB> _getWrappedBlockCollisionShapes(::IConstBlockSource const& region) const;
65
66 MCAPI bool _shouldPreserve(::BlockSource& region);
67
68#ifdef LL_PLAT_C
69 MCAPI ::Vec3 getDrawPos(::IConstBlockSource const& region, float a) const;
70#endif
71
72 MCAPI void moveCollidedEntities(::PistonBlockActor& pistonBlock, ::BlockSource& region);
73 // NOLINTEND
74
75public:
76 // static functions
77 // NOLINTBEGIN
78#ifdef LL_PLAT_C
79 MCAPI static bool isPreserved(::BlockActor const& blockActor, ::BlockSource& region);
80#endif
81 // NOLINTEND
82
83public:
84 // constructor thunks
85 // NOLINTBEGIN
86 MCAPI void* $ctor(::BlockPos const& pos);
87 // NOLINTEND
88
89public:
90 // virtual function thunks
91 // NOLINTBEGIN
92 MCAPI void $load(::ILevel& level, ::CompoundTag const& tag, ::DataLoadHelper& dataLoadHelper);
93
94 MCAPI bool $save(::CompoundTag& tag, ::SaveContext const& saveContext) const;
95
96 MCAPI void $tick(::BlockSource& region);
97
98 MCFOLD ::std::unique_ptr<::BlockActorDataPacket> $_getUpdatePacket(::BlockSource&);
99
100 MCFOLD void $_onUpdatePacket(::CompoundTag const& data, ::BlockSource& region);
101
102
103 // NOLINTEND
104
105public:
106 // vftables
107 // NOLINTBEGIN
109
111
112 MCNAPI static void** $vftableForBlockActor();
113
115 // NOLINTEND
116};
Definition BlockActorDataPacket.h:19
Definition BlockActor.h:28
Definition BlockPos.h:17
Definition BlockSource.h:71
Definition Block.h:42
Definition CompoundTag.h:18
Definition DataLoadHelper.h:20
Definition IConstBlockSource.h:25
Definition ILevel.h:220
static MCAPI void ** $vftableForBlockActor()
static MCAPI void ** $vftableForIVanillaRenderBlockActorComponent()
static MCAPI void ** $vftableForIVanillaTickBlockActorComponent()
static MCAPI void ** $vftableForIVanillaMainBlockActorComponent()
Definition PistonBlockActor.h:25
Definition SaveContext.h:5
Definition Vec3.h:10