Raise an event when an entity's name is changed (#5216)

This commit is contained in:
Tayrtahn
2024-06-07 20:45:28 -04:00
committed by GitHub
parent b6252c9e4f
commit 7319f3a241
2 changed files with 15 additions and 1 deletions

View File

@@ -0,0 +1,7 @@
namespace Robust.Shared.GameObjects;
/// <summary>
/// Raised directed on an entity when its name is changed.
/// </summary>
[ByRefEvent]
public readonly record struct EntityRenamedEvent(string NewName);

View File

@@ -42,12 +42,19 @@ public abstract class MetaDataSystem : EntitySystem
component.PauseTime = state.PauseTime;
}
public void SetEntityName(EntityUid uid, string value, MetaDataComponent? metadata = null)
public void SetEntityName(EntityUid uid, string value, MetaDataComponent? metadata = null, bool raiseEvents = true)
{
if (!_metaQuery.Resolve(uid, ref metadata) || value.Equals(metadata.EntityName))
return;
metadata._entityName = value;
if (raiseEvents)
{
var ev = new EntityRenamedEvent(value);
RaiseLocalEvent(uid, ref ev);
}
Dirty(uid, metadata, metadata);
}