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
35public:
36 // member variables
37 // NOLINTBEGIN
38 ::ll::TypedStorage<8, 64, ::std::unordered_map<uint, ::ChunkBuildOrderPolicy::Influence>> mPositionMap;
39 ::ll::TypedStorage<8, 24, ::SpinLockImpl> mChunkPosAsyncSpinLock;
40 ::ll::TypedStorage<8, 24, ::std::vector<::ChunkBuildOrderPolicy::Influence>> mChunkPosAndDirectionAsync;
41 ::ll::TypedStorage<4, 4, uint> mLastHandle;
42 // NOLINTEND
43
44public:
45 // virtual functions
46 // NOLINTBEGIN
47 virtual ~ChunkBuildOrderPolicy() /*override*/ = default;
48
49 virtual int getChunkRebuildPriority(::ChunkPos const& cp) const /*override*/;
50
51 virtual uint registerForUpdates() /*override*/;
52
53 virtual void unregisterForUpdates(uint handle) /*override*/;
54
55 virtual void setPlayerInfluence(
56 uint handle,
57 ::ChunkPos const& playerPosition,
58 ::Vec3 const& playerMovementDirection
59 ) /*override*/;
60
61 virtual void setTickingAreaInfluence(
62 uint handle,
63 ::ChunkPos const& tickingAreaPosition,
64 int sizeX,
65 int sizeZ,
66 bool isCircle,
67 bool preload
68 ) /*override*/;
69
70 virtual void updateInfluences() /*override*/;
71 // NOLINTEND
72
73public:
74 // virtual function thunks
75 // NOLINTBEGIN
76 MCAPI int $getChunkRebuildPriority(::ChunkPos const& cp) const;
77
78 MCAPI uint $registerForUpdates();
79
80 MCAPI void $unregisterForUpdates(uint handle);
81
82 MCAPI void
83 $setPlayerInfluence(uint handle, ::ChunkPos const& playerPosition, ::Vec3 const& playerMovementDirection);
84
85 MCAPI void $setTickingAreaInfluence(
86 uint handle,
87 ::ChunkPos const& tickingAreaPosition,
88 int sizeX,
89 int sizeZ,
90 bool isCircle,
91 bool preload
92 );
93
94 MCAPI void $updateInfluences();
95
96
97 // NOLINTEND
98};
Definition ChunkBuildOrderPolicyBase.h:11
Definition ChunkBuildOrderPolicy.h:11
Definition ChunkPos.h:13
Definition Player.h:129
Definition Vec3.h:10
Definition ChunkBuildOrderPolicy.h:25