cleanup RingerSystem (#36731)

cleanup ringersystem
This commit is contained in:
slarticodefast
2025-04-19 19:11:08 +02:00
committed by GitHub
parent f3429615a6
commit 51e2607a12
2 changed files with 7 additions and 25 deletions

View File

@@ -33,24 +33,4 @@ public sealed class RingerSystem : SharedRingerSystem
bui.Update();
}
}
/// <inheritdoc/>
public override bool TryToggleUplink(EntityUid uid, Note[] ringtone, EntityUid? user = null)
{
if (!TryComp<RingerUplinkComponent>(uid, out var uplink))
return false;
if (!HasComp<StoreComponent>(uid))
return false;
// Special case for client-side prediction:
// Since we can't expose the uplink code to clients for security reasons,
// we assume if an antagonist is trying to set a ringtone, it's to unlock the uplink.
// The server will properly verify the code and correct if needed.
if (IsAntagonist(user))
return ToggleUplinkInternal((uid, uplink));
// Non-antagonists never get to toggle the uplink on the client
return false;
}
}

View File

@@ -145,16 +145,18 @@ public abstract class SharedRingerSystem : EntitySystem
/// <summary>
/// Attempts to unlock or lock the uplink by checking the provided ringtone against the uplink code.
/// On the client side, for antagonists, the code check is skipped to support prediction.
/// On the server side, the code is always verified.
/// On the client side, it does nothing since the client cannot know the code in advance.
/// On the server side, the code is verified.
/// </summary>
/// <param name="uid">The entity with the RingerUplinkComponent.</param>
/// <param name="ringtone">The ringtone to check against the uplink code.</param>
/// <param name="user">The entity attempting to toggle the uplink. If the user is an antagonist,
/// the ringtone code check will be skipped on the client to allow prediction.</param>
/// <param name="user">The entity attempting to toggle the uplink.</param>
/// <returns>True if the uplink state was toggled, false otherwise.</returns>
[PublicAPI]
public abstract bool TryToggleUplink(EntityUid uid, Note[] ringtone, EntityUid? user = null);
public virtual bool TryToggleUplink(EntityUid uid, Note[] ringtone, EntityUid? user = null)
{
return false;
}
#endregion