LeviLamina
Loading...
Searching...
No Matches
LodestoneCompassItem.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/world/item/AbstractCompassItem.h"
7
8// auto generated forward declare list
9// clang-format off
10class Actor;
11class BlockPos;
12class BlockSource;
14class ItemStack;
15class ItemStackBase;
16class Level;
19class Mob;
21class Vec3;
22struct ActorUniqueID;
23struct DimensionType;
24namespace PositionTrackingDB { class PositionTrackingDBServer; }
25namespace PositionTrackingDB { class TrackingRecord; }
26// clang-format on
27
28class LodestoneCompassItem : public ::AbstractCompassItem {
29public:
30 // prevent constructor by default
31 LodestoneCompassItem();
32
33public:
34 // virtual functions
35 // NOLINTBEGIN
36 virtual int getAnimationFrameFor(::Mob* holder, bool item, ::ItemStack const*, bool) const /*override*/;
37
38 virtual ::InteractionResult
39 _useOn(::ItemStack& instance, ::Actor& entity, ::BlockPos pos, uchar face, ::Vec3 const& clickPos) const
40 /*override*/;
41 // NOLINTEND
42
43public:
44 // member functions
45 // NOLINTBEGIN
46 MCAPI LodestoneCompassItem(::std::string const& name, int id);
47 // NOLINTEND
48
49public:
50 // static functions
51 // NOLINTBEGIN
52 MCAPI static ::PositionTrackingId _getOrCreateTrackingId(
54 ::LodestoneBlockActor& lodestoneBlock,
55 ::BlockPos pos,
56 ::DimensionType dimensionId
57 );
58
59 MCAPI static ::LodestoneCompassComponent* _tryGetOrAddComponent(
61 ::std::variant<::ActorUniqueID, ::std::pair<::BlockPos, ::DimensionType>> const& calcId
62 );
63
64 MCAPI static int getCompassFrame(
65 ::std::variant<::ActorUniqueID, ::std::pair<::BlockPos, ::DimensionType>>& calcId,
66 ::ItemStack const& item,
67 ::Level const& level,
68 ::BlockPos const& itemPosition,
69 ::DimensionType const& itemDimension
70 );
71
72#ifdef LL_PLAT_C
73 MCAPI static ::PositionTrackingId getPositionTrackingId(::ItemStackBase const& item);
74#endif
75
76 MCAPI static bool linkCompassToLodestone(::ItemStack& item, ::BlockSource& region, ::BlockPos pos);
77
78 MCAPI static void putPositionTrackingId(::ItemStackBase& item, ::PositionTrackingId const& id);
79 // NOLINTEND
80
81public:
82 // constructor thunks
83 // NOLINTBEGIN
84 MCAPI void* $ctor(::std::string const& name, int id);
85 // NOLINTEND
86
87public:
88 // virtual function thunks
89 // NOLINTBEGIN
90 MCAPI int $getAnimationFrameFor(::Mob* holder, bool item, ::ItemStack const*, bool) const;
91
92 MCAPI ::InteractionResult
93 $_useOn(::ItemStack& instance, ::Actor& entity, ::BlockPos pos, uchar face, ::Vec3 const& clickPos) const;
94
95
96 // NOLINTEND
97
98public:
99 // vftables
100 // NOLINTBEGIN
101 MCAPI static void** $vftable();
102 // NOLINTEND
103};
static MCAPI void ** $vftable()
Definition Actor.h:125
Definition BlockPos.h:21
Definition BlockSource.h:73
Definition InteractionResult.h:5
Definition ItemStackBase.h:52
Definition ItemStack.h:35
Definition Level.h:255
Definition LodestoneBlockActor.h:20
Definition LodestoneCompassComponent.h:19
Definition Mob.h:57
Definition PositionTrackingDBServer.h:24
Definition TrackingRecord.h:22
Definition PositionTrackingId.h:10
Definition Vec3.h:10
Definition ActorUniqueID.h:10
Definition DimensionType.h:5