mirror of
https://github.com/space-wizards/RobustToolbox.git
synced 2026-02-14 19:29:36 +01:00
* Toolshed Rejig * shorten hint string * Try fix conflicts. Ill make with work later * bodge * Fix ProtoIdTypeParser assert * comment * AllEntities * Remove more linq from WhereCommand * better help strings * Add ContainsCommand * loc strings * Add contains command description * Add $self variable * Errors for writing to readonly variables * A
30 lines
691 B
C#
30 lines
691 B
C#
using System.Collections.Generic;
|
|
using Robust.Shared.Toolshed.Syntax;
|
|
|
|
namespace Robust.Shared.Toolshed.Commands.Generic;
|
|
|
|
[ToolshedCommand]
|
|
public sealed class IterateCommand : ToolshedCommand
|
|
{
|
|
[CommandImplementation, TakesPipedTypeAsGeneric]
|
|
public IEnumerable<T>? Iterate<T>(
|
|
IInvocationContext ctx,
|
|
[PipedArgument] T value,
|
|
Block<T, T> block,
|
|
int times
|
|
)
|
|
{
|
|
for (var i = 0; i < times; i++)
|
|
{
|
|
if (block.Invoke(value, ctx) is not { } v)
|
|
break;
|
|
|
|
if (ctx.HasErrors)
|
|
break;
|
|
|
|
value = v;
|
|
yield return value;
|
|
}
|
|
}
|
|
}
|