Fix mouse rotator error spam (#39071)
Ignore mouse rotation requests when the player is switching controlled entity
This commit is contained in:
@@ -57,7 +57,8 @@ public sealed class MouseRotatorSystem : SharedMouseRotatorSystem
|
|||||||
rotation += 2 * Math.PI;
|
rotation += 2 * Math.PI;
|
||||||
RaisePredictiveEvent(new RequestMouseRotatorRotationEvent
|
RaisePredictiveEvent(new RequestMouseRotatorRotationEvent
|
||||||
{
|
{
|
||||||
Rotation = rotation
|
Rotation = rotation,
|
||||||
|
User = GetNetEntity(player)
|
||||||
});
|
});
|
||||||
|
|
||||||
return;
|
return;
|
||||||
@@ -77,7 +78,8 @@ public sealed class MouseRotatorSystem : SharedMouseRotatorSystem
|
|||||||
|
|
||||||
RaisePredictiveEvent(new RequestMouseRotatorRotationEvent
|
RaisePredictiveEvent(new RequestMouseRotatorRotationEvent
|
||||||
{
|
{
|
||||||
Rotation = angle
|
Rotation = angle,
|
||||||
|
User = GetNetEntity(player)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,4 +48,5 @@ public sealed partial class MouseRotatorComponent : Component
|
|||||||
public sealed class RequestMouseRotatorRotationEvent : EntityEventArgs
|
public sealed class RequestMouseRotatorRotationEvent : EntityEventArgs
|
||||||
{
|
{
|
||||||
public Angle Rotation;
|
public Angle Rotation;
|
||||||
|
public NetEntity? User;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,6 +47,11 @@ public abstract class SharedMouseRotatorSystem : EntitySystem
|
|||||||
|
|
||||||
private void OnRequestRotation(RequestMouseRotatorRotationEvent msg, EntitySessionEventArgs args)
|
private void OnRequestRotation(RequestMouseRotatorRotationEvent msg, EntitySessionEventArgs args)
|
||||||
{
|
{
|
||||||
|
// Ignore the request if the requested entity is not the user's attached entity.
|
||||||
|
// This can happen when a player switches controlled entities while rotating.
|
||||||
|
if (args.SenderSession.AttachedEntity != GetEntity(msg.User))
|
||||||
|
return;
|
||||||
|
|
||||||
if (args.SenderSession.AttachedEntity is not { } ent
|
if (args.SenderSession.AttachedEntity is not { } ent
|
||||||
|| !TryComp<MouseRotatorComponent>(ent, out var rotator))
|
|| !TryComp<MouseRotatorComponent>(ent, out var rotator))
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user