LeviLamina
Loading...
Searching...
No Matches
ChunkBuildOrderPolicy.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/math/Vec3.h"
7#include "mc/platform/threading/SpinLockImpl.h"
8#include "mc/world/level/ChunkPos.h"
9#include "mc/world/level/dimension/ChunkBuildOrderPolicyBase.h"
10
12public:
13 // ChunkBuildOrderPolicy inner types declare
14 // clang-format off
15 struct Influence;
16 // clang-format on
17
18 // ChunkBuildOrderPolicy inner types define
19 enum class HintType : int {
20 Player = 0,
21 TickingAreaBox = 1,
22 TickingAreaCircle = 2,
23 };
24
25 struct Influence {
26 public:
27 // member variables
28 // NOLINTBEGIN
29 ::ll::TypedStorage<8, 8, ::ChunkPos> position;
30 ::ll::TypedStorage<4, 12, ::Vec3> parameter;
31 ::ll::TypedStorage<4, 4, ::ChunkBuildOrderPolicy::HintType> type;
32 // NOLINTEND
33
34 public:
35 // member functions
36 // NOLINTBEGIN
37 MCAPI int getPriority(::ChunkPos const& cp) const;
38 // NOLINTEND
39 };
40
41public:
42 // member variables
43 // NOLINTBEGIN
44 ::ll::TypedStorage<8, 64, ::std::unordered_map<uint, ::ChunkBuildOrderPolicy::Influence>> mPositionMap;
45 ::ll::TypedStorage<8, 32, ::SpinLockImpl> mChunkPosAsyncSpinLock;
46 ::ll::TypedStorage<8, 24, ::std::vector<::ChunkBuildOrderPolicy::Influence>> mChunkPosAndDirectionAsync;
47 ::ll::TypedStorage<4, 4, uint> mLastHandle;
48 // NOLINTEND
49
50public:
51 // virtual functions
52 // NOLINTBEGIN
53 virtual ~ChunkBuildOrderPolicy() /*override*/ = default;
54
55 virtual int getChunkRebuildPriority(::ChunkPos const& cp) const /*override*/;
56
57 virtual uint registerForUpdates() /*override*/;
58
59 virtual void unregisterForUpdates(uint handle) /*override*/;
60
61 virtual void setPlayerInfluence(
62 uint handle,
63 ::ChunkPos const& playerPosition,
64 ::Vec3 const& playerMovementDirection
65 ) /*override*/;
66
67 virtual void setTickingAreaInfluence(
68 uint handle,
69 ::ChunkPos const& tickingAreaPosition,
70 int sizeX,
71 int sizeZ,
72 bool isCircle,
73 bool preload
74 ) /*override*/;
75
76 virtual void updateInfluences() /*override*/;
77 // NOLINTEND
78
79public:
80 // virtual function thunks
81 // NOLINTBEGIN
82 MCAPI int $getChunkRebuildPriority(::ChunkPos const& cp) const;
83
84 MCAPI uint $registerForUpdates();
85
86 MCAPI void $unregisterForUpdates(uint handle);
87
88 MCAPI void
89 $setPlayerInfluence(uint handle, ::ChunkPos const& playerPosition, ::Vec3 const& playerMovementDirection);
90
91 MCAPI void $setTickingAreaInfluence(
92 uint handle,
93 ::ChunkPos const& tickingAreaPosition,
94 int sizeX,
95 int sizeZ,
96 bool isCircle,
97 bool preload
98 );
99
100 MCAPI void $updateInfluences();
101
102
103 // NOLINTEND
104
105public:
106 // vftables
107 // NOLINTBEGIN
108 MCNAPI static void** $vftable();
109 // NOLINTEND
110};
Definition ChunkBuildOrderPolicyBase.h:11
Definition ChunkBuildOrderPolicy.h:11
static MCAPI void ** $vftable()
Definition ChunkPos.h:11
Definition Player.h:125
Definition Vec3.h:10
Definition ChunkBuildOrderPolicy.h:25