feat(headless): hydrate isolated collision worlds
This commit is contained in:
parent
9569dadb57
commit
b6547ff38c
20 changed files with 1960 additions and 101 deletions
|
|
@ -972,7 +972,7 @@ public sealed class PlayerMovementController
|
|||
/// Install a complete authoritative frame rotation (spawn, teleport, or
|
||||
/// server correction) without collapsing it through the yaw projection.
|
||||
/// </summary>
|
||||
internal void SetBodyOrientation(Quaternion orientation)
|
||||
public void SetBodyOrientation(Quaternion orientation)
|
||||
{
|
||||
_body.Orientation = AcDream.Core.Physics.Motion.FrameOps.SetRotate(
|
||||
_body.Position,
|
||||
|
|
|
|||
|
|
@ -0,0 +1,24 @@
|
|||
namespace AcDream.Runtime.Gameplay;
|
||||
|
||||
/// <summary>
|
||||
/// Applies the exact server-owned run/jump snapshot to either host's one local
|
||||
/// movement controller. This lives beside the canonical skill owner so
|
||||
/// graphical and no-window construction cannot drift.
|
||||
/// </summary>
|
||||
public static class RuntimeMovementSkillProjection
|
||||
{
|
||||
public static bool ApplyTo(
|
||||
RuntimeMovementSkillState skills,
|
||||
PlayerMovementController? controller)
|
||||
{
|
||||
ArgumentNullException.ThrowIfNull(skills);
|
||||
RuntimeMovementSkillSnapshot snapshot = skills.Snapshot;
|
||||
if (controller is null || !snapshot.IsComplete)
|
||||
return false;
|
||||
|
||||
controller.SetCharacterSkills(
|
||||
snapshot.RunSkill,
|
||||
snapshot.JumpSkill);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue