* Fix TransformComponent.MapPosition warnings in Content.Client * Fix TransformComponent.MapPosition warnings in Content.IntegrationTests * Fix TransformComponent.MapPosition warnings in Content.Shared * Fix TransformComponent.MapPosition warnings in Content.Server * Fix TransformComponent.WorldPosition warnings in Content.Shared * Fix TransformComponent.WorldPosition warnings in Content.Client Excepts ClickableComponent b/c that needs to be ECS'd entirely later * Fix TransformComponent.WorldPosition warnings in Content.Server * Fix TransformComponent.WorldRotation warnings in Content.* * Fix TransformComponent.MapPosition warnings I missed * Fix TransformComponent.WorldMatrix warnings in Content.* * Fix TransformComponent.InvWorldMatrix warnings in Content.* * Fix TransformComponent.GetWorldPositionRotationMatrixWithInv warnings in Content.* * Fix TransformComponent.GetWorldPositionRotationMatrix warnings in Content.* * Fix TransformComponent.GetWorldPositionRotation warnings in Content.* * Fix TransformComponent.Anchored.set warnings in Content.* * Fix TransformComponent.Coordinates.set warnings in Content.* * Fix TransformComponent.LocalPosition.set warnings in Content.* * Fix TransformComponent.AttachToGridOrMap warnings in Content.* * Fix TransformComponent.AttachParent warnings in Content.* * Preempt TransformComponent.LocalRotation.set warnings in Content.Shared * Preempt TransformComponent.LocalRotation.set warnings in Content.Client * Preempt TransformComponent.LocalRotation.set warnings in Content.IntegrationTests * Preempt TransformComponent.LocalRotation.set warnings in Content.Server * Fix/Preempt the remaining obsolete TransformComponent properties/methods in Content.* * ECS ClickableComponent * Fix obsolete SharedTransformSystem methods in Content.* * Fix ExplosionOverlay `SharedTransformSystem` dependency * Maybe fix null eye position breaking tests * MGS requested changes
60 lines
1.9 KiB
C#
60 lines
1.9 KiB
C#
using System.Linq;
|
|
using Content.Shared.Hands.Components;
|
|
using Content.Shared.Hands.EntitySystems;
|
|
using Robust.Server.Player;
|
|
using Robust.Shared.GameObjects;
|
|
using Robust.Shared.Map;
|
|
|
|
namespace Content.IntegrationTests.Tests.Hands;
|
|
|
|
[TestFixture]
|
|
public sealed class HandTests
|
|
{
|
|
[Test]
|
|
public async Task TestPickupDrop()
|
|
{
|
|
await using var pair = await PoolManager.GetServerClient(new PoolSettings
|
|
{
|
|
Connected = true,
|
|
DummyTicker = false
|
|
});
|
|
var server = pair.Server;
|
|
|
|
var entMan = server.ResolveDependency<IEntityManager>();
|
|
var playerMan = server.ResolveDependency<IPlayerManager>();
|
|
var mapMan = server.ResolveDependency<IMapManager>();
|
|
var sys = entMan.System<SharedHandsSystem>();
|
|
var xfm = entMan.System<SharedTransformSystem>();
|
|
|
|
var data = await pair.CreateTestMap();
|
|
await pair.RunTicksSync(5);
|
|
|
|
EntityUid item = default;
|
|
EntityUid player = default;
|
|
HandsComponent hands = default!;
|
|
await server.WaitPost(() =>
|
|
{
|
|
player = playerMan.Sessions.First().AttachedEntity!.Value;
|
|
var xform = entMan.GetComponent<TransformComponent>(player);
|
|
item = entMan.SpawnEntity("Crowbar", xfm.GetMapCoordinates(xform));
|
|
hands = entMan.GetComponent<HandsComponent>(player);
|
|
sys.TryPickup(player, item, hands.ActiveHand!);
|
|
});
|
|
|
|
// run ticks here is important, as errors may happen within the container system's frame update methods.
|
|
await pair.RunTicksSync(5);
|
|
Assert.That(hands.ActiveHandEntity, Is.EqualTo(item));
|
|
|
|
await server.WaitPost(() =>
|
|
{
|
|
sys.TryDrop(player, item, null!);
|
|
});
|
|
|
|
await pair.RunTicksSync(5);
|
|
Assert.That(hands.ActiveHandEntity, Is.Null);
|
|
|
|
await server.WaitPost(() => mapMan.DeleteMap(data.MapId));
|
|
await pair.CleanReturnAsync();
|
|
}
|
|
}
|