21class PredictedMovementComponent {
36 struct HistoryTimestampData {
47 HistoryTimestampData& operator=(HistoryTimestampData
const&);
48 HistoryTimestampData(HistoryTimestampData
const&);
49 HistoryTimestampData();
54 MCAPI
static uint& mSequenceIdGenerator();
61 enum class ItemType :
int {
77 HistoryItem& operator=(HistoryItem
const&);
78 HistoryItem(HistoryItem
const&);
84 virtual ~HistoryItem() =
default;
86 virtual bool isValidStartItem()
const = 0;
88 virtual bool isAddedActorItem()
const = 0;
90 virtual bool isMotionHintItem()
const = 0;
92 virtual ::std::string toString()
const;
94 virtual ::Vec3
const& getPos()
const = 0;
96 virtual ::Vec2
const& getRot()
const = 0;
98 virtual float getYHeadRot()
const = 0;
100 virtual bool isOnGround()
const = 0;
106 MCAPI ::std::string $toString()
const;
118 struct PredictionDbgWindowData {
137 PredictionDbgWindowData& operator=(PredictionDbgWindowData
const&);
138 PredictionDbgWindowData(PredictionDbgWindowData
const&);
139 PredictionDbgWindowData();
142 struct PredictionDbgData {
156 PredictionDbgData& operator=(PredictionDbgData
const&);
157 PredictionDbgData(PredictionDbgData
const&);
163 MCAPI ::std::string toString()
const;
165 MCAPI ~PredictionDbgData();
175 struct RuntimePredictionData {
183 struct LerpedInterval {
195 LerpedInterval& operator=(LerpedInterval
const&);
196 LerpedInterval(LerpedInterval
const&);
218 RuntimePredictionData& operator=(RuntimePredictionData
const&);
219 RuntimePredictionData(RuntimePredictionData
const&);
220 RuntimePredictionData();
225 virtual ~RuntimePredictionData() =
default;
234 MCAPI
void updateRuntimeData(
235 ::std::shared_ptr<::PredictedMovementComponent::HistoryItem const>
const& newItem,
236 ::std::shared_ptr<::PredictedMovementComponent::HistoryItem const>
const& prevNewItem,
237 uint64 currentHistoryItemSize
261 HistoryCache& operator=(HistoryCache
const&);
262 HistoryCache(HistoryCache
const&);
268 MCAPI
void _addHistoryItem(::std::shared_ptr<::PredictedMovementComponent::HistoryItem const>
const& item);
270 MCAPI
void _clearHistory();
274 addHistory(
::AddActorPacket const& actorData, ::std::chrono::steady_clock::time_point
const& receiveTimepoint);
276 MCAPI
void addHistory(
278 ::std::chrono::steady_clock::time_point
const& receiveTimepoint
281 MCAPI
void addHistory(
283 ::std::chrono::steady_clock::time_point
const& receiveTimepoint
287 MCAPI
void addHistory(
289 ::std::chrono::steady_clock::time_point
const& receiveTimepoint
292 MCFOLD ::std::deque<::std::shared_ptr<::PredictedMovementComponent::HistoryItem const>>
const&
296 MCFOLD uint64 getHistorySize()
const;
299 ::std::shared_ptr<::PredictedMovementComponent::HistoryItem const>,
300 ::std::shared_ptr<::PredictedMovementComponent::HistoryItem const>>
301 getLastTwoHistoryItems()
const;
304 MCAPI
void pruneHistory(uint beforeSequenceId);
306 MCAPI ::std::string toString();
327 MotionHistoryItem& operator=(MotionHistoryItem
const&);
328 MotionHistoryItem(MotionHistoryItem
const&);
334 virtual bool isValidStartItem()
const ;
336 virtual bool isAddedActorItem()
const ;
338 virtual bool isMotionHintItem()
const ;
340 virtual ::Vec3
const& getPos()
const ;
342 virtual ::Vec2
const& getRot()
const ;
344 virtual float getYHeadRot()
const ;
346 virtual bool isOnGround()
const ;
353 MCAPI MotionHistoryItem(
356 bool isMotionHintItem,
357 ::std::chrono::steady_clock::time_point
const& timepoint,
358 ::std::shared_ptr<::PredictedMovementComponent::MoveHistoryItem const>
const& prevMoveItem,
359 ::std::shared_ptr<::PredictedMovementComponent::MotionHistoryItem const>
const& prevMotionItem,
360 bool didAdjustTimepoint,
361 ::std::chrono::milliseconds
const& timepointDiff
373 bool isMotionHintItem,
374 ::std::chrono::steady_clock::time_point
const& timepoint,
375 ::std::shared_ptr<::PredictedMovementComponent::MoveHistoryItem const>
const& prevMoveItem,
376 ::std::shared_ptr<::PredictedMovementComponent::MotionHistoryItem const>
const& prevMotionItem,
377 bool didAdjustTimepoint,
378 ::std::chrono::milliseconds
const& timepointDiff
387 MCFOLD
bool $isValidStartItem()
const;
389 MCAPI
bool $isAddedActorItem()
const;
391 MCFOLD
bool $isMotionHintItem()
const;
393 MCFOLD ::Vec3
const& $getPos()
const;
395 MCFOLD ::Vec2
const& $getRot()
const;
397 MCFOLD
float $getYHeadRot()
const;
399 MCFOLD
bool $isOnGround()
const;
425 MoveHistoryItem& operator=(MoveHistoryItem
const&);
426 MoveHistoryItem(MoveHistoryItem
const&);
432 virtual bool isValidStartItem()
const ;
434 virtual bool isAddedActorItem()
const ;
436 virtual bool isMotionHintItem()
const ;
438 virtual ::Vec3
const& getPos()
const ;
440 virtual ::Vec2
const& getRot()
const ;
442 virtual float getYHeadRot()
const ;
444 virtual bool isOnGround()
const ;
450 MCFOLD
bool $isValidStartItem()
const;
452 MCFOLD
bool $isAddedActorItem()
const;
454 MCFOLD
bool $isMotionHintItem()
const;
456 MCFOLD ::Vec3
const& $getPos()
const;
458 MCAPI ::Vec2
const& $getRot()
const;
460 MCFOLD
float $getYHeadRot()
const;
462 MCFOLD
bool $isOnGround()
const;
480 using PredictionEventsListenerFunction = ::std::function<void(::MovePredictionType)>;
485 ::ll::TypedStorage<1, 1, ::brstd::bitset<2, uchar>> mDisableConditions;
486 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::PredictedMovementComponent::RuntimePredictionData>>
487 mRuntimePredictionData;
488 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::PredictedMovementComponent::HistoryItem const>> mLastStartItem;
489 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::PredictedMovementComponent::HistoryItem const>> mLastEndItem;
490 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::PredictedMovementComponent::HistoryCache>> mHistoryCache;
491 ::ll::TypedStorage<1, 1, bool> mForceTeleportAfterResuming;
492 ::ll::TypedStorage<1, 1, bool> mAllowTeleportingWithoutRegion;
493 ::ll::TypedStorage<4, 4, uint> mLastCompletedInterpolationSequenceID;
494 ::ll::TypedStorage<8, 64, ::std::function<void(::MovePredictionType)>> mPredictionEventsListenerFunc;
495 ::ll::TypedStorage<8, 16, ::PredictedMovementValues> mPredictedMovementValues;
501 MCAPI PredictedMovementComponent();
503 MCAPI
void _debugLog(
508 MCAPI
void _debugLog(
510 ::MovePredictionType type,
514 MCAPI
bool _tryInterpolate(
516 ::std::chrono::steady_clock::time_point
const& renderTimepoint
524 MCAPI ~PredictedMovementComponent();
530 MCAPI
static bool isPredictedMovementEnabled(::PredictedMovementComponent
const* component);
536 MCAPI static ::std::unique_ptr<::PredictedMovementComponent::RuntimePredictionData>& mGlobalRuntimePredictionData();
Definition PredictedMovementComponent.h:249
Definition PredictedMovementComponent.h:58
static MCAPI void ** $vftable()
Definition PredictedMovementComponent.h:36
Definition PredictedMovementComponent.h:310
static MCAPI void ** $vftable()
Definition PredictedMovementComponent.h:412
static MCAPI void ** $vftable()