mirror of
https://github.com/space-wizards/RobustToolbox.git
synced 2026-09-02 18:17:09 +02: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
79 lines
2.1 KiB
C#
79 lines
2.1 KiB
C#
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Numerics;
|
|
using Robust.Shared.Toolshed.Syntax;
|
|
|
|
namespace Robust.Shared.Toolshed.Commands.Math;
|
|
|
|
[ToolshedCommand]
|
|
public sealed class SqrtCommand : ToolshedCommand
|
|
{
|
|
[CommandImplementation, TakesPipedTypeAsGeneric]
|
|
public T Operation<T>([PipedArgument] T x)
|
|
where T : IRootFunctions<T>
|
|
{
|
|
return T.Sqrt(x);
|
|
}
|
|
|
|
[CommandImplementation, TakesPipedTypeAsGeneric]
|
|
public IEnumerable<T> Operation<T>([PipedArgument] IEnumerable<T> x)
|
|
where T : IRootFunctions<T>
|
|
=> x.Select(Operation);
|
|
}
|
|
|
|
[ToolshedCommand]
|
|
public sealed class CbrtCommand : ToolshedCommand
|
|
{
|
|
[CommandImplementation, TakesPipedTypeAsGeneric]
|
|
public T Operation<T>([PipedArgument] T x)
|
|
where T : IRootFunctions<T>
|
|
{
|
|
return T.Cbrt(x);
|
|
}
|
|
|
|
[CommandImplementation, TakesPipedTypeAsGeneric]
|
|
public IEnumerable<T> Operation<T>([PipedArgument] IEnumerable<T> x)
|
|
where T : IRootFunctions<T>
|
|
=> x.Select(Operation);
|
|
}
|
|
|
|
[ToolshedCommand]
|
|
public sealed class RootCommand : ToolshedCommand
|
|
{
|
|
[CommandImplementation, TakesPipedTypeAsGeneric]
|
|
public T Operation<T>(
|
|
[PipedArgument] T x,
|
|
int y
|
|
)
|
|
where T : IRootFunctions<T>
|
|
{
|
|
return T.RootN(x, y);
|
|
}
|
|
|
|
[CommandImplementation, TakesPipedTypeAsGeneric]
|
|
public IEnumerable<T> Operation<T>([PipedArgument] IEnumerable<T> x, IEnumerable<int> y) where T : IRootFunctions<T>
|
|
=> x.Zip(y).Select(inp =>
|
|
{
|
|
var (left, right) = inp;
|
|
return Operation(left, right);
|
|
});
|
|
}
|
|
|
|
[ToolshedCommand]
|
|
public sealed class HypotCommand : ToolshedCommand
|
|
{
|
|
[CommandImplementation, TakesPipedTypeAsGeneric]
|
|
public T Operation<T>([PipedArgument] T x, T y) where T : IRootFunctions<T>
|
|
{
|
|
return T.Hypot(x, y);
|
|
}
|
|
|
|
[CommandImplementation, TakesPipedTypeAsGeneric]
|
|
public IEnumerable<T> Operation<T>([PipedArgument] IEnumerable<T> x, IEnumerable<T> y) where T : IRootFunctions<T>
|
|
=> x.Zip(y).Select(inp =>
|
|
{
|
|
var (left, right) = inp;
|
|
return Operation(left, right);
|
|
});
|
|
}
|