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>
49 lines
1.4 KiB
C#
49 lines
1.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using Robust.Shared.GameObjects;
|
|
using Robust.Shared.Physics.Components;
|
|
|
|
namespace Robust.Shared.Toolshed.Commands.Misc;
|
|
|
|
[ToolshedCommand]
|
|
internal sealed class PhysicsCommand : ToolshedCommand
|
|
{
|
|
private SharedTransformSystem? _xform = default!;
|
|
|
|
[CommandImplementation("velocity")]
|
|
public IEnumerable<float> Velocity([PipedArgument] IEnumerable<EntityUid> input)
|
|
{
|
|
var physQuery = GetEntityQuery<PhysicsComponent>();
|
|
|
|
foreach (var ent in input)
|
|
{
|
|
if (!physQuery.TryGetComponent(ent, out var comp))
|
|
continue;
|
|
|
|
yield return comp.LinearVelocity.Length();
|
|
}
|
|
}
|
|
|
|
[CommandImplementation("parent")]
|
|
public IEnumerable<EntityUid> Parent([PipedArgument] IEnumerable<EntityUid> input)
|
|
{
|
|
_xform ??= GetSys<SharedTransformSystem>();
|
|
return input.Select(x => Comp<TransformComponent>(x).ParentUid);
|
|
}
|
|
|
|
[CommandImplementation("angular_velocity")]
|
|
public IEnumerable<float> AngularVelocity([PipedArgument] IEnumerable<EntityUid> input)
|
|
{
|
|
var physQuery = GetEntityQuery<PhysicsComponent>();
|
|
|
|
foreach (var ent in input)
|
|
{
|
|
if (!physQuery.TryGetComponent(ent, out var comp))
|
|
continue;
|
|
|
|
yield return comp.AngularVelocity;
|
|
}
|
|
}
|
|
}
|