Add documentation for ItemMapperSystem etc. (#9998)

This commit is contained in:
Ygg01
2022-07-26 15:57:00 +02:00
committed by GitHub
parent 1c9c5530ac
commit 535f16a199
3 changed files with 66 additions and 0 deletions

View File

@@ -4,6 +4,11 @@ using Robust.Shared.Containers;
namespace Content.Shared.Storage.EntitySystems
{
/// <summary>
/// <c>ItemMapperSystem</c> is a system that on each initialization, insertion, removal of an entity from
/// given <see cref="ItemMapperComponent"/> (with appropriate storage attached) will check each stored item to see
/// if its tags/component, and overall quantity match <see cref="ItemMapperComponent.MapLayers"/>.
/// </summary>
[UsedImplicitly]
public abstract class SharedItemMapperSystem : EntitySystem
{
@@ -45,6 +50,17 @@ namespace Content.Shared.Storage.EntitySystems
}
}
/// <summary>
/// Method that iterates over storage of the entity in <paramref name="msg"/> and sets <paramref name="containedLayers"/> according to
/// <paramref name="itemMapper"/> definition. It will have O(n*m) time behavior (n - number of entities in container, and m - number of
/// definitions in <paramref name="containedLayers"/>.
/// </summary>
/// <param name="msg">event with EntityUid used to search the storage</param>
/// <param name="itemMapper">component that contains definition used to map <see cref="Content.Shared.Whitelist.EntityWhitelist">whitelist</see> in
/// <c>mapLayers</c> to string.
/// </param>
/// <param name="containedLayers">list of <paramref name="itemMapper"/> layers that should be visible</param>
/// <returns>false if <c>msg.Container.Owner</c> is not a storage, true otherwise.</returns>
protected abstract bool TryGetLayers(ContainerModifiedMessage msg,
ItemMapperComponent itemMapper,
out IReadOnlyList<string> containedLayers);