mirror of
https://github.com/space-wizards/RobustToolbox.git
synced 2026-02-14 19:29:36 +01:00
* Saving work * Move shit to engine * lord * merg * awa * bql is kill * forgot the fucking bike rack * bql is kill for real * pjb will kill me * aughfhbdj * yo ho here we go on my way to the MINES * a * adgddf * gdsgvfvxshngfgh * b * hfsjhghj * hbfdjjh * tf you mean i have to document it * follow C# standards * Assorted cleanup and documentation pass, minor bugfix in ValueRefParser. * Start porting old commands, remove that pesky prefix in favor of integrating with the shell. * Fix valueref up a bit, improve autocomplete for it. * e * Toolshed type system adventure. * a log * a * a e i o u * awa * fix tests * Arithmetic commands. * a * parse improvements --------- Co-authored-by: moonheart08 <moonheart08@users.noreply.github.com>
45 lines
1.4 KiB
C#
45 lines
1.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Globalization;
|
|
using Robust.Shared.GameObjects;
|
|
using Robust.Shared.Toolshed.Invocation;
|
|
|
|
namespace Robust.Shared.Toolshed.Commands.Entities;
|
|
|
|
[ToolshedCommand]
|
|
internal sealed class DoCommand : ToolshedCommand
|
|
{
|
|
private SharedTransformSystem? _xformSys;
|
|
|
|
[CommandImplementation, TakesPipedTypeAsGeneric]
|
|
public void Do<T>(
|
|
[CommandInvocationContext] IInvocationContext ctx,
|
|
[PipedArgument] IEnumerable<T> input,
|
|
[CommandArgument] string command)
|
|
{
|
|
if (ctx is not OldShellInvocationContext { } reqCtx)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
_xformSys ??= GetSys<SharedTransformSystem>();
|
|
var xformQ = GetEntityQuery<TransformComponent>();
|
|
var shell = reqCtx.Shell;
|
|
foreach (var i in input)
|
|
{
|
|
var cmdStr = command;
|
|
if (i is EntityUid id)
|
|
{
|
|
var worldPos = _xformSys.GetWorldPosition(id, xformQ);
|
|
cmdStr = cmdStr
|
|
.Replace("$ID", id.ToString())
|
|
.Replace("$WX", worldPos.X.ToString(CultureInfo.InvariantCulture))
|
|
.Replace("$WY", worldPos.Y.ToString(CultureInfo.InvariantCulture));
|
|
}
|
|
|
|
cmdStr = cmdStr.Replace("$SELF", i!.ToString() ?? "");
|
|
shell.ExecuteCommand(cmdStr);
|
|
}
|
|
}
|
|
}
|