LeviLamina
Loading...
Searching...
No Matches
LiquidBlockBase.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/utility/optional_ref.h"
7#include "mc/world/level/block/BlockType.h"
8
9// auto generated forward declare list
10// clang-format off
11class AABB;
12class Actor;
13class Block;
14class BlockPos;
15class BlockSource;
16class Experiments;
19class Material;
20class Random;
21class Vec3;
24namespace BlockEvents { class BlockPlaceEvent; }
25// clang-format on
26
27class LiquidBlockBase : public ::BlockType {
28public:
29 // virtual functions
30 // NOLINTBEGIN
31 virtual bool mayPick(::BlockSource const& region, ::Block const& block, bool liquid) const /*override*/;
32
33 virtual ::AABB getCollisionShape(
34 ::Block const&,
36 ::BlockPos const&,
38 ) const /*override*/;
39
40 virtual void animateTickBedrockLegacy(::BlockAnimateTickData const& tickData) const /*override*/;
41
42 virtual void neighborChanged(::BlockSource& region, ::BlockPos const& pos, ::BlockPos const& neighborPos) const
43 /*override*/;
44
45 virtual bool checkIsPathable(::Actor& entity, ::BlockPos const& lastPathPos, ::BlockPos const& pathPos) const
46 /*override*/;
47
48 virtual void onGraphicsModeChanged(::BlockGraphicsModeChangeContext const& context) /*override*/;
49
50 virtual void _addHardCodedBlockComponents(::Experiments const& experiments) /*override*/;
51
52 virtual ~LiquidBlockBase() /*override*/ = default;
53 // NOLINTEND
54
55public:
56 // member functions
57 // NOLINTBEGIN
58 MCAPI void _solidify(::BlockSource& region, ::BlockPos const& pos, ::BlockPos const& changedNeighbor) const;
59
60 MCAPI void emitFizzParticle(::BlockSource& region, ::BlockPos const& p) const;
61
62 MCAPI int getTickDelay(::BlockSource& region) const;
63
64 MCAPI void onPlaceBase(::BlockEvents::BlockPlaceEvent& eventData) const;
65
66 MCAPI void solidify(::BlockSource& region, ::BlockPos const& pos, ::BlockPos const& changedNeighbor) const;
67
68 MCAPI void trySpreadFire(::BlockSource& region, ::BlockPos const& pos, ::Random& random) const;
69 // NOLINTEND
70
71public:
72 // static functions
73 // NOLINTBEGIN
74 MCAPI static ::Vec3 _getFlow(::IConstBlockSource const& region, ::BlockPos const& pos, ::Material const& material);
75
76#ifdef LL_PLAT_C
77 MCAPI static float getSlopeAngle(::BlockSource& region, ::BlockPos const& pos, ::Material const& m);
78#endif
79 // NOLINTEND
80
81public:
82 // virtual function thunks
83 // NOLINTBEGIN
84 MCAPI bool $mayPick(::BlockSource const& region, ::Block const& block, bool liquid) const;
85
86 MCFOLD ::AABB $getCollisionShape(
87 ::Block const&,
89 ::BlockPos const&,
91 ) const;
92
93 MCAPI void $animateTickBedrockLegacy(::BlockAnimateTickData const& tickData) const;
94
95 MCAPI void $neighborChanged(::BlockSource& region, ::BlockPos const& pos, ::BlockPos const& neighborPos) const;
96
97 MCAPI bool $checkIsPathable(::Actor& entity, ::BlockPos const& lastPathPos, ::BlockPos const& pathPos) const;
98
99 MCAPI void $onGraphicsModeChanged(::BlockGraphicsModeChangeContext const& context);
100
101 MCAPI void $_addHardCodedBlockComponents(::Experiments const& experiments);
102
103
104 // NOLINTEND
105
106public:
107 // vftables
108 // NOLINTBEGIN
109 MCAPI static void** $vftable();
110 // NOLINTEND
111};
Definition AABB.h:18
Definition Actor.h:106
Definition BlockPlaceEvent.h:16
Definition BlockPos.h:19
Definition BlockSource.h:71
Definition Block.h:43
Definition Experiments.h:14
Definition GetCollisionShapeInterface.h:13
Definition IConstBlockSource.h:25
Definition LiquidBlockBase.h:27
Definition Material.h:8
Definition Random.h:10
Definition Vec3.h:10
Definition optional_ref.h:10
Definition BlockAnimateTickData.h:14
Definition BlockGraphicsModeChangeContext.h:5
Definition context.h:5