Skip to content
LeviMC
English
AutoLightDark
LeviLamina
Loading...
Searching...
No Matches
CameraItemComponentLegacy.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/molang/MolangVersion.h"
7#include "mc/world/item/HandSlot.h"
8#include "mc/world/item/components/ICameraItemComponent.h"
9
10// auto generated forward declare list
11// clang-format off
12class Actor;
13class BlockPos;
14class CompoundTag;
15class ItemStack;
16class Player;
17class Vec3;
18namespace Json { class Value; }
19class CameraCallbacks;
20// clang-format on
21
23public:
24 // CameraItemComponentLegacy inner types define
25 enum class UseAction : uchar {
26 None = 0,
27 Place = 1,
28 Use = 2,
29 };
30
31 using PlaceCallback = ::std::function<void(::Vec3 const&, ::Player&)>;
32
33 using UseCallback = ::std::function<void(::Player&)>;
34
35public:
36 // member variables
37 // NOLINTBEGIN
38 ::ll::TypedStorage<4, 4, float> mBlackBarsDuration;
39 ::ll::TypedStorage<4, 4, float> mBlackBarsScreenRatio;
40 ::ll::TypedStorage<4, 4, float> mShutterScreenRatio;
41 ::ll::TypedStorage<4, 4, float> mShutterDuration;
42 ::ll::TypedStorage<4, 4, float> mPictureDuration;
43 ::ll::TypedStorage<4, 4, float> mSlideAwayDuration;
44 ::ll::TypedStorage<1, 1, bool> mPlacingTripod;
45 ::ll::TypedStorage<8, 8, uint64> mPlacingTripodClientTick;
46 ::ll::TypedStorage<8, 8, uint64> mPlacingTripodServerTick;
47 ::ll::TypedStorage<8, 8, ::CameraCallbacks*> mCallbacks;
48 // NOLINTEND
49
50public:
51 // virtual functions
52 // NOLINTBEGIN
53 virtual ~CameraItemComponentLegacy() /*override*/ = default;
54
55 virtual void takePictureNow(::Player& player, ::Actor* camera, ::Actor* target) /*override*/;
56
57 virtual void use(::ItemStack& instance, ::Player& player, ::HandSlot handSlot) /*override*/;
58
59 virtual void releaseUsing(::ItemStack& instance, ::Player& player, int durationLeft) /*override*/;
60
61 virtual bool useOn(
62 ::ItemStack& instance,
63 ::Actor& actor,
64 ::BlockPos const& blockPos,
65 uchar face,
66 ::Vec3 const&,
67 ::HandSlot handSlot
68 ) /*override*/;
69
70 virtual bool canPlace(::ItemStack const& instance, ::Actor& actor, ::BlockPos const& blockPos, uchar face) const
71 /*override*/;
72
73 virtual float blackBarsDuration() const /*override*/;
74
75 virtual float blackBarsScreenRatio() const /*override*/;
76
77 virtual float shutterScreenRatio() const /*override*/;
78
79 virtual float shutterDuration() const /*override*/;
80
81 virtual float pictureDuration() const /*override*/;
82
83 virtual float slideAwayDuration() const /*override*/;
84
85 virtual void registerCallbacks(::CameraCallbacks* callbacks) /*override*/;
86 // NOLINTEND
87
88public:
89 // member functions
90 // NOLINTBEGIN
91 MCNAPI ::std::unique_ptr<::CompoundTag> buildNetworkTag() const;
92
93 MCNAPI bool init(::Json::Value const& data, ::MolangVersion);
94 // NOLINTEND
95
96public:
97 // static functions
98 // NOLINTBEGIN
99 MCNAPI static ::CameraItemComponentLegacy::UseAction
100 _tryPlace(::ItemStack const& instance, ::Actor& actor, ::BlockPos const& blockPos, uchar face, ::Vec3& spawnPos);
101
102 MCNAPI static ::Json::Value initializeFromNetwork(::CompoundTag const& tag);
103 // NOLINTEND
104
105public:
106 // virtual function thunks
107 // NOLINTBEGIN
108 MCNAPI void $takePictureNow(::Player& player, ::Actor* camera, ::Actor* target);
109
110 MCNAPI void $use(::ItemStack& instance, ::Player& player, ::HandSlot handSlot);
111
112 MCNAPI void $releaseUsing(::ItemStack& instance, ::Player& player, int durationLeft);
113
114 MCNAPI bool $useOn(
115 ::ItemStack& instance,
116 ::Actor& actor,
117 ::BlockPos const& blockPos,
118 uchar face,
119 ::Vec3 const&,
120 ::HandSlot handSlot
121 );
122
123 MCNAPI bool $canPlace(::ItemStack const& instance, ::Actor& actor, ::BlockPos const& blockPos, uchar face) const;
124
125 MCNAPI float $blackBarsDuration() const;
126
127 MCNAPI float $blackBarsScreenRatio() const;
128
129 MCNAPI float $shutterScreenRatio() const;
130
131 MCNAPI float $shutterDuration() const;
132
133 MCNAPI float $pictureDuration() const;
134
135 MCNAPI float $slideAwayDuration() const;
136
137 MCNAPI void $registerCallbacks(::CameraCallbacks* callbacks);
138
139
140 // NOLINTEND
141
142public:
143 // vftables
144 // NOLINTBEGIN
145 MCNAPI static void** $vftable();
146 // NOLINTEND
147};
Definition Actor.h:116
Definition BlockPos.h:14
Definition CameraCallbacks.h:5
Definition CameraItemComponentLegacy.h:22
MCAPI float $slideAwayDuration() const
MCAPI float $blackBarsDuration() const
MCAPI bool init(::Json::Value const &data, ::MolangVersion)
MCAPI float $blackBarsScreenRatio() const
MCAPI float $shutterScreenRatio() const
MCAPI void $use(::ItemStack &instance, ::Player &player, ::HandSlot handSlot)
MCAPI void $registerCallbacks(::CameraCallbacks *callbacks)
MCAPI bool $canPlace(::ItemStack const &instance, ::Actor &actor, ::BlockPos const &blockPos, uchar face) const
static MCAPI ::Json::Value initializeFromNetwork(::CompoundTag const &tag)
static MCAPI void ** $vftable()
MCAPI void $takePictureNow(::Player &player, ::Actor *camera, ::Actor *target)
MCAPI ::std::unique_ptr<::CompoundTag > buildNetworkTag() const
MCAPI bool $useOn(::ItemStack &instance, ::Actor &actor, ::BlockPos const &blockPos, uchar face, ::Vec3 const &, ::HandSlot handSlot)
static MCAPI ::CameraItemComponentLegacy::UseAction _tryPlace(::ItemStack const &instance, ::Actor &actor, ::BlockPos const &blockPos, uchar face, ::Vec3 &spawnPos)
MCAPI float $shutterDuration() const
MCAPI void $releaseUsing(::ItemStack &instance, ::Player &player, int durationLeft)
MCAPI float $pictureDuration() const
Definition CompoundTag.h:18
Definition ICameraItemComponent.h:18
Definition ItemStack.h:26
Definition Value.h:16
Definition Player.h:131
Definition Vec3.h:10